diff options
20 files changed, 2372 insertions, 85 deletions
@@ -4,6 +4,18 @@ ARG SERVER_PORT ARG PKG_FILENAME=nbi-rest-services-1.0.0-SNAPSHOT.jar ADD target/$PKG_FILENAME app.jar +COPY src/main/resources/certificate /certs +ARG CERT_PASS=changeit +RUN for cert in $(ls -d /certs/*); do \ + echo "adding $cert to java keystore..."; \ + keytool -import \ + -file "$cert" \ + -storepass "${CERT_PASS}" \ + -keystore $JAVA_HOME/lib/security/cacerts \ + -alias "$(basename $cert)" \ + --noprompt; \ + done + ENV SERVER_PORT=${SERVER_PORT:-8080} ENV JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -jar" @@ -30,7 +30,7 @@ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> - <version>1.5.10.RELEASE</version> + <version>1.5.12.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> @@ -175,7 +175,7 @@ <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> - <version>2.8.0</version> + <version>2.8.11</version> </dependency> <!-- jolt --> diff --git a/src/main/java/org/onap/nbi/OnapComponentsUrlPaths.java b/src/main/java/org/onap/nbi/OnapComponentsUrlPaths.java index a6e943b..67c72e3 100644 --- a/src/main/java/org/onap/nbi/OnapComponentsUrlPaths.java +++ b/src/main/java/org/onap/nbi/OnapComponentsUrlPaths.java @@ -24,7 +24,7 @@ public final class OnapComponentsUrlPaths { private OnapComponentsUrlPaths() {} // SDC - public static final String SDC_ROOT_URL = "/sdc/v1/catalog/services/"; + public static final String SDC_ROOT_URL = "/sdc/v1/catalog/services"; public static final String SDC_GET_PATH = "/metadata"; public static final String SDC_TOSCA_PATH = "/toscaModel"; diff --git a/src/main/java/org/onap/nbi/apis/servicecatalog/SdcClient.java b/src/main/java/org/onap/nbi/apis/servicecatalog/SdcClient.java index 029527c..fed9bb5 100644 --- a/src/main/java/org/onap/nbi/apis/servicecatalog/SdcClient.java +++ b/src/main/java/org/onap/nbi/apis/servicecatalog/SdcClient.java @@ -16,6 +16,7 @@ package org.onap.nbi.apis.servicecatalog; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.net.URI; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -63,37 +64,42 @@ public class SdcClient { public LinkedHashMap callGet(String id) { - StringBuilder callURL = new StringBuilder().append(sdcHost).append(OnapComponentsUrlPaths.SDC_ROOT_URL) - .append(id).append(OnapComponentsUrlPaths.SDC_GET_PATH); + StringBuilder urlBuilder = new StringBuilder().append(sdcHost).append(OnapComponentsUrlPaths.SDC_ROOT_URL) + .append("/").append(id).append(OnapComponentsUrlPaths.SDC_GET_PATH); - ResponseEntity<Object> response = callSdc(callURL.toString()); + UriComponentsBuilder callURI = UriComponentsBuilder.fromHttpUrl(urlBuilder.toString()); + + ResponseEntity<Object> response = callSdc(callURI.build().encode().toUri()); return (LinkedHashMap) response.getBody(); } public List<LinkedHashMap> callFind(MultiValueMap<String, String> parametersMap) { - UriComponentsBuilder callURL = UriComponentsBuilder.fromHttpUrl(sdcHost + OnapComponentsUrlPaths.SDC_ROOT_URL); + UriComponentsBuilder callURI = UriComponentsBuilder.fromHttpUrl(sdcHost + OnapComponentsUrlPaths.SDC_ROOT_URL); if (parametersMap != null) { Map<String, String> stringStringMap = parametersMap.toSingleValueMap(); for (String key : stringStringMap.keySet()) { if (!key.equals("fields")) { - callURL.queryParam(key, stringStringMap.get(key)); + callURI.queryParam(key, stringStringMap.get(key)); } } } - ResponseEntity<Object> response = callSdc(callURL.build().encode().toUri().toString()); + ResponseEntity<Object> response = callSdc(callURI.build().encode().toUri()); return (List<LinkedHashMap>) response.getBody(); } public File callGetWithAttachment(String toscaModelUrl) { - StringBuilder callURL = new StringBuilder().append(sdcHost).append(toscaModelUrl); + StringBuilder urlBuilder = new StringBuilder().append(sdcHost).append(toscaModelUrl); + + UriComponentsBuilder callURI = UriComponentsBuilder.fromHttpUrl(urlBuilder.toString()); + String fileName = System.currentTimeMillis() + "tosca.csar"; - ResponseEntity<byte[]> response = callSdcWithAttachment(callURL.toString()); + ResponseEntity<byte[]> response = callSdcWithAttachment(callURI.build().encode().toUri()); File toscaFile = new File(fileName); try { FileOutputStream toscaFileStream = new FileOutputStream(toscaFile); @@ -118,40 +124,40 @@ public class SdcClient { } - private ResponseEntity<Object> callSdc(String callURL) { + private ResponseEntity<Object> callSdc(URI callURI) { ResponseEntity<Object> response = - restTemplate.exchange(callURL, HttpMethod.GET, buildRequestHeader(), Object.class); + restTemplate.exchange(callURI, HttpMethod.GET, buildRequestHeader(), Object.class); LOGGER.debug("response body : " + response.getBody().toString()); LOGGER.info("response status : " + response.getStatusCodeValue()); - loggDebugIfResponseKo(callURL, response); + loggDebugIfResponseKo(callURI.toString(), response); return response; } - private void loggDebugIfResponseKo(String callURL, ResponseEntity<Object> response) { - if (!response.getStatusCode().equals(HttpStatus.OK)) { - LOGGER.warn(HTTP_CALL_SDC_ON + callURL + " returns " + response.getStatusCodeValue() + ", " - + response.getBody().toString()); - } - } - private ResponseEntity<byte[]> callSdcWithAttachment(String callURL) { + private ResponseEntity<byte[]> callSdcWithAttachment(URI callURI) { try { ResponseEntity<byte[]> response = - restTemplate.exchange(callURL.toString(), HttpMethod.GET, buildRequestHeader(), byte[].class); + restTemplate.exchange(callURI, HttpMethod.GET, buildRequestHeader(), byte[].class); LOGGER.info("response status : " + response.getStatusCodeValue()); if (!response.getStatusCode().equals(HttpStatus.OK)) { - LOGGER.warn(HTTP_CALL_SDC_ON + callURL.toString() + " returns " + response.getStatusCodeValue() + ", " + LOGGER.warn(HTTP_CALL_SDC_ON + callURI.toString() + " returns " + response.getStatusCodeValue() + ", " + response.getBody().toString()); } return response; } catch (BackendFunctionalException e) { - LOGGER.error(HTTP_CALL_SDC_ON + callURL.toString() + " error " + e); + LOGGER.error(HTTP_CALL_SDC_ON + callURI.toString() + " error " + e); return null; } } + private void loggDebugIfResponseKo(String callURI, ResponseEntity<Object> response) { + if (!response.getStatusCode().equals(HttpStatus.OK)) { + LOGGER.warn(HTTP_CALL_SDC_ON + callURI + " returns " + response.getStatusCodeValue() + ", " + + response.getBody().toString()); + } + } } diff --git a/src/main/java/org/onap/nbi/apis/servicecatalog/ToscaInfosProcessor.java b/src/main/java/org/onap/nbi/apis/servicecatalog/ToscaInfosProcessor.java index d71595f..0503e34 100644 --- a/src/main/java/org/onap/nbi/apis/servicecatalog/ToscaInfosProcessor.java +++ b/src/main/java/org/onap/nbi/apis/servicecatalog/ToscaInfosProcessor.java @@ -21,6 +21,9 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import org.apache.commons.collections.CollectionUtils; @@ -48,9 +51,12 @@ public class ToscaInfosProcessor { if (toscaInfosTopologyTemplate.get("inputs") != null) { ArrayList serviceSpecCharacteristic = new ArrayList(); LinkedHashMap toscaInfos = (LinkedHashMap) toscaInfosTopologyTemplate.get("inputs"); - for (Object key : toscaInfos.keySet()) { - String keyString = (String) key; - LinkedHashMap inputParameter = (LinkedHashMap) toscaInfos.get(key); + Set<Entry<String, LinkedHashMap>> stringLinkedHashMapEntry = (Set<Entry<String, LinkedHashMap>>) toscaInfos + .entrySet(); + + for (Map.Entry<String,LinkedHashMap> key :stringLinkedHashMapEntry) { + String keyString = key.getKey(); + LinkedHashMap inputParameter = key.getValue(); LinkedHashMap mapParameter = new LinkedHashMap(); String parameterType = (String) inputParameter.get("type"); mapParameter.put("name", keyString); @@ -60,7 +66,7 @@ public class ToscaInfosProcessor { mapParameter.put("required", inputParameter.get("required")); mapParameter.put("status", inputParameter.get("status")); List<LinkedHashMap> serviceSpecCharacteristicValues = - buildServiceSpecCharacteristicsValues(inputParameter, parameterType); + buildServiceSpecCharacteristicsValues(inputParameter, parameterType); mapParameter.put("serviceSpecCharacteristicValue", serviceSpecCharacteristicValues); serviceSpecCharacteristic.add(mapParameter); } @@ -72,21 +78,21 @@ public class ToscaInfosProcessor { List<LinkedHashMap> resourceSpecifications = (List<LinkedHashMap>) serviceCatalogResponse.get("resourceSpecification"); for (LinkedHashMap resourceSpecification : resourceSpecifications) { - String id = (String) resourceSpecification.get("id"); - LOGGER.debug("get tosca infos for service id: " + id); - LinkedHashMap toscaInfosFromResourceId = getToscaInfosFromResourceUUID(nodeTemplate, id); - if (toscaInfosFromResourceId != null) { - resourceSpecification.put("modelCustomizationId", toscaInfosFromResourceId.get("customizationUUID")); - resourceSpecification.put("modelCustomizationName", toscaInfosFromResourceId.get("name")); + if(resourceSpecification.get("id")!=null){ + String id = (String) resourceSpecification.get("id"); + LOGGER.debug("get tosca infos for service id: {0}", id); + LinkedHashMap toscaInfosFromResourceId = getToscaInfosFromResourceUUID(nodeTemplate, id); + if (toscaInfosFromResourceId != null && toscaInfosFromResourceId.get("customizationUUID")!=null) { + resourceSpecification.put("modelCustomizationId", toscaInfosFromResourceId.get("customizationUUID")); + } } - } } private List<LinkedHashMap> buildServiceSpecCharacteristicsValues(LinkedHashMap parameter, String parameterType) { List<LinkedHashMap> serviceSpecCharacteristicValues = new ArrayList<>(); if (!"map".equalsIgnoreCase(parameterType) && !"list".equalsIgnoreCase(parameterType)) { - LOGGER.debug("get tosca infos for serviceSpecCharacteristicValues of type map or string : " + parameter); + LOGGER.debug("get tosca infos for serviceSpecCharacteristicValues of type map or string : {0}", parameter); Object aDefault = parameter.get("default"); if (parameter.get("entry_schema") != null) { ArrayList entrySchema = (ArrayList) parameter.get("entry_schema"); @@ -124,13 +130,17 @@ public class ToscaInfosProcessor { private LinkedHashMap getToscaInfosFromResourceUUID(LinkedHashMap node_templates, String name) { - for (Object nodeTemplateObject : node_templates.values()) { - LinkedHashMap nodeTemplate = (LinkedHashMap) nodeTemplateObject; - LinkedHashMap metadata = (LinkedHashMap) nodeTemplate.get("metadata"); - String metadataUUID = (String) metadata.get("UUID"); - String metadataType = (String) metadata.get("type"); - if ("VF".equalsIgnoreCase(metadataType) && name.equalsIgnoreCase(metadataUUID)) { - return metadata; + if(node_templates!=null) { + for (Object nodeTemplateObject : node_templates.values()) { + LinkedHashMap nodeTemplate = (LinkedHashMap) nodeTemplateObject; + LinkedHashMap metadata = (LinkedHashMap) nodeTemplate.get("metadata"); + if(metadata.get("UUID")!=null && metadata.get("type")!=null) { + String metadataUUID = (String) metadata.get("UUID"); + String metadataType = (String) metadata.get("type"); + if ("VF".equalsIgnoreCase(metadataType) && name!=null && name.equalsIgnoreCase(metadataUUID)) { + return metadata; + } + } } } return null; @@ -142,7 +152,7 @@ public class ToscaInfosProcessor { LinkedHashMap topologyTemplate = null; String toscaModelUrl = (String) sdcResponse.get("toscaModelURL"); - String serviceId = (String) sdcResponse.get("uuid"); + String serviceId = (String) sdcResponse.get("id"); File toscaFile = sdcClient.callGetWithAttachment(toscaModelUrl); Timestamp timestamp = new Timestamp(System.currentTimeMillis()); String tempFolderName = serviceId + timestamp; @@ -154,39 +164,48 @@ public class ToscaInfosProcessor { LOGGER.debug("temp folder for tosca files : " + folderTemp.getName()); LinkedHashMap toscaMetaFileHashMap = parseToscaFile(tempFolderName + "/TOSCA-Metadata/TOSCA.meta"); - if (toscaMetaFileHashMap.get("Entry-Definitions") == null) { - throw new NullPointerException("no Entry-Definitions node in TOSCA.meta"); - } + topologyTemplate = getToscaTopologyTemplateNode(tempFolderName, toscaMetaFileHashMap); + return topologyTemplate; + } catch (TechnicalException e) { + LOGGER.error("unable to parse tosca file for id : " + serviceId, e); + return topologyTemplate; + } + finally { + deleteTempFiles(serviceId, toscaFile, folderTemp); + } + + } + + private LinkedHashMap getToscaTopologyTemplateNode(String tempFolderName,LinkedHashMap toscaMetaFileHashMap) { + LinkedHashMap topologyTemplate = null; + if (toscaMetaFileHashMap.get("Entry-Definitions") != null) { String toscaFilePath = (String) toscaMetaFileHashMap.get("Entry-Definitions"); LinkedHashMap toscaFileHashMap = parseToscaFile(tempFolderName + "/" + toscaFilePath); - - if (toscaFileHashMap.get("topology_template") == null) { - throw new NullPointerException("no topology_template node in tosca file"); + if (toscaFileHashMap.get("topology_template") != null) { + topologyTemplate = (LinkedHashMap) toscaFileHashMap.get("topology_template"); + } else { + LOGGER.error("no Entry-Definitions node in TOSCA.meta"); } - topologyTemplate = (LinkedHashMap) toscaFileHashMap.get("topology_template"); - - } catch (NullPointerException e) { - LOGGER.warn("unable to parse tosca file for id : " + serviceId, e); - return null; + } else { + LOGGER.error("no topology_template node in tosca file"); + } + return topologyTemplate; + } - } finally { - try { + private void deleteTempFiles(String serviceId, File toscaFile, File folderTemp) { + try { + if(folderTemp!=null){ LOGGER.debug("deleting temp folder for tosca files : " + folderTemp.getName()); FileUtils.deleteDirectory(folderTemp); - LOGGER.debug("deleting tosca archive : " + toscaFile.getName()); - FileUtils.forceDelete(toscaFile); - return topologyTemplate; - - } catch (IOException e) { - LOGGER.error("unable to delete temp directory tosca file for id : " + serviceId, e); - return null; } + LOGGER.debug("deleting tosca archive : " + toscaFile.getName()); + FileUtils.forceDelete(toscaFile); + } catch (IOException e) { + LOGGER.error("unable to delete temp directory tosca file for id : " + serviceId, e); } - } - private LinkedHashMap parseToscaFile(String fileName) { File toscaFile = new File(fileName); diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java b/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java index 8fd3002..698981b 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java @@ -17,6 +17,9 @@ package org.onap.nbi.apis.serviceinventory; import java.util.LinkedHashMap; import org.onap.nbi.OnapComponentsUrlPaths; +import org.onap.nbi.exceptions.BackendFunctionalException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -39,6 +42,7 @@ public class AaiClient extends BaseClient { private static final String HEADER_AUTHORIZATION = "Authorization"; private static final String X_FROM_APP_ID = "X-FromAppId"; + private static final Logger LOGGER = LoggerFactory.getLogger(AaiClient.class); private HttpHeaders buildRequestHeaderForAAI() { @@ -91,7 +95,12 @@ public class AaiClient extends BaseClient { String callUrlFormated = callURL.toString().replace(CUSTOMER_ID, customerId); callUrlFormated = callUrlFormated.replace("$serviceSpecName", serviceType); - ResponseEntity<Object> response = callApiGet(callUrlFormated, buildRequestHeaderForAAI()); - return (LinkedHashMap) response.getBody(); + try{ + ResponseEntity<Object> response = callApiGet(callUrlFormated, buildRequestHeaderForAAI()); + return (LinkedHashMap) response.getBody(); + } catch (BackendFunctionalException e) { + LOGGER.error("error on calling {0} , {1}" , callUrlFormated, e); + return null; + } } } diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java index a4347d4..3208de4 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java @@ -24,6 +24,7 @@ import org.onap.nbi.exceptions.BackendFunctionalException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.util.MultiValueMap; import org.springframework.util.StringUtils; @@ -156,11 +157,14 @@ public class ServiceInventoryService { List<LinkedHashMap> serviceInstancesForServiceType = (List<LinkedHashMap>) serviceInstancesInAaiForCustomer.get("service-instance"); - // add service type for jolt - for (LinkedHashMap serviceInstanceForServiceType : serviceInstancesForServiceType) { - serviceInstanceForServiceType.put("service-type", serviceType); + if(!CollectionUtils.isEmpty(serviceInstancesForServiceType)){ + // add service type for jolt + for (LinkedHashMap serviceInstanceForServiceType : serviceInstancesForServiceType) { + serviceInstanceForServiceType.put("service-type", serviceType); + } + serviceInstances.addAll(serviceInstancesForServiceType); } - serviceInstances.addAll(serviceInstancesForServiceType); + } diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java b/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java index 5f10d63..ef4d8c3 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java @@ -61,11 +61,9 @@ public class SoClient { String url = soHostname + OnapComponentsUrlPaths.MSO_CREATE_SERVICE_INSTANCE_PATH; - HttpEntity<MSOPayload> requestDetailEntity = new HttpEntity<>(msoPayload, buildRequestHeader()); - try { ResponseEntity<CreateServiceInstanceResponse> response = restTemplate.exchange(url, HttpMethod.POST, - new HttpEntity<>(requestDetailEntity, buildRequestHeader()), CreateServiceInstanceResponse.class); + new HttpEntity<>(msoPayload, buildRequestHeader()), CreateServiceInstanceResponse.class); logResponsePost(url, response); return response; @@ -85,11 +83,9 @@ public class SoClient { String url = soHostname + OnapComponentsUrlPaths.MSO_DELETE_REQUEST_STATUS_PATH + serviceId; - HttpEntity<MSOPayload> requestDetailEntity = new HttpEntity<>(msoPayload, buildRequestHeader()); - try { ResponseEntity<CreateServiceInstanceResponse> response = restTemplate.exchange(url, HttpMethod.DELETE, - new HttpEntity<>(requestDetailEntity, buildRequestHeader()), CreateServiceInstanceResponse.class); + new HttpEntity<>(msoPayload, buildRequestHeader()), CreateServiceInstanceResponse.class); logResponsePost(url, response); return response; diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/ModelInfo.java b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/ModelInfo.java index 3479f85..bef4183 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/ModelInfo.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/ModelInfo.java @@ -21,6 +21,8 @@ public class ModelInfo { private String modelInvariantId; + private String modelVersionId; + private String modelNameVersionId; private String modelName; @@ -87,11 +89,25 @@ public class ModelInfo { this.modelCustomizationId = modelCustomizationId; } + public String getModelVersionId() { + return modelVersionId; + } + + public void setModelVersionId(String modelVersionId) { + this.modelVersionId = modelVersionId; + } + @Override public String toString() { - return "ModelInfo{" + "modelType='" + modelType + '\'' + ", modelInvariantId='" + modelInvariantId + '\'' - + ", modelNameVersionId='" + modelNameVersionId + '\'' + ", modelName='" + modelName + '\'' - + ", modelVersion='" + modelVersion + '\'' + ", modelCustomizationName='" + modelCustomizationName - + '\'' + ", modelCustomizationId='" + modelCustomizationId + '\'' + '}'; + return "ModelInfo{" + + "modelType='" + modelType + '\'' + + ", modelInvariantId='" + modelInvariantId + '\'' + + ", modelVersionId='" + modelVersionId + '\'' + + ", modelNameVersionId='" + modelNameVersionId + '\'' + + ", modelName='" + modelName + '\'' + + ", modelVersion='" + modelVersion + '\'' + + ", modelCustomizationName='" + modelCustomizationName + '\'' + + ", modelCustomizationId='" + modelCustomizationId + '\'' + + '}'; } } diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestParameters.java b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestParameters.java index 31a1853..e4bbfbb 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestParameters.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestParameters.java @@ -32,7 +32,7 @@ public class RequestParameters { } public void setSubscriptionServiceType(String subscriptionServiceType) { - subscriptionServiceType = subscriptionServiceType; + this.subscriptionServiceType = subscriptionServiceType; } public List<UserParams> getUserParams() { diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java index 1d1ef36..d623b89 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java @@ -246,6 +246,7 @@ public class SOTaskProcessor { modelInfo.setModelType("service"); modelInfo.setModelInvariantId((String) sdcInfos.get("invariantUUID")); modelInfo.setModelNameVersionId(orderItem.getService().getServiceSpecification().getId()); + modelInfo.setModelVersionId(orderItem.getService().getServiceSpecification().getId()); modelInfo.setModelName((String) sdcInfos.get("name")); modelInfo.setModelVersion((String) sdcInfos.get("version")); requestDetails.setModelInfo(modelInfo); diff --git a/src/main/resources/certificate/AAF_RootCA.cer b/src/main/resources/certificate/AAF_RootCA.cer new file mode 100644 index 0000000..e9a50d7 --- /dev/null +++ b/src/main/resources/certificate/AAF_RootCA.cer @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFPjCCAyagAwIBAgIJAJ6u7cCnzrWdMA0GCSqGSIb3DQEBCwUAMCwxDjAMBgNV +BAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQMQswCQYDVQQGEwJVUzAeFw0xODA0MDUx +NDE1MjhaFw0zODAzMzExNDE1MjhaMCwxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQK +DARPTkFQMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAMA5pkgRs7NhGG4ew5JouhyYakgYUyFaG121+/h8qbSdt0hVQv56+EA41Yq7 +XGie7RYDQK9NmAFF3gruE+6X7wvJiChp+Cyd7sFMnb65uWhxEdxWTM2BJFrgfzUn +H8ZCxgaCo3XH4PzlKRy2LQQJEJECwl/RZmRCXijMt5e9h8XoZY/fKkKcZZUsWNCM +pTo266wjvA9MXLmdgReRj0+vrCjrNqy+htwJDztoiHWiYPqT6o8EvGcgjNqjlZx7 +NUNf8MfLDByqKF6+wRbHv1GKjn3/Vijd45Fv8riyRYROiFanvbV6jIfBkv8PZbXg +2VDWsYsgp8NAvMxK+iV8cO+Ck3lBI2GOPZbCEqpPVTYbLUz6sczAlCXwQoPzDIZY +wYa3eR/gYLY1gP2iEVHORag3bLPap9ZX5E8DZkzTNTjovvLk8KaCmfcaUMJsBtDd +ApcUitz10cnRyZc1sX3gE1f3DpzQM6t9C5sOVyRhDcSrKqqwb9m0Ss04XAS9FsqM +P3UWYQyqDXSxlUAYaX892u8mV1hxnt2gjb22RloXMM6TovM3sSrJS0wH+l1nznd6 +aFXftS/G4ZVIVZ/LfT1is4StoyPWZCwwwly1z8qJQ/zhip5NgZTxQw4mi7ww35DY +PdAQOCoajfSvFjqslQ/cPRi/MRCu079heVb5fQnnzVtnpFQRAgMBAAGjYzBhMB0G +A1UdDgQWBBRTVTPyS+vQUbHBeJrBKDF77+rtSTAfBgNVHSMEGDAWgBRTVTPyS+vQ +UbHBeJrBKDF77+rtSTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAN +BgkqhkiG9w0BAQsFAAOCAgEAPx/IaK94n02wPxpnYTy+LVLIxwdq/kawNd6IbiMz +L87zmNMDmHcGbfoRCj8OkhuggX9Lx1/CkhpXimuYsZOFQi5blr/u+v4mIbsgbmi9 +7j+cUHDP0zLycvSvxKHty51LwmaX9a4wkJl5zBU4O1sd/H9tWcEmwJ39ltKoBKBx +c94Zc3iMm5ytRWGj+0rKzLDAXEWpoZ5bE5PLJauA6UDCxDLfs3FwhbS7uDggxYvf +jySF5FCNET94oJ+m8s7VeHvoa8iPGKvXrIqdd7XDHnqJJlVKr7m9S0fMbyEB8ci2 +RtOXDt93ifY1uhoEtEykn4dqBSp8ezvNMnwoXdYPDvTd9uCAFeWFLVreBAWxd25h +PsBTkZA5hpa/rA+mKv6Af4VBViYr8cz4dZCsFChuioVebe9ighrfjB//qKepFjPF +CyjzKN1u0JKm/2x/ORqxkTONG8p3uDwoIOyimUcTtTMv42bfYD88RKakqSFXE9G+ +Z0LlaKABqfjK49o/tsAp+c5LoNlYllKhnetO3QAdraHwdmC36BhoghzR1jpX751A +cZn2VH3Q4XKyp01cJNCJIrua+A+bx6zh3RyW6zIIkbRCbET+UD+4mr8WIcSE3mtR +ZVlnhUDO4z9//WKMVzwS9Rh8/kuszrGFI1KQozXCHLrce3YP6RYZfOed79LXaRwX +dYY= +-----END CERTIFICATE----- diff --git a/src/main/resources/certificate/aai.api.simpledemo.openecomp.org b/src/main/resources/certificate/aai.api.simpledemo.openecomp.org new file mode 100644 index 0000000..85ae8a7 --- /dev/null +++ b/src/main/resources/certificate/aai.api.simpledemo.openecomp.org @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE-----
+MIIDyzCCArMCCQDrA8zzZKXznDANBgkqhkiG9w0BAQsFADCBrTELMAkGA1UEBhMC
+VVMxCzAJBgNVBAgMAk5KMRMwEQYDVQQHDApCZWRtaW5zdGVyMRIwEAYDVQQKDAlP
+cGVuRUNPTVAxEzARBgNVBAsMCnNpbXBsZWRlbW8xKjAoBgNVBAMMIU9wZW5FQ09N
+UCBzaW1wbGVkZW1vIFNlcnZlciBDQSBYMTEnMCUGCSqGSIb3DQEJARYYc2ltcGxl
+ZGVtb0BvcGVuZWNvbXAub3JnMB4XDTE3MTEwMzIzNDUzNVoXDTE4MTIwNjIzNDUz
+NVowgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOSjEUMBIGA1UEBwwLQmVkbWlu
+aXN0ZXIxDTALBgNVBAoMBE9OQVAxKTAnBgNVBAMMIGFhaS5hcGkuc2ltcGxlZGVt
+by5vcGVuZWNvbXAub3JnMTQwMgYJKoZIhvcNAQkBFiVhYWktaG9zdEBhcGkuc2lt
+cGxlZGVtby5vcGVuZWNvbXAub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA6gFktbGZVt4o78kU6oeCdqx04yPNTd1qRmJ06CD87fgrIDCTXVC+PE7R
+hHd1V71aNnoElBzn+mwetn4qG4T9IqAJvFIXxrzLpS7WlKBxStFhe4GNXl+RDqWc
+UM+47+s32TwZ3czQrhMVR9VNENUHo2d6XylGaUDcVgrMYWbFYWfmIJ4tO1latW9n
+h+perB0nNBxNDK9nYtjLHQk6ukTmONSnldvCgu/TFX5C34qB49cI0LmCf5Lwk9tv
+8dmTZ6Um8A0EbQen+uPaaHeEXm/EtFy0FSVzoKmxuQS0g4JNhfnfNCHVDO7zGE+N
+pCb9VfUI2fXIZvjNBAemKN/b2i5d6QIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBh
+93eaeAw0aA4ukAPpuWIODxxAnZlFfDH4uzwnv6smDJzO1biRwQ5BBZfL8qSVozrp
+aDKeIPWP7fZvjl3mGfCp8mLkI6WkfXVcZy5IlJGDTnW+G8Cpohq910W/Ibp1J9zx
+Ki4IdgKx7FbSYLpgwH2g2EPshHXQX2qFdxYvnEH0PzJjYBKeyyHV3N2kNr6+kM3Q
+HpXXIiLNbNcqLT+9zOmuJszN8ILLV56vu8Clzwxld+ru0tiO2OJk2eT+mtw2PI1/
+jcYqEEdOIZycrQiytxXgvte7A9VFQP/1Tl22BBYrAW2BhyW67kopATeiSunK1FmO
+DLcT7mR+59F964RV9BJR
+-----END CERTIFICATE-----
diff --git a/src/main/resources/jolt/getServiceCatalog.json b/src/main/resources/jolt/getServiceCatalog.json index cac223e..f0b3787 100644 --- a/src/main/resources/jolt/getServiceCatalog.json +++ b/src/main/resources/jolt/getServiceCatalog.json @@ -8,6 +8,7 @@ "invariantUUID": "invariantUUID", "toscaModelURL": "toscaModelURL", "toscaResourceName": "toscaResourceName", + "resourceInstanceName" : "modelCustomizationName", "category ": "category", "subcategory": "subcategory", "distributionStatus": "distributionStatus", diff --git a/src/test/java/org/onap/nbi/apis/assertions/ServiceCatalogAssertions.java b/src/test/java/org/onap/nbi/apis/assertions/ServiceCatalogAssertions.java index 648241d..f67dda5 100644 --- a/src/test/java/org/onap/nbi/apis/assertions/ServiceCatalogAssertions.java +++ b/src/test/java/org/onap/nbi/apis/assertions/ServiceCatalogAssertions.java @@ -37,6 +37,7 @@ public class ServiceCatalogAssertions { .isEqualTo("/sdc/v1/catalog/services/1e3feeb0-8e36-46c6-862c-236d9c626439/toscaModel"); assertThat(service.get("distributionStatus")).isEqualTo("DISTRIBUTED"); assertThat(service.get("version")).isEqualTo("2.0"); + assertThat(service.get("modelCustomizationName")).isEqualTo("vFW-vSINK 0"); assertThat(service.get("lifecycleStatus")).isEqualTo("CERTIFIED"); assertThat(service.get("@type")).isEqualTo("ONAPservice"); assertThat(((ArrayList) service.get("attachment")).size()).isEqualTo(5); diff --git a/src/test/java/org/onap/nbi/apis/servicecatalog/ToscaInfosProcessorTest.java b/src/test/java/org/onap/nbi/apis/servicecatalog/ToscaInfosProcessorTest.java new file mode 100644 index 0000000..6c116fb --- /dev/null +++ b/src/test/java/org/onap/nbi/apis/servicecatalog/ToscaInfosProcessorTest.java @@ -0,0 +1,170 @@ +/** + * Copyright (c) 2018 Orange + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ +package org.onap.nbi.apis.servicecatalog; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertNull; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import org.junit.Test; +import org.onap.nbi.exceptions.TechnicalException; + + +public class ToscaInfosProcessorTest { + + final ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); // jackson databind + + ToscaInfosProcessor toscaInfosProcessor = new ToscaInfosProcessor(); + + + private LinkedHashMap parseToscaFile(String fileName) { + + File toscaFile = new File(fileName); + if (!toscaFile.exists()) { + throw new TechnicalException("unable to find file : " + fileName); + } + try { + return (LinkedHashMap) mapper.readValue(toscaFile, Object.class); + } catch (IOException e) { + throw new TechnicalException("Unable to parse tosca file : " + fileName); + + } catch (NullPointerException e) { + throw new TechnicalException("unable to find tosca file : " + fileName); + } + } + + + @Test + public void buildResponseWithToscaInfos() { + + ClassLoader classLoader = getClass().getClassLoader(); + File file = new File(classLoader.getResource("toscafile/service-TestNetwork-template.yml").getFile()); + List<LinkedHashMap> resources = new ArrayList<>(); + LinkedHashMap resource1 = new LinkedHashMap(); + resource1.put("id", "e2b12ac6-cbb6-4517-9c58-b846d1f68caf"); + resources.add(resource1); + LinkedHashMap toscaFile = parseToscaFile(file.getPath()); + LinkedHashMap response = new LinkedHashMap(); + response.put("resourceSpecification", resources); + toscaInfosProcessor.buildResponseWithToscaInfos((LinkedHashMap) toscaFile.get("topology_template"), response); + + resources = (List<LinkedHashMap>) response.get("resourceSpecification"); + assertNull(resources.get(0).get("modelCustomizationId")); + assertNull(resources.get(0).get("modelCustomizationName")); + + } + + + @Test + public void buildResponseWithToscaInfosOk() { + + ClassLoader classLoader = getClass().getClassLoader(); + File file = new File(classLoader.getResource("toscafile/service-VfwService2vfBased-template.yml").getFile()); + List<LinkedHashMap> resources = new ArrayList<>(); + LinkedHashMap resource1 = new LinkedHashMap(); + resource1.put("id", "e2b12ac6-cbb6-4517-9c58-b846d1f68caf"); + resources.add(resource1); + LinkedHashMap toscaFile = parseToscaFile(file.getPath()); + LinkedHashMap response = new LinkedHashMap(); + response.put("resourceSpecification", resources); + toscaInfosProcessor.buildResponseWithToscaInfos((LinkedHashMap) toscaFile.get("topology_template"), response); + + ArrayList toscaInfos = (ArrayList) response.get("serviceSpecCharacteristic"); + assertThat(toscaInfos.size()).isEqualTo(4); + + for (Object toscaInfo : toscaInfos) { + LinkedHashMap info = (LinkedHashMap) toscaInfo; + if (((String) info.get("name")).equalsIgnoreCase("fortigate_image_url")) { + assertThat(info.get("name")).isEqualTo("fortigate_image_url"); + assertThat(info.get("description")).isNull(); + assertThat(info.get("valueType")).isEqualTo("string"); + assertThat(info.get("@type")).isEqualTo("ONAPserviceCharacteristic"); + assertThat(info.get("required")).isEqualTo(false); + assertThat(info.get("status")).isNull(); + assertThat(((ArrayList) info.get("serviceSpecCharacteristicValue")).size()).isEqualTo(0); + + } + + if (((String) info.get("name")).equalsIgnoreCase("flavor")) { + assertThat(info.get("name")).isEqualTo("flavor"); + assertThat(info.get("description")).isNull(); + assertThat(info.get("valueType")).isEqualTo("string"); + assertThat(info.get("@type")).isEqualTo("ONAPserviceCharacteristic"); + assertThat(info.get("required")).isNull(); + assertThat(info.get("status")).isNull(); + assertThat(((ArrayList) info.get("serviceSpecCharacteristicValue")).size()).isEqualTo(0); + + } + + if (((String) info.get("name")).equalsIgnoreCase("external_network_name")) { + assertThat(info.get("name")).isEqualTo("external_network_name"); + assertThat(info.get("description")).isNull(); + assertThat(info.get("valueType")).isEqualTo("string"); + assertThat(info.get("@type")).isEqualTo("ONAPserviceCharacteristic"); + assertThat(info.get("required")).isNull(); + assertThat(info.get("status")).isEqualTo("inactive"); + ; + assertThat(((ArrayList) info.get("serviceSpecCharacteristicValue")).size()).isEqualTo(0); + + } + + if (((String) info.get("name")).equalsIgnoreCase("cpus")) { + assertThat(info.get("name")).isEqualTo("cpus"); + assertThat(info.get("description")).isEqualTo("Number of CPUs for the server."); + assertThat(info.get("valueType")).isEqualTo("integer"); + assertThat(info.get("@type")).isEqualTo("ONAPserviceCharacteristic"); + assertThat(info.get("required")).isNull(); + assertThat(info.get("status")).isNull(); + ; + assertThat(((ArrayList) info.get("serviceSpecCharacteristicValue")).size()).isEqualTo(4); + ArrayList serviceSpecCharacteristicValues = (ArrayList) info.get("serviceSpecCharacteristicValue"); + + for (Object serviceSpecCharacteristicValue : serviceSpecCharacteristicValues) { + LinkedHashMap serviceSpecValue = (LinkedHashMap) serviceSpecCharacteristicValue; + if (((String) serviceSpecValue.get("value")).equalsIgnoreCase("1")) { + assertThat(serviceSpecValue.get("isDefault")).isEqualTo(false); + assertThat(serviceSpecValue.get("value")).isEqualTo("1"); + assertThat(serviceSpecValue.get("valueType")).isEqualTo("integer"); + } + if (((String) serviceSpecValue.get("value")).equalsIgnoreCase("2")) { + assertThat(serviceSpecValue.get("isDefault")).isEqualTo(true); + assertThat(serviceSpecValue.get("value")).isEqualTo("2"); + assertThat(serviceSpecValue.get("valueType")).isEqualTo("integer"); + } + if (((String) serviceSpecValue.get("value")).equalsIgnoreCase("3")) { + assertThat(serviceSpecValue.get("isDefault")).isEqualTo(false); + assertThat(serviceSpecValue.get("value")).isEqualTo("3"); + assertThat(serviceSpecValue.get("valueType")).isEqualTo("integer"); + } + if (((String) serviceSpecValue.get("value")).equalsIgnoreCase("4")) { + assertThat(serviceSpecValue.get("isDefault")).isEqualTo(false); + assertThat(serviceSpecValue.get("value")).isEqualTo("4"); + assertThat(serviceSpecValue.get("valueType")).isEqualTo("integer"); + } + + } + + + } + + } + + + } +}
\ No newline at end of file diff --git a/src/test/resources/mappings/aai_get_6490_service-subscriptions.json b/src/test/resources/mappings/aai_get_6490_service-subscriptions.json index 5582990..4995025 100644 --- a/src/test/resources/mappings/aai_get_6490_service-subscriptions.json +++ b/src/test/resources/mappings/aai_get_6490_service-subscriptions.json @@ -13,7 +13,19 @@ }, { "service-type": "vFW", - "resource-version": "1519660513613" + "resource-version": "1519660513613", + "service-instances": { + "service-instance": [ + { + "service-instance-id": "39ff3f9d-f210-4566-9d19-fa37edf1697d", + "service-instance-name": "vPCRF", + "model-invariant-id": "a09e799f-58eb-4c00-bfcc-4fa371a557e3", + "model-version-id": "4c393977-09ea-42c2-bcd9-f50302ebba48", + "resource-version": "1524672125232" + } + ] + } + } ] }, diff --git a/src/test/resources/mappings/sdc_find.json b/src/test/resources/mappings/sdc_find.json index 6aa4dc5..c04ecae 100644 --- a/src/test/resources/mappings/sdc_find.json +++ b/src/test/resources/mappings/sdc_find.json @@ -1,7 +1,7 @@ { "request": { "method": "GET", - "url": "/sdc/v1/catalog/services/" + "url": "/sdc/v1/catalog/services" }, "response": { "status": 200, diff --git a/src/test/resources/toscafile/service-TestNetwork-template.yml b/src/test/resources/toscafile/service-TestNetwork-template.yml new file mode 100755 index 0000000..0a62221 --- /dev/null +++ b/src/test/resources/toscafile/service-TestNetwork-template.yml @@ -0,0 +1,96 @@ +# +# Copyright (c) 2018 Orange +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: c4b53838-852e-465b-9912-d386228e8784 + UUID: 5349c430-8bf7-4033-be37-ef33d0f9823e + name: test network + description: '12345' + type: Service + category: Network L1-3 + serviceType: '' + serviceRole: '' + serviceEcompNaming: true + ecompGeneratedNaming: true + namingPolicy: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +- service-test network-interface: + file: service-TestNetwork-template-interface.yml +- resource-Generic NeutronNet: + file: resource-GenericNeutronnet-template.yml +topology_template: + node_templates: + Generic NeutronNet 0: + type: org.openecomp.resource.vl.GenericNeutronNet + metadata: + invariantUUID: 185ad0e3-0031-4d34-9ac2-d6ad30f7f34d + UUID: e2b12ac6-cbb6-4517-9c58-b846d1f68caf + customizationUUID: 27f40057-902a-4cbf-870e-0db55f97283e + version: '1.0' + name: Generic NeutronNet + description: Generic NeutronNet + type: VL + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + network_role: TestNetwork.test + network_assignments: + is_external_network: false + ipv4_subnet_default_assignment: + min_subnets_count: 1 + ecomp_generated_network_assignment: false + ipv6_subnet_default_assignment: + min_subnets_count: 1 + exVL_naming: + ecomp_generated_naming: true + network_flows: + is_network_policy: false + is_bound_to_vpn: false + network_ecomp_naming: + ecomp_generated_naming: true + network_type: NEUTRON + network_technology: NEUTRON + network_homing: + ecomp_selected_instance_node_target: false + substitution_mappings: + node_type: org.openecomp.service.TestNetwork + capabilities: + genericneutronnet0.feature: + - genericneutronnet0 + - feature + genericneutronnet0.virtual_linkable: + - genericneutronnet0 + - virtual_linkable + requirements: + genericneutronnet0.dependency: + - genericneutronnet0 + - dependency diff --git a/src/test/resources/toscafile/service-VfwService2vfBased-template.yml b/src/test/resources/toscafile/service-VfwService2vfBased-template.yml new file mode 100644 index 0000000..b96b139 --- /dev/null +++ b/src/test/resources/toscafile/service-VfwService2vfBased-template.yml @@ -0,0 +1,1890 @@ +# +# Copyright (c) 2018 Orange +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: b58a118e-eeb9-4f6e-bdca-e292f84d17df + UUID: 1e3feeb0-8e36-46c6-862c-236d9c626439 + name: vFW-service-2VF-based + description: vFW service based on 2 VF from 2 VSP + type: Service + category: Network Service + serviceType: '' + serviceRole: '' + serviceEcompNaming: true + ecompGeneratedNaming: true + namingPolicy: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +- service-vFW-service-2VF-based-interface: + file: service-VfwService2vfBased-template-interface.yml +- resource-vFW-vSINK: + file: resource-VfwVsink-template.yml +- resource-vFW-vSINK-interface: + file: resource-VfwVsink-template-interface.yml +- resource-vPkG: + file: resource-Vpkg-template.yml +- resource-vPkG-interface: + file: resource-Vpkg-template-interface.yml +topology_template: + inputs: + fortigate_image_url: + type: string + required: false + default: + flavor: + type: string + default: '2z' + external_network_name: + type: string + default: 'GATEWAY_NET' + status: inactive + cpus: + type: integer + description: Number of CPUs for the server. + default: 2 + entry_schema: + - constraints: + - valid_values: [ 1, 2, 4, 8 ] + node_templates: + vPkG 0: + type: org.openecomp.resource.vf.Vpkg + metadata: + invariantUUID: 8d8a20c0-746c-4d5e-a1a2-fa49fa5786ad + UUID: 31961e27-2a2c-4beb-87c9-bfe0067088f5 + customizationUUID: 067f5672-51ec-48a6-8ffd-0a7874672666 + version: '2.0' + name: vPkG + description: vPacketGenerator + type: VF + category: Application L4+ + subcategory: Firewall + resourceVendor: Generic + resourceVendorRelease: '1.0' + resourceVendorModelNumber: '' + properties: + vf_module_id: vTrafficPNG + repo_url_blob: https://nexus.onap.org/content/sites/raw + unprotected_private_subnet_id: zdfw1fwl01_unprotected_sub + public_net_id: 715a1ca1-cbc6-4d00-84bb-0f8667a748ce + vfw_private_ip_0: 192.168.10.100 + onap_private_subnet_id: 51a5a838-7318-464d-858a-974bef8d49e3 + onap_private_net_cidr: 10.4.2.0/24 + image_name: ubuntu-14.04-daily + flavor_name: onap.medium + vnf_id: vPNG_Firewall_demo_app + vpg_name_0: zdfw1fwl01pgn01 + vpg_private_ip_1: 10.4.2.200 + vsn_private_ip_0: 192.168.20.250 + vpg_private_ip_0: 192.168.10.200 + protected_private_net_cidr: 192.168.20.0/24 + unprotected_private_net_cidr: 192.168.10.0/24 + nf_naming: + ecomp_generated_naming: true + onap_private_net_id: 715a1ca1-cbc6-4d00-84bb-0f8667a748ce + unprotected_private_net_id: zdfw1fwl01_unprotected + availability_zone_max_count: 1 + demo_artifacts_version: 1.2.0 + key_name: onap_key_LnHa + repo_url_artifacts: https://nexus.onap.org/content/groups/staging + install_script_version: 1.2.0-SNAPSHOT + cloud_env: openstack + capabilities: + network.incoming.bytes.rate_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.read.bytes_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes.rate_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.allocation_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + endpoint_vpg: + properties: + secure: true + cpu_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.read.bytes.rate_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes.rate_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.bytes.rate_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.iops_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.usage_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.usage_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.read.bytes_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.bytes_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.write.requests_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.capacity_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.latency_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.requests.rate_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.packets.rate_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets.rate_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.allocation_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.ephemeral.size_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.write.requests.rate_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.write.bytes.rate_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.iops_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outpoing.packets_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + instance_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.capacity_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.read.requests_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + cpu_util_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + memory.usage_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.read.requests.rate_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.read.requests_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets.rate_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + cpu.delta_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes.rate_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.write.bytes_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.packets.rate_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + scalable_vpg: + properties: + max_instances: 1 + min_instances: 1 + vcpus_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.root.size_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.requests_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + memory_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outpoing.packets_vpg_vpg_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.read.bytes.rate_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + memory.resident_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.latency_vpg: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets_vpg_vpg_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + vFW-vSINK 0: + type: org.openecomp.resource.vf.VfwVsink + metadata: + invariantUUID: 18b90934-aa82-456f-938e-e74a07a426f3 + UUID: 89a6b4c5-3973-4c19-b651-fae3713ca8d5 + customizationUUID: f7ae574e-fd5f-41e7-9b21-75e001561c96 + version: '2.0' + name: vFW-vSINK + description: vFW and vSink in one VSP + type: VF + category: Application L4+ + subcategory: Firewall + resourceVendor: Generic + resourceVendorRelease: '1.0' + resourceVendorModelNumber: '' + properties: + vf_module_id: vFirewallCL + repo_url_blob: https://nexus.onap.org/content/sites/raw + vfw_private_ip_1: 192.168.20.100 + unprotected_private_subnet_id: zdfw1fwl01_unprotected_sub + public_net_id: 715a1ca1-cbc6-4d00-84bb-0f8667a748ce + vfw_private_ip_0: 192.168.10.100 + onap_private_subnet_id: 51a5a838-7318-464d-858a-974bef8d49e3 + vfw_private_ip_2: 10.4.2.201 + vfw_name_0: zdfw1fwl01fwl01 + onap_private_net_cidr: 10.4.2.0/24 + image_name: ubuntu-14.04-daily + flavor_name: onap.medium + dcae_collector_ip: 10.4.2.38 + vnf_id: vFirewall_demo_app + dcae_collector_port: '8080' + protected_private_subnet_id: zdfw1fwl01_protected_sub + vsn_private_ip_0: 192.168.20.250 + vsn_private_ip_1: 10.4.2.202 + vpg_private_ip_0: 192.168.10.200 + protected_private_net_cidr: 192.168.20.0/24 + unprotected_private_net_cidr: 192.168.10.0/24 + nf_naming: + ecomp_generated_naming: true + vsn_name_0: zdfw1fwl01snk01 + onap_private_net_id: 715a1ca1-cbc6-4d00-84bb-0f8667a748ce + unprotected_private_net_id: zdfw1fwl01_unprotected + availability_zone_max_count: 1 + demo_artifacts_version: 1.2.0 + key_name: onap_key_LnHa + repo_url_artifacts: https://nexus.onap.org/content/groups/staging + install_script_version: 1.2.0-SNAPSHOT + protected_private_net_id: zdfw1fwl01_protected + cloud_env: openstack + capabilities: + network.outgoing.bytes_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + end_point: + properties: + protocol: tcp + initiator: source + network_name: PRIVATE + secure: false + disk.device.write.bytes_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + memory.usage_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + scalable_vsn: + properties: + max_instances: 1 + min_instances: 1 + network.incoming.packets_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes.rate_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.read.requests_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.allocation_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + instance_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.latency_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + memory.resident_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outpoing.packets_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets.rate_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.incoming.bytes.rate_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.incoming.bytes_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.write.bytes.rate_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.write.requests.rate_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes.rate_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets.rate_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.packets.rate_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.incoming.packets_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.bytes.rate_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.usage_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.usage_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.ephemeral.size_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outpoing.packets_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.read.bytes_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.write.bytes_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.latency_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.bytes_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + memory_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.write.requests_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.allocation_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.read.requests_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + vcpus_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.requests.rate_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.read.bytes_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.read.bytes.rate_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outpoing.packets_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + endpoint_vfw: + properties: + secure: true + disk.device.read.requests.rate_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.capacity_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.packets.rate_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.packets.rate_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.root.size_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.packets.rate_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.read.bytes.rate_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.bytes_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.write.requests_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.incoming.packets.rate_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.capacity_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outpoing.packets_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + cpu_util_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + cpu_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.iops_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.incoming.bytes.rate_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + memory.usage_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.write.bytes_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.usage_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.bytes.rate_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes.rate_vsn_vsn_private_1_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + memory.resident_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.latency_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.write.requests.rate_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.ephemeral.size_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.read.bytes_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.bytes.rate_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + instance_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.allocation_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.iops_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets.rate_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + scalable_vfw: + properties: + max_instances: 1 + min_instances: 1 + disk.device.read.bytes.rate_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.usage_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.write.bytes.rate_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + cpu.delta_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.bytes.rate_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + cpu.delta_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.capacity_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.read.bytes_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.read.requests_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.read.requests.rate_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.write.bytes_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.write.requests_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.allocation_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + vcpus_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.iops_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outpoing.packets_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.read.bytes.rate_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets.rate_vfw_vfw_private_1_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.bytes.rate_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.write.requests_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + memory_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.root.size_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.packets.rate_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.incoming.packets_vfw_vfw_private_2_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.write.requests.rate_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + disk.device.capacity_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.read.requests_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + disk.device.latency_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + endpoint_vsn: + properties: + secure: true + disk.iops_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + network.outgoing.bytes.rate_vsn_vsn_private_0_port: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + network.outgoing.bytes.rate_vfw_vfw_private_0_port: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + cpu_util_vfw: + properties: + unit: packet + description: Number of incoming packets + type: Cumulative + category: network + cpu_vsn: + properties: + unit: request + description: Number of write requests + type: Cumulative + category: compute + groups: + vpkg0..Vpkg..base_vpkg..module-0: + type: org.openecomp.groups.VfModule + metadata: + vfModuleModelName: Vpkg..base_vpkg..module-0 + vfModuleModelInvariantUUID: 2b625799-0359-418e-8003-d92adcdb595c + vfModuleModelUUID: 4a82f066-ae9d-4b13-961a-1cf04550887d + vfModuleModelVersion: '2' + vfModuleModelCustomizationUUID: fc2f14df-ac8c-4631-bc59-440f3d823229 + properties: + min_vf_module_instances: 1 + vf_module_label: base_vpkg + max_vf_module_instances: 1 + vfc_list: + vf_module_type: Base + vf_module_description: + initial_count: 1 + volume_group: false + availability_zone_count: + vfwvsink0..VfwVsink..base_vfw..module-0: + type: org.openecomp.groups.VfModule + metadata: + vfModuleModelName: VfwVsink..base_vfw..module-0 + vfModuleModelInvariantUUID: 1408337c-b197-4c3f-9fe4-f63a74a38fbf + vfModuleModelUUID: 16771d83-0c95-4dbe-a8be-1364f9c568ae + vfModuleModelVersion: '2' + vfModuleModelCustomizationUUID: 2ff6be2e-e80b-474c-9e72-6d7f897d0ba0 + properties: + min_vf_module_instances: 1 + vf_module_label: base_vfw + max_vf_module_instances: 1 + vfc_list: + vf_module_type: Base + vf_module_description: + initial_count: 1 + volume_group: false + availability_zone_count: + substitution_mappings: + node_type: org.openecomp.service.VfwService2vfBased + capabilities: + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.incoming.bytes.rate_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.incoming.bytes.rate_vfw_vfw_private_0_port + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.incoming.bytes.rate_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.incoming.bytes.rate_vpg_vpg_private_0_port + vfwvsink0.vfw.abstract_vfw.disk.device.write.bytes.rate_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.write.bytes.rate_vfw + vpkg0.vpg.abstract_vpg.host_vpg: + - vpkg0 + - vpg.abstract_vpg.host_vpg + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.outgoing.bytes_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.outgoing.bytes_vpg_vpg_private_0_port + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.outgoing.bytes.rate_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.outgoing.bytes.rate_vpg_vpg_private_1_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.attachment_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.attachment_vfw_vfw_private_1_port + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.incoming.packets.rate_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.incoming.packets.rate_vsn_vsn_private_0_port + vfwvsink0.vfw.abstract_vfw.disk.read.bytes.rate_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.read.bytes.rate_vfw + vfwvsink0.vfw.abstract_vfw.disk.iops_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.iops_vfw + vpkg0.vpg_vpg_private_1_port.abstract_vpg.feature_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.feature_vpg_vpg_private_1_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.incoming.packets.rate_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.incoming.packets.rate_vfw_vfw_private_1_port + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.binding_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.binding_vsn_vsn_private_0_port + vpkg0.vpg.abstract_vpg.disk.device.read.requests.rate_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.read.requests.rate_vpg + vfwvsink0.vsn.abstract_vsn.memory.resident_vsn: + - vfwvsink0 + - vsn.abstract_vsn.memory.resident_vsn + vpkg0.vpg.abstract_vpg.disk.write.requests.rate_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.write.requests.rate_vpg + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.outgoing.bytes.rate_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.outgoing.bytes.rate_vfw_vfw_private_1_port + vfwvsink0.vsn.abstract_vsn.disk.write.bytes.rate_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.write.bytes.rate_vsn + vfwvsink0.vfw.abstract_vfw.instance_vfw: + - vfwvsink0 + - vfw.abstract_vfw.instance_vfw + vfwvsink0.vfw.abstract_vfw.disk.write.requests.rate_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.write.requests.rate_vfw + vfwvsink0.vfw.abstract_vfw.binding_vfw: + - vfwvsink0 + - vfw.abstract_vfw.binding_vfw + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.incoming.packets_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.incoming.packets_vfw_vfw_private_0_port + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.incoming.bytes_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.incoming.bytes_vpg_vpg_private_0_port + vfwvsink0.unprotected_private_network.feature: + - vfwvsink0 + - unprotected_private_network.feature + vpkg0.vpg.abstract_vpg.disk.read.bytes.rate_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.read.bytes.rate_vpg + vpkg0.vpg_vpg_private_1_port.abstract_vpg.binding_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.binding_vpg_vpg_private_1_port + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.incoming.packets_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.incoming.packets_vsn_vsn_private_1_port + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.outgoing.packets.rate_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.outgoing.packets.rate_vpg_vpg_private_1_port + vfwvsink0.vfw.abstract_vfw.disk.device.read.requests_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.read.requests_vfw + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.outgoing.bytes_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.outgoing.bytes_vfw_vfw_private_1_port + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.outgoing.bytes_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.outgoing.bytes_vsn_vsn_private_1_port + vfwvsink0.vsn.abstract_vsn.cpu_vsn: + - vfwvsink0 + - vsn.abstract_vsn.cpu_vsn + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.attachment_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.attachment_vsn_vsn_private_1_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.binding_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.binding_vfw_vfw_private_2_port + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.outgoing.bytes.rate_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.outgoing.bytes.rate_vsn_vsn_private_0_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.feature_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.feature_vfw_vfw_private_1_port + vfwvsink0.vfw.abstract_vfw.disk.usage_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.usage_vfw + vpkg0.vpg.abstract_vpg.vcpus_vpg: + - vpkg0 + - vpg.abstract_vpg.vcpus_vpg + vfwvsink0.vfw.abstract_vfw.disk.device.allocation_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.allocation_vfw + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.attachment_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.attachment_vsn_vsn_private_0_port + vfwvsink0.vsn.abstract_vsn.memory_vsn: + - vfwvsink0 + - vsn.abstract_vsn.memory_vsn + vfwvsink0.vfw.abstract_vfw.os_vfw: + - vfwvsink0 + - vfw.abstract_vfw.os_vfw + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.feature_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.feature_vsn_vsn_private_0_port + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.outpoing.packets_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.outpoing.packets_vpg_vpg_private_1_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.binding_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.binding_vfw_vfw_private_1_port + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.incoming.packets.rate_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.incoming.packets.rate_vsn_vsn_private_1_port + vfwvsink0.vfw.abstract_vfw.disk.device.write.requests_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.write.requests_vfw + vpkg0.vpg.abstract_vpg.cpu_vpg: + - vpkg0 + - vpg.abstract_vpg.cpu_vpg + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.outgoing.packets.rate_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.outgoing.packets.rate_vsn_vsn_private_1_port + vfwvsink0.vsn.abstract_vsn.disk.device.write.bytes_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.write.bytes_vsn + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.feature_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.feature_vfw_vfw_private_2_port + vfwvsink0.vsn.abstract_vsn.host_vsn: + - vfwvsink0 + - vsn.abstract_vsn.host_vsn + vpkg0.vpg_vpg_private_1_port.abstract_vpg.attachment_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.attachment_vpg_vpg_private_1_port + vfwvsink0.vfw.abstract_vfw.disk.device.write.bytes_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.write.bytes_vfw + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.outgoing.bytes.rate_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.outgoing.bytes.rate_vfw_vfw_private_0_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.incoming.packets.rate_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.incoming.packets.rate_vfw_vfw_private_2_port + vfwvsink0.vfw.abstract_vfw.memory.resident_vfw: + - vfwvsink0 + - vfw.abstract_vfw.memory.resident_vfw + vfwvsink0.vsn.abstract_vsn.vcpus_vsn: + - vfwvsink0 + - vsn.abstract_vsn.vcpus_vsn + vfwvsink0.vfw.abstract_vfw.disk.read.requests_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.read.requests_vfw + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.incoming.packets_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.incoming.packets_vpg_vpg_private_1_port + vfwvsink0.unprotected_private_network.link: + - vfwvsink0 + - unprotected_private_network.link + vpkg0.vpg.abstract_vpg.disk.device.latency_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.latency_vpg + vfwvsink0.vfw.abstract_vfw.disk.write.requests_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.write.requests_vfw + vfwvsink0.vsn.abstract_vsn.disk.capacity_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.capacity_vsn + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.outgoing.packets.rate_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.outgoing.packets.rate_vfw_vfw_private_2_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.incoming.packets_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.incoming.packets_vfw_vfw_private_2_port + vfwvsink0.vsn.abstract_vsn.scalable_vsn: + - vfwvsink0 + - vsn.abstract_vsn.scalable_vsn + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.incoming.bytes_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.incoming.bytes_vsn_vsn_private_1_port + vfwvsink0.vfw.abstract_vfw.disk.write.bytes_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.write.bytes_vfw + vfwvsink0.vfw.abstract_vfw.disk.device.read.bytes.rate_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.read.bytes.rate_vfw + vpkg0.vpg.abstract_vpg.disk.write.bytes_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.write.bytes_vpg + vpkg0.vpg.abstract_vpg.disk.device.write.bytes.rate_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.write.bytes.rate_vpg + vpkg0.vpg.abstract_vpg.memory.usage_vpg: + - vpkg0 + - vpg.abstract_vpg.memory.usage_vpg + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.outpoing.packets_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.outpoing.packets_vsn_vsn_private_1_port + vfwvsink0.vsn.abstract_vsn.memory.usage_vsn: + - vfwvsink0 + - vsn.abstract_vsn.memory.usage_vsn + vfwvsink0.vsn.abstract_vsn.disk.device.read.bytes.rate_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.read.bytes.rate_vsn + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.incoming.bytes_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.incoming.bytes_vsn_vsn_private_0_port + vfwvsink0.vfw.abstract_vfw.disk.ephemeral.size_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.ephemeral.size_vfw + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.attachment_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.attachment_vfw_vfw_private_0_port + vfwvsink0.vsn.abstract_vsn.binding_vsn: + - vfwvsink0 + - vsn.abstract_vsn.binding_vsn + vfwvsink0.vfw.abstract_vfw.cpu.delta_vfw: + - vfwvsink0 + - vfw.abstract_vfw.cpu.delta_vfw + vfwvsink0.vsn.abstract_vsn.disk.read.bytes.rate_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.read.bytes.rate_vsn + vfwvsink0.vfw.abstract_vfw.disk.latency_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.latency_vfw + vfwvsink0.vsn.abstract_vsn.disk.device.latency_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.latency_vsn + vfwvsink0.vsn.abstract_vsn.disk.latency_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.latency_vsn + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.outgoing.packets.rate_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.outgoing.packets.rate_vpg_vpg_private_0_port + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.incoming.packets.rate_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.incoming.packets.rate_vpg_vpg_private_1_port + vfwvsink0.vsn.abstract_vsn.instance_vsn: + - vfwvsink0 + - vsn.abstract_vsn.instance_vsn + vfwvsink0.vsn.abstract_vsn.disk.device.allocation_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.allocation_vsn + vpkg0.vpg.abstract_vpg.disk.allocation_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.allocation_vpg + vfwvsink0.vsn.abstract_vsn.disk.read.bytes_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.read.bytes_vsn + vpkg0.vpg.abstract_vpg.disk.device.write.requests_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.write.requests_vpg + vpkg0.vpg.abstract_vpg.disk.device.write.requests.rate_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.write.requests.rate_vpg + vpkg0.vpg.abstract_vpg.disk.device.read.bytes_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.read.bytes_vpg + vpkg0.vpg.abstract_vpg.disk.device.read.requests_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.read.requests_vpg + vfwvsink0.vsn.abstract_vsn.cpu_util_vsn: + - vfwvsink0 + - vsn.abstract_vsn.cpu_util_vsn + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.incoming.packets_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.incoming.packets_vpg_vpg_private_0_port + vpkg0.vpg.abstract_vpg.disk.device.read.bytes.rate_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.read.bytes.rate_vpg + vfwvsink0.vfw.abstract_vfw.disk.read.bytes_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.read.bytes_vfw + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.outgoing.packets.rate_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.outgoing.packets.rate_vsn_vsn_private_0_port + vpkg0.vpg.abstract_vpg.disk.read.requests_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.read.requests_vpg + vpkg0.vpg.abstract_vpg.disk.root.size_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.root.size_vpg + vfwvsink0.vfw.abstract_vfw.disk.device.write.requests.rate_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.write.requests.rate_vfw + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.outgoing.bytes_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.outgoing.bytes_vfw_vfw_private_0_port + vfwvsink0.vfw.abstract_vfw.cpu_vfw: + - vfwvsink0 + - vfw.abstract_vfw.cpu_vfw + vpkg0.vpg.abstract_vpg.cpu_util_vpg: + - vpkg0 + - vpg.abstract_vpg.cpu_util_vpg + vfwvsink0.vfw.abstract_vfw.disk.write.bytes.rate_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.write.bytes.rate_vfw + vfwvsink0.vsn.abstract_vsn.disk.ephemeral.size_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.ephemeral.size_vsn + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.outgoing.bytes_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.outgoing.bytes_vsn_vsn_private_0_port + vfwvsink0.vsn.abstract_vsn.disk.root.size_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.root.size_vsn + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.binding_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.binding_vfw_vfw_private_0_port + vpkg0.vpg.abstract_vpg.scalable_vpg: + - vpkg0 + - vpg.abstract_vpg.scalable_vpg + vpkg0.vpg.abstract_vpg.disk.usage_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.usage_vpg + vfwvsink0.unprotected_private_network.end_point: + - vfwvsink0 + - unprotected_private_network.end_point + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.incoming.bytes.rate_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.incoming.bytes.rate_vsn_vsn_private_1_port + vfwvsink0.vfw.abstract_vfw.vcpus_vfw: + - vfwvsink0 + - vfw.abstract_vfw.vcpus_vfw + vfwvsink0.vfw.abstract_vfw.disk.device.read.requests.rate_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.read.requests.rate_vfw + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.outpoing.packets_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.outpoing.packets_vsn_vsn_private_0_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.attachment_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.attachment_vfw_vfw_private_2_port + vpkg0.vpg_vpg_private_0_port.abstract_vpg.binding_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.binding_vpg_vpg_private_0_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.outgoing.packets.rate_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.outgoing.packets.rate_vfw_vfw_private_1_port + vpkg0.vpg.abstract_vpg.disk.write.bytes.rate_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.write.bytes.rate_vpg + vfwvsink0.protected_private_network.feature: + - vfwvsink0 + - protected_private_network.feature + vpkg0.vpg.abstract_vpg.disk.capacity_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.capacity_vpg + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.outgoing.bytes_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.outgoing.bytes_vpg_vpg_private_1_port + vfwvsink0.protected_private_network.attachment: + - vfwvsink0 + - protected_private_network.attachment + vfwvsink0.vfw.abstract_vfw.disk.device.read.bytes_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.read.bytes_vfw + vfwvsink0.vfw.abstract_vfw.disk.capacity_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.capacity_vfw + vfwvsink0.vsn.abstract_vsn.disk.write.bytes_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.write.bytes_vsn + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.feature_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.feature_vfw_vfw_private_0_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.outgoing.bytes.rate_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.outgoing.bytes.rate_vfw_vfw_private_2_port + vfwvsink0.vfw.abstract_vfw.memory.usage_vfw: + - vfwvsink0 + - vfw.abstract_vfw.memory.usage_vfw + vfwvsink0.vfw.abstract_vfw.disk.root.size_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.root.size_vfw + vfwvsink0.vsn.abstract_vsn.feature_vsn: + - vfwvsink0 + - vsn.abstract_vsn.feature_vsn + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.incoming.bytes.rate_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.incoming.bytes.rate_vfw_vfw_private_2_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.incoming.bytes.rate_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.incoming.bytes.rate_vfw_vfw_private_1_port + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.feature_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.feature_vsn_vsn_private_1_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.incoming.packets_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.incoming.packets_vfw_vfw_private_1_port + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.incoming.packets.rate_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.incoming.packets.rate_vpg_vpg_private_0_port + vfwvsink0.vfw.abstract_vfw.disk.device.iops_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.iops_vfw + vpkg0.vpg.abstract_vpg.disk.device.iops_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.iops_vpg + vpkg0.vpg.abstract_vpg.endpoint_vpg: + - vpkg0 + - vpg.abstract_vpg.endpoint_vpg + vfwvsink0.vsn.abstract_vsn.disk.device.write.requests_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.write.requests_vsn + vfwvsink0.vsn.abstract_vsn.disk.read.requests_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.read.requests_vsn + vfwvsink0.vsn.abstract_vsn.endpoint_vsn: + - vfwvsink0 + - vsn.abstract_vsn.endpoint_vsn + vfwvsink0.vfw.abstract_vfw.cpu_util_vfw: + - vfwvsink0 + - vfw.abstract_vfw.cpu_util_vfw + vpkg0.vpg.abstract_vpg.os_vpg: + - vpkg0 + - vpg.abstract_vpg.os_vpg + vfwvsink0.vsn.abstract_vsn.disk.device.usage_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.usage_vsn + vfwvsink0.unprotected_private_network.attachment: + - vfwvsink0 + - unprotected_private_network.attachment + vpkg0.vpg.abstract_vpg.disk.device.usage_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.usage_vpg + vfwvsink0.vfw.abstract_vfw.memory_vfw: + - vfwvsink0 + - vfw.abstract_vfw.memory_vfw + vpkg0.vpg.abstract_vpg.disk.latency_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.latency_vpg + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.outgoing.bytes_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.outgoing.bytes_vfw_vfw_private_2_port + vfwvsink0.vsn.abstract_vsn.disk.device.read.requests_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.read.requests_vsn + vfwvsink0.vsn.abstract_vsn.disk.write.requests.rate_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.write.requests.rate_vsn + vfwvsink0.vsn.abstract_vsn.disk.device.capacity_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.capacity_vsn + vpkg0.vpg.abstract_vpg.disk.ephemeral.size_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.ephemeral.size_vpg + vpkg0.vpg.abstract_vpg.disk.iops_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.iops_vpg + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.incoming.bytes_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.incoming.bytes_vpg_vpg_private_1_port + vpkg0.vpg_vpg_private_1_port.abstract_vpg.network.incoming.bytes.rate_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.network.incoming.bytes.rate_vpg_vpg_private_1_port + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.incoming.packets_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.incoming.packets_vsn_vsn_private_0_port + vpkg0.vpg.abstract_vpg.feature_vpg: + - vpkg0 + - vpg.abstract_vpg.feature_vpg + vpkg0.vpg.abstract_vpg.instance_vpg: + - vpkg0 + - vpg.abstract_vpg.instance_vpg + vfwvsink0.protected_private_network.end_point: + - vfwvsink0 + - protected_private_network.end_point + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.network.incoming.bytes.rate_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.network.incoming.bytes.rate_vsn_vsn_private_0_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.outpoing.packets_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.outpoing.packets_vfw_vfw_private_2_port + vpkg0.vpg_vpg_private_0_port.abstract_vpg.feature_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.feature_vpg_vpg_private_0_port + vfwvsink0.vfw.abstract_vfw.host_vfw: + - vfwvsink0 + - vfw.abstract_vfw.host_vfw + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.binding_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.binding_vsn_vsn_private_1_port + vpkg0.vpg.abstract_vpg.disk.device.capacity_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.capacity_vpg + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.network.outgoing.bytes.rate_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.network.outgoing.bytes.rate_vsn_vsn_private_1_port + vfwvsink0.vsn.abstract_vsn.disk.device.write.requests.rate_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.write.requests.rate_vsn + vfwvsink0.vsn.abstract_vsn.disk.device.write.bytes.rate_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.write.bytes.rate_vsn + vpkg0.vpg.abstract_vpg.disk.write.requests_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.write.requests_vpg + vfwvsink0.vsn.abstract_vsn.disk.allocation_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.allocation_vsn + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.incoming.bytes_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.incoming.bytes_vfw_vfw_private_1_port + vpkg0.vpg.abstract_vpg.cpu.delta_vpg: + - vpkg0 + - vpg.abstract_vpg.cpu.delta_vpg + vfwvsink0.vfw.abstract_vfw.disk.device.latency_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.latency_vfw + vfwvsink0.vsn.abstract_vsn.disk.device.read.requests.rate_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.read.requests.rate_vsn + vpkg0.vpg.abstract_vpg.memory_vpg: + - vpkg0 + - vpg.abstract_vpg.memory_vpg + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.incoming.packets.rate_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.incoming.packets.rate_vfw_vfw_private_0_port + vfwvsink0.vsn.abstract_vsn.disk.device.iops_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.iops_vsn + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.outpoing.packets_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.outpoing.packets_vpg_vpg_private_0_port + vfwvsink0.vsn.abstract_vsn.disk.usage_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.usage_vsn + vfwvsink0.vfw.abstract_vfw.disk.device.capacity_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.capacity_vfw + vpkg0.vpg_vpg_private_0_port.abstract_vpg.network.outgoing.bytes.rate_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.network.outgoing.bytes.rate_vpg_vpg_private_0_port + vpkg0.vpg.abstract_vpg.disk.device.write.bytes_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.write.bytes_vpg + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.outpoing.packets_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.outpoing.packets_vfw_vfw_private_0_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.network.incoming.bytes_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.network.incoming.bytes_vfw_vfw_private_2_port + vfwvsink0.vfw.abstract_vfw.feature_vfw: + - vfwvsink0 + - vfw.abstract_vfw.feature_vfw + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.outgoing.packets.rate_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.outgoing.packets.rate_vfw_vfw_private_0_port + vfwvsink0.vsn.abstract_vsn.os_vsn: + - vfwvsink0 + - vsn.abstract_vsn.os_vsn + vfwvsink0.vfw.abstract_vfw.disk.device.usage_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.device.usage_vfw + vfwvsink0.vsn.abstract_vsn.disk.iops_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.iops_vsn + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.network.incoming.bytes_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.network.incoming.bytes_vfw_vfw_private_0_port + vpkg0.vpg_vpg_private_0_port.abstract_vpg.attachment_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.attachment_vpg_vpg_private_0_port + vpkg0.vpg.abstract_vpg.memory.resident_vpg: + - vpkg0 + - vpg.abstract_vpg.memory.resident_vpg + vfwvsink0.vfw.abstract_vfw.scalable_vfw: + - vfwvsink0 + - vfw.abstract_vfw.scalable_vfw + vfwvsink0.vsn.abstract_vsn.cpu.delta_vsn: + - vfwvsink0 + - vsn.abstract_vsn.cpu.delta_vsn + vpkg0.vpg.abstract_vpg.disk.device.allocation_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.device.allocation_vpg + vfwvsink0.protected_private_network.link: + - vfwvsink0 + - protected_private_network.link + vfwvsink0.vfw.abstract_vfw.disk.allocation_vfw: + - vfwvsink0 + - vfw.abstract_vfw.disk.allocation_vfw + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.network.outpoing.packets_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.network.outpoing.packets_vfw_vfw_private_1_port + vpkg0.vpg.abstract_vpg.binding_vpg: + - vpkg0 + - vpg.abstract_vpg.binding_vpg + vpkg0.vpg.abstract_vpg.disk.read.bytes_vpg: + - vpkg0 + - vpg.abstract_vpg.disk.read.bytes_vpg + vfwvsink0.vsn.abstract_vsn.disk.device.read.bytes_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.device.read.bytes_vsn + vfwvsink0.vsn.abstract_vsn.disk.write.requests_vsn: + - vfwvsink0 + - vsn.abstract_vsn.disk.write.requests_vsn + vfwvsink0.vfw.abstract_vfw.endpoint_vfw: + - vfwvsink0 + - vfw.abstract_vfw.endpoint_vfw + requirements: + vfwvsink0.vfw.abstract_vfw.local_storage_vfw: + - vfwvsink0 + - vfw.abstract_vfw.local_storage_vfw + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.dependency_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.dependency_vfw_vfw_private_1_port + vpkg0.vpg.abstract_vpg.local_storage_vpg: + - vpkg0 + - vpg.abstract_vpg.local_storage_vpg + vpkg0.vpg_vpg_private_1_port.abstract_vpg.dependency_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.dependency_vpg_vpg_private_1_port + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.dependency_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.dependency_vsn_vsn_private_1_port + vfwvsink0.vsn_vsn_private_1_port.abstract_vsn.link_vsn_vsn_private_1_port: + - vfwvsink0 + - vsn_vsn_private_1_port.abstract_vsn.link_vsn_vsn_private_1_port + vpkg0.vpg_vpg_private_1_port.abstract_vpg.link_vpg_vpg_private_1_port: + - vpkg0 + - vpg_vpg_private_1_port.abstract_vpg.link_vpg_vpg_private_1_port + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.link_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.link_vfw_vfw_private_0_port + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.link_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.link_vsn_vsn_private_0_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.link_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.link_vfw_vfw_private_2_port + vfwvsink0.vfw.abstract_vfw.dependency_vfw: + - vfwvsink0 + - vfw.abstract_vfw.dependency_vfw + vfwvsink0.vsn.abstract_vsn.local_storage_vsn: + - vfwvsink0 + - vsn.abstract_vsn.local_storage_vsn + vfwvsink0.unprotected_private_network.dependency: + - vfwvsink0 + - unprotected_private_network.dependency + vfwvsink0.vfw_vfw_private_0_port.abstract_vfw.dependency_vfw_vfw_private_0_port: + - vfwvsink0 + - vfw_vfw_private_0_port.abstract_vfw.dependency_vfw_vfw_private_0_port + vfwvsink0.vsn.abstract_vsn.dependency_vsn: + - vfwvsink0 + - vsn.abstract_vsn.dependency_vsn + vpkg0.vpg_vpg_private_0_port.abstract_vpg.dependency_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.dependency_vpg_vpg_private_0_port + vfwvsink0.vsn_vsn_private_0_port.abstract_vsn.dependency_vsn_vsn_private_0_port: + - vfwvsink0 + - vsn_vsn_private_0_port.abstract_vsn.dependency_vsn_vsn_private_0_port + vfwvsink0.vfw_vfw_private_2_port.abstract_vfw.dependency_vfw_vfw_private_2_port: + - vfwvsink0 + - vfw_vfw_private_2_port.abstract_vfw.dependency_vfw_vfw_private_2_port + vfwvsink0.vfw_vfw_private_1_port.abstract_vfw.link_vfw_vfw_private_1_port: + - vfwvsink0 + - vfw_vfw_private_1_port.abstract_vfw.link_vfw_vfw_private_1_port + vpkg0.vpg_vpg_private_0_port.abstract_vpg.link_vpg_vpg_private_0_port: + - vpkg0 + - vpg_vpg_private_0_port.abstract_vpg.link_vpg_vpg_private_0_port + vpkg0.vpg.abstract_vpg.dependency_vpg: + - vpkg0 + - vpg.abstract_vpg.dependency_vpg + vfwvsink0.protected_private_network.dependency: + - vfwvsink0 + - protected_private_network.dependency |