aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/reception-plugins/src/main
diff options
context:
space:
mode:
authorliboNet <libo.zhu@intel.com>2018-11-27 08:10:33 +0800
committerliboNet <libo.zhu@intel.com>2018-12-04 08:49:27 +0800
commit987cb61f269572fec7c0b0fe500f081ca36c2dd9 (patch)
tree20e53b5abe8f08d13d43a30f2b1509379b7f29f9 /plugins/reception-plugins/src/main
parentcf2a21536bd30ebb8b4544f51ad3024dae310842 (diff)
Fix policy format with vCPE service
. change the capital and lower-case letter . add missing fields in ConfigBody policyName and templateVersion that are requried by OOF . add '=' into default operator once no such info in the input CSAR . based on the vCPE service, which includes several CPs, some may do NOT connect any VDU. so need deal with such case. . add new test case to cover complicated service includes 5 policies . change the resource's type from String to List as requried by OOF which needs such format to deal with all kind of policies beides hpa . improve the code style Change-Id: Id39b1a0511c362c5ae9dce409af18b032832de80 Issue-ID: POLICY-1282 Signed-off-by: liboNet <libo.zhu@intel.com>
Diffstat (limited to 'plugins/reception-plugins/src/main')
-rw-r--r--plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ConfigBody.java18
-rw-r--r--plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/Content.java8
-rw-r--r--plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java54
-rw-r--r--plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorFeature.java2
-rw-r--r--plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorProperty.java2
-rw-r--r--plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderCsarPdpx.java8
6 files changed, 54 insertions, 38 deletions
diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ConfigBody.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ConfigBody.java
index 72d9bd2b..521fcfd6 100644
--- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ConfigBody.java
+++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ConfigBody.java
@@ -23,7 +23,9 @@ package org.onap.policy.distribution.reception.decoding.pdpx;
public class ConfigBody {
private String service;
+ private String policyName;
private String description;
+ private String templateVersion;
private String version;
private String priority;
private String riskType;
@@ -39,6 +41,14 @@ public class ConfigBody {
this.service = service;
}
+ public String getPolicyName() {
+ return policyName;
+ }
+
+ public void setPolicyName(String policyName) {
+ this.policyName = policyName;
+ }
+
public String getDescription() {
return description;
}
@@ -47,6 +57,14 @@ public class ConfigBody {
this.description = description;
}
+ public String getTemplateVersion() {
+ return templateVersion;
+ }
+
+ public void setTemplateVersion(String templateVersion) {
+ this.templateVersion = templateVersion;
+ }
+
public String getVersion() {
return version;
}
diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/Content.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/Content.java
index 77d1a9b7..6e708977 100644
--- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/Content.java
+++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/Content.java
@@ -29,17 +29,13 @@ import java.util.List;
* @author Libo Zhu (libo.zhu@intel.com)
*/
class Content {
- private String resources;
+ private List<String> resources = new ArrayList<>();
private String identity;
private List<String> policyScope = new ArrayList<>();
private String policyType = "Optimization";
private List<FlavorFeature> flavorFeatures = new ArrayList<>();
- public void setResources(final String resources) {
- this.resources = resources;
- }
-
- public String getResources() {
+ public List<String> getResources() {
return resources;
}
diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java
index 699ba49e..579454c5 100644
--- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java
+++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java
@@ -24,12 +24,14 @@ import com.google.common.collect.ImmutableMap;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.distribution.reception.decoding.PolicyDecodingException;
@@ -60,11 +62,11 @@ public class ExtractFromNode {
"virtual_network_interface_requirements#network_interface_requirements#interfaceType";
private static final String NETWORK_PCI_PATH =
"virtual_network_interface_requirements#nic_io_requirements#logical_node_requirements";
- private static final String BASIC_CAPABILITIES_HPA_FEATURE = "BasicCapabilities";
+ private static final String BASIC_CAPABILITIES_HPA_FEATURE = "basicCapabilities";
private static final String HUGE_PAGES_HPA_FEATURE = "hugePages";
private static final Map<String, String> NETWORK_HPA_FEATURE_MAP =
- ImmutableMap.of("SR-IOV", "SriovNICNetwork", "PCI-Passthrough", "pciePassthrough");
-
+ ImmutableMap.of("SR-IOV", "sriovNICNetwork", "PCI-Passthrough", "pciePassthrough");
+ private static final Pattern PATTERN = Pattern.compile("(\\D*)(\\d+)(\\D*)");
private ISdcCsarHelper sdcCsarHelper;
final Gson gson = new GsonBuilder().serializeNulls().setPrettyPrinting().disableHtmlEscaping().create();
@@ -106,8 +108,8 @@ public class ExtractFromNode {
LOGGER.debug("the size of cp is =" + lnodeVduCp.size());
final Content content = new Content();
- content.setResources(metaData.getValue("name"));
- content.setIdentity(content.getPolicyType() + "_" + content.getResources());
+ content.getResources().add(metaData.getValue("name"));
+ content.setIdentity(content.getPolicyType() + "_" + metaData.getValue("name"));
extractInfoVdu(lnodeVdu, content);
extractInfoVduCp(lnodeVduCp, content);
if (content.getFlavorFeatures().isEmpty()) {
@@ -202,17 +204,18 @@ public class ExtractFromNode {
// based on input featureValue, return back a suitable hpaFeatureAttribute
final HpaFeatureAttribute hpaFeatureAttribute = new HpaFeatureAttribute();
hpaFeatureAttribute.setHpaAttributeKey(hpaAttributeKey);
- final String tmp = featureValue.replace(" ", "");
- final String pattern = "(\\D*)(\\d+)(\\D*)";
- final Pattern r = Pattern.compile(pattern);
- final Matcher m = r.matcher(tmp);
- if (m.find()) {
- LOGGER.debug("operator = " + m.group(1));
- LOGGER.debug("value = " + m.group(2));
- LOGGER.debug("unit = " + m.group(3));
- hpaFeatureAttribute.setOperator(m.group(1));
- hpaFeatureAttribute.setHpaAttributeValue(m.group(2));
- hpaFeatureAttribute.setUnit(m.group(3));
+ final String modifiedValue = featureValue.replace(" ", "");
+ final Matcher matcher = PATTERN.matcher(modifiedValue);
+ if (matcher.find()) {
+ LOGGER.debug("operator " + matcher.group(1) + ", value = " + matcher.group(2)
+ + ", unit = " + matcher.group(3));
+ if ( matcher.group(1).length() == 0 ) {
+ hpaFeatureAttribute.setOperator("=");
+ } else {
+ hpaFeatureAttribute.setOperator(matcher.group(1));
+ }
+ hpaFeatureAttribute.setHpaAttributeValue(matcher.group(2));
+ hpaFeatureAttribute.setUnit(matcher.group(3));
}
return hpaFeatureAttribute;
}
@@ -279,24 +282,19 @@ public class ExtractFromNode {
}
String networkHpaFeature;
- if (retMap.containsKey(CONFIGURATION_VALUE)) {
+ if (retMap.containsKey(CONFIGURATION_VALUE)
+ && NETWORK_HPA_FEATURE_MAP.containsKey(retMap.get(CONFIGURATION_VALUE).toString())) {
final String interfaceTypeValue = retMap.get(CONFIGURATION_VALUE).toString();
- LOGGER.debug(" the interfacetype value is =" + interfaceTypeValue);
- if (NETWORK_HPA_FEATURE_MAP.containsKey(interfaceTypeValue)) {
- networkHpaFeature = NETWORK_HPA_FEATURE_MAP.get(interfaceTypeValue);
- LOGGER.debug(" the networkHpaFeature is =" + networkHpaFeature);
- } else {
- LOGGER.debug(" unspported network interface ");
- return;
- }
+ networkHpaFeature = NETWORK_HPA_FEATURE_MAP.get(interfaceTypeValue);
+ LOGGER.debug(" the networkHpaFeature is =" + networkHpaFeature);
} else {
- LOGGER.debug(" no configurationValue defined in interfaceType");
- return;
+ LOGGER.debug(" no networkHpaFeature defined in interfaceType");
+ continue;
}
final RequirementAssignments requriements =
sdcCsarHelper.getRequirementsOf(node).getRequirementsByName("virtual_binding");
- for (final RequirementAssignment requriement : requriements.getAll()) {
+ for (final RequirementAssignment requriement: requriements.getAll()) {
final String nodeTemplateName = requriement.getNodeTemplateName();
LOGGER.debug("getNodeTemplateName =" + nodeTemplateName);
if (nodeTemplateName == null) {
diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorFeature.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorFeature.java
index b8f4b6ac..c29378de 100644
--- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorFeature.java
+++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorFeature.java
@@ -30,7 +30,7 @@ import java.util.List;
*/
class FlavorFeature {
private String id;
- private String type = "tosca.node.nfv.Vdu.Compute";
+ private String type = "tosca.nodes.nfv.Vdu.Compute";
private List<Directive> directives = new ArrayList<>();
private List<FlavorProperty> flavorProperties = new ArrayList<>();
diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorProperty.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorProperty.java
index b800f355..0453370d 100644
--- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorProperty.java
+++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/FlavorProperty.java
@@ -33,7 +33,7 @@ import java.util.List;
class FlavorProperty {
@SerializedName(value = "hpa-feature")
private String hpaFeature;
- private String mandatory = "true";
+ private String mandatory = "True";
private String architecture = "generic";
@SerializedName(value = "hpa-version")
private String hpaVersion = "v1";
diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderCsarPdpx.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderCsarPdpx.java
index 14519757..7a73c831 100644
--- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderCsarPdpx.java
+++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderCsarPdpx.java
@@ -61,16 +61,20 @@ public class PolicyDecoderCsarPdpx implements PolicyDecoder<Csar, OptimizationPo
final Content content = extractFromNode.extractInfo(node);
if (content != null) {
final OptimizationPolicy policy = new OptimizationPolicy();
+ final String policyName = decoderParameters.getPolicyNamePrefix() + "." + content.getIdentity();
policy.setOnapName(decoderParameters.getOnapName());
- policy.setPolicyName(decoderParameters.getPolicyNamePrefix() + "." + content.getIdentity());
+ policy.setPolicyName(policyName);
ConfigBody configBody = new ConfigBody();
configBody.setService("hpaPolicy");
+ configBody.setPolicyName(policyName);
configBody.setDescription("OOF Policy");
+ configBody.setTemplateVersion("OpenSource.version.1");
configBody.setVersion(decoderParameters.getVersion());
configBody.setPriority(decoderParameters.getPriority());
configBody.setRiskLevel(decoderParameters.getRiskLevel());
configBody.setRiskType(decoderParameters.getRiskType());
- configBody.setGuard("false");
+ configBody.setGuard("False");
+ content.setPolicyType("hpa");
content.getPolicyScope().add("HPA");
content.getPolicyScope().add(serviceName);
configBody.setContent(content);