Rework SDC calls and model
Rework the SDC model and queries
+ Add unit tests with JSON to validate the SDC model
Change-Id: I93f08cdc883f5357e3a08e9c246ed30be50a3492
Issue-Id: CLAMP-1
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
diff --git a/src/main/java/org/onap/clamp/clds/client/SdcCatalogServices.java b/src/main/java/org/onap/clamp/clds/client/SdcCatalogServices.java
index 58bba3c..a009f06 100644
--- a/src/main/java/org/onap/clamp/clds/client/SdcCatalogServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/SdcCatalogServices.java
@@ -5,16 +5,16 @@
* Copyright (C) 2017 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ * 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
+ *
+ * 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.
* ============LICENSE_END============================================
* ===================================================================
@@ -23,41 +23,66 @@
package org.onap.clamp.clds.client;
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.commons.csv.CSVFormat;
+import org.apache.commons.csv.CSVRecord;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.clamp.clds.client.req.SdcReq;
+import org.onap.clamp.clds.model.CldsAlarmCondition;
+import org.onap.clamp.clds.model.CldsDBServiceCache;
+import org.onap.clamp.clds.model.CldsSdcArtifact;
+import org.onap.clamp.clds.model.CldsSdcResource;
+import org.onap.clamp.clds.model.CldsSdcResourceBasicInfo;
+import org.onap.clamp.clds.model.CldsSdcServiceDetail;
+import org.onap.clamp.clds.model.CldsSdcServiceInfo;
+import org.onap.clamp.clds.model.CldsServiceData;
+import org.onap.clamp.clds.model.CldsVfData;
+import org.onap.clamp.clds.model.CldsVfKPIData;
+import org.onap.clamp.clds.model.CldsVfcData;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.model.refprop.RefProp;
+import org.onap.clamp.clds.util.LoggingUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.node.TextNode;
-import org.onap.clamp.clds.client.req.SdcReq;
-import org.onap.clamp.clds.model.*;
-import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.model.refprop.RefProp;
-import org.apache.commons.csv.CSVFormat;
-import org.apache.commons.csv.CSVRecord;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
public class SdcCatalogServices {
- private static final Logger logger = LoggerFactory.getLogger(SdcSendReqDelegate.class);
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcCatalogServices.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+
+ private static final String RESOURCE_VF_TYPE = "VF";
+ private static final String RESOURCE_VFC_TYPE = "VFC";
@Autowired
- private RefProp refProp;
+ private RefProp refProp;
- public String getAsdcServicesInformation(String uuid) throws Exception {
- String baseUrl = refProp.getStringValue("asdc.serviceUrl");
- String basicAuth = SdcReq.getAsdcBasicAuth(refProp);
+ public String getSdcServicesInformation(String uuid) throws Exception {
+ Date startTime = new Date();
+ String baseUrl = refProp.getStringValue("sdc.serviceUrl");
+ String basicAuth = SdcReq.getSdcBasicAuth(refProp);
try {
String url = baseUrl;
if (uuid != null) {
@@ -67,7 +92,7 @@
HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
- conn.setRequestProperty("X-ONAP-InstanceID", "CLAMP-Tool");
+ conn.setRequestProperty(refProp.getStringValue("sdc.InstanceID"), "CLAMP-Tool");
conn.setRequestProperty("Authorization", basicAuth);
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestMethod("GET");
@@ -77,113 +102,129 @@
logger.info(resp.toString());
return resp;
}
+ // metrics log
+ LoggingUtils.setResponseContext("0", "Get sdc services success", this.getClass().getName());
+
} catch (Exception e) {
- logger.error("not able to ger any service information from asdc for uuid:" + uuid);
+ LoggingUtils.setResponseContext("900", "Get sdc services failed", this.getClass().getName());
+ LoggingUtils.setErrorContext("900", "Get sdc services error");
+ logger.error("not able to get any service information from sdc for uuid:" + uuid);
}
+ LoggingUtils.setTimeContext(startTime, new Date());
+ LoggingUtils.setTargetContext("SDC", "Get Services");
+ metricsLogger.info("Get sdc services information");
+
return "";
}
/**
- * To remove duplicate serviceUUIDs from asdc services List
+ * To remove duplicate serviceUUIDs from sdc services List
*
- * @param rawCldsAsdcServiceList
+ * @param rawCldsSdcServiceList
* @return
*/
- public List<CldsAsdcServiceInfo> removeDuplicateServices(List<CldsAsdcServiceInfo> rawCldsAsdcServiceList) {
- List<CldsAsdcServiceInfo> cldsAsdcServiceInfoList = null;
- if (rawCldsAsdcServiceList != null && rawCldsAsdcServiceList.size() > 0) {
+ public List<CldsSdcServiceInfo> removeDuplicateServices(List<CldsSdcServiceInfo> rawCldsSdcServiceList) {
+ List<CldsSdcServiceInfo> cldsSdcServiceInfoList = null;
+ if (rawCldsSdcServiceList != null && rawCldsSdcServiceList.size() > 0) {
// sort list
- Collections.sort(rawCldsAsdcServiceList);
- // and then take only the services with the max version (last in the list with the same name)
- cldsAsdcServiceInfoList = new ArrayList<>();
- for (int i = 1; i < rawCldsAsdcServiceList.size(); i++) {
- // compare name with previous - if not equal, then keep the previous (it's the last with that name)
- CldsAsdcServiceInfo prev = rawCldsAsdcServiceList.get(i - 1);
- if (!rawCldsAsdcServiceList.get(i).getName().equals(prev.getName())) {
- cldsAsdcServiceInfoList.add(prev);
+ Collections.sort(rawCldsSdcServiceList);
+ // and then take only the services with the max version (last in the
+ // list with the same name)
+ cldsSdcServiceInfoList = new ArrayList<>();
+ for (int i = 1; i < rawCldsSdcServiceList.size(); i++) {
+ // compare name with previous - if not equal, then keep the
+ // previous (it's the last with that name)
+ CldsSdcServiceInfo prev = rawCldsSdcServiceList.get(i - 1);
+ if (!rawCldsSdcServiceList.get(i).getName().equals(prev.getName())) {
+ cldsSdcServiceInfoList.add(prev);
}
}
// add the last in the list
- cldsAsdcServiceInfoList.add(rawCldsAsdcServiceList.get(rawCldsAsdcServiceList.size() - 1));
+ cldsSdcServiceInfoList.add(rawCldsSdcServiceList.get(rawCldsSdcServiceList.size() - 1));
}
- return cldsAsdcServiceInfoList;
+ return cldsSdcServiceInfoList;
}
/**
- * To remove duplicate serviceUUIDs from asdc resources List
+ * To remove duplicate serviceUUIDs from sdc resources List
*
- * @param rawCldsAsdcResourceList
+ * @param rawCldsSdcResourceList
* @return
*/
- public List<CldsAsdcResource> removeDuplicateAsdcResourceInstances(List<CldsAsdcResource> rawCldsAsdcResourceList) {
- List<CldsAsdcResource> cldsAsdcResourceList = null;
- if (rawCldsAsdcResourceList != null && rawCldsAsdcResourceList.size() > 0) {
+ public List<CldsSdcResource> removeDuplicateSdcResourceInstances(List<CldsSdcResource> rawCldsSdcResourceList) {
+ List<CldsSdcResource> cldsSdcResourceList = null;
+ if (rawCldsSdcResourceList != null && rawCldsSdcResourceList.size() > 0) {
// sort list
- Collections.sort(rawCldsAsdcResourceList);
- // and then take only the resources with the max version (last in the list with the same name)
- cldsAsdcResourceList = new ArrayList<>();
- for (int i = 1; i < rawCldsAsdcResourceList.size(); i++) {
- // compare name with previous - if not equal, then keep the previous (it's the last with that name)
- CldsAsdcResource prev = rawCldsAsdcResourceList.get(i - 1);
- if (!rawCldsAsdcResourceList.get(i).getResourceInstanceName().equals(prev.getResourceInstanceName())) {
- cldsAsdcResourceList.add(prev);
+ Collections.sort(rawCldsSdcResourceList);
+ // and then take only the resources with the max version (last in
+ // the list with the same name)
+ cldsSdcResourceList = new ArrayList<>();
+ for (int i = 1; i < rawCldsSdcResourceList.size(); i++) {
+ // compare name with previous - if not equal, then keep the
+ // previous (it's the last with that name)
+ CldsSdcResource prev = rawCldsSdcResourceList.get(i - 1);
+ if (!rawCldsSdcResourceList.get(i).getResourceInstanceName().equals(prev.getResourceInstanceName())) {
+ cldsSdcResourceList.add(prev);
}
}
// add the last in the list
- cldsAsdcResourceList.add(rawCldsAsdcResourceList.get(rawCldsAsdcResourceList.size() - 1));
+ cldsSdcResourceList.add(rawCldsSdcResourceList.get(rawCldsSdcResourceList.size() - 1));
}
- return cldsAsdcResourceList;
+ return cldsSdcResourceList;
}
-
/**
* To remove duplicate basic resources with same resourceUUIDs
*
- * @param rawCldsAsdcResourceListBasicList
+ * @param rawCldsSdcResourceListBasicList
* @return
*/
- public List<CldsAsdcResourceBasicInfo> removeDuplicateAsdcResourceBasicInfo(List<CldsAsdcResourceBasicInfo> rawCldsAsdcResourceListBasicList) {
- List<CldsAsdcResourceBasicInfo> cldsAsdcResourceBasicInfoList = null;
- if (rawCldsAsdcResourceListBasicList != null && rawCldsAsdcResourceListBasicList.size() > 0) {
+ public List<CldsSdcResourceBasicInfo> removeDuplicateSdcResourceBasicInfo(
+ List<CldsSdcResourceBasicInfo> rawCldsSdcResourceListBasicList) {
+ List<CldsSdcResourceBasicInfo> cldsSdcResourceBasicInfoList = null;
+ if (rawCldsSdcResourceListBasicList != null && rawCldsSdcResourceListBasicList.size() > 0) {
// sort list
- Collections.sort(rawCldsAsdcResourceListBasicList);
- // and then take only the resources with the max version (last in the list with the same name)
- cldsAsdcResourceBasicInfoList = new ArrayList<>();
- for (int i = 1; i < rawCldsAsdcResourceListBasicList.size(); i++) {
- // compare name with previous - if not equal, then keep the previous (it's the last with that name)
- CldsAsdcResourceBasicInfo prev = rawCldsAsdcResourceListBasicList.get(i - 1);
- if (!rawCldsAsdcResourceListBasicList.get(i).getName().equals(prev.getName())) {
- cldsAsdcResourceBasicInfoList.add(prev);
+ Collections.sort(rawCldsSdcResourceListBasicList);
+ // and then take only the resources with the max version (last in
+ // the list with the same name)
+ cldsSdcResourceBasicInfoList = new ArrayList<>();
+ for (int i = 1; i < rawCldsSdcResourceListBasicList.size(); i++) {
+ // compare name with previous - if not equal, then keep the
+ // previous (it's the last with that name)
+ CldsSdcResourceBasicInfo prev = rawCldsSdcResourceListBasicList.get(i - 1);
+ if (!rawCldsSdcResourceListBasicList.get(i).getName().equals(prev.getName())) {
+ cldsSdcResourceBasicInfoList.add(prev);
}
}
// add the last in the list
- cldsAsdcResourceBasicInfoList.add(rawCldsAsdcResourceListBasicList.get(rawCldsAsdcResourceListBasicList.size() - 1));
+ cldsSdcResourceBasicInfoList
+ .add(rawCldsSdcResourceListBasicList.get(rawCldsSdcResourceListBasicList.size() - 1));
}
- return cldsAsdcResourceBasicInfoList;
+ return cldsSdcResourceBasicInfoList;
}
/**
* To get ServiceUUID by using serviceInvariantUUID
*
- * @param invariantID
+ * @param invariantId
* @return
* @throws Exception
*/
- public String getServiceUUIDFromServiceInvariantID(String invariantID) throws Exception {
- String serviceUUID = "";
- String responseStr = getAsdcServicesInformation(null);
- List<CldsAsdcServiceInfo> rawCldsAsdcServicesList = getCldsAsdcServicesListFromJson(responseStr);
- List<CldsAsdcServiceInfo> cldsAsdcServicesList = removeDuplicateServices(rawCldsAsdcServicesList);
- if (cldsAsdcServicesList != null && cldsAsdcServicesList.size() > 0) {
- for (CldsAsdcServiceInfo currCldsAsdcServiceInfo : cldsAsdcServicesList) {
- if (currCldsAsdcServiceInfo != null && currCldsAsdcServiceInfo.getInvariantUUID() != null
- && currCldsAsdcServiceInfo.getInvariantUUID().equalsIgnoreCase(invariantID)) {
- serviceUUID = currCldsAsdcServiceInfo.getUuid();
+ public String getServiceUuidFromServiceInvariantId(String invariantId) throws Exception {
+ String serviceUuid = "";
+ String responseStr = getSdcServicesInformation(null);
+ List<CldsSdcServiceInfo> rawCldsSdcServicesList = getCldsSdcServicesListFromJson(responseStr);
+ List<CldsSdcServiceInfo> cldsSdcServicesList = removeDuplicateServices(rawCldsSdcServicesList);
+ if (cldsSdcServicesList != null && cldsSdcServicesList.size() > 0) {
+ for (CldsSdcServiceInfo currCldsSdcServiceInfo : cldsSdcServicesList) {
+ if (currCldsSdcServiceInfo != null && currCldsSdcServiceInfo.getInvariantUUID() != null
+ && currCldsSdcServiceInfo.getInvariantUUID().equalsIgnoreCase(invariantId)) {
+ serviceUuid = currCldsSdcServiceInfo.getUuid();
break;
}
}
}
- return serviceUUID;
+ return serviceUuid;
}
/**
@@ -195,16 +236,17 @@
* @throws JsonMappingException
* @throws IOException
*/
- public List<CldsAsdcServiceInfo> getCldsAsdcServicesListFromJson(String jsonStr) throws IOException {
+ public List<CldsSdcServiceInfo> getCldsSdcServicesListFromJson(String jsonStr) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
if (StringUtils.isBlank(jsonStr)) {
return null;
}
- return objectMapper.readValue(jsonStr, objectMapper.getTypeFactory().constructCollectionType(List.class, CldsAsdcServiceInfo.class));
+ return objectMapper.readValue(jsonStr,
+ objectMapper.getTypeFactory().constructCollectionType(List.class, CldsSdcServiceInfo.class));
}
/**
- * To get List<CldsAsdcResourceBasicInfo> class by parsing json string
+ * To get List<CldsSdcResourceBasicInfo> class by parsing json string
*
* @param jsonStr
* @return
@@ -212,12 +254,13 @@
* @throws JsonMappingException
* @throws IOException
*/
- public List<CldsAsdcResourceBasicInfo> getAllAsdcResourcesListFromJson(String jsonStr) throws IOException {
+ public List<CldsSdcResourceBasicInfo> getAllSdcResourcesListFromJson(String jsonStr) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
if (StringUtils.isBlank(jsonStr)) {
return null;
}
- return objectMapper.readValue(jsonStr, objectMapper.getTypeFactory().constructCollectionType(List.class, CldsAsdcResourceBasicInfo.class));
+ return objectMapper.readValue(jsonStr,
+ objectMapper.getTypeFactory().constructCollectionType(List.class, CldsSdcResourceBasicInfo.class));
}
/**
@@ -229,13 +272,13 @@
* @throws JsonMappingException
* @throws IOException
*/
- public CldsAsdcResource getCldsAsdcResourceFromJson(String jsonStr) throws IOException {
+ public CldsSdcResource getCldsSdcResourceFromJson(String jsonStr) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
- return objectMapper.readValue(jsonStr, CldsAsdcResource.class);
+ return objectMapper.readValue(jsonStr, CldsSdcResource.class);
}
/**
- * To get CldsAsdcServiceDetail by parsing json string
+ * To get CldsSdcServiceDetail by parsing json string
*
* @param jsonStr
* @return
@@ -243,26 +286,32 @@
* @throws JsonMappingException
* @throws IOException
*/
- public CldsAsdcServiceDetail getCldsAsdcServiceDetailFromJson(String jsonStr) throws IOException {
+ public CldsSdcServiceDetail getCldsSdcServiceDetailFromJson(String jsonStr) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
- return objectMapper.readValue(jsonStr, CldsAsdcServiceDetail.class);
+ return objectMapper.readValue(jsonStr, CldsSdcServiceDetail.class);
}
/**
- * To upload artifact to asdc based on serviceUUID and resourcename on url
+ * To upload artifact to sdc based on serviceUUID and resourcename on url
+ *
* @param prop
* @param userid
* @param url
- * @param formatttedAsdcReq
+ * @param formatttedSdcReq
* @return
* @throws Exception
*/
- public String uploadArtifactToAsdc(ModelProperties prop, String userid, String url, String formatttedAsdcReq) throws Exception {
+ public String uploadArtifactToSdc(ModelProperties prop, String userid, String url, String formatttedSdcReq)
+ throws Exception {
+ // Verify whether it is triggered by Validation Test button from UI
+ if (prop.isTest()) {
+ return "sdc artifact upload not executed for test action";
+ }
logger.info("userid=" + userid);
- String md5Text = SdcReq.calculateMD5ByString(formatttedAsdcReq);
- byte[] postData = SdcReq.stringToByteArray(formatttedAsdcReq);
+ String md5Text = SdcReq.calculateMD5ByString(formatttedSdcReq);
+ byte[] postData = SdcReq.stringToByteArray(formatttedSdcReq);
int postDataLength = postData.length;
- HttpURLConnection conn = getAsdcHttpUrlConnection(userid, postDataLength, url, md5Text);
+ HttpURLConnection conn = getSdcHttpUrlConnection(userid, postDataLength, url, md5Text);
try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) {
wr.write(postData);
}
@@ -283,18 +332,19 @@
return responseStr;
}
- private HttpURLConnection getAsdcHttpUrlConnection(String userid, int postDataLength, String url, String md5Text) throws IOException {
+ private HttpURLConnection getSdcHttpUrlConnection(String userid, int postDataLength, String url, String md5Text)
+ throws IOException {
logger.info("userid=" + userid);
- String basicAuth = SdcReq.getAsdcBasicAuth(refProp);
- String asdcXONAPInstanceID = refProp.getStringValue("asdc.asdcX-ONAP-InstanceID");
+ String basicAuth = SdcReq.getSdcBasicAuth(refProp);
+ String sdcXonapInstanceId = refProp.getStringValue("sdc.sdcX-InstanceID");
URL urlObj = new URL(url);
HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
conn.setDoOutput(true);
- conn.setRequestProperty("X-ONAP-InstanceID", asdcXONAPInstanceID);
+ conn.setRequestProperty(refProp.getStringValue("sdc.InstanceID"), sdcXonapInstanceId);
conn.setRequestProperty("Authorization", basicAuth);
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Content-MD5", md5Text);
- conn.setRequestProperty("HTTP_CSP_USERID", userid);
+ conn.setRequestProperty("USER_ID", userid);
conn.setRequestMethod("POST");
conn.setRequestProperty("charset", "utf-8");
conn.setRequestProperty("Content-Length", Integer.toString(postDataLength));
@@ -326,8 +376,8 @@
return inStream;
}
-
- public CldsDBServiceCache getCldsDBServiceCacheUsingCldsServiceData(CldsServiceData cldsServiceData) throws IOException {
+ public CldsDBServiceCache getCldsDbServiceCacheUsingCldsServiceData(CldsServiceData cldsServiceData)
+ throws IOException {
CldsDBServiceCache cldsDbServiceCache = new CldsDBServiceCache();
cldsDbServiceCache.setCldsDataInstream(cldsServiceData);
cldsDbServiceCache.setInvariantId(cldsServiceData.getServiceInvariantUUID());
@@ -335,14 +385,14 @@
return cldsDbServiceCache;
}
- public boolean isCldsAsdcCacheDataExpired(CldsServiceData cldsServiceData) throws Exception {
+ public boolean isCldsSdcCacheDataExpired(CldsServiceData cldsServiceData) throws Exception {
boolean expired = false;
if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) {
- String cachedServiceUUID = cldsServiceData.getServiceUUID();
- String latestServiceUUID = getServiceUUIDFromServiceInvariantID(cldsServiceData.getServiceInvariantUUID());
+ String cachedServiceUuid = cldsServiceData.getServiceUUID();
+ String latestServiceUuid = getServiceUuidFromServiceInvariantId(cldsServiceData.getServiceInvariantUUID());
String defaultRecordAge = refProp.getStringValue("CLDS_SERVICE_CACHE_MAX_SECONDS");
- if ((!cachedServiceUUID.equalsIgnoreCase(latestServiceUUID)) ||
- (cldsServiceData.getAgeOfRecord() != null && cldsServiceData.getAgeOfRecord() > Long.parseLong(defaultRecordAge))) {
+ if ((!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null
+ && cldsServiceData.getAgeOfRecord() > Long.parseLong(defaultRecordAge))) {
expired = true;
}
} else {
@@ -351,29 +401,32 @@
return expired;
}
- public CldsServiceData getCldsServiceDataWithAlarmConditions(String invariantServiceUUID) throws Exception {
- String url = refProp.getStringValue("asdc.serviceUrl");
- String catalogUrl = refProp.getStringValue("asdc.catalog.url");
- String serviceUUID = getServiceUUIDFromServiceInvariantID(invariantServiceUUID);
- String serviceDetailUrl = url + "/" + serviceUUID + "/metadata";
+ public CldsServiceData getCldsServiceDataWithAlarmConditions(String invariantServiceUuid) throws Exception {
+ String url = refProp.getStringValue("sdc.serviceUrl");
+ String catalogUrl = refProp.getStringValue("sdc.catalog.url");
+ String serviceUuid = getServiceUuidFromServiceInvariantId(invariantServiceUuid);
+ String serviceDetailUrl = url + "/" + serviceUuid + "/metadata";
String responseStr = getCldsServicesOrResourcesBasedOnURL(serviceDetailUrl, false);
ObjectMapper objectMapper = new ObjectMapper();
CldsServiceData cldsServiceData = new CldsServiceData();
if (responseStr != null) {
- CldsAsdcServiceDetail cldsAsdcServiceDetail = objectMapper.readValue(responseStr, CldsAsdcServiceDetail.class);
- cldsServiceData.setServiceUUID(cldsAsdcServiceDetail.getUuid());
- cldsServiceData.setServiceInvariantUUID(cldsAsdcServiceDetail.getInvariantUUID());
+ CldsSdcServiceDetail cldsSdcServiceDetail = objectMapper.readValue(responseStr, CldsSdcServiceDetail.class);
+ cldsServiceData.setServiceUUID(cldsSdcServiceDetail.getUuid());
+ cldsServiceData.setServiceInvariantUUID(cldsSdcServiceDetail.getInvariantUUID());
- // To remove duplicate resources from serviceDetail and add valid vfs to service
- if (cldsAsdcServiceDetail != null && cldsAsdcServiceDetail.getResources() != null) {
- List<CldsAsdcResource> cldsAsdcResourceList = removeDuplicateAsdcResourceInstances(cldsAsdcServiceDetail.getResources());
- if (cldsAsdcResourceList != null && cldsAsdcResourceList.size() > 0) {
+ // To remove duplicate resources from serviceDetail and add valid
+ // vfs to service
+ if (cldsSdcServiceDetail != null && cldsSdcServiceDetail.getResources() != null) {
+ List<CldsSdcResource> cldsSdcResourceList = removeDuplicateSdcResourceInstances(
+ cldsSdcServiceDetail.getResources());
+ if (cldsSdcResourceList != null && cldsSdcResourceList.size() > 0) {
List<CldsVfData> cldsVfDataList = new ArrayList<>();
- for (CldsAsdcResource currCldsAsdcResource : cldsAsdcResourceList) {
- if (currCldsAsdcResource != null && currCldsAsdcResource.getResoucreType() != null && currCldsAsdcResource.getResoucreType().equalsIgnoreCase("VF")) {
+ for (CldsSdcResource currCldsSdcResource : cldsSdcResourceList) {
+ if (currCldsSdcResource != null && currCldsSdcResource.getResoucreType() != null
+ && currCldsSdcResource.getResoucreType().equalsIgnoreCase("VF")) {
CldsVfData currCldsVfData = new CldsVfData();
- currCldsVfData.setVfName(currCldsAsdcResource.getResourceInstanceName());
- currCldsVfData.setVfInvariantResourceUUID(currCldsAsdcResource.getResourceInvariantUUID());
+ currCldsVfData.setVfName(currCldsSdcResource.getResourceInstanceName());
+ currCldsVfData.setVfInvariantResourceUUID(currCldsSdcResource.getResourceInvariantUUID());
cldsVfDataList.add(currCldsVfData);
}
}
@@ -395,35 +448,47 @@
private void getAllVfcForVfList(List<CldsVfData> cldsVfDataList, String catalogUrl) throws IOException {
// todo : refact this..
if (cldsVfDataList != null && cldsVfDataList.size() > 0) {
- List<CldsAsdcResourceBasicInfo> allAsdcResources = getAllAsdcResources();
- String resourceVFType = "VF";
- List<CldsAsdcResourceBasicInfo> allVfResources = getAllAsdcVForVFCResourcesBasedOnResourceType(resourceVFType, allAsdcResources);
- String resourceVFCType = "VFC";
- List<CldsAsdcResourceBasicInfo> allVfcResources = getAllAsdcVForVFCResourcesBasedOnResourceType(resourceVFCType, allAsdcResources);
+ List<CldsSdcResourceBasicInfo> allVfResources = getAllSdcVForVFCResourcesBasedOnResourceType(
+ RESOURCE_VF_TYPE);
+ List<CldsSdcResourceBasicInfo> allVfcResources = getAllSdcVForVFCResourcesBasedOnResourceType(
+ RESOURCE_VFC_TYPE);
for (CldsVfData currCldsVfData : cldsVfDataList) {
if (currCldsVfData != null && currCldsVfData.getVfInvariantResourceUUID() != null) {
- String resourceUUID = getResourceUUIDFromResourceInvariantUUID(currCldsVfData.getVfInvariantResourceUUID(), allVfResources);
- if (resourceUUID != null) {
- String vfResourceUUIDUrl = catalogUrl + "resources" + "/" + resourceUUID + "/metadata";
- String vfResponse = getCldsServicesOrResourcesBasedOnURL(vfResourceUUIDUrl, false);
+ String resourceUuid = getResourceUuidFromResourceInvariantUuid(
+ currCldsVfData.getVfInvariantResourceUUID(), allVfResources);
+ if (resourceUuid != null) {
+ String vfResourceUuidUrl = catalogUrl + "resources" + "/" + resourceUuid + "/metadata";
+ String vfResponse = getCldsServicesOrResourcesBasedOnURL(vfResourceUuidUrl, false);
if (vfResponse != null) {
- List<CldsVfcData> vfcDataListFromVfResponse = getVFCDataListFromVfResponse(vfResponse);
+ // Below 2 line are to get the KPI(field path) data
+ // associated with the VF's
+ List<CldsVfKPIData> cldsVfKPIDataList = getFieldPathFromVF(vfResponse);
+ currCldsVfData.setCldsKPIList(cldsVfKPIDataList);
+
+ List<CldsVfcData> vfcDataListFromVfResponse = getVfcDataListFromVfResponse(vfResponse);
if (vfcDataListFromVfResponse != null) {
currCldsVfData.setCldsVfcs(vfcDataListFromVfResponse);
if (vfcDataListFromVfResponse.size() > 0) {
- // To get artifacts for every VFC and get alarm conditions from artifact
+ // To get artifacts for every VFC and get
+ // alarm conditions from artifact
for (CldsVfcData currCldsVfcData : vfcDataListFromVfResponse) {
- if (currCldsVfcData != null && currCldsVfcData.getVfcInvariantResourceUUID() != null) {
- String resourceVFCUUID = getResourceUUIDFromResourceInvariantUUID(currCldsVfcData.getVfcInvariantResourceUUID(), allVfcResources);
- if (resourceVFCUUID != null) {
- String vfcResourceUUIDUrl = catalogUrl + "resources" + "/" + resourceVFCUUID + "/metadata";
- String vfcResponse = getCldsServicesOrResourcesBasedOnURL(vfcResourceUUIDUrl, false);
+ if (currCldsVfcData != null
+ && currCldsVfcData.getVfcInvariantResourceUUID() != null) {
+ String resourceVfcUuid = getResourceUuidFromResourceInvariantUuid(
+ currCldsVfcData.getVfcInvariantResourceUUID(), allVfcResources);
+ if (resourceVfcUuid != null) {
+ String vfcResourceUuidUrl = catalogUrl + "resources" + "/"
+ + resourceVfcUuid + "/metadata";
+ String vfcResponse = getCldsServicesOrResourcesBasedOnURL(
+ vfcResourceUuidUrl, false);
if (vfcResponse != null) {
- List<CldsAlarmCondition> alarmCondtionsFromVfc = getAlarmCondtionsFromVfc(vfcResponse);
+ List<CldsAlarmCondition> alarmCondtionsFromVfc = getAlarmCondtionsFromVfc(
+ vfcResponse);
currCldsVfcData.setCldsAlarmConditions(alarmCondtionsFromVfc);
}
} else {
- logger.info("No resourceVFC UUID found for given invariantID:" + currCldsVfcData.getVfcInvariantResourceUUID());
+ logger.info("No resourceVFC UUID found for given invariantID:"
+ + currCldsVfcData.getVfcInvariantResourceUUID());
}
}
}
@@ -431,14 +496,15 @@
}
}
} else {
- logger.info("No resourceUUID found for given invariantREsourceUUID:" + currCldsVfData.getVfInvariantResourceUUID());
+ logger.info("No resourceUUID found for given invariantREsourceUUID:"
+ + currCldsVfData.getVfInvariantResourceUUID());
}
}
}
}
}
- private List<CldsVfcData> getVFCDataListFromVfResponse(String vfResponse) throws IOException {
+ private List<CldsVfcData> getVfcDataListFromVfResponse(String vfResponse) throws IOException {
ObjectMapper mapper = new ObjectMapper();
ObjectNode vfResponseNode = (ObjectNode) mapper.readTree(vfResponse);
ArrayNode vfcArrayNode = (ArrayNode) vfResponseNode.get("resources");
@@ -450,9 +516,9 @@
TextNode resourceTypeNode = (TextNode) currVfcNode.get("resoucreType");
if (resourceTypeNode != null && resourceTypeNode.textValue().equalsIgnoreCase("VFC")) {
TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName");
- TextNode vfcInvariantResourceUUID = (TextNode) currVfcNode.get("resourceInvariantUUID");
+ TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID");
currCldsVfcData.setVfcName(vfcResourceName.textValue());
- currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUUID.textValue());
+ currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue());
cldsVfcDataList.add(currCldsVfcData);
}
}
@@ -501,6 +567,75 @@
return cldsAlarmConditionList;
}
+ // Method to get the artifact for any particular VF
+ private List<CldsVfKPIData> getFieldPathFromVF(String vfResponse) throws JsonProcessingException, IOException {
+ List<CldsVfKPIData> cldsVfKPIDataList = new ArrayList<CldsVfKPIData>();
+ ObjectMapper mapper = new ObjectMapper();
+ ObjectNode vfResponseNode = (ObjectNode) mapper.readTree(vfResponse);
+ ArrayNode artifactsArrayNode = (ArrayNode) vfResponseNode.get("artifacts");
+
+ if (artifactsArrayNode != null && artifactsArrayNode.size() > 0) {
+ for (int index = 0; index < artifactsArrayNode.size(); index++) {
+ ObjectNode currArtifactNode = (ObjectNode) artifactsArrayNode.get(index);
+ TextNode artifactUrlNode = (TextNode) currArtifactNode.get("artifactURL");
+ TextNode artifactNameNode = (TextNode) currArtifactNode.get("artifactName");
+ String artifactName = "";
+ if (artifactNameNode != null) {
+ artifactName = artifactNameNode.textValue();
+ artifactName = artifactName.substring(artifactName.lastIndexOf(".") + 1);
+ }
+ if (artifactUrlNode != null && artifactName != null && !artifactName.isEmpty()
+ && artifactName.equalsIgnoreCase("csv")) {
+ String responsesFromArtifactUrl = getResponsesFromArtifactUrl(artifactUrlNode.textValue());
+ cldsVfKPIDataList.addAll(parseCsvToGetFieldPath(responsesFromArtifactUrl));
+ logger.info(responsesFromArtifactUrl);
+ }
+ }
+ }
+ return cldsVfKPIDataList;
+ }
+
+ private CldsVfKPIData convertCsvRecordToKpiData(CSVRecord record) {
+ if (record.size() < 6) {
+ logger.debug("invalid csv field path Record,total columns less than 6: " + record);
+ return null;
+ }
+
+ if (StringUtils.isBlank(record.get(1)) || StringUtils.isBlank(record.get(3))
+ || StringUtils.isBlank(record.get(5))) {
+ logger.debug("Invalid csv field path Record,one of column is having blank value : " + record);
+ return null;
+ }
+
+ CldsVfKPIData cldsVfKPIData = new CldsVfKPIData();
+ cldsVfKPIData.setNfNamingCode(record.get(0).trim());
+ cldsVfKPIData.setNfNamingValue(record.get(1).trim());
+
+ cldsVfKPIData.setFieldPath(record.get(2).trim());
+ cldsVfKPIData.setFieldPathValue(record.get(3).trim());
+
+ cldsVfKPIData.setThresholdName(record.get(4).trim());
+ cldsVfKPIData.setThresholdValue(record.get(5).trim());
+ return cldsVfKPIData;
+
+ }
+
+ // Method to get the artifactURL Data and set the CldsVfKPIData node
+ private List<CldsVfKPIData> parseCsvToGetFieldPath(String allFieldPathValues) throws IOException {
+ List<CldsVfKPIData> cldsVfKPIDataList = new ArrayList<CldsVfKPIData>();
+ Reader alarmReader = new StringReader(allFieldPathValues);
+ Iterable<CSVRecord> records = CSVFormat.RFC4180.parse(alarmReader);
+ if (records != null) {
+ for (CSVRecord record : records) {
+ CldsVfKPIData kpiData = this.convertCsvRecordToKpiData(record);
+ if (kpiData != null) {
+ cldsVfKPIDataList.add(kpiData);
+ }
+ }
+ }
+ return cldsVfKPIDataList;
+ }
+
private void processRecord(List<CldsAlarmCondition> cldsAlarmConditionList, CSVRecord record) {
if (record == null) {
return;
@@ -509,7 +644,8 @@
logger.debug("invalid csv alarm Record,total columns less than 5: " + record);
return;
}
- if (StringUtils.isBlank(record.get(1)) || StringUtils.isBlank(record.get(3)) || StringUtils.isBlank(record.get(4))) {
+ if (StringUtils.isBlank(record.get(1)) || StringUtils.isBlank(record.get(3))
+ || StringUtils.isBlank(record.get(4))) {
logger.debug("invalid csv alarm Record,one of column is having blank value : " + record);
return;
}
@@ -520,8 +656,8 @@
cldsAlarmConditionList.add(cldsAlarmCondition);
}
- private String getResponsesFromArtifactUrl(String artifactsUrl) throws IOException {
- String hostUrl = refProp.getStringValue("asdc.hostUrl");
+ public String getResponsesFromArtifactUrl(String artifactsUrl) throws IOException {
+ String hostUrl = refProp.getStringValue("sdc.hostUrl");
artifactsUrl = artifactsUrl.replaceAll("\"", "");
String artifactUrl = hostUrl + artifactsUrl;
logger.info("value of artifactURl:" + artifactUrl);
@@ -531,22 +667,23 @@
}
/**
- * Service to services/resources/artifacts from asdc.Pass alarmConditions as true to get alarmconditons from artifact url and else it is false
+ * Service to services/resources/artifacts from sdc.Pass alarmConditions as
+ * true to get alarmconditons from artifact url and else it is false
*
* @param url
* @param alarmConditions
* @return
* @throws IOException
*/
- private String getCldsServicesOrResourcesBasedOnURL(String url, boolean alarmConditions) throws IOException {
+ public String getCldsServicesOrResourcesBasedOnURL(String url, boolean alarmConditions) {
String responseStr;
try {
url = removeUnwantedBracesFromString(url);
URL urlObj = new URL(url);
HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
- String basicAuth = SdcReq.getAsdcBasicAuth(refProp);
- conn.setRequestProperty("X-ONAP-InstanceID", "CLAMP-Tool");
+ String basicAuth = SdcReq.getSdcBasicAuth(refProp);
+ conn.setRequestProperty(refProp.getStringValue("sdc.InstanceID"), "CLAMP-Tool");
conn.setRequestProperty("Authorization", basicAuth);
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestMethod("GET");
@@ -565,11 +702,12 @@
}
responseStr = response.toString();
in.close();
+ return responseStr;
} catch (Exception e) {
- logger.error("Exception occured :" + e.getMessage());
- throw e;
+ logger.error("Exception occurred :", e);
+ return "";
}
- return responseStr;
+
}
/**
@@ -586,40 +724,42 @@
ObjectNode globalPropsJson;
if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) {
- /**
- * Objectnode to save all byservice, byvf , byvfc and byalarm nodes
- */
+ // Objectnode to save all byservice, byvf , byvfc and byalarm nodes
ObjectNode byIdObjectNode = mapper.createObjectNode();
- /**
- * To create vf ResourceUUID node with serviceInvariantUUID
- *
- */
- ObjectNode invariantUUIDObjectNodeWithVF = createVFObjectNodeByServiceInvariantUUID(mapper, cldsServiceData);
- byIdObjectNode.putPOJO("byService", invariantUUIDObjectNodeWithVF);
- /**
- * To create byVf and vfcResourceNode with vfResourceUUID
- */
- ObjectNode vfcObjectNodeByVfUUID = createVFCObjectNodeByVfUUID(mapper, cldsServiceData.getCldsVfs());
- byIdObjectNode.putPOJO("byVf", vfcObjectNodeByVfUUID);
+ // To create vf ResourceUUID node with serviceInvariantUUID
+ ObjectNode invariantUuidObjectNodeWithVF = createVFObjectNodeByServiceInvariantUUID(mapper,
+ cldsServiceData);
+ byIdObjectNode.putPOJO("byService", invariantUuidObjectNodeWithVF);
+ // To create byVf and vfcResourceNode with vfResourceUUID
+ ObjectNode vfcObjectNodeByVfUuid = createVFCObjectNodeByVfUuid(mapper, cldsServiceData.getCldsVfs());
+ byIdObjectNode.putPOJO("byVf", vfcObjectNodeByVfUuid);
- /**
- * To create byVfc and alarmCondition with vfcResourceUUID
- */
- ObjectNode vfcResourceUUIDObjectNode = mapper.createObjectNode();
+ // To create byKpi
+ ObjectNode kpiObjectNode = mapper.createObjectNode();
if (cldsServiceData.getCldsVfs() != null && cldsServiceData.getCldsVfs().size() > 0) {
for (CldsVfData currCldsVfData : cldsServiceData.getCldsVfs()) {
if (currCldsVfData != null) {
- createAlarmCondObjectNodeByVfcUUID(mapper, vfcResourceUUIDObjectNode, currCldsVfData.getCldsVfcs());
+ createKPIObjectNodeByVfUUID(mapper, kpiObjectNode, currCldsVfData.getCldsKPIList());
}
}
}
- byIdObjectNode.putPOJO("byVfc", vfcResourceUUIDObjectNode);
+ byIdObjectNode.putPOJO("byKpi", kpiObjectNode);
- /**
- * To create byAlarmCondition with alarmConditionKey
- */
+ // To create byVfc and alarmCondition with vfcResourceUUID
+ ObjectNode vfcResourceUuidObjectNode = mapper.createObjectNode();
+ if (cldsServiceData.getCldsVfs() != null && cldsServiceData.getCldsVfs().size() > 0) {
+ for (CldsVfData currCldsVfData : cldsServiceData.getCldsVfs()) {
+ if (currCldsVfData != null) {
+ createAlarmCondObjectNodeByVfcUuid(mapper, vfcResourceUuidObjectNode,
+ currCldsVfData.getCldsVfcs());
+ }
+ }
+ }
+ byIdObjectNode.putPOJO("byVfc", vfcResourceUuidObjectNode);
+
+ // To create byAlarmCondition with alarmConditionKey
List<CldsAlarmCondition> allAlarmConditions = getAllAlarmConditionsFromCldsServiceData(cldsServiceData);
ObjectNode alarmCondObjectNodeByAlarmKey = createAlarmCondObjectNodeByAlarmKey(mapper, allAlarmConditions);
@@ -631,7 +771,7 @@
logger.info("valuie of objNode:" + globalPropsJson);
} else {
/**
- * to create json with total properties when no serviceUUID passed
+ * to create json with total properties when no serviceUUID passed
*/
globalPropsJson = (ObjectNode) mapper.readValue(globalProps, JsonNode.class);
}
@@ -639,13 +779,16 @@
return totalPropsStr;
}
- private List<CldsAlarmCondition> getAllAlarmConditionsFromCldsServiceData(CldsServiceData cldsServiceData) {
+ public List<CldsAlarmCondition> getAllAlarmConditionsFromCldsServiceData(CldsServiceData cldsServiceData) {
List<CldsAlarmCondition> alarmCondList = new ArrayList<>();
- if (cldsServiceData != null && cldsServiceData.getCldsVfs() != null && cldsServiceData.getCldsVfs().size() > 0) {
+ if (cldsServiceData != null && cldsServiceData.getCldsVfs() != null
+ && cldsServiceData.getCldsVfs().size() > 0) {
for (CldsVfData currCldsVfData : cldsServiceData.getCldsVfs()) {
- if (currCldsVfData != null && currCldsVfData.getCldsVfcs() != null && currCldsVfData.getCldsVfcs().size() > 0) {
+ if (currCldsVfData != null && currCldsVfData.getCldsVfcs() != null
+ && currCldsVfData.getCldsVfcs().size() > 0) {
for (CldsVfcData currCldsVfcData : currCldsVfData.getCldsVfcs()) {
- if (currCldsVfcData != null && currCldsVfcData.getCldsAlarmConditions() != null && currCldsVfcData.getCldsAlarmConditions().size() > 0) {
+ if (currCldsVfcData != null && currCldsVfcData.getCldsAlarmConditions() != null
+ && currCldsVfcData.getCldsAlarmConditions().size() > 0) {
for (CldsAlarmCondition currCldsAlarmCondition : currCldsVfcData.getCldsAlarmConditions()) {
if (currCldsAlarmCondition != null) {
alarmCondList.add(currCldsAlarmCondition);
@@ -659,7 +802,8 @@
return alarmCondList;
}
- private ObjectNode createAlarmCondObjectNodeByAlarmKey(ObjectMapper mapper, List<CldsAlarmCondition> cldsAlarmCondList) {
+ private ObjectNode createAlarmCondObjectNodeByAlarmKey(ObjectMapper mapper,
+ List<CldsAlarmCondition> cldsAlarmCondList) {
ObjectNode alarmCondKeyNode = mapper.createObjectNode();
if (cldsAlarmCondList != null && cldsAlarmCondList.size() > 0) {
@@ -681,39 +825,66 @@
}
private ObjectNode createVFObjectNodeByServiceInvariantUUID(ObjectMapper mapper, CldsServiceData cldsServiceData) {
- ObjectNode invariantUUIDObjectNode = mapper.createObjectNode();
+ ObjectNode invariantUuidObjectNode = mapper.createObjectNode();
ObjectNode vfObjectNode = mapper.createObjectNode();
- ObjectNode vfUUIDNode = mapper.createObjectNode();
+ ObjectNode vfUuidNode = mapper.createObjectNode();
List<CldsVfData> cldsVfsList = cldsServiceData.getCldsVfs();
if (cldsVfsList != null && cldsVfsList.size() > 0) {
for (CldsVfData currCldsVfData : cldsVfsList) {
if (currCldsVfData != null) {
- vfUUIDNode.put(currCldsVfData.getVfInvariantResourceUUID(), currCldsVfData.getVfName());
+ vfUuidNode.put(currCldsVfData.getVfInvariantResourceUUID(), currCldsVfData.getVfName());
}
}
} else {
- vfUUIDNode.put("", "");
+ vfUuidNode.put("", "");
}
- vfObjectNode.putPOJO("vf", vfUUIDNode);
- invariantUUIDObjectNode.putPOJO(cldsServiceData.getServiceInvariantUUID(), vfObjectNode);
- return invariantUUIDObjectNode;
+ vfObjectNode.putPOJO("vf", vfUuidNode);
+ invariantUuidObjectNode.putPOJO(cldsServiceData.getServiceInvariantUUID(), vfObjectNode);
+ return invariantUuidObjectNode;
}
- private void createAlarmCondObjectNodeByVfcUUID(ObjectMapper mapper, ObjectNode vfcResourceUUIDObjectNode, List<CldsVfcData> cldsVfcDataList) {
+ private void createKPIObjectNodeByVfUUID(ObjectMapper mapper, ObjectNode vfResourceUUIDObjectNode,
+ List<CldsVfKPIData> cldsVfKPIDataList) {
+ if (cldsVfKPIDataList != null && cldsVfKPIDataList.size() > 0) {
+ for (CldsVfKPIData currCldsVfKPIData : cldsVfKPIDataList) {
+ if (currCldsVfKPIData != null) {
+ ObjectNode thresholdNameObjectNode = mapper.createObjectNode();
+
+ ObjectNode fieldPathObjectNode = mapper.createObjectNode();
+ ObjectNode nfNamingCodeNode = mapper.createObjectNode();
+
+ fieldPathObjectNode.put(currCldsVfKPIData.getFieldPathValue(),
+ currCldsVfKPIData.getFieldPathValue());
+ nfNamingCodeNode.put(currCldsVfKPIData.getNfNamingValue(), currCldsVfKPIData.getNfNamingValue());
+
+ thresholdNameObjectNode.putPOJO("fieldPath", fieldPathObjectNode);
+ thresholdNameObjectNode.putPOJO("nfNamingCode", nfNamingCodeNode);
+
+ vfResourceUUIDObjectNode.putPOJO(currCldsVfKPIData.getThresholdValue(), thresholdNameObjectNode);
+ }
+ }
+ }
+ }
+
+ private void createAlarmCondObjectNodeByVfcUuid(ObjectMapper mapper, ObjectNode vfcResourceUUIDObjectNode,
+ List<CldsVfcData> cldsVfcDataList) {
ObjectNode alarmCondContsObjectNode = mapper.createObjectNode();
ObjectNode alarmCondNode = mapper.createObjectNode();
- // alarmCondNode.put("", "");
+ // alarmCondNode.put("", "");
if (cldsVfcDataList != null && cldsVfcDataList.size() > 0) {
for (CldsVfcData currCldsVfcData : cldsVfcDataList) {
if (currCldsVfcData != null) {
- if (currCldsVfcData.getCldsAlarmConditions() != null && currCldsVfcData.getCldsAlarmConditions().size() > 0) {
+ if (currCldsVfcData.getCldsAlarmConditions() != null
+ && currCldsVfcData.getCldsAlarmConditions().size() > 0) {
for (CldsAlarmCondition currCldsAlarmCondition : currCldsVfcData.getCldsAlarmConditions()) {
- alarmCondNode.put(currCldsAlarmCondition.getAlarmConditionKey(), currCldsAlarmCondition.getAlarmConditionKey());
+ alarmCondNode.put(currCldsAlarmCondition.getAlarmConditionKey(),
+ currCldsAlarmCondition.getAlarmConditionKey());
}
alarmCondContsObjectNode.putPOJO("alarmCondition", alarmCondNode);
}
alarmCondContsObjectNode.putPOJO("alarmCondition", alarmCondNode);
- vfcResourceUUIDObjectNode.putPOJO(currCldsVfcData.getVfcInvariantResourceUUID(), alarmCondContsObjectNode);
+ vfcResourceUUIDObjectNode.putPOJO(currCldsVfcData.getVfcInvariantResourceUUID(),
+ alarmCondContsObjectNode);
}
}
} else {
@@ -723,48 +894,51 @@
}
}
- private ObjectNode createVFCObjectNodeByVfUUID(ObjectMapper mapper, List<CldsVfData> cldsVfDataList) {
+ private ObjectNode createVFCObjectNodeByVfUuid(ObjectMapper mapper, List<CldsVfData> cldsVfDataList) {
ObjectNode vfUUIDObjectNode = mapper.createObjectNode();
if (cldsVfDataList != null && cldsVfDataList.size() > 0) {
for (CldsVfData currCldsVfData : cldsVfDataList) {
if (currCldsVfData != null) {
ObjectNode vfcObjectNode = mapper.createObjectNode();
- ObjectNode vfcUUIDNode = mapper.createObjectNode();
+ ObjectNode vfcUuidNode = mapper.createObjectNode();
if (currCldsVfData.getCldsVfcs() != null && currCldsVfData.getCldsVfcs().size() > 0) {
for (CldsVfcData currCldsVfcData : currCldsVfData.getCldsVfcs()) {
- vfcUUIDNode.put(currCldsVfcData.getVfcInvariantResourceUUID(), currCldsVfcData.getVfcName());
+ vfcUuidNode.put(currCldsVfcData.getVfcInvariantResourceUUID(),
+ currCldsVfcData.getVfcName());
}
} else {
- vfcUUIDNode.put("", "");
+ vfcUuidNode.put("", "");
}
- vfcObjectNode.putPOJO("vfc", vfcUUIDNode);
+ vfcObjectNode.putPOJO("vfc", vfcUuidNode);
vfUUIDObjectNode.putPOJO(currCldsVfData.getVfInvariantResourceUUID(), vfcObjectNode);
}
}
} else {
- ObjectNode vfcUUIDNode = mapper.createObjectNode();
- vfcUUIDNode.put("", "");
+ ObjectNode vfcUuidNode = mapper.createObjectNode();
+ vfcUuidNode.put("", "");
ObjectNode vfcObjectNode = mapper.createObjectNode();
- vfcObjectNode.putPOJO("vfc", vfcUUIDNode);
+ vfcObjectNode.putPOJO("vfc", vfcUuidNode);
vfUUIDObjectNode.putPOJO("", vfcObjectNode);
}
return vfUUIDObjectNode;
}
- public String getArtifactIdIfArtifactAlreadyExists(CldsAsdcServiceDetail cldsAsdcServiceDetail, String artifactName) {
- String artifactUUId = null;
+ public String getArtifactIdIfArtifactAlreadyExists(CldsSdcServiceDetail CldsSdcServiceDetail, String artifactName) {
+ String artifactUuid = null;
boolean artifactxists = false;
- if (cldsAsdcServiceDetail != null && cldsAsdcServiceDetail.getResources() != null && cldsAsdcServiceDetail.getResources().size() > 0) {
- for (CldsAsdcResource currCldsAsdcResource : cldsAsdcServiceDetail.getResources()) {
+ if (CldsSdcServiceDetail != null && CldsSdcServiceDetail.getResources() != null
+ && CldsSdcServiceDetail.getResources().size() > 0) {
+ for (CldsSdcResource currCldsSdcResource : CldsSdcServiceDetail.getResources()) {
if (artifactxists) {
break;
}
- if (currCldsAsdcResource != null && currCldsAsdcResource.getArtifacts() != null && currCldsAsdcResource.getArtifacts().size() > 0) {
- for (CldsAsdcArtifact currCldsAsdcArtifact : currCldsAsdcResource.getArtifacts()) {
- if (currCldsAsdcArtifact != null && currCldsAsdcArtifact.getArtifactName() != null) {
- if (currCldsAsdcArtifact.getArtifactName().equalsIgnoreCase(artifactName)) {
- artifactUUId = currCldsAsdcArtifact.getArtifactUUID();
+ if (currCldsSdcResource != null && currCldsSdcResource.getArtifacts() != null
+ && currCldsSdcResource.getArtifacts().size() > 0) {
+ for (CldsSdcArtifact currCldsSdcArtifact : currCldsSdcResource.getArtifacts()) {
+ if (currCldsSdcArtifact != null && currCldsSdcArtifact.getArtifactName() != null) {
+ if (currCldsSdcArtifact.getArtifactName().equalsIgnoreCase(artifactName)) {
+ artifactUuid = currCldsSdcArtifact.getArtifactUUID();
artifactxists = true;
break;
}
@@ -773,27 +947,25 @@
}
}
}
- return artifactUUId;
+ return artifactUuid;
}
- public String updateControlLoopStatusToDCAE(String dcaeUrl, String invariantResourceUUID, String invariantServiceUUID, String artifactName) {
- String baseUrl = refProp.getStringValue("asdc.serviceUrl");
- String basicAuth = SdcReq.getAsdcBasicAuth(refProp);
- String postStatusData = "{ \n" +
- "\"event\" : \"" + "Created" + "\",\n" +
- "\"serviceUUID\" : \"" + invariantServiceUUID + "\",\n" +
- "\"resourceUUID\" :\"" + invariantResourceUUID + "\",\n" +
- "\"artifactName\" : \"" + artifactName + "\",\n" +
- "} \n";
+ public String updateControlLoopStatusToDcae(String dcaeUrl, String invariantResourceUuid,
+ String invariantServiceUuid, String artifactName) {
+ String baseUrl = refProp.getStringValue("sdc.serviceUrl");
+ String basicAuth = SdcReq.getSdcBasicAuth(refProp);
+ String postStatusData = "{ \n" + "\"event\" : \"" + "Created" + "\",\n" + "\"serviceUUID\" : \""
+ + invariantServiceUuid + "\",\n" + "\"resourceUUID\" :\"" + invariantResourceUuid + "\",\n"
+ + "\"artifactName\" : \"" + artifactName + "\",\n" + "} \n";
try {
String url = baseUrl;
- if (invariantServiceUUID != null) {
+ if (invariantServiceUuid != null) {
url = dcaeUrl + "/closed-loops";
}
URL urlObj = new URL(url);
HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
- conn.setRequestProperty("X-ONAP-InstanceID", "CLAMP-Tool");
+ conn.setRequestProperty(refProp.getStringValue("sdc.InstanceID"), "CLAMP-Tool");
conn.setRequestProperty("Authorization", basicAuth);
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestMethod("POST");
@@ -811,54 +983,40 @@
return resp;
}
} catch (Exception e) {
- logger.error("not able to ger any service information from asdc for uuid:" + invariantServiceUUID);
+ logger.error("not able to ger any service information from sdc for uuid:" + invariantServiceUuid);
}
return "";
}
/**
- * To get all asdc VF/VFC Resources basic info
+ * To get all sdc VF/VFC Resources basic info
*
* @return
* @throws IOException
*/
- private List<CldsAsdcResourceBasicInfo> getAllAsdcVForVFCResourcesBasedOnResourceType(String resourceType, List<CldsAsdcResourceBasicInfo> allAsdcResources) throws IOException {
- List<CldsAsdcResourceBasicInfo> allAsdcVFResources = new ArrayList<>();
- if (allAsdcResources != null && allAsdcResources.size() > 0) {
- for (CldsAsdcResourceBasicInfo currResource : allAsdcResources) {
- if (currResource != null && currResource.getResourceType() != null && currResource.getResourceType().equalsIgnoreCase(resourceType)) {
- allAsdcVFResources.add(currResource);
- }
- }
- }
- return allAsdcVFResources;
+ private List<CldsSdcResourceBasicInfo> getAllSdcVForVFCResourcesBasedOnResourceType(String resourceType)
+ throws IOException {
+ List<CldsSdcResourceBasicInfo> allSdcResourceVFCBasicInfo = new ArrayList<CldsSdcResourceBasicInfo>();
+ String catalogUrl = refProp.getStringValue("sdc.catalog.url");
+ String resourceUrl = catalogUrl + "resources?resourceType=" + resourceType;
+ String allSdcVFCResources = getCldsServicesOrResourcesBasedOnURL(resourceUrl, false);
+
+ allSdcResourceVFCBasicInfo = getAllSdcResourcesListFromJson(allSdcVFCResources);
+ return removeDuplicateSdcResourceBasicInfo(allSdcResourceVFCBasicInfo);
}
- private String getResourceUUIDFromResourceInvariantUUID(String resourceInvariantUUID, List<CldsAsdcResourceBasicInfo> resourceInfoList) throws IOException {
- String resourceUUID = null;
+ private String getResourceUuidFromResourceInvariantUuid(String resourceInvariantUUID,
+ List<CldsSdcResourceBasicInfo> resourceInfoList) throws IOException {
+ String resourceUuid = null;
if (resourceInfoList != null && resourceInfoList.size() > 0) {
- for (CldsAsdcResourceBasicInfo currResource : resourceInfoList) {
+ for (CldsSdcResourceBasicInfo currResource : resourceInfoList) {
if (currResource != null && currResource.getInvariantUUID() != null && currResource.getUuid() != null
&& currResource.getInvariantUUID().equalsIgnoreCase(resourceInvariantUUID)) {
- resourceUUID = currResource.getUuid();
+ resourceUuid = currResource.getUuid();
break;
}
}
}
- return resourceUUID;
- }
-
- /**
- * To get all asdc Resources basic info
- *
- * @return
- * @throws IOException
- */
- private List<CldsAsdcResourceBasicInfo> getAllAsdcResources() throws IOException {
- String catalogUrl = refProp.getStringValue("asdc.catalog.url");
- String resourceUrl = catalogUrl + "resources";
- String allAsdcResources = getCldsServicesOrResourcesBasedOnURL(resourceUrl, false);
- List<CldsAsdcResourceBasicInfo> allAsdcResourceBasicInfo = getAllAsdcResourcesListFromJson(allAsdcResources);
- return removeDuplicateAsdcResourceBasicInfo(allAsdcResourceBasicInfo);
+ return resourceUuid;
}
}
diff --git a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
index 93b6e95..47a4ddc 100644
--- a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
@@ -5,16 +5,16 @@
* Copyright (C) 2017 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ * 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
+ *
+ * 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.
* ============LICENSE_END============================================
* ===================================================================
@@ -23,67 +23,71 @@
package org.onap.clamp.clds.client;
+import java.util.List;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.engine.delegate.JavaDelegate;
import org.onap.clamp.clds.client.req.SdcReq;
-import org.onap.clamp.clds.model.CldsAsdcServiceDetail;
+import org.onap.clamp.clds.model.CldsSdcServiceDetail;
import org.onap.clamp.clds.model.DcaeEvent;
import org.onap.clamp.clds.model.prop.Global;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.refprop.RefProp;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import java.util.List;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
/**
* Send control loop model to dcae proxy.
*/
public class SdcSendReqDelegate implements JavaDelegate {
- // currently uses the java.util.logging.Logger like the Camunda engine
- private static final Logger logger = LoggerFactory.getLogger(SdcSendReqDelegate.class);
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private RefProp refProp;
+ private RefProp refProp;
@Autowired
- private SdcCatalogServices asdcCatalogServices;
+ private SdcCatalogServices sdcCatalogServices;
- private String baseUrl;
- private String artifactType;
- private String locationArtifactType;
- private String artifactLabel;
- private String locationArtifactLabel;
+ private String baseUrl;
+ private String artifactType;
+ private String locationArtifactType;
+ private String artifactLabel;
+ private String locationArtifactLabel;
/**
- * Perform activity. Send to asdc proxy.
+ * Perform activity. Send to sdc proxy.
*
* @param execution
*/
+ @Override
public void execute(DelegateExecution execution) throws Exception {
String userid = (String) execution.getVariable("userid");
logger.info("userid=" + userid);
- String docText = (String) execution.getVariable("docText");
- String artifactName = execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
+ String docText = new String((byte[]) execution.getVariable("docText"));
+ String artifactName = (String) execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
execution.setVariable("artifactName", artifactName);
- getAsdcAttributes();
+ getSdcAttributes((String) execution.getVariable("controlName"));
ModelProperties prop = ModelProperties.create(execution);
String bluprintPayload = SdcReq.formatBlueprint(refProp, prop, docText);
- String formatttedAsdcReq = SdcReq.formatAsdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
- if (formatttedAsdcReq != null) {
- execution.setVariable("formattedArtifactReq", formatttedAsdcReq.getBytes());
+ String formatttedSdcReq = SdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
+ if (formatttedSdcReq != null) {
+ execution.setVariable("formattedArtifactReq", formatttedSdcReq.getBytes());
}
- List<String> asdcReqUrlsList = SdcReq.getAsdcReqUrlsList(prop, baseUrl, asdcCatalogServices, execution);
+ List<String> sdcReqUrlsList = SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
- String asdcLocationsPayload = SdcReq.formatAsdcLocationsReq(prop, artifactName);
- String locationArtifactName = execution.getVariable("controlName") + "-location.json";
- String formattedAsdcLocationReq = SdcReq.formatAsdcReq(asdcLocationsPayload, locationArtifactName, locationArtifactLabel, locationArtifactType);
- if (formattedAsdcLocationReq != null) {
- execution.setVariable("formattedLocationReq", formattedAsdcLocationReq.getBytes());
+ String sdcLocationsPayload = SdcReq.formatSdcLocationsReq(prop, artifactName);
+ String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
+ String formattedSdcLocationReq = SdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
+ locationArtifactLabel, locationArtifactType);
+ if (formattedSdcLocationReq != null) {
+ execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
}
String serviceInvariantUUID = getServiceInvariantUUIDFromProps(prop);
- uploadToAsdc(prop, serviceInvariantUUID, userid, asdcReqUrlsList, formatttedAsdcReq, formattedAsdcLocationReq, artifactName, locationArtifactName);
+ uploadToSdc(prop, serviceInvariantUUID, userid, sdcReqUrlsList, formatttedSdcReq, formattedSdcLocationReq,
+ artifactName, locationArtifactName);
}
private String getServiceInvariantUUIDFromProps(ModelProperties props) {
@@ -97,42 +101,53 @@
return invariantUUID;
}
- private void uploadToAsdc(ModelProperties prop, String serviceInvariantUUID, String userid, List<String> asdcReqUrlsList, String formatttedAsdcReq, String formattedAsdcLocationReq, String artifactName, String locationArtifactName) throws Exception {
+ private void uploadToSdc(ModelProperties prop, String serviceInvariantUUID, String userid,
+ List<String> sdcReqUrlsList, String formatttedSdcReq, String formattedSdcLocationReq, String artifactName,
+ String locationArtifactName) throws Exception {
logger.info("userid=" + userid);
- if (asdcReqUrlsList != null && asdcReqUrlsList.size() > 0) {
- for (String url : asdcReqUrlsList) {
+ if (sdcReqUrlsList != null && sdcReqUrlsList.size() > 0) {
+ for (String url : sdcReqUrlsList) {
if (url != null) {
- String originalServiceUUID = asdcCatalogServices.getServiceUUIDFromServiceInvariantID(serviceInvariantUUID);
+ String originalServiceUUID = sdcCatalogServices
+ .getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
logger.info("ServiceUUID used before upload in url:" + originalServiceUUID);
- String asdcServicesInformation = asdcCatalogServices.getAsdcServicesInformation(originalServiceUUID);
- CldsAsdcServiceDetail cldsAsdcServiceDetail = asdcCatalogServices.getCldsAsdcServiceDetailFromJson(asdcServicesInformation);
- String uploadedArtifactUUID = asdcCatalogServices.getArtifactIdIfArtifactAlreadyExists(cldsAsdcServiceDetail, artifactName);
- // Upload artifacts to asdc
+ String sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(originalServiceUUID);
+ CldsSdcServiceDetail CldsSdcServiceDetail = sdcCatalogServices
+ .getCldsSdcServiceDetailFromJson(sdcServicesInformation);
+ String uploadedArtifactUUID = sdcCatalogServices
+ .getArtifactIdIfArtifactAlreadyExists(CldsSdcServiceDetail, artifactName);
+ // Upload artifacts to sdc
String updateUrl = uploadedArtifactUUID != null ? url + "/" + uploadedArtifactUUID : url;
- String responseStr = asdcCatalogServices.uploadArtifactToAsdc(prop, userid, updateUrl, formatttedAsdcReq);
- logger.info("value of asdc Response of uploading to asdc :" + responseStr);
- String updatedServiceUUID = asdcCatalogServices.getServiceUUIDFromServiceInvariantID(serviceInvariantUUID);
+ String responseStr = sdcCatalogServices.uploadArtifactToSdc(prop, userid, updateUrl,
+ formatttedSdcReq);
+ logger.info("value of sdc Response of uploading to sdc :" + responseStr);
+ String updatedServiceUUID = sdcCatalogServices
+ .getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
if (!originalServiceUUID.equalsIgnoreCase(updatedServiceUUID)) {
url = url.replace(originalServiceUUID, updatedServiceUUID);
}
logger.info("ServiceUUID used after upload in ulr:" + updatedServiceUUID);
- asdcServicesInformation = asdcCatalogServices.getAsdcServicesInformation(updatedServiceUUID);
- cldsAsdcServiceDetail = asdcCatalogServices.getCldsAsdcServiceDetailFromJson(asdcServicesInformation);
- uploadedArtifactUUID = asdcCatalogServices.getArtifactIdIfArtifactAlreadyExists(cldsAsdcServiceDetail, locationArtifactName);
- // To send location information also to asdc
+ sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(updatedServiceUUID);
+ CldsSdcServiceDetail = sdcCatalogServices.getCldsSdcServiceDetailFromJson(sdcServicesInformation);
+ uploadedArtifactUUID = sdcCatalogServices.getArtifactIdIfArtifactAlreadyExists(CldsSdcServiceDetail,
+ locationArtifactName);
+ // To send location information also to sdc
updateUrl = uploadedArtifactUUID != null ? url + "/" + uploadedArtifactUUID : url;
- responseStr = asdcCatalogServices.uploadArtifactToAsdc(prop, userid, updateUrl, formattedAsdcLocationReq);
- logger.info("value of asdc Response of uploading location to asdc :" + responseStr);
+ responseStr = sdcCatalogServices.uploadArtifactToSdc(prop, userid, updateUrl,
+ formattedSdcLocationReq);
+ logger.info("value of sdc Response of uploading location to sdc :" + responseStr);
}
}
}
}
- private void getAsdcAttributes() {
- baseUrl = refProp.getStringValue("asdc.serviceUrl");
- artifactLabel = refProp.getStringValue("asdc.artifactLabel");
- locationArtifactLabel = refProp.getStringValue("asdc.locationArtifactLabel");
- artifactType = refProp.getStringValue("asdc.artifactType");
- locationArtifactType = refProp.getStringValue("asdc.locationArtifactType");
+ private void getSdcAttributes(String controlName) {
+ baseUrl = refProp.getStringValue("sdc.serviceUrl");
+ artifactLabel = SdcReq
+ .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
+ locationArtifactLabel = SdcReq
+ .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
+ artifactType = refProp.getStringValue("sdc.artifactType");
+ locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");
}
}
diff --git a/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java b/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java
index 45f1716..8a31a3b 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java
@@ -5,16 +5,16 @@
* Copyright (C) 2017 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ * 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
+ *
+ * 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.
* ============LICENSE_END============================================
* ===================================================================
@@ -23,6 +23,28 @@
package org.onap.clamp.clds.client.req;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.commons.codec.digest.DigestUtils;
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.onap.clamp.clds.client.SdcCatalogServices;
+import org.onap.clamp.clds.model.CldsSdcResource;
+import org.onap.clamp.clds.model.CldsSdcServiceDetail;
+import org.onap.clamp.clds.model.prop.Global;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.model.prop.StringMatch;
+import org.onap.clamp.clds.model.prop.Tca;
+import org.onap.clamp.clds.model.refprop.RefProp;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
@@ -31,29 +53,13 @@
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.dataformat.yaml.snakeyaml.Yaml;
-import org.onap.clamp.clds.client.SdcCatalogServices;
-import org.onap.clamp.clds.model.CldsAsdcResource;
-import org.onap.clamp.clds.model.CldsAsdcServiceDetail;
-import org.onap.clamp.clds.model.prop.Global;
-import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.model.prop.StringMatch;
-import org.onap.clamp.clds.model.prop.Tca;
-import org.onap.clamp.clds.model.refprop.RefProp;
-import org.apache.commons.codec.digest.DigestUtils;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.logging.Logger;
/**
- * Construct a Asdc request given CLDS objects.
+ * Construct a Sdc request given CLDS objects.
*/
public class SdcReq {
- // currently uses the java.util.logging.Logger like the Camunda engine
- private static final Logger logger = Logger.getLogger(SdcReq.class.getName());
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcReq.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
/**
* @param refProp
@@ -72,14 +78,15 @@
String yamlvalue = getYamlvalue(docText);
String updatedBlueprint = "";
- StringMatch stringMatch = prop.getStringMatch();
- Tca tca = prop.getTca();
+ StringMatch stringMatch = prop.getType(StringMatch.class);
+ Tca tca = prop.getType(Tca.class);
if (stringMatch.isFound()) {
prop.setCurrentModelElementId(stringMatch.getId());
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode serviceConfigurations = objectMapper.createObjectNode();
- StringMatchPolicyReq.appendServiceConfigurations(refProp, service, serviceConfigurations, stringMatch);
+ StringMatchPolicyReq.appendServiceConfigurations(refProp, service, serviceConfigurations, stringMatch,
+ prop);
logger.info("Value of serviceConfigurations:" + serviceConfigurations);
ObjectNode servConfNode = (ObjectNode) serviceConfigurations.get("serviceConfigurations");
@@ -111,15 +118,15 @@
// Serialiaze Yaml file
Map<String, Map> loadedYaml = (Map<String, Map>) yaml.load(yamlValue);
// Get node templates information from Yaml
- Map<String, Map> nodeTemplates = (Map<String, Map>) loadedYaml.get("node_templates");
+ Map<String, Map> nodeTemplates = loadedYaml.get("node_templates");
logger.info("value of NodeTemplates:" + nodeTemplates);
// Get StringMatch Object information from node templates of Yaml
- Map<String, Map> smObject = (Map<String, Map>) nodeTemplates.get("SM");
+ Map<String, Map> smObject = nodeTemplates.get("SM");
logger.info("value of StringMatch:" + smObject);
// Get Properties Object information from stringmatch of Yaml
- Map<String, String> propsObject = (Map<String, String>) smObject.get("properties");
+ Map<String, String> propsObject = smObject.get("properties");
logger.info("value of PropsObject:" + propsObject);
String deploymentJsonObject = propsObject.get("deployment_JSON");
@@ -154,15 +161,15 @@
// Serialiaze Yaml file
Map<String, Map> loadedYaml = (Map<String, Map>) yaml.load(yamlValue);
// Get node templates information from Yaml
- Map<String, Map> nodeTemplates = (Map<String, Map>) loadedYaml.get("node_templates");
+ Map<String, Map> nodeTemplates = loadedYaml.get("node_templates");
logger.info("value of NodeTemplates:" + nodeTemplates);
// Get Tca Object information from node templates of Yaml
- Map<String, Map> tcaObject = (Map<String, Map>) nodeTemplates.get("MTCA");
+ Map<String, Map> tcaObject = nodeTemplates.get("MTCA");
logger.info("value of Tca:" + tcaObject);
// Get Properties Object information from tca of Yaml
- Map<String, String> propsObject = (Map<String, String>) tcaObject.get("properties");
+ Map<String, String> propsObject = tcaObject.get("properties");
logger.info("value of PropsObject:" + propsObject);
- String deploymentJsonObject = (String) propsObject.get("deployment_JSON");
+ String deploymentJsonObject = propsObject.get("deployment_JSON");
logger.info("value of deploymentJson:" + deploymentJsonObject);
ObjectMapper mapper = new ObjectMapper();
@@ -182,7 +189,7 @@
return blueprint;
}
- public static String formatAsdcLocationsReq(ModelProperties prop, String artifactName) {
+ public static String formatSdcLocationsReq(ModelProperties prop, String artifactName) {
ObjectMapper objectMapper = new ObjectMapper();
Global global = prop.getGlobal();
List<String> locationsList = global.getLocation();
@@ -198,7 +205,7 @@
return locationJsonFormat;
}
- public static String formatAsdcReq(String payloadData, String artifactName, String artifactLabel,
+ public static String formatSdcReq(String payloadData, String artifactName, String artifactLabel,
String artifactType) throws IOException {
logger.info("artifact=" + payloadData);
String base64Artifact = base64Encode(payloadData);
@@ -208,7 +215,7 @@
+ "} \n";
}
- public static String getAsdcReqUrl(ModelProperties prop, String url) {
+ public static String getSdcReqUrl(ModelProperties prop, String url) {
Global globalProps = prop.getGlobal();
String serviceUUID = "";
String resourceInstanceName = "";
@@ -234,7 +241,7 @@
* @return
* @throws Exception
*/
- public static List<String> getAsdcReqUrlsList(ModelProperties prop, String baseUrl,
+ public static List<String> getSdcReqUrlsList(ModelProperties prop, String baseUrl,
SdcCatalogServices sdcCatalogServices, DelegateExecution execution) throws Exception {
// TODO : refact and regroup with very similar code
List<String> urlList = new ArrayList<>();
@@ -244,18 +251,21 @@
String serviceInvariantUUID = globalProps.getService();
execution.setVariable("serviceInvariantUUID", serviceInvariantUUID);
List<String> resourceVfList = globalProps.getResourceVf();
- String serviceUUID = sdcCatalogServices.getServiceUUIDFromServiceInvariantID(serviceInvariantUUID);
- String asdcServicesInformation = sdcCatalogServices.getAsdcServicesInformation(serviceUUID);
- CldsAsdcServiceDetail cldsAsdcServiceDetail = sdcCatalogServices.getCldsAsdcServiceDetailFromJson(asdcServicesInformation);
- if (cldsAsdcServiceDetail != null && resourceVfList != null) {
- List<CldsAsdcResource> cldsAsdcResourcesList = cldsAsdcServiceDetail.getResources();
- if (cldsAsdcResourcesList != null && cldsAsdcResourcesList.size() > 0) {
- for (CldsAsdcResource cldsAsdcResource : cldsAsdcResourcesList) {
- if (cldsAsdcResource != null && cldsAsdcResource.getResoucreType() != null
- && cldsAsdcResource.getResoucreType().equalsIgnoreCase("VF")) {
- if (resourceVfList.contains(cldsAsdcResource.getResourceInvariantUUID())) {
- String normalizedResourceInstanceName = normalizeResourceInstanceName(cldsAsdcResource.getResourceInstanceName());
- String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/" + normalizedResourceInstanceName + "/artifacts";
+ String serviceUUID = sdcCatalogServices.getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
+ String sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(serviceUUID);
+ CldsSdcServiceDetail CldsSdcServiceDetail = sdcCatalogServices
+ .getCldsSdcServiceDetailFromJson(sdcServicesInformation);
+ if (CldsSdcServiceDetail != null && resourceVfList != null) {
+ List<CldsSdcResource> CldsSdcResourcesList = CldsSdcServiceDetail.getResources();
+ if (CldsSdcResourcesList != null && CldsSdcResourcesList.size() > 0) {
+ for (CldsSdcResource CldsSdcResource : CldsSdcResourcesList) {
+ if (CldsSdcResource != null && CldsSdcResource.getResoucreType() != null
+ && CldsSdcResource.getResoucreType().equalsIgnoreCase("VF")) {
+ if (resourceVfList.contains(CldsSdcResource.getResourceInvariantUUID())) {
+ String normalizedResourceInstanceName = normalizeResourceInstanceName(
+ CldsSdcResource.getResourceInstanceName());
+ String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/"
+ + normalizedResourceInstanceName + "/artifacts";
urlList.add(svcUrl);
}
}
@@ -269,8 +279,8 @@
/**
* "Normalize" the resource instance name: - Remove spaces, underscores,
- * dashes, and periods. - make lower case This is required by ASDC when
- * using the resource instance name to upload an artifact.
+ * dashes, and periods. - make lower case This is required by SDC when using
+ * the resource instance name to upload an artifact.
*
* @param inText
* @return
@@ -323,15 +333,15 @@
}
/**
- * Return ASDC id and pw as a HTTP Basic Auth string (for example: Basic
+ * Return SDC id and pw as a HTTP Basic Auth string (for example: Basic
* dGVzdDoxMjM0NTY=).
*
* @return
*/
- public static String getAsdcBasicAuth(RefProp refProp) {
- String asdcId = refProp.getStringValue("asdc.serviceUsername");
- String asdcPw = refProp.getStringValue("asdc.servicePassword");
- String idPw = base64Encode(asdcId + ":" + asdcPw);
+ public static String getSdcBasicAuth(RefProp refProp) {
+ String sdcId = refProp.getStringValue("sdc.serviceUsername");
+ String sdcPw = refProp.getStringValue("sdc.servicePassword");
+ String idPw = base64Encode(sdcId + ":" + sdcPw);
return "Basic " + idPw;
}
diff --git a/src/main/java/org/onap/clamp/clds/model/CldsSdcArtifact.java b/src/main/java/org/onap/clamp/clds/model/CldsSdcArtifact.java
new file mode 100644
index 0000000..48f9017
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/model/CldsSdcArtifact.java
@@ -0,0 +1,112 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class CldsSdcArtifact {
+
+ private String artifactName;
+ private String artifactType;
+ private String artifactUrl;
+ private String artifactDescription;
+ private String artifactTimeout;
+ private String artifactChecksum;
+ private String artifactUuid;
+ private String artifactVersion;
+ private String generatedFromUuid;
+
+ public String getArtifactName() {
+ return artifactName;
+ }
+
+ public void setArtifactName(String artifactName) {
+ this.artifactName = artifactName;
+ }
+
+ public String getArtifactType() {
+ return artifactType;
+ }
+
+ public void setArtifactType(String artifactType) {
+ this.artifactType = artifactType;
+ }
+
+ public String getArtifactURL() {
+ return artifactUrl;
+ }
+
+ public void setArtifactURL(String artifactURL) {
+ this.artifactUrl = artifactURL;
+ }
+
+ public String getArtifactDescription() {
+ return artifactDescription;
+ }
+
+ public void setArtifactDescription(String artifactDescription) {
+ this.artifactDescription = artifactDescription;
+ }
+
+ public String getArtifactTimeout() {
+ return artifactTimeout;
+ }
+
+ public void setArtifactTimeout(String artifactTimeout) {
+ this.artifactTimeout = artifactTimeout;
+ }
+
+ public String getArtifactChecksum() {
+ return artifactChecksum;
+ }
+
+ public void setArtifactChecksum(String artifactChecksum) {
+ this.artifactChecksum = artifactChecksum;
+ }
+
+ public String getArtifactUUID() {
+ return artifactUuid;
+ }
+
+ public void setArtifactUUID(String artifactUUID) {
+ this.artifactUuid = artifactUUID;
+ }
+
+ public String getArtifactVersion() {
+ return artifactVersion;
+ }
+
+ public void setArtifactVersion(String artifactVersion) {
+ this.artifactVersion = artifactVersion;
+ }
+
+ public String getGeneratedFromUUID() {
+ return generatedFromUuid;
+ }
+
+ public void setGeneratedFromUUID(String generatedFromUUID) {
+ this.generatedFromUuid = generatedFromUUID;
+ }
+}
diff --git a/src/main/java/org/onap/clamp/clds/model/CldsSdcResource.java b/src/main/java/org/onap/clamp/clds/model/CldsSdcResource.java
new file mode 100644
index 0000000..7fa741c
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/model/CldsSdcResource.java
@@ -0,0 +1,135 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class CldsSdcResource implements Comparable<CldsSdcResource> {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsSdcResource.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+
+ private String resourceInstanceName;
+ private String resourceName;
+ private String resourceInvariantUuid;
+ private String resourceVersion;
+ private String resoucreType;
+ private String resourceUuid;
+ private List<CldsSdcArtifact> artifacts;
+
+ public String getResourceInstanceName() {
+ return resourceInstanceName;
+ }
+
+ public void setResourceInstanceName(String resourceInstanceName) {
+ this.resourceInstanceName = resourceInstanceName;
+ }
+
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ public void setResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ }
+
+ public String getResourceInvariantUUID() {
+ return resourceInvariantUuid;
+ }
+
+ public void setResourceInvariantUUID(String resourceInvariantUUID) {
+ this.resourceInvariantUuid = resourceInvariantUUID;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+ public String getResoucreType() {
+ return resoucreType;
+ }
+
+ public void setResoucreType(String resoucreType) {
+ this.resoucreType = resoucreType;
+ }
+
+ public String getResourceUUID() {
+ return resourceUuid;
+ }
+
+ public void setResourceUUID(String resourceUUID) {
+ this.resourceUuid = resourceUUID;
+ }
+
+ public List<CldsSdcArtifact> getArtifacts() {
+ return artifacts;
+ }
+
+ public void setArtifacts(List<CldsSdcArtifact> artifacts) {
+ this.artifacts = artifacts;
+ }
+
+ @Override
+ public int compareTo(CldsSdcResource in) {
+ // Compares this object with the specified object for order.
+ // Returns a negative integer, zero, or a positive integer as this
+ // object is less than, equal to, or greater than the specified object.
+
+ // first compare based on name
+ int rtn = resourceInstanceName.compareToIgnoreCase(in.resourceInstanceName);
+
+ if (rtn == 0) {
+ BigDecimal myVersion = convertVersion(resourceVersion);
+ BigDecimal inVersion = convertVersion(in.resourceVersion);
+ rtn = myVersion.compareTo(inVersion);
+ }
+ return rtn;
+ }
+
+ /**
+ * Convert version String into a BigDecimal
+ *
+ * @param versionText
+ * @return
+ */
+ private BigDecimal convertVersion(String versionText) {
+ BigDecimal rtn = new BigDecimal(0.0);
+ try {
+ rtn = new BigDecimal(versionText);
+ } catch (NumberFormatException nfe) {
+ logger.warn("SDC version=" + versionText + " is not decimal for name=" + resourceInstanceName);
+ }
+ return rtn;
+ }
+}
diff --git a/src/main/java/org/onap/clamp/clds/model/CldsSdcResourceBasicInfo.java b/src/main/java/org/onap/clamp/clds/model/CldsSdcResourceBasicInfo.java
new file mode 100644
index 0000000..80fa787
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/model/CldsSdcResourceBasicInfo.java
@@ -0,0 +1,164 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model;
+
+import java.math.BigDecimal;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class CldsSdcResourceBasicInfo implements Comparable<CldsSdcResourceBasicInfo> {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsSdcResourceBasicInfo.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+
+ private String uuid;
+ private String invariantUUID;
+ private String name;
+ private String version;
+ private String toscaModelURL;
+ private String category;
+ private String subCategory;
+ private String resourceType;
+ private String lifecycleState;
+ private String lastUpdaterUserId;
+
+ @Override
+ public int compareTo(CldsSdcResourceBasicInfo in) {
+ // Compares this object with the specified object for order.
+ // Returns a negative integer, zero, or a positive integer as this
+ // object is less than, equal to, or greater than the specified object.
+ // first compare based on name
+ int rtn = name.compareToIgnoreCase(in.name);
+
+ if (rtn == 0) {
+ BigDecimal myVersion = convertVersion(version);
+ BigDecimal inVersion = convertVersion(in.version);
+ rtn = myVersion.compareTo(inVersion);
+ }
+ return rtn;
+ }
+
+ /**
+ * Convert version String into a BigDecimal
+ *
+ * @param version
+ * @return
+ */
+ private BigDecimal convertVersion(String version) {
+ BigDecimal rtn = new BigDecimal(0.0);
+ try {
+ rtn = new BigDecimal(version);
+ } catch (NumberFormatException nfe) {
+ logger.warn("SDC version=" + version + " is not decimal for name=" + name);
+ }
+ return rtn;
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+
+ public String getInvariantUUID() {
+ return invariantUUID;
+ }
+
+ public void setInvariantUUID(String invariantUUID) {
+ this.invariantUUID = invariantUUID;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getToscaModelURL() {
+ return toscaModelURL;
+ }
+
+ public void setToscaModelURL(String toscaModelURL) {
+ this.toscaModelURL = toscaModelURL;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getSubCategory() {
+ return subCategory;
+ }
+
+ public void setSubCategory(String subCategory) {
+ this.subCategory = subCategory;
+ }
+
+ public String getResourceType() {
+ return resourceType;
+ }
+
+ public void setResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ }
+
+ public String getLifecycleState() {
+ return lifecycleState;
+ }
+
+ public void setLifecycleState(String lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ }
+
+ public String getLastUpdaterUserId() {
+ return lastUpdaterUserId;
+ }
+
+ public void setLastUpdaterUserId(String lastUpdaterUserId) {
+ this.lastUpdaterUserId = lastUpdaterUserId;
+ }
+
+ public EELFLogger getLOGGER() {
+ return logger;
+ }
+}
diff --git a/src/main/java/org/onap/clamp/clds/model/CldsSdcServiceDetail.java b/src/main/java/org/onap/clamp/clds/model/CldsSdcServiceDetail.java
new file mode 100644
index 0000000..551418b
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/model/CldsSdcServiceDetail.java
@@ -0,0 +1,142 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class CldsSdcServiceDetail {
+
+ private String uuid;
+ private String invariantUUID;
+ private String name;
+ private String version;
+ private String toscaModelURL;
+ private String category;
+ private String lifecycleState;
+ private String lastUpdaterUserId;
+ private String distributionStatus;
+ private String lastUpdaterFullName;
+ private List<CldsSdcResource> resources;
+ private List<CldsSdcArtifact> artifacts;
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+
+ public String getInvariantUUID() {
+ return invariantUUID;
+ }
+
+ public void setInvariantUUID(String invariantUUID) {
+ this.invariantUUID = invariantUUID;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getToscaModelURL() {
+ return toscaModelURL;
+ }
+
+ public void setToscaModelURL(String toscaModelURL) {
+ this.toscaModelURL = toscaModelURL;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getLifecycleState() {
+ return lifecycleState;
+ }
+
+ public void setLifecycleState(String lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ }
+
+ public String getLastUpdaterUserId() {
+ return lastUpdaterUserId;
+ }
+
+ public void setLastUpdaterUserId(String lastUpdaterUserId) {
+ this.lastUpdaterUserId = lastUpdaterUserId;
+ }
+
+ public String getDistributionStatus() {
+ return distributionStatus;
+ }
+
+ public void setDistributionStatus(String distributionStatus) {
+ this.distributionStatus = distributionStatus;
+ }
+
+ public String getLastUpdaterFullName() {
+ return lastUpdaterFullName;
+ }
+
+ public void setLastUpdaterFullName(String lastUpdaterFullName) {
+ this.lastUpdaterFullName = lastUpdaterFullName;
+ }
+
+ public List<CldsSdcResource> getResources() {
+ return resources;
+ }
+
+ public void setResources(List<CldsSdcResource> resources) {
+ this.resources = resources;
+ }
+
+ public List<CldsSdcArtifact> getArtifacts() {
+ return artifacts;
+ }
+
+ public void setArtifacts(List<CldsSdcArtifact> artifacts) {
+ this.artifacts = artifacts;
+ }
+
+}
diff --git a/src/main/java/org/onap/clamp/clds/model/CldsSdcServiceInfo.java b/src/main/java/org/onap/clamp/clds/model/CldsSdcServiceInfo.java
new file mode 100644
index 0000000..175dc75
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/model/CldsSdcServiceInfo.java
@@ -0,0 +1,153 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model;
+
+import java.math.BigDecimal;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+public class CldsSdcServiceInfo implements Comparable<CldsSdcServiceInfo> {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsSdcServiceInfo.class);
+ protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+
+ private String uuid;
+ private String invariantUUID;
+ private String name;
+ private String version;
+ private String toscaModelURL;
+ private String category;
+ private String lifecycleState;
+ private String lastUpdaterUserId;
+ private String distributionStatus;
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+
+ public String getInvariantUUID() {
+ return invariantUUID;
+ }
+
+ public void setInvariantUUID(String invariantUUID) {
+ this.invariantUUID = invariantUUID;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getToscaModelURL() {
+ return toscaModelURL;
+ }
+
+ public void setToscaModelURL(String toscaModelURL) {
+ this.toscaModelURL = toscaModelURL;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getLifecycleState() {
+ return lifecycleState;
+ }
+
+ public void setLifecycleState(String lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ }
+
+ public String getLastUpdaterUserId() {
+ return lastUpdaterUserId;
+ }
+
+ public void setLastUpdaterUserId(String lastUpdaterUserId) {
+ this.lastUpdaterUserId = lastUpdaterUserId;
+ }
+
+ public String getDistributionStatus() {
+ return distributionStatus;
+ }
+
+ public void setDistributionStatus(String distributionStatus) {
+ this.distributionStatus = distributionStatus;
+ }
+
+ /**
+ * Compare using name and then version. Version is converted to a decimal.
+ */
+ @Override
+ public int compareTo(CldsSdcServiceInfo in) {
+ // Compares this object with the specified object for order.
+ // Returns a negative integer, zero, or a positive integer as this
+ // object is less than, equal to, or greater than the specified object.
+ // first compare based on name
+ int rtn = name.compareToIgnoreCase(in.name);
+
+ if (rtn == 0) {
+ BigDecimal myVersion = convertVersion(version);
+ BigDecimal inVersion = convertVersion(in.version);
+ rtn = myVersion.compareTo(inVersion);
+ }
+
+ return rtn;
+ }
+
+ /**
+ * Convert version String into a BigDecimal
+ *
+ * @param versionText
+ * @return
+ */
+ private BigDecimal convertVersion(String versionText) {
+ try {
+ return new BigDecimal(versionText);
+ } catch (NumberFormatException nfe) {
+ logger.warn("SDC version=" + versionText + " is not decimal for name=" + name);
+ }
+ return new BigDecimal(0.0);
+ }
+
+}
diff --git a/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java b/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java
index f4d693f..e7cb5c8 100644
--- a/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java
+++ b/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java
@@ -27,8 +27,8 @@
import org.junit.Assert;
import org.junit.Test;
import org.onap.clamp.clds.client.SdcCatalogServices;
-import org.onap.clamp.clds.model.CldsAsdcResource;
-import org.onap.clamp.clds.model.CldsAsdcServiceDetail;
+import org.onap.clamp.clds.model.CldsSdcResource;
+import org.onap.clamp.clds.model.CldsSdcServiceDetail;
import org.onap.clamp.clds.model.prop.Global;
import org.onap.clamp.clds.model.prop.ModelProperties;
@@ -38,50 +38,47 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-/**
- * Created by Julien Bertozzi on 6/20/17.
- */
public class SdcReqTest {
String baseUrl = "AYBABTU";
String serviceInvariantUUID = "serviceInvariantUUID";
@Test
- public void getAsdcReqUrlsListNoGlobalPropTest() throws Exception {
+ public void getSdcReqUrlsListNoGlobalPropTest() throws Exception {
ModelProperties prop = mock(ModelProperties.class);
SdcCatalogServices sdcCatalogServices = mock(SdcCatalogServices.class);
DelegateExecution delegateExecution = mock(DelegateExecution.class);
Global global = mock(Global.class);
- CldsAsdcServiceDetail cldsAsdcServiceDetail = mock(CldsAsdcServiceDetail.class);
- CldsAsdcResource cldsAsdcResource = mock(CldsAsdcResource.class);
- List<CldsAsdcResource> cldsAsdcResources = new ArrayList<>();
- cldsAsdcResources.add(cldsAsdcResource);
+ CldsSdcServiceDetail CldsSdcServiceDetail = mock(CldsSdcServiceDetail.class);
+ CldsSdcResource CldsSdcResource = mock(CldsSdcResource.class);
+ List<CldsSdcResource> CldsSdcResources = new ArrayList<>();
+ CldsSdcResources.add(CldsSdcResource);
List<String> resourceVf = new ArrayList<>();
resourceVf.add(serviceInvariantUUID);
- Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+ Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
when(prop.getGlobal()).thenReturn(global);
- Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+ Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
when(global.getService()).thenReturn(serviceInvariantUUID);
- Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+ Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- when(sdcCatalogServices.getCldsAsdcServiceDetailFromJson(null)).thenReturn(cldsAsdcServiceDetail);
+ when(sdcCatalogServices.getCldsSdcServiceDetailFromJson(null)).thenReturn(CldsSdcServiceDetail);
when(global.getResourceVf()).thenReturn(new ArrayList<>());
- Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+ Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- when(cldsAsdcServiceDetail.getResources()).thenReturn(cldsAsdcResources);
- Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+ when(CldsSdcServiceDetail.getResources()).thenReturn(CldsSdcResources);
+ Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- when(cldsAsdcResource.getResoucreType()).thenReturn("VF");
- Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+ when(CldsSdcResource.getResoucreType()).thenReturn("VF");
+ Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
when(global.getResourceVf()).thenReturn(resourceVf);
- when(cldsAsdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUUID);
- when(cldsAsdcResource.getResourceInstanceName()).thenReturn("Resource instance name");
+ when(CldsSdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUUID);
+ when(CldsSdcResource.getResourceInstanceName()).thenReturn("Resource instance name");
List<String> expected = new ArrayList<>();
expected.add("AYBABTU/null/resourceInstances/resourceinstancename/artifacts");
- Assert.assertEquals(expected, SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution));
+ Assert.assertEquals(expected, SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution));
}
}
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java
new file mode 100644
index 0000000..159e66a
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java
@@ -0,0 +1,289 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.SdcCatalogServices;
+import org.onap.clamp.clds.model.CldsAlarmCondition;
+import org.onap.clamp.clds.model.CldsSdcResource;
+import org.onap.clamp.clds.model.CldsSdcResourceBasicInfo;
+import org.onap.clamp.clds.model.CldsSdcServiceInfo;
+import org.onap.clamp.clds.model.CldsServiceData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE
+ * Delegates in test.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class SdcCatalogServicesIT extends AbstractIT {
+ @Autowired
+ private SdcCatalogServices sdcCatalogWired = new SdcCatalogServices();
+
+ @Test
+ public void removeDuplicateServicesTest() throws Exception {
+ SdcCatalogServices catalogServices = new SdcCatalogServices();
+ List<CldsSdcServiceInfo> rawCldsSdcServiceList = new LinkedList<CldsSdcServiceInfo>();
+
+ CldsSdcServiceInfo service1a = new CldsSdcServiceInfo();
+ service1a.setName("service1");
+ service1a.setVersion("1.0");
+ service1a.setInvariantUUID("invariantUUID1.0");
+ rawCldsSdcServiceList.add(service1a);
+ rawCldsSdcServiceList.add(service1a);
+
+ CldsSdcServiceInfo service1b = new CldsSdcServiceInfo();
+ service1b.setName("service1");
+ service1b.setVersion("1.1");
+ service1b.setInvariantUUID("invariantUUID1.1");
+ rawCldsSdcServiceList.add(service1b);
+
+ CldsSdcServiceInfo service1c = new CldsSdcServiceInfo();
+ service1c.setName("service1");
+ service1c.setVersion("1.2");
+ service1c.setInvariantUUID("invariantUUID1.2");
+ rawCldsSdcServiceList.add(service1c);
+
+ CldsSdcServiceInfo service2 = new CldsSdcServiceInfo();
+ service2.setName("service2");
+ service2.setVersion("1.0");
+ service2.setInvariantUUID("invariantUUID2.0");
+ rawCldsSdcServiceList.add(service2);
+
+ List<CldsSdcServiceInfo> resultList = catalogServices.removeDuplicateServices(rawCldsSdcServiceList);
+
+ assertTrue(resultList.size() == 2);
+
+ CldsSdcServiceInfo res1, res2;
+ if ("service1".equals(resultList.get(0).getName())) {
+ res1 = resultList.get(0);
+ res2 = resultList.get(1);
+ } else {
+ res1 = resultList.get(1);
+ res2 = resultList.get(0);
+ }
+
+ assertTrue("service1".equals(res1.getName()));
+ assertTrue("1.2".equals(res1.getVersion()));
+
+ assertTrue("service2".equals(res2.getName()));
+ assertTrue("1.0".equals(res2.getVersion()));
+
+ }
+
+ @Test
+ public void removeDuplicateSdcResourceInstancesTest() {
+ SdcCatalogServices catalogServices = new SdcCatalogServices();
+ List<CldsSdcResource> rawCldsSdcResourceList = new LinkedList<CldsSdcResource>();
+
+ CldsSdcResource sdcResource1a = new CldsSdcResource();
+ sdcResource1a.setResourceInstanceName("resource1");
+ sdcResource1a.setResourceVersion("1.0");
+ rawCldsSdcResourceList.add(sdcResource1a);
+
+ CldsSdcResource sdcResource1b = new CldsSdcResource();
+ sdcResource1b.setResourceInstanceName("resource1");
+ sdcResource1b.setResourceVersion("1.1");
+ rawCldsSdcResourceList.add(sdcResource1b);
+
+ CldsSdcResource sdcResource1c = new CldsSdcResource();
+ sdcResource1c.setResourceInstanceName("resource1");
+ sdcResource1c.setResourceVersion("1.2");
+ rawCldsSdcResourceList.add(sdcResource1c);
+
+ CldsSdcResource sdcResource2 = new CldsSdcResource();
+ sdcResource2.setResourceInstanceName("resource2");
+ sdcResource2.setResourceVersion("1.0");
+ rawCldsSdcResourceList.add(sdcResource2);
+
+ List<CldsSdcResource> resultList = catalogServices.removeDuplicateSdcResourceInstances(rawCldsSdcResourceList);
+
+ CldsSdcResource res1, res2;
+ if ("resource1".equals(resultList.get(0).getResourceInstanceName())) {
+ res1 = resultList.get(0);
+ res2 = resultList.get(1);
+ } else {
+ res1 = resultList.get(1);
+ res2 = resultList.get(0);
+ }
+
+ assertTrue("resource1".equals(res1.getResourceInstanceName()));
+ assertTrue("1.2".equals(res1.getResourceVersion()));
+
+ assertTrue("resource2".equals(res2.getResourceInstanceName()));
+ assertTrue("1.0".equals(res2.getResourceVersion()));
+
+ }
+
+ @Test
+ public void removeDuplicateSdcResourceBasicInfoTest() {
+
+ SdcCatalogServices catalogServices = new SdcCatalogServices();
+ List<CldsSdcResourceBasicInfo> rawCldsSdcResourceList = new LinkedList<CldsSdcResourceBasicInfo>();
+
+ CldsSdcResourceBasicInfo sdcResource1a = new CldsSdcResourceBasicInfo();
+ sdcResource1a.setName("resource1");
+ sdcResource1a.setVersion("1.0");
+ rawCldsSdcResourceList.add(sdcResource1a);
+
+ CldsSdcResourceBasicInfo sdcResource1b = new CldsSdcResourceBasicInfo();
+ sdcResource1b.setName("resource1");
+ sdcResource1b.setVersion("1.1");
+ rawCldsSdcResourceList.add(sdcResource1b);
+
+ CldsSdcResourceBasicInfo sdcResource1c = new CldsSdcResourceBasicInfo();
+ sdcResource1c.setName("resource1");
+ sdcResource1c.setVersion("1.2");
+ rawCldsSdcResourceList.add(sdcResource1c);
+
+ CldsSdcResourceBasicInfo sdcResource2 = new CldsSdcResourceBasicInfo();
+ sdcResource2.setName("resource2");
+ sdcResource2.setVersion("1.0");
+ rawCldsSdcResourceList.add(sdcResource2);
+
+ List<CldsSdcResourceBasicInfo> resultList = catalogServices
+ .removeDuplicateSdcResourceBasicInfo(rawCldsSdcResourceList);
+
+ CldsSdcResourceBasicInfo res1, res2;
+ if ("resource1".equals(resultList.get(0).getName())) {
+ res1 = resultList.get(0);
+ res2 = resultList.get(1);
+ } else {
+ res1 = resultList.get(1);
+ res2 = resultList.get(0);
+ }
+
+ assertTrue("resource1".equals(res1.getName()));
+ assertTrue("1.2".equals(res1.getVersion()));
+
+ assertTrue("resource2".equals(res2.getName()));
+ assertTrue("1.0".equals(res2.getVersion()));
+
+ }
+
+ @Test
+ public void getServiceUuidFromServiceInvariantIdTest() throws Exception {
+ SdcCatalogServices aSpy = Mockito.spy(sdcCatalogWired);
+ Mockito.when(aSpy.getSdcServicesInformation(null)).thenReturn(IOUtils.toString(
+ SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"), "UTF-8"));
+
+ // Try the vcts4 version 1.0, this one should be replaced by 1.1 so it
+ // should not exist, returning empty string
+ String resUuidVcts4Null = aSpy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9b");
+ assertTrue("".equals(resUuidVcts4Null));
+
+ // Try the vcts4 version 1.1, this one should be there as it replaces
+ // the vcts4 v1.0
+ String resUuidVcts4Latest = aSpy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
+ assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(resUuidVcts4Latest));
+
+ // Try the vcts5 version 1.0, this one should be there
+ String resUuidVcts5 = aSpy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d8c");
+ assertTrue("29018914-966c-442d-9d08-251b9dc45b7f".equals(resUuidVcts5));
+
+ // try one that does not exist at all
+ String resUuidUnknown = aSpy.getServiceUuidFromServiceInvariantId("testuuid");
+ assertTrue("".equals(resUuidUnknown));
+
+ }
+
+ @Test
+ public void getCldsServiceDataWithAlarmConditionsTest() throws Exception {
+ SdcCatalogServices aSpy = Mockito.spy(sdcCatalogWired);
+ Mockito.when(aSpy.getSdcServicesInformation(null)).thenReturn(IOUtils.toString(
+ SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"), "UTF-8"));
+
+ // This invariant uuid is the one from vcts4 v1.1
+ String serviceResourceDetailUrl = refProp.getStringValue("sdc.serviceUrl")
+ + "/29018914-966c-442d-9d08-251b9dc45b8f/metadata";
+ Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(serviceResourceDetailUrl, false))
+ .thenReturn(IOUtils.toString(
+ SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServiceDetailsExample.json"),
+ "UTF-8"));
+
+ String resourceDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ + "resources/585822c7-4027-4f84-ba50-e9248606f136/metadata";
+ Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(resourceDetailUrl, false))
+ .thenReturn(IOUtils.toString(
+ SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcResourceDetailsExample.json"),
+ "UTF-8"));
+
+ String securityRulesDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ + "resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/metadata";
+ Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(securityRulesDetailUrl, false)).thenReturn(
+ IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcSecurityRules.json"),
+ "UTF-8"));
+
+ String cinderVolumeDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ + "resources/b4288e07-597a-44a2-aa98-ad36e551a39d/metadata";
+ Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(cinderVolumeDetailUrl, false)).thenReturn(
+ IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcCinderVolume.json"),
+ "UTF-8"));
+
+ String vfcGenericDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/metadata";
+ Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(vfcGenericDetailUrl, false)).thenReturn(IOUtils.toString(
+ SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCGenericWithAlarms.json"), "UTF-8"));
+
+ String csvDetailUrl = "/sdc/v1/catalog/resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153";
+ Mockito.when(aSpy.getResponsesFromArtifactUrl(csvDetailUrl)).thenReturn(IOUtils.toString(
+ SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcMeasurementsList.csv"), "UTF-8"));
+
+ String csvAlarmsDetailUrl = "/sdc/v1/catalog/resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392";
+ Mockito.when(aSpy.getResponsesFromArtifactUrl(csvAlarmsDetailUrl)).thenReturn(IOUtils
+ .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"));
+
+ String allVfResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VF";
+ Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(allVfResourcesDetailUrl, false)).thenReturn(IOUtils
+ .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFResources.json"), "UTF-8"));
+
+ String allVfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VFC";
+ Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl, false)).thenReturn(
+ IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"),
+ "UTF-8"));
+
+ CldsServiceData cldsServiceData = aSpy
+ .getCldsServiceDataWithAlarmConditions("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
+ assertTrue("a33ed748-3477-4434-b3f3-b5560f5e7d9c".equals(cldsServiceData.getServiceInvariantUUID()));
+ assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(cldsServiceData.getServiceUUID()));
+ assertTrue(cldsServiceData.getCldsVfs().size() == 1);
+
+ List<CldsAlarmCondition> alarmsList = aSpy.getAllAlarmConditionsFromCldsServiceData(cldsServiceData);
+ assertTrue(alarmsList.size() == 6);
+
+ }
+
+}
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcIT.java b/src/test/java/org/onap/clamp/clds/it/SdcIT.java
new file mode 100644
index 0000000..0d8acbf
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/SdcIT.java
@@ -0,0 +1,87 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.req.SdcReq;
+import org.onap.clamp.clds.model.CldsEvent;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.transform.TransformUtil;
+import org.onap.clamp.clds.model.refprop.RefProp;
+import org.onap.clamp.clds.client.SdcCatalogServices;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.junit.BeforeClass;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE Delegates in test.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class SdcIT extends AbstractIT {
+ @Autowired
+ private RefProp refProp;
+
+ @Autowired
+ private SdcCatalogServices sdcCatalogServices;
+
+ @BeforeClass
+ public static void oneTimeSetUp() {
+ System.setProperty("AJSC_CONF_HOME", System.getProperty("user.dir") + "/src/test/resources/");
+ }
+
+ @Test
+ public void testBlueprint() throws Exception {
+ String modelProp = TransformUtil.getResourceAsString("example/modelProp.json");
+ String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnProp.json");
+ String modelName = "example-model06";
+ String controlName = "ClosedLoop-FRWL-SIG04-1582f840-test-test-1234-005056a9d756";
+ String docText = TransformUtil.getResourceAsString("example/templateProp.json");
+ ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, true, modelBpmnProp, modelProp);
+ String blueprint = SdcReq.formatBlueprint(refProp, prop, docText);
+ System.out.println("blueprint=" + blueprint);
+ //assertEquals(blueprint, "");
+ }
+
+
+ @Test
+ public void testTcaBlueprint() throws Exception {
+ String modelProp = TransformUtil.getResourceAsString("example/modelPropForPolicy.json");
+ String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnPropForPolicy.json");
+ String modelName = "example-model06";
+ String controlName = "ClosedLoop-FRWL-SIG04-1582f840-test-test-1234-005056a9d756";
+
+ String docText = TransformUtil.getResourceAsString("example/templatePropForTca.json");
+
+ ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, true, modelBpmnProp, modelProp);
+ String blueprint = SdcReq.formatBlueprint(refProp, prop, docText);
+
+ System.out.println("blueprint=" + blueprint);
+ //assertEquals(blueprint, "");
+ }
+}
diff --git a/src/test/resources/example/sdc/sdcAlarmsList.csv b/src/test/resources/example/sdc/sdcAlarmsList.csv
new file mode 100644
index 0000000..247dcd9
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcAlarmsList.csv
@@ -0,0 +1,13 @@
+,EventSourceType,,AlarmCondition,Severity
+
+eventType,VPMS,alarmCondition,SwRestart,CRITICAL
+
+eventType,VPMS,alarmCondition,SwRestart,WARNING
+
+eventType,VPMS,alarmCondition,SwRestart,OK
+
+eventType,VPMS,alarmCondition,IsAlive,CRITICAL
+
+eventType,VPMS,alarmCondition,IsAlive,WARNING
+
+eventType,VPMS,alarmCondition,IsAlive,OK
diff --git a/src/test/resources/example/sdc/sdcCinderVolume.json b/src/test/resources/example/sdc/sdcCinderVolume.json
new file mode 100644
index 0000000..b5ffe64
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcCinderVolume.json
@@ -0,0 +1,15 @@
+{
+ "uuid": "b4288e07-597a-44a2-aa98-ad36e551a39d",
+ "invariantUUID": "61dc85d2-5e17-480e-a71f-8f6d59a0ead2",
+ "name": "CinderVolume",
+ "version": "5.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b4288e07-597a-44a2-aa98-ad36e551a39d/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003",
+ "lastUpdaterFullName": "Jimmy Hendrix",
+ "toscaResourceName": "org.openecomp.resource.vfc.nodes.heat.cinder.Volume",
+ "description": "Represents a server-local block storage device that provides persistent storage to guest virtual machines. "
+}
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcMeasurementsList.csv b/src/test/resources/example/sdc/sdcMeasurementsList.csv
new file mode 100644
index 0000000..c04a348
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcMeasurementsList.csv
@@ -0,0 +1,17 @@
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value,thresholdName,PMRAATTCBRA ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRASUCCCBRA')].Value,thresholdName,PMRASUCCCBRA ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMCELLDOWNTIMEAUTO')].Value,thresholdName,PMCELLDOWNTIMEAUTO ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMCELLDOWNTIMEMAN')].Value,thresholdName,PMCELLDOWNTIMEMAN ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABATT')].Value,thresholdName,PMRRCCONNESTABATT ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABSUCC')].Value,thresholdName,PMRRCCONNESTABSUCC ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMCELLDOWNTIMEAUTO')].Value,thresholdName,PMCELLDOWNTIMEAUTO ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMCELLDOWNTIMEMAN')].Value,thresholdName,PMCELLDOWNTIMEMAN ,nfNamingCode,ENBE
+
+fieldPath,$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value,thresholdName,PMRRCCONNESTABFAILCELLLATENCY,nfNamingCode,ENBE
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcResourceDetailsExample.json b/src/test/resources/example/sdc/sdcResourceDetailsExample.json
new file mode 100644
index 0000000..6087d02
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcResourceDetailsExample.json
@@ -0,0 +1,126 @@
+{
+ "uuid": "585822c7-4027-4f84-ba50-e9248606f136",
+ "invariantUUID": "585822c7-4027-4f84-ba50-e9248606f134",
+ "name": "resourceName-1",
+ "version": "3.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/585822c7-4027-4f84-ba50-e9248606f136/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Router",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743",
+ "lastUpdaterFullName": "Three ASDCMech",
+ "toscaResourceName": "org.openecomp.resource.vf.ClampDev",
+ "resources":
+ [
+ {
+ "resourceInstanceName": "abstract_virc_fe_be_0",
+ "resourceName": "CLAMP-Dev-nodes.virc_fe_be_0",
+ "resourceInvariantUUID": "133dd665-fca8-4e8b-8126-9e74a8d23bf5",
+ "resourceVersion": "1.0",
+ "resoucreType": "CVFC",
+ "resourceUUID": "a0475018-1e7e-4ddd-8bee-33cbf958c2e6"
+ },
+
+ {
+ "resourceInstanceName": "virc_fe_be_RSG",
+ "resourceName": "SecurityRules",
+ "resourceInvariantUUID": "dd31d2de-0a7f-4198-8966-3a04100fbfe3",
+ "resourceVersion": "1.0",
+ "resoucreType": "VFC",
+ "resourceUUID": "d57e57d2-e3c6-470d-8d16-e6ea05f536c5"
+ },
+
+ {
+ "resourceInstanceName": "abstract_virc_fe_be_1",
+ "resourceName": "CLAMP-Dev-nodes.virc_fe_be_1",
+ "resourceInvariantUUID": "096ff622-d7ea-4482-b7fe-8c7d99e7d7c6",
+ "resourceVersion": "1.0",
+ "resoucreType": "VFC",
+ "resourceUUID": "2c8f1219-8000-4001-aa13-496a0396d40f"
+ },
+
+ {
+ "resourceInstanceName": "virc_fe_be_volume_1",
+ "resourceName": "CinderVolume",
+ "resourceInvariantUUID": "61dc85d2-5e17-480e-a71f-8f6d59a0ead2",
+ "resourceVersion": "5.0",
+ "resoucreType": "VFC",
+ "resourceUUID": "b4288e07-597a-44a2-aa98-ad36e551a39d"
+ },
+
+ {
+ "resourceInstanceName": "virc_fe_be_volume_0",
+ "resourceName": "CinderVolume",
+ "resourceInvariantUUID": "61dc85d2-5e17-480e-a71f-8f6d59a0ead2",
+ "resourceVersion": "5.0",
+ "resoucreType": "VFC",
+ "resourceUUID": "b4288e07-597a-44a2-aa98-ad36e551a39d"
+ }
+ ],
+
+ "artifacts":
+ [
+ {
+ "artifactName": "vf-license-model.xml",
+ "artifactType": "VF_LICENSE",
+ "artifactURL": "/sdc/v1/catalog/resources/91854bc8-534f-4249-899c-bbdc06f83436/artifacts/16ec4971-5f3d-4f29-b22e-4c9ede6fdd97",
+ "artifactDescription": "VF license file",
+ "artifactChecksum": "MGUwM2MzZmMyNTBhNzlmNjY2NjJmMTk1MjMwNjRlNzY=",
+ "artifactUUID": "16ec4971-5f3d-4f29-b22e-4c9ede6fdd97",
+ "artifactVersion": "1",
+ "artifactLabel": "vflicense",
+ "artifactGroupType": "DEPLOYMENT"
+ },
+
+ {
+ "artifactName": "base_fe_be.yaml",
+ "artifactType": "HEAT",
+ "artifactURL": "/sdc/v1/catalog/resources/91854bc8-534f-4249-899c-bbdc06f83436/artifacts/18fd7704-9fe7-40c6-bde2-a1753111a1af",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": 60,
+ "artifactChecksum": "NTUyYjdlMDA1MGNmOGViZjA4OWQyOWEzNGU3NDM4OTk=",
+ "artifactUUID": "18fd7704-9fe7-40c6-bde2-a1753111a1af",
+ "artifactVersion": "2",
+ "artifactLabel": "heat1",
+ "artifactGroupType": "DEPLOYMENT"
+ },
+
+ {
+ "artifactName": "vendor-license-model.xml",
+ "artifactType": "VENDOR_LICENSE",
+ "artifactURL": "/sdc/v1/catalog/resources/91854bc8-534f-4249-899c-bbdc06f83436/artifacts/7ad72757-b35e-4084-954d-9f9d447f7a98",
+ "artifactDescription": " Vendor license file",
+ "artifactChecksum": "ZTFlYWYxYmEzY2ZiMmZmMDMyNWEyMmM2ZjI4ZjM1NTY=",
+ "artifactUUID": "7ad72757-b35e-4084-954d-9f9d447f7a98",
+ "artifactVersion": "1",
+ "artifactLabel": "vendorlicense",
+ "artifactGroupType": "DEPLOYMENT"
+ },
+
+ {
+ "artifactName": "user_data.sh",
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactURL": "/sdc/v1/catalog/resources/91854bc8-534f-4249-899c-bbdc06f83436/artifacts/dff5a82d-5456-4653-87e5-4a8c52a9a67b",
+ "artifactDescription": "created from csar",
+ "artifactChecksum": "NmUyYjBmYzk5MDk3Mjc0NWNhZGU2ZGY1ZTE3YmU3ZjU=",
+ "artifactUUID": "dff5a82d-5456-4653-87e5-4a8c52a9a67b",
+ "artifactVersion": "1",
+ "artifactLabel": "heatartifact2",
+ "artifactGroupType": "DEPLOYMENT"
+ },
+ {
+ "artifactName": "eNodeB_Thresholds.csv",
+ "artifactType": "OTHER",
+ "artifactURL": "/sdc/v1/catalog/resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153",
+ "artifactDescription": "kpis with nfNamingCode",
+ "artifactChecksum": "YTc1MDU0ZDFhODUwMGM5YmIwM2FmMWUzMmRiY2NlMGI=",
+ "artifactUUID": "d57ac7ec-f3c3-4793-983a-c75ac3a43153",
+ "artifactVersion": "1",
+ "artifactLabel": "kpis",
+ "artifactGroupType": "DEPLOYMENT"
+ }
+ ],
+
+ "description": "Description"
+}
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcSecurityRules.json b/src/test/resources/example/sdc/sdcSecurityRules.json
new file mode 100644
index 0000000..07930a2
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcSecurityRules.json
@@ -0,0 +1,15 @@
+{
+ "uuid": "d57e57d2-e3c6-470d-8d16-e6ea05f536c5",
+ "invariantUUID": "dd31d2de-0a7f-4198-8966-3a04100fbfe3",
+ "name": "SecurityRules",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/toscaModel",
+ "category": "Generic",
+ "subCategory": "Rules",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003",
+ "lastUpdaterFullName": "Jimmy Hendrix",
+ "toscaResourceName": "org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules",
+ "description": "Configuration of policy rules to be applied on ports."
+}
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcServiceDetailsExample.json b/src/test/resources/example/sdc/sdcServiceDetailsExample.json
new file mode 100644
index 0000000..820c6ca
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcServiceDetailsExample.json
@@ -0,0 +1,230 @@
+{
+ "uuid": "29018914-966c-442d-9d08-251b9dc45b8f",
+ "invariantUUID": "a33ed748-3477-4434-b3f3-b5560f5e7d9c",
+ "name": "vcts3",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8f/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Application Server",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535",
+ "lastUpdaterFullName": "MONICA LAZER",
+ "toscaResourceName": "org.openecomp.resource.vf.Vcts3",
+ "resources":
+ [
+ {
+ "resourceInstanceName": "vCTS_port_0",
+ "resourceName": "NeutronPort",
+ "resourceInvariantUUID": "10428340-a673-4377-8696-af579a2e67a8",
+ "resourceVersion": "1.0",
+ "resoucreType": "CP",
+ "resourceUUID": "fdf0a74a-4942-4af0-9395-7bce23670662"
+ },
+
+ {
+ "resourceInstanceName": "vCTS",
+ "resourceName": "Vcts3.nodes.heat.vCTS_server",
+ "resourceInvariantUUID": "ef673ad3-2d81-47b7-99c2-bdc69ae79d80",
+ "resourceVersion": "1.0",
+ "resoucreType": "VFC",
+ "resourceUUID": "ab168037-e654-4990-a188-e5d2f25a8768",
+ "artifacts":
+ [
+ {
+ "artifactName": "Fault-alarms-SDC-Albino-vCTS2.csv",
+ "artifactType": "SNMP_TRAP",
+ "artifactURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8f/resourceInstances/vcts/artifacts/b4f583b4-da0c-4bf8-81fb-415ebcd78cd4",
+ "artifactDescription": "Artifact created from csar",
+ "artifactChecksum": "NjI1ZTEyM2YxYWFhZThlMzZkNjAwZmNmMjEwNjZmMDQ=",
+ "artifactUUID": "b4f583b4-da0c-4bf8-81fb-415ebcd78cd4",
+ "artifactVersion": "1",
+ "artifactLabel": "faultalarmssdcalbinovcts2csv",
+ "artifactGroupType": "DEPLOYMENT"
+ },
+
+ {
+ "artifactName": "nagios2.csv",
+ "artifactType": "SNMP_TRAP",
+ "artifactURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8f/resourceInstances/vcts/artifacts/b1b86435-1de8-4d4a-8f69-f583a7417396",
+ "artifactDescription": "Artifact created from csar",
+ "artifactChecksum": "NzZlYTY1MmVjN2YyYWJlNWZkODIwYzBlNTFlYzg0NTA=",
+ "artifactUUID": "b1b86435-1de8-4d4a-8f69-f583a7417396",
+ "artifactVersion": "1",
+ "artifactLabel": "nagios2csv",
+ "artifactGroupType": "DEPLOYMENT"
+ }
+ ]
+ },
+
+ {
+ "resourceInstanceName": "resource-1",
+ "resourceInvariantUUID": "585822c7-4027-4f84-ba50-e9248606f134",
+ "resourceName": "resourceName-1",
+ "resoucreType": "VF",
+ "resourceUUID": "585822c7-4027-4f84-ba50-e9248606f136",
+ "resourceVersion": "3.0",
+ "category": "category",
+ "artifacts":
+ [
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Meta data for VFModule",
+ "artifactName": "vnf-module-artifact.json",
+ "artifactType": "VF_MODULES_METADATA",
+ "artifactURL": "vnf-module-artifact.json",
+ "artifactUUID": "VfArtifact-UUID2",
+ "artifactVersion": "1.0"
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Nimbus Heat OAM",
+ "artifactName": "hot-nimbus-oam_v1.0.yaml",
+ "artifactTimeout": 100,
+ "artifactType": "HEAT",
+ "artifactURL": "hot-nimbus-oam_v1.0.yaml",
+ "artifactUUID": "Artifact-UUID1",
+ "artifactVersion": "1.0",
+ "generatedArtifact": "EnvArtifact-UUID2",
+ "relatedArtifact":
+ [
+ "NestedArtifact-UUID3",
+ "ScriptArtifact-UUID1"
+ ]
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Nimbus Heat ENV OAM",
+ "artifactName": "hot-nimbus-oam_v1.0.env",
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "hot-nimbus-oam_v1.0.env",
+ "artifactUUID": "EnvArtifact-UUID2",
+ "artifactVersion": "1.0"
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Nested OAM",
+ "artifactName": "nested-oam_v1.0.yaml",
+ "artifactTimeout": 10,
+ "artifactType": "HEAT_NESTED",
+ "artifactURL": "nested-oam_v1.0.yaml",
+ "artifactUUID": "NestedArtifact-UUID3",
+ "artifactVersion": "1.0"
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Nested PSM",
+ "artifactName": "nested-psm_v1.0.yaml",
+ "artifactTimeout": 10,
+ "artifactType": "HEAT_NESTED",
+ "artifactURL": "nested-psm_v1.0.yaml",
+ "artifactUUID": "NestedArtifact-UUID4",
+ "artifactVersion": "1.0"
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Script for Nimbus",
+ "artifactName": "cloud-nimbus.sh",
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactURL": "cloud-nimbus.sh",
+ "artifactUUID": "ScriptNimbusArtifact-UUID1",
+ "artifactVersion": "1.0"
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Script for OAM",
+ "artifactName": "mount_iso_script.sh",
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactURL": "mount_iso_script.sh",
+ "artifactUUID": "ScriptArtifact-UUID1",
+ "artifactVersion": "1.0"
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Heat Vol for OAM",
+ "artifactName": "hot-nimbus-oam-volumes_v1.0.yaml",
+ "artifactTimeout": 10,
+ "artifactType": "HEAT_VOL",
+ "artifactURL": "hot-nimbus-oam-volumes_v1.0.yaml",
+ "artifactUUID": "VolumeArtifact-UUID1",
+ "artifactVersion": "1.0",
+ "generatedArtifact": "VolumeEnvArtifact-UUID1",
+ "relatedArtifact":
+ [
+ "NestedArtifact-UUID4"
+ ]
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Heat Env Vol for OAM",
+ "artifactName": "hot-nimbus-oam-volumes_v1.0.env",
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "hot-nimbus-oam-volumes_v1.0.env",
+ "artifactUUID": "VolumeEnvArtifact-UUID1",
+ "artifactVersion": "1.0"
+ },
+
+ {
+ "artifactChecksum": "CheckSum",
+ "artifactDescription": "Meta data for VFModule",
+ "artifactName": "att_nimbus_vsaegw_ht_base_v13_0728v1.yaml",
+ "artifactTimeout": 100,
+ "artifactType": "HEAT",
+ "artifactURL": "att_nimbus_vsaegw_ht_base_v13_0728v1.yaml",
+ "artifactUUID": "HeatArtifactE2E-UUIDTest",
+ "artifactVersion": "1.0"
+ }
+ ]
+ }
+ ],
+
+ "artifacts":
+ [
+ {
+ "artifactName": "vf-license-model.xml",
+ "artifactType": "VF_LICENSE",
+ "artifactURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8f/artifacts/f8fb4591-5387-4424-8e7b-e31cb34a8cc1",
+ "artifactDescription": "VF license file",
+ "artifactChecksum": "NDkxZjBiYTA3YzE4YzQ2NzVjNjU4ZjE5YTI2YzY2YjM=",
+ "artifactUUID": "f8fb4591-5387-4424-8e7b-e31cb34a8cc1",
+ "artifactVersion": "1",
+ "artifactLabel": "vflicense",
+ "artifactGroupType": "DEPLOYMENT"
+ },
+
+ {
+ "artifactName": "base_TEST.yaml",
+ "artifactType": "HEAT",
+ "artifactURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8f/artifacts/ced9f553-a9bf-48e9-bd67-7f17162665ee",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": 60,
+ "artifactChecksum": "NGVlN2MwZmE0MjU1MTZlNmRlOTMxZmM1NGZlMDk3ZDE=",
+ "artifactUUID": "ced9f553-a9bf-48e9-bd67-7f17162665ee",
+ "artifactVersion": "1",
+ "artifactLabel": "heat1",
+ "artifactGroupType": "DEPLOYMENT"
+ },
+
+ {
+ "artifactName": "vendor-license-model.xml",
+ "artifactType": "VENDOR_LICENSE",
+ "artifactURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8f/artifacts/a34232d1-60ee-4dda-add8-fbc14531ac24",
+ "artifactDescription": " Vendor license file",
+ "artifactChecksum": "OGEwYzI2Njk2YzI4YTVjMzdhMTI5ODNkNjQxMWIzZWU=",
+ "artifactUUID": "a34232d1-60ee-4dda-add8-fbc14531ac24",
+ "artifactVersion": "1",
+ "artifactLabel": "vendorlicense",
+ "artifactGroupType": "DEPLOYMENT"
+ }
+ ],
+
+ "description": "for CLAMP"
+}
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcServicesListExample.json b/src/test/resources/example/sdc/sdcServicesListExample.json
new file mode 100644
index 0000000..3c1277a
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcServicesListExample.json
@@ -0,0 +1,35 @@
+[
+ {
+ "uuid": "29018914-966c-442d-9d08-251b9dc45b8e",
+ "invariantUUID": "a33ed748-3477-4434-b3f3-b5560f5e7d9b",
+ "name": "vcts4",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8e/toscaModel",
+ "category": "Application L4+",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535",
+ "distributionStatus":"DISTRIBUTED"
+ },
+ {
+ "uuid": "29018914-966c-442d-9d08-251b9dc45b8f",
+ "invariantUUID": "a33ed748-3477-4434-b3f3-b5560f5e7d9c",
+ "name": "vcts4",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8e/toscaModel",
+ "category": "Application L4+",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535",
+ "distributionStatus":"DISTRIBUTED"
+ },
+ {
+ "uuid": "29018914-966c-442d-9d08-251b9dc45b7f",
+ "invariantUUID": "a33ed748-3477-4434-b3f3-b5560f5e7d8c",
+ "name": "vcts5",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8e/toscaModel",
+ "category": "Application L4+",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535",
+ "distributionStatus":"DISTRIBUTED"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json b/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json
new file mode 100644
index 0000000..0f9cf63
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json
@@ -0,0 +1,60 @@
+{
+ "uuid": "2c8f1219-8000-4001-aa13-496a0396d40f",
+ "invariantUUID": "096ff622-d7ea-4482-b7fe-8c7d99e7d7c6",
+ "name": "CLAMP-Dev-nodes.virc_fe_be_1",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2c8f1219-8000-4001-aa13-496a0396d40f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "CVFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08740",
+ "lastUpdaterFullName": "Zero ASDCMech",
+ "toscaResourceName": "org.openecomp.resource.vfc.ClampDev.abstract.nodes.virc_fe_be_1",
+ "resources":
+ [
+ {
+ "resourceInstanceName": "virc_fe_be_virc_fe_be_management_0_port",
+ "resourceName": "NeutronPort",
+ "resourceInvariantUUID": "10428340-a673-4377-8696-af579a2e67a8",
+ "resourceVersion": "5.0",
+ "resoucreType": "CP",
+ "resourceUUID": "045f3be0-7398-455b-8f0d-8eff2062a187"
+ },
+
+ {
+ "resourceInstanceName": "virc_fe_be_virc_fe_be_data_1_port",
+ "resourceName": "NeutronPort",
+ "resourceInvariantUUID": "10428340-a673-4377-8696-af579a2e67a8",
+ "resourceVersion": "5.0",
+ "resoucreType": "CP",
+ "resourceUUID": "045f3be0-7398-455b-8f0d-8eff2062a187"
+ },
+
+ {
+ "resourceInstanceName": "virc_fe_be",
+ "resourceName": "ClampDev.nodes.heat.virc_fe_be",
+ "resourceInvariantUUID": "e81d960d-794c-4d86-bbc4-31a2f86141ed",
+ "resourceVersion": "1.0",
+ "resoucreType": "VFC",
+ "resourceUUID": "d7646638-2572-4a94-b497-c028ac15f9ca"
+ }
+ ],
+
+ "artifacts":
+ [
+ {
+ "artifactName": "Fault-alarms-ASDC-vprobes-vLB.csv",
+ "artifactType": "SNMP_TRAP",
+ "artifactURL": "/sdc/v1/catalog/resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392",
+ "artifactDescription": "Artifact created from csar",
+ "artifactChecksum": "YWY2ZTY5NjhlOTU0YjQyZThhNTIyOGFmNzI1NTRiYzQ=",
+ "artifactUUID": "5138e316-0237-49aa-817a-b3d8eaf77392",
+ "artifactVersion": "1",
+ "artifactLabel": "faultalarmsasdcvprobesvlbcsv",
+ "artifactGroupType": "DEPLOYMENT"
+ }
+ ],
+
+ "description": "Complex node type that is used as nested type in VF"
+}
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcVFCResources.json b/src/test/resources/example/sdc/sdcVFCResources.json
new file mode 100644
index 0000000..be2ee46
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcVFCResources.json
@@ -0,0 +1,2445 @@
+[
+ {
+ "uuid": "ab168037-e654-4990-a188-e5d2f25a8768",
+ "invariantUUID": "ef673ad3-2d81-47b7-99c2-bdc69ae79d80",
+ "name": "Vcts3.nodes.heat.vCTS_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b3538c76-7d58-4e15-9a06-b51b32101965/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "da3c740a-e8af-4b85-a487-b4961b040fa3",
+ "invariantUUID": "2a477fa7-ac1b-4a62-baa1-e94c764d736b",
+ "name": "ScpTestVsp.nodes.fe_1",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/da3c740a-e8af-4b85-a487-b4961b040fa3/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "b31696d9-ad41-4cb5-bbdd-3e67845204f3",
+ "invariantUUID": "2b07e8fa-998d-4311-8ec0-61b86c798de9",
+ "name": "VpeBvRenana.nodes.vmx_vpfe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b31696d9-ad41-4cb5-bbdd-3e67845204f3/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "25b74ab6-565b-424f-bb57-b434bb2944a0",
+ "invariantUUID": "ed69ed4f-80cd-48b5-86d5-4b5de21041be",
+ "name": "VpeBvRenana.nodes.vmx_vre",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/25b74ab6-565b-424f-bb57-b434bb2944a0/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "c13dc4c4-f4cb-4a54-9198-5bce42c5df02",
+ "invariantUUID": "6a828e59-cbee-4dc2-aa67-ee35a6eafd50",
+ "name": "Dev2devnfod.nodes.VF",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c13dc4c4-f4cb-4a54-9198-5bce42c5df02/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "08e94ce5-79e8-4873-9221-eb9e869ac679",
+ "invariantUUID": "da9ea806-971a-4338-bee7-6feeea270d8a",
+ "name": "Vprobe.nodes.vprobe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/08e94ce5-79e8-4873-9221-eb9e869ac679/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "0d8f93f5-780e-47de-9b03-52ab31cb83d1",
+ "invariantUUID": "ce47044b-a00e-43d3-8aae-df047e6abe2e",
+ "name": "Vprobe.nodes.vLB",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/0d8f93f5-780e-47de-9b03-52ab31cb83d1/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "9140709a-d6a9-4690-b102-6fa96a696ce9",
+ "invariantUUID": "0c3d1be0-f4d8-4b0a-8cc8-05989de29dfc",
+ "name": "Dev2devnfod1207.nodes.VF",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/9140709a-d6a9-4690-b102-6fa96a696ce9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "6607c9fc-dc1d-4a89-ac57-b6b18fc79b69",
+ "invariantUUID": "7a17e445-0400-40bf-8bf6-91105996e19e",
+ "name": "Dev2devnfodvf.nodes.VF",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/6607c9fc-dc1d-4a89-ac57-b6b18fc79b69/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "3cb0c46c-af73-4420-ae5c-d4816b314980",
+ "invariantUUID": "0e332f76-d6f8-4e16-b2eb-bb1ccadec523",
+ "name": "volume",
+ "version": "4.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3cb0c46c-af73-4420-ae5c-d4816b314980/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "b4288e07-597a-44a2-aa98-ad36e551a39d",
+ "invariantUUID": "61dc85d2-5e17-480e-a71f-8f6d59a0ead2",
+ "name": "CinderVolume",
+ "version": "5.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b4288e07-597a-44a2-aa98-ad36e551a39d/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "156d628f-f515-4f58-bfb0-210632717ce3",
+ "invariantUUID": "cdafff07-0bbb-45f6-8a48-46ed2c98f29c",
+ "name": "VfDemor.nodes.heat.vmx_vpfe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/156d628f-f515-4f58-bfb0-210632717ce3/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "28eeb6ce-2349-4c07-80ad-f0aacbf67028",
+ "invariantUUID": "ae71f982-2393-4fd7-8a69-c0050880e7c5",
+ "name": "Dev2devipassign2407.nodes.heat.pd_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/28eeb6ce-2349-4c07-80ad-f0aacbf67028/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "f89e37a8-c5c0-4c0c-a034-f6c0ad8dd83f",
+ "invariantUUID": "59061740-4700-4800-83f1-0427f1ed1b8c",
+ "name": "Vmme1710.nodes.heat.ncb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f89e37a8-c5c0-4c0c-a034-f6c0ad8dd83f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "8263c4c5-555e-4b73-9210-ddc8dd7e42f8",
+ "invariantUUID": "a7b9db4c-685a-416c-a2ed-7711b1492cd3",
+ "name": "VnfcVspTest.nodes.heat.rdn",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8263c4c5-555e-4b73-9210-ddc8dd7e42f8/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "dd7218d7-5760-4834-b78a-33edf5eb22e7",
+ "invariantUUID": "47be1ccb-856d-4d95-9722-f9d1913fe9df",
+ "name": "VnfcVspTest.nodes.heat.prx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/dd7218d7-5760-4834-b78a-33edf5eb22e7/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "10906cdf-dbec-405a-a513-7ed2090a5adb",
+ "invariantUUID": "746709d9-38fb-40af-88b0-856f6fadeb02",
+ "name": "VfExample.nodes.heat.vmx_vpfe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/10906cdf-dbec-405a-a513-7ed2090a5adb/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "e0ee89f0-175b-47d8-8258-1ac6ea6d52a8",
+ "invariantUUID": "a0d6e34d-c260-46ff-a55f-79fbce461ec2",
+ "name": "Vmme1710.nodes.heat.fsb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e0ee89f0-175b-47d8-8258-1ac6ea6d52a8/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "e45c5438-0528-4a3d-bfa4-644b2343537c",
+ "invariantUUID": "cd1aa4fc-94bb-4e23-86b4-0e7b89c8cab8",
+ "name": "Vmme1710.nodes.heat.gpb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e45c5438-0528-4a3d-bfa4-644b2343537c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "76e5e6b8-baad-4e5e-b535-29a2ba4cb605",
+ "invariantUUID": "c76ccbe5-7087-4eb4-a0ff-2edd7d9a392c",
+ "name": "ContrailV2VirtualMachineInterface",
+ "version": "6.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/76e5e6b8-baad-4e5e-b535-29a2ba4cb605/toscaModel",
+ "category": "Generic",
+ "subCategory": "Network Elements",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "2b4c437e-9034-4ec3-b6f9-9309022673cf",
+ "invariantUUID": "39584568-5d64-4c63-9007-46b205ea4db8",
+ "name": "MadhuMdns.nodes.heat.dns",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2b4c437e-9034-4ec3-b6f9-9309022673cf/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "56cef7d0-af8c-4f18-80a2-e9aaf4366838",
+ "invariantUUID": "fab9a189-6bfa-4dfa-a4fe-2bfa4ff4e71b",
+ "name": "Alinavsp.nodes.vCTS_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/56cef7d0-af8c-4f18-80a2-e9aaf4366838/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "d7646638-2572-4a94-b497-c028ac15f9ca",
+ "invariantUUID": "e81d960d-794c-4d86-bbc4-31a2f86141ed",
+ "name": "ClampDev.nodes.heat.virc_fe_be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d7646638-2572-4a94-b497-c028ac15f9ca/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "b58f9c1a-ad21-459d-9efa-a8924147cb90",
+ "invariantUUID": "a13cd6b9-c46e-4830-88ab-2b1c710a3b51",
+ "name": "sang_AR",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b58f9c1a-ad21-459d-9efa-a8924147cb90/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "27307a62-8512-4aeb-a0ad-e8e88643c2ba",
+ "invariantUUID": "91d1bde6-eb8e-4786-b7e6-193453662014",
+ "name": "SangVsp.nodes.heat.oam",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/27307a62-8512-4aeb-a0ad-e8e88643c2ba/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "b0322a5d-b664-4c47-9827-9d7c0ca2201b",
+ "invariantUUID": "745995d0-6bf0-49d4-895f-32d554a7c333",
+ "name": "vnfConfiguration",
+ "version": "3.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b0322a5d-b664-4c47-9827-9d7c0ca2201b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "fd0e3baa-fef7-4096-be2f-a73fea2f1360",
+ "invariantUUID": "4aca7e14-e2e4-4aeb-868e-aaaecea0cc5d",
+ "name": "SangVsp.nodes.heat.prx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fd0e3baa-fef7-4096-be2f-a73fea2f1360/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "a12dad87-6120-412f-8a53-c5bb88be89a3",
+ "invariantUUID": "84a7c06f-b3a7-448b-8777-626776b0b6bd",
+ "name": "Vmme1710.nodes.heat.vlc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a12dad87-6120-412f-8a53-c5bb88be89a3/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "a14e3bbd-b04b-4924-817c-b4d13bfd8fe2",
+ "invariantUUID": "e205948e-5043-4cab-851d-e9e37f68736f",
+ "name": "VfExample.nodes.heat.vmx_vre",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a14e3bbd-b04b-4924-817c-b4d13bfd8fe2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "a902ec74-9415-4d5c-a14e-f0861a272407",
+ "invariantUUID": "40894528-2703-4652-86d0-463ac2af8c80",
+ "name": "NewVendorMdns.nodes.heat.dns",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a902ec74-9415-4d5c-a14e-f0861a272407/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "82646e24-0e94-416a-aae2-9df4b2aa6217",
+ "invariantUUID": "a966f23a-ce65-4ef1-8d9f-718510852415",
+ "name": "SangVsp.nodes.heat.rdn",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/82646e24-0e94-416a-aae2-9df4b2aa6217/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "d87ce222-309b-46ab-9be9-c2d6ef7fe65e",
+ "invariantUUID": "37fcd63a-2d6e-4c42-8d63-183711976f9b",
+ "name": "multiFlavorVFC",
+ "version": "3.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d87ce222-309b-46ab-9be9-c2d6ef7fe65e/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "c01c047d-395f-44fa-a34f-dc3f9c51c92c",
+ "invariantUUID": "23f8cb05-885d-4423-bae0-0d043f3c350c",
+ "name": "WebApplication",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c01c047d-395f-44fa-a34f-dc3f9c51c92c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "5fc1e5d4-1015-4614-b486-8727eb5e388b",
+ "invariantUUID": "19bf4492-3bdb-4d62-966d-2e2498e1891c",
+ "name": "Root",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5fc1e5d4-1015-4614-b486-8727eb5e388b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "61214be3-e560-44cc-877b-d484bcc2ee79",
+ "invariantUUID": "88a9f65b-94a0-4530-a17e-adaada70838d",
+ "name": "BlockStorage",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/61214be3-e560-44cc-877b-d484bcc2ee79/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "efb54bab-a842-48b3-842a-dffb000acf1f",
+ "invariantUUID": "cb2574f8-0b75-4ea1-8517-acba650ba72f",
+ "name": "Database",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/efb54bab-a842-48b3-842a-dffb000acf1f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Database",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "4066e7da-0dba-4d0b-b74c-c30446ed277e",
+ "invariantUUID": "75c5fbc6-4366-4163-af9c-1a43bdb90425",
+ "name": "AbstractSubstitute",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4066e7da-0dba-4d0b-b74c-c30446ed277e/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "b39e436d-47b0-4509-95d6-8a63e2c722d1",
+ "invariantUUID": "0790aa94-5b47-4100-b26a-4cabd9639698",
+ "name": "ObjectStorage",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b39e436d-47b0-4509-95d6-8a63e2c722d1/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "94b8f588-624c-4e61-9ead-32aaadd8cf65",
+ "invariantUUID": "57eecece-2079-4a5d-9627-4fde30434552",
+ "name": "ContrailNetworkRules",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/94b8f588-624c-4e61-9ead-32aaadd8cf65/toscaModel",
+ "category": "Generic",
+ "subCategory": "Rules",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "fa17c264-7f19-4919-a1d4-aab5c53b9c32",
+ "invariantUUID": "b0a7ddd2-429e-493c-ba05-fe9440b49b54",
+ "name": "SoftwareComponent",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fa17c264-7f19-4919-a1d4-aab5c53b9c32/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "76ba485f-50a3-480d-895e-5c319191bc11",
+ "invariantUUID": "cf3ccc9c-b6ea-468e-8eef-f45479978fc1",
+ "name": "Allotedresource",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/76ba485f-50a3-480d-895e-5c319191bc11/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99124"
+ },
+
+ {
+ "uuid": "1909a305-e032-46ce-9278-c751659958cc",
+ "invariantUUID": "aa9abf65-5a91-4c6f-814e-47b5fa06ccbd",
+ "name": "Allotted resource 123456",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1909a305-e032-46ce-9278-c751659958cc/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VFC",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "64fb42a4-7c3d-415b-afd0-1949abef550a",
+ "invariantUUID": "3bbcb293-24ff-4370-b46a-9233c92c1469",
+ "name": "ContrailAbstractSubstitute",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/64fb42a4-7c3d-415b-afd0-1949abef550a/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "c3ed93e4-4955-4100-8f4b-c9472cb3f28f",
+ "invariantUUID": "29e31a72-10c4-453d-99e6-76e0fe0f7a99",
+ "name": "Tuesdayvsp.nodes.vCTS_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c3ed93e4-4955-4100-8f4b-c9472cb3f28f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "a71b3246-b54e-4646-bd6f-d5a11d4878df",
+ "invariantUUID": "b91e1d84-c9de-4a37-994a-b10949a14004",
+ "name": "Monitoringvsp.nodes.vCTS_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a71b3246-b54e-4646-bd6f-d5a11d4878df/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "d36283cc-7d52-4893-8f72-fbffbbe17857",
+ "invariantUUID": "87802076-8649-4581-a540-b103ab15bd22",
+ "name": "Application",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d36283cc-7d52-4893-8f72-fbffbbe17857/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "2ef832aa-25f1-4f5a-b6d4-a6ee90011918",
+ "invariantUUID": "86ed816c-447f-477f-9810-4c07c7356c2e",
+ "name": "LoadBalancer",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2ef832aa-25f1-4f5a-b6d4-a6ee90011918/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "31060494-0c59-4c15-b4f4-34900d73b803",
+ "invariantUUID": "4950496e-6e75-47fb-8746-4895887a6d03",
+ "name": "Compute",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/31060494-0c59-4c15-b4f4-34900d73b803/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "d57e57d2-e3c6-470d-8d16-e6ea05f536c5",
+ "invariantUUID": "dd31d2de-0a7f-4198-8966-3a04100fbfe3",
+ "name": "SecurityRules",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/toscaModel",
+ "category": "Generic",
+ "subCategory": "Rules",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "db9360b9-0edb-43e1-8cf0-00bb90b7c2be",
+ "invariantUUID": "651f273d-7e1d-410c-bd88-cf8c9f713454",
+ "name": "ContrailV2NetworkRules",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/db9360b9-0edb-43e1-8cf0-00bb90b7c2be/toscaModel",
+ "category": "Generic",
+ "subCategory": "Rules",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "503948a9-03bb-4738-8464-c6e21da10792",
+ "invariantUUID": "477a2abf-10b6-4777-bd50-afdcbbe59d54",
+ "name": "Vtsbc1.nodes.heat.module_2_perimeta_sw_b_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/503948a9-03bb-4738-8464-c6e21da10792/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "e4514d83-9708-427f-a62b-f996e426ba58",
+ "invariantUUID": "5886b184-53c2-475b-8e75-b38696c10b8a",
+ "name": "GlobalCompute",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e4514d83-9708-427f-a62b-f996e426ba58/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "3ab24991-cf93-4d40-9468-52d233d36ad6",
+ "invariantUUID": "fb26e1e2-d7b0-4809-86e6-1ea31c5c6a4a",
+ "name": "FcgiOs.nodes.heat.modular_1_cgi_frwl_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3ab24991-cf93-4d40-9468-52d233d36ad6/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "930aab76-fc52-43dd-8f19-e2ce11503bb5",
+ "invariantUUID": "f66c1a6b-2ad5-43dd-8cc9-1924f7eaad0f",
+ "name": "Vtsbc1.nodes.heat.vlan_subinterface_dual",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/930aab76-fc52-43dd-8f19-e2ce11503bb5/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "fca030db-0a4b-4873-94d2-20ea6b8f259f",
+ "invariantUUID": "124d05ac-8bbc-4510-94d7-c6418ee25864",
+ "name": "Vtsbc1.nodes.heat.module_2_perimeta_sw_a_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fca030db-0a4b-4873-94d2-20ea6b8f259f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "bc74b1ae-11f7-4550-8c25-e528e749d2ea",
+ "invariantUUID": "8c0c60ea-b468-4288-9aea-3232b5e7cce7",
+ "name": "Ronytestcsar.nodes.arb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bc74b1ae-11f7-4550-8c25-e528e749d2ea/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rb844h"
+ },
+
+ {
+ "uuid": "624a7da1-68ce-4b95-9d50-6a07d645e421",
+ "invariantUUID": "7ed55927-5274-461f-8ba5-76abdcf609a8",
+ "name": "Vftest54.nodes.heat.vdns",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/624a7da1-68ce-4b95-9d50-6a07d645e421/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rb844h"
+ },
+
+ {
+ "uuid": "0c19272a-b2a2-4ffe-a6e7-ce3a683f23fc",
+ "invariantUUID": "effff7eb-737b-496d-8e23-8e31efe67dc4",
+ "name": "VmmscEca.nodes.heat.arb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/0c19272a-b2a2-4ffe-a6e7-ce3a683f23fc/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "az2497"
+ },
+
+ {
+ "uuid": "46887197-fec9-4cf5-9207-e6e7f4a6cf3a",
+ "invariantUUID": "1b8a54a2-b1ff-441c-9c6e-3aa83773e67c",
+ "name": "VfVolumeGroup.nodes.heat.sm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/46887197-fec9-4cf5-9207-e6e7f4a6cf3a/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "563ca30e-8e6f-4456-b1c0-d1a5b6b052aa",
+ "invariantUUID": "876fe041-c25a-4e71-bbd3-ce18d1951974",
+ "name": "1607MogMultiMembersVolume.nodes.heat.sm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/563ca30e-8e6f-4456-b1c0-d1a5b6b052aa/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "2437819c-3f2e-4ae8-9427-b41463a63a21",
+ "invariantUUID": "6ec6862d-1e49-479b-b792-0b02a26cf9a6",
+ "name": "VfModule2.nodes.heat.eca_trx",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2437819c-3f2e-4ae8-9427-b41463a63a21/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "3c9b6ec9-2b6a-4c81-96cd-f3e5c0264ae6",
+ "invariantUUID": "cdc19c35-bcac-4f78-a7a6-c216b374f5a3",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.nems_fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3c9b6ec9-2b6a-4c81-96cd-f3e5c0264ae6/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "612317df-67b5-487f-b592-44f5e682b0a9",
+ "invariantUUID": "3bae7612-b50d-48ed-8ae7-b6f17521395b",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.nems_be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/612317df-67b5-487f-b592-44f5e682b0a9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "77b6934c-353e-407e-aa1e-6f1288cb3969",
+ "invariantUUID": "adb87b9e-4bc2-4e96-8b1a-6176240f02a8",
+ "name": "VmogVnf1.nodes.heat.oam",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/77b6934c-353e-407e-aa1e-6f1288cb3969/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "48a5a370-d91d-4bdd-a1a0-8d82eedcced8",
+ "invariantUUID": "514ba932-1b32-447b-8655-f3a356047172",
+ "name": "VfModules.nodes.heat.mmsc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/48a5a370-d91d-4bdd-a1a0-8d82eedcced8/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "1450f9c2-b491-4ac6-a388-db4e0752a58f",
+ "invariantUUID": "5dc27c39-2540-4a2c-881c-5dab7859bbe8",
+ "name": "AppcTest.nodes.heat.be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1450f9c2-b491-4ac6-a388-db4e0752a58f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "311a159d-ea0b-494c-97dd-52683df85faf",
+ "invariantUUID": "3c28e9d7-8ccf-4249-9eab-878d6cd84dfa",
+ "name": "Ixlt1Os.nodes.heat.its",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/311a159d-ea0b-494c-97dd-52683df85faf/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "4902fae4-7f42-43c5-9472-fe12eca3f510",
+ "invariantUUID": "60d87328-e9fd-474e-aa3e-791f23e7c0fa",
+ "name": "VfVolumeGroup.nodes.heat.cm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4902fae4-7f42-43c5-9472-fe12eca3f510/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "a82e5a26-463c-4b17-9d6e-16ea1f8c0dde",
+ "invariantUUID": "dfd14d20-8d28-4ad1-a824-dd75d282f97b",
+ "name": "VfVolumeGroup.nodes.heat.ps",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a82e5a26-463c-4b17-9d6e-16ea1f8c0dde/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "d852ce5c-c883-41a1-88f9-167b8b4ff197",
+ "invariantUUID": "18f3b7e1-3dfe-4299-982a-b510c64fbfba",
+ "name": "1607MogMultiMembersVolume.nodes.heat.ps",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d852ce5c-c883-41a1-88f9-167b8b4ff197/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "b299bd46-66c1-4954-af45-2fe3188f5c5e",
+ "invariantUUID": "41aa2e0e-f003-4a03-9e9b-5dbcc968b1df",
+ "name": "VfModulesVmmsc.nodes.heat.mmsc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b299bd46-66c1-4954-af45-2fe3188f5c5e/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "f80f5252-2ecb-41e3-84d5-936586ae0a3a",
+ "invariantUUID": "d90ae454-bc1c-44ef-a680-74b6a09d3123",
+ "name": "VfModules.nodes.heat.lb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f80f5252-2ecb-41e3-84d5-936586ae0a3a/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "9e4b96d7-5701-413e-8461-4cac258365ca",
+ "invariantUUID": "1a81fcd0-d62c-4ba3-b988-40a1a5986cb0",
+ "name": "TestPort.nodes.heat.be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/9e4b96d7-5701-413e-8461-4cac258365ca/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "4d2bfb6f-9276-447b-b145-7f7856af9a6c",
+ "invariantUUID": "32a90486-5e0d-4977-b445-a9a165295841",
+ "name": "VmogVnf1.nodes.heat.pps",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4d2bfb6f-9276-447b-b145-7f7856af9a6c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "a614b20e-9c45-4163-b673-38f0068c5365",
+ "invariantUUID": "160c57a3-d87f-4f7f-a38a-7ecf6b48d42b",
+ "name": "Vmmsc.nodes.heat.nems_fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a614b20e-9c45-4163-b673-38f0068c5365/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "fbad0868-45e9-433b-ada7-070e88c09672",
+ "invariantUUID": "8242ebe6-8333-4e4a-a997-31a391cbcc1f",
+ "name": "VmogVnf1.nodes.heat.mba",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fbad0868-45e9-433b-ada7-070e88c09672/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "e50cbfd4-a860-441b-b1ff-c654c3222ad6",
+ "invariantUUID": "03c1f631-d057-4246-b276-2a0e18119a21",
+ "name": "Pxtc.nodes.heat.mon",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e50cbfd4-a860-441b-b1ff-c654c3222ad6/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "21aaf7bf-5af9-4b1a-9850-f4a5e95f185e",
+ "invariantUUID": "9bc1d654-b663-4170-89f2-e8dabb6d2342",
+ "name": "VmogVnf1.nodes.heat.ppd",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/21aaf7bf-5af9-4b1a-9850-f4a5e95f185e/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "9d4a37d7-3c9b-4dad-abb6-26b50b15da8b",
+ "invariantUUID": "419651d6-45e9-453a-95cd-4f9f0934fa9c",
+ "name": "Pxtc.nodes.heat.adm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/9d4a37d7-3c9b-4dad-abb6-26b50b15da8b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "bb8fddbf-e011-4fed-9f36-181478f4e56c",
+ "invariantUUID": "552c6aa1-0a27-45f7-a0e5-9a380a592ad4",
+ "name": "TestPort.nodes.heat.fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bb8fddbf-e011-4fed-9f36-181478f4e56c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "2bb496fb-6ede-42e0-957e-bd80fa2e8aa1",
+ "invariantUUID": "2a6f0a0e-2a76-43d1-9489-3ad4fdf82cdc",
+ "name": "Runtime",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2bb496fb-6ede-42e0-957e-bd80fa2e8aa1/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "a5226541-363b-4d78-8f52-06d421795457",
+ "invariantUUID": "3b05cf5e-5120-4aef-a213-f3d984c83efe",
+ "name": "TestPort.nodes.fe_1",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a5226541-363b-4d78-8f52-06d421795457/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "f58b4bcf-baec-4c11-a6d0-0e92d4629fd2",
+ "invariantUUID": "603b02a9-afa2-487b-a8c1-90c84c21d4cf",
+ "name": "Vpe.nodes.vmx_vre",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f58b4bcf-baec-4c11-a6d0-0e92d4629fd2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "30db70cc-17b8-4c39-a848-5f629e9a929e",
+ "invariantUUID": "2a3100da-581e-438a-915c-3c67ecbe8f9c",
+ "name": "AppcTest.nodes.fe_0",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/30db70cc-17b8-4c39-a848-5f629e9a929e/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "52398d14-90d0-4d3a-ac84-10b525e79e3c",
+ "invariantUUID": "8f061343-5507-4232-ba34-4933bb2b85d3",
+ "name": "Fdnt.nodes.heat.mod_vmsi_dnt_fw_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/52398d14-90d0-4d3a-ac84-10b525e79e3c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "d0deff85-ca52-4c86-8ca7-a02deddba983",
+ "invariantUUID": "c62a62a8-f021-4e22-85b9-45a19ddd8597",
+ "name": "Vtsbc1.nodes.heat.module_1_perimeta_sw_a_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d0deff85-ca52-4c86-8ca7-a02deddba983/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "25f77df9-f94a-4458-9699-5f483167f700",
+ "invariantUUID": "8d8675b4-88f8-43ad-aeed-3cb2e96d8f67",
+ "name": "DBMS",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/25f77df9-f94a-4458-9699-5f483167f700/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "1ce8b11c-589c-4359-9caa-590a43fb53ec",
+ "invariantUUID": "e4d4a041-38f9-416b-a97d-56eaca20cb88",
+ "name": "WebServer",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1ce8b11c-589c-4359-9caa-590a43fb53ec/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "f27b3a9c-b815-42fe-83c6-da86c18a63a6",
+ "invariantUUID": "0d4bec79-e600-4647-a9a6-35d1f1dd0802",
+ "name": "Fdnt1.nodes.heat.mod_vmsi_dnt_fw_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f27b3a9c-b815-42fe-83c6-da86c18a63a6/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "c63814fe-9d50-4283-8229-ede6a5961de9",
+ "invariantUUID": "b9ffe743-22ae-4bdc-a36a-0fd7cdab97ff",
+ "name": "Mazav.nodes.heat.mod_vmsi_dnt_fw_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c63814fe-9d50-4283-8229-ede6a5961de9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "23f4bcc5-c6e1-4fdd-b45b-29eb3f82af2f",
+ "invariantUUID": "62545a84-126c-4563-b72b-7414cb2db617",
+ "name": "Fdnt1234.nodes.heat.mod_vmsi_dnt_fw_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/23f4bcc5-c6e1-4fdd-b45b-29eb3f82af2f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "e63ef8ed-d40d-4b5f-99da-898fbe4b051b",
+ "invariantUUID": "f747ebd4-8c02-4653-b919-7fd894450970",
+ "name": "Vtsbc1.nodes.heat.module_1_perimeta_sw_b_child",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e63ef8ed-d40d-4b5f-99da-898fbe4b051b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "292d2d83-c33b-4c22-8341-4401194a6499",
+ "invariantUUID": "b27f9b4b-2188-4edb-9e05-83680b5462b2",
+ "name": "VfModules1.nodes.heat.nems_fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/292d2d83-c33b-4c22-8341-4401194a6499/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "af51c072-1754-4db3-97be-179ab7433295",
+ "invariantUUID": "b615bc4f-c4e3-4381-9467-f6674f4fe5ce",
+ "name": "VfModules1.nodes.heat.eca_trx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/af51c072-1754-4db3-97be-179ab7433295/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "5ec9fb9f-fa32-48e8-a317-8be839e15d30",
+ "invariantUUID": "ed2acd41-d9f5-475b-b696-9ff2ac93714e",
+ "name": "VmmscEca.nodes.arb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5ec9fb9f-fa32-48e8-a317-8be839e15d30/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "az2497"
+ },
+
+ {
+ "uuid": "3a8230f1-dd86-42f8-9d73-c239bc5c74e8",
+ "invariantUUID": "d7070c39-94e0-48f5-befc-c3b02a2dc1ec",
+ "name": "VfModulesVmmsc.nodes.heat.nems_be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3a8230f1-dd86-42f8-9d73-c239bc5c74e8/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "5658235d-6a1e-47fe-8e5f-9e081a11b713",
+ "invariantUUID": "7da4de5f-f610-4b0a-a57f-e76bf05e676e",
+ "name": "TestPort.nodes.fe_0",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5658235d-6a1e-47fe-8e5f-9e081a11b713/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "d4979513-3719-4076-bbc1-5a4fe040ddc6",
+ "invariantUUID": "54f5d6e1-0290-473f-b7ef-ae5e31cd9985",
+ "name": "Vpe.nodes.vmx_vpfe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d4979513-3719-4076-bbc1-5a4fe040ddc6/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "a450b1ba-2d69-44e7-8934-1d21952ba6c9",
+ "invariantUUID": "350c8017-ab5a-4633-bbe0-e7bbf71f0887",
+ "name": "TestConsol.nodes.fe_1",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a450b1ba-2d69-44e7-8934-1d21952ba6c9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "c0bd2a8b-9dc3-4819-8ab1-11175ae06ef1",
+ "invariantUUID": "427b34d8-ca6d-4c94-8e4f-06d63a1e24eb",
+ "name": "NovaServer",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c0bd2a8b-9dc3-4819-8ab1-11175ae06ef1/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "5f6ccc29-6f6c-41cf-b995-73c58e7278d2",
+ "invariantUUID": "044d46c6-e6ae-4569-b7b4-3d0f626612de",
+ "name": "1607MogMultiMembersVolume.nodes.heat.oam",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5f6ccc29-6f6c-41cf-b995-73c58e7278d2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "5d6fdb58-1166-41b6-aab7-260e494ccc58",
+ "invariantUUID": "04c36447-22a8-4039-a7ae-fe134907061e",
+ "name": "ContrailCompute",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5d6fdb58-1166-41b6-aab7-260e494ccc58/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "jh0003"
+ },
+
+ {
+ "uuid": "57d4264b-3175-4a31-9515-f23c0318930f",
+ "invariantUUID": "8e3f2465-5f4f-4c9e-9b84-5db3d5d6a3f8",
+ "name": "VmogVnf1.nodes.heat.pcm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/57d4264b-3175-4a31-9515-f23c0318930f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "dcd62b53-a045-4864-9ed3-aaf722fec10a",
+ "invariantUUID": "046a066f-8398-4271-aa1a-4ccdd46c892f",
+ "name": "VfModuleLdsa.nodes.heat.ltm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/dcd62b53-a045-4864-9ed3-aaf722fec10a/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "aa00977d-ff67-473a-acb8-bb24db037a0b",
+ "invariantUUID": "989ae5c8-e9b9-4e14-b609-1fde2ad4e165",
+ "name": "TestConsol.nodes.fe_0",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/aa00977d-ff67-473a-acb8-bb24db037a0b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "cb08bf67-6fc9-44ae-ae31-ab619cfd94af",
+ "invariantUUID": "7555d6be-ef04-4812-b58c-b00eda9e1a1b",
+ "name": "AppcTest.nodes.fe_1",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/cb08bf67-6fc9-44ae-ae31-ab619cfd94af/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "cc3a0064-e9d4-421e-ba14-ce340adb7ed9",
+ "invariantUUID": "341b0751-e9b7-4f80-935e-30aef979ea71",
+ "name": "VfModules.nodes.heat.nems_fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/cc3a0064-e9d4-421e-ba14-ce340adb7ed9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "1f927980-bd8d-4a0c-8002-8f550e52efbe",
+ "invariantUUID": "d9f0237f-acaa-411f-843c-952d4d746d9f",
+ "name": "Vmmsc.nodes.heat.eca_trx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1f927980-bd8d-4a0c-8002-8f550e52efbe/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "6d1669d1-be78-47e7-aed4-d5a2267c81d4",
+ "invariantUUID": "b2a066b5-0062-482a-af23-9e1426f7d388",
+ "name": "VfVolumeGroup.nodes.heat.pd",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/6d1669d1-be78-47e7-aed4-d5a2267c81d4/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "bd9e5061-40dc-42ca-8d77-c606a24c8bfd",
+ "invariantUUID": "a8cf5282-4c83-4540-8515-c315328af01d",
+ "name": "VfNoLicense.nodes.pcm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bd9e5061-40dc-42ca-8d77-c606a24c8bfd/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "68ea026e-c604-47b5-9cd1-524a58714a14",
+ "invariantUUID": "d0aa37ea-a1f8-41dc-9b5f-7e54f4d7a2f3",
+ "name": "VfNoLicense.nodes.pps",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/68ea026e-c604-47b5-9cd1-524a58714a14/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "bc3a8aae-7f94-4dac-b819-d37a077a08fc",
+ "invariantUUID": "0df5de75-3a9e-439a-8d03-e989ca7bfe16",
+ "name": "ScpTestVsp.nodes.fe_0",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bc3a8aae-7f94-4dac-b819-d37a077a08fc/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "8ba3f710-58d4-4d60-9384-1dad449d381a",
+ "invariantUUID": "4a34455c-b9c0-48ca-90ac-debf986ac028",
+ "name": "VfDemor.nodes.vmx_vre",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8ba3f710-58d4-4d60-9384-1dad449d381a/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "0a09e932-9fde-4e52-b7e3-2e542b61faa0",
+ "invariantUUID": "dd97be59-be12-4749-b8ca-1bf0d7336573",
+ "name": "ScpTestVsp.nodes.smp",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/0a09e932-9fde-4e52-b7e3-2e542b61faa0/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "fa6ca25b-4578-4093-b8a2-031cb8f1f481",
+ "invariantUUID": "c88282f0-608d-4aef-b12f-dda9474f55f9",
+ "name": "VscpaasTest2.nodes.fe_1",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fa6ca25b-4578-4093-b8a2-031cb8f1f481/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "f11a8681-ab58-4f0d-8387-76ecdfa31073",
+ "invariantUUID": "2a94a311-f6bb-48b6-a458-e4b1a724bfc7",
+ "name": "VscpaasTest2.nodes.smp",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f11a8681-ab58-4f0d-8387-76ecdfa31073/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "4b1cca9b-23a0-4037-aaf3-ce5cd7c91851",
+ "invariantUUID": "98e3949f-1047-4cd8-9b8b-6b6c55d51f74",
+ "name": "Vprobe.nodes.vLBAgent",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4b1cca9b-23a0-4037-aaf3-ce5cd7c91851/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "17ed7b78-1ffb-4864-a2ec-b6666a5fed16",
+ "invariantUUID": "2a6de403-c5b7-44ea-a398-ae78d53fb31a",
+ "name": "VpeAvRenana.nodes.vmx_vre",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/17ed7b78-1ffb-4864-a2ec-b6666a5fed16/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "ab89b69b-b92b-4e34-b1db-a6378d709241",
+ "invariantUUID": "dbb9b18d-e3ea-48cf-bcbd-81d8d4b22d72",
+ "name": "Vmmsc.nodes.heat.lb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ab89b69b-b92b-4e34-b1db-a6378d709241/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "d45694e4-ed86-4a44-a644-5a8a3ff89397",
+ "invariantUUID": "3eb4d8e0-2b85-4b74-bad3-2e4406f50d4d",
+ "name": "VfModules1.nodes.heat.mmsc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d45694e4-ed86-4a44-a644-5a8a3ff89397/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "5c7fd7c0-fc79-4309-bb03-85388cae45a8",
+ "invariantUUID": "7ff3e308-cf42-47ae-afc3-ecd5ef9823c0",
+ "name": "VmmscEca.nodes.heat.eca",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5c7fd7c0-fc79-4309-bb03-85388cae45a8/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "az2497"
+ },
+
+ {
+ "uuid": "f739ea35-7bd4-42ed-b9ee-1e0fd2017c72",
+ "invariantUUID": "ce4127ef-2564-40e6-b62e-6be7758f46a7",
+ "name": "Pxtc.nodes.heat.ddc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f739ea35-7bd4-42ed-b9ee-1e0fd2017c72/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "f2339431-f3ab-41c9-90c4-6c2c958e1b06",
+ "invariantUUID": "40ab991d-ad0c-4adb-9f2a-0f2eef8bb880",
+ "name": "VfModules1.nodes.heat.lb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f2339431-f3ab-41c9-90c4-6c2c958e1b06/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "15728e01-7076-4765-8002-95154ad29d5f",
+ "invariantUUID": "9814209f-7b9d-4b21-8968-f6a3638b107c",
+ "name": "1607Mog.nodes.heat.cm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/15728e01-7076-4765-8002-95154ad29d5f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "ab168037-e654-4990-a188-e5d2f25a8768",
+ "invariantUUID": "ef673ad3-2d81-47b7-99c2-bdc69ae79d80",
+ "name": "Vcts3.nodes.heat.vCTS_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ab168037-e654-4990-a188-e5d2f25a8768/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "e1d7eb6a-646d-4906-9981-44ed892dc01c",
+ "invariantUUID": "78245f38-b99a-49a8-ac5b-56737ad686db",
+ "name": "VfModulesVmmsc.nodes.heat.eca_trx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e1d7eb6a-646d-4906-9981-44ed892dc01c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "74c527c6-edb7-4bbe-a63c-d2daf5a12db0",
+ "invariantUUID": "18bc94d2-2be1-46e9-bd70-ded327b1324e",
+ "name": "VfModule2.nodes.heat.mmsc",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/74c527c6-edb7-4bbe-a63c-d2daf5a12db0/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "345459d0-ba42-45ba-9eb0-cc56e4f35ea9",
+ "invariantUUID": "5362b258-b867-4e98-a3c4-138c6d444c69",
+ "name": "VfModule2.nodes.heat.nems_be",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/345459d0-ba42-45ba-9eb0-cc56e4f35ea9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "bc40b750-56ab-4c6b-8e15-412f9be0178f",
+ "invariantUUID": "ab769637-063f-41fd-927d-771a1913235b",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.mmsc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bc40b750-56ab-4c6b-8e15-412f9be0178f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "3ff3d87f-c55f-4b4c-a8ae-29931d910359",
+ "invariantUUID": "5af2c63a-1b3e-42a5-ab4b-07e97d1dcbd2",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.nems_be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3ff3d87f-c55f-4b4c-a8ae-29931d910359/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "2c8f1219-8000-4001-aa13-496a0396d40f",
+ "invariantUUID": "096ff622-d7ea-4482-b7fe-8c7d99e7d7c6",
+ "name": "CLAMP-Dev-nodes.virc_fe_be_1",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2c8f1219-8000-4001-aa13-496a0396d40f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "d8a2de8a-27d8-491c-bbb9-da779a4da7c6",
+ "invariantUUID": "0b4d158e-c20e-4630-b515-3ecda2ad05a4",
+ "name": "VfModules.nodes.heat.nems_be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d8a2de8a-27d8-491c-bbb9-da779a4da7c6/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "d544d6a6-4fcc-42db-97f6-e8cccc69c5ee",
+ "invariantUUID": "cd4a433e-cf76-4652-a6b8-59e657e0c5a0",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.lb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d544d6a6-4fcc-42db-97f6-e8cccc69c5ee/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "5d6e7129-d7c8-41b8-ae2a-5f1688162c7c",
+ "invariantUUID": "350d9877-894a-4ce4-a899-48df9428ff88",
+ "name": "Vieccf.nodes.heat.iox",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5d6e7129-d7c8-41b8-ae2a-5f1688162c7c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "fcc6655e-7074-48de-89ef-ef6e4a5705e3",
+ "invariantUUID": "6dd080e4-372c-44cc-8c25-868d45f2e959",
+ "name": "VfModule2.nodes.heat.nems_fe",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fcc6655e-7074-48de-89ef-ef6e4a5705e3/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "400cab12-2d1e-4a2c-a33a-d9d7b3262dd1",
+ "invariantUUID": "9ebca51b-16d0-423c-8e5f-4472c1888029",
+ "name": "VmogVnf1.nodes.heat.mbt",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/400cab12-2d1e-4a2c-a33a-d9d7b3262dd1/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "a068d0c0-06c6-4b58-bc99-6ac910700edb",
+ "invariantUUID": "f2e37302-fd97-48d7-bbdb-f0caaab5fe03",
+ "name": "1607Mog.nodes.heat.pd",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a068d0c0-06c6-4b58-bc99-6ac910700edb/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "c2e88763-87a9-4d33-b598-7811ae3f87d2",
+ "invariantUUID": "9d16cf01-c244-42c8-bcfe-faf108069e84",
+ "name": "VfModulesVmmsc.nodes.heat.nems_fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c2e88763-87a9-4d33-b598-7811ae3f87d2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "de861add-3f4a-4526-9754-8bcb69d0fd0e",
+ "invariantUUID": "67560771-ffcb-46fb-a40c-0e1dee74f43a",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.mmsc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/de861add-3f4a-4526-9754-8bcb69d0fd0e/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "4514b4e5-f163-4011-87fd-445f4366e3c2",
+ "invariantUUID": "91c638ef-49f5-4366-8749-cda8a33ed41e",
+ "name": "VfModules.nodes.heat.eca_trx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4514b4e5-f163-4011-87fd-445f4366e3c2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "3679d10e-a1a2-46a4-97b3-4056a0920e7b",
+ "invariantUUID": "d272aa71-398a-4eff-ab00-6a4281b41c92",
+ "name": "Pxtc.nodes.heat.mda",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3679d10e-a1a2-46a4-97b3-4056a0920e7b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "f905ca32-dac5-4337-a1d7-cc2bca86b407",
+ "invariantUUID": "acbb7a13-7ae7-4ac7-b0e4-23314cbc65e2",
+ "name": "Vmmsc.nodes.heat.mmsc",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f905ca32-dac5-4337-a1d7-cc2bca86b407/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "ee10af8a-c8bf-4455-808e-5550050d4ea9",
+ "invariantUUID": "e74db59b-72fb-4734-9d48-40d8c47d292a",
+ "name": "VfModulesVmmsc.nodes.heat.lb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ee10af8a-c8bf-4455-808e-5550050d4ea9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "771ca169-bfac-4306-9748-b2ae804852f9",
+ "invariantUUID": "ae627e8b-374b-41ac-9efb-25672099c7dd",
+ "name": "Vscp0502.nodes.heat.be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/771ca169-bfac-4306-9748-b2ae804852f9/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "72682bb7-94ca-47a7-9917-826f62e3d00d",
+ "invariantUUID": "7bb2f20e-10af-485b-9c7c-9fba2c016856",
+ "name": "1607Mog.nodes.heat.sm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/72682bb7-94ca-47a7-9917-826f62e3d00d/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "1fa641db-1d77-4242-8d0b-c0aa5f88fe2e",
+ "invariantUUID": "22464824-fcbe-4760-9aa7-f2d110e5c0f8",
+ "name": "1607MogMultiMembersVolume.nodes.heat.cm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1fa641db-1d77-4242-8d0b-c0aa5f88fe2e/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "897dcb54-bb55-4311-8c0e-b663781d7e4f",
+ "invariantUUID": "c223adda-e48d-487d-98e8-654bbb8268af",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.lb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/897dcb54-bb55-4311-8c0e-b663781d7e4f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "a60c5230-8201-4b50-84a8-c905128c2bc2",
+ "invariantUUID": "59399b2e-66ed-4823-aa27-189fdb466045",
+ "name": "AppcTest.nodes.heat.smp",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a60c5230-8201-4b50-84a8-c905128c2bc2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "173c32b5-44c8-4404-ba18-32d9de49afae",
+ "invariantUUID": "c247493b-15a4-47af-bb6b-c664cb5a4d37",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.eca_trx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/173c32b5-44c8-4404-ba18-32d9de49afae/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "59aa2d42-db52-438c-a69c-0b97a193abcd",
+ "invariantUUID": "31fc926f-cfc5-42bd-8955-42e68c113902",
+ "name": "TestConsol.nodes.heat.smp",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/59aa2d42-db52-438c-a69c-0b97a193abcd/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "0e6509c9-7d35-4daf-9086-9fe30fdd1275",
+ "invariantUUID": "9516ad03-b122-4738-ad6d-d9c2166cd75a",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.nems_fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/0e6509c9-7d35-4daf-9086-9fe30fdd1275/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "e541a64c-9de7-4c71-b827-eb0f4d319e62",
+ "invariantUUID": "9952957d-d266-406e-ab7d-23a7fc154ea0",
+ "name": "1607MogMultiMembersVolume.nodes.heat.pd",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e541a64c-9de7-4c71-b827-eb0f4d319e62/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "5e448cd9-6dbd-4c31-98f2-caeceaf5efa7",
+ "invariantUUID": "3a97ded5-e8fc-42fa-b244-a6f91b610e08",
+ "name": "VfModule2.nodes.heat.lb",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5e448cd9-6dbd-4c31-98f2-caeceaf5efa7/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "d5c6a462-9d9a-46d4-a0b2-485300f34f0c",
+ "invariantUUID": "635abeeb-d903-44a8-9135-5d26e1ee41a1",
+ "name": "VmogVnf1.nodes.heat.psm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d5c6a462-9d9a-46d4-a0b2-485300f34f0c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "8678abfe-8cbd-42f2-aa78-ca47a1beaa14",
+ "invariantUUID": "4d02c8a5-e141-4d01-94ec-7a3b94afda97",
+ "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.eca_trx",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8678abfe-8cbd-42f2-aa78-ca47a1beaa14/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "1c469da0-298f-41ea-94a2-aef82264e1e7",
+ "invariantUUID": "91530a04-e1f6-4242-abd2-f20630e1fa8f",
+ "name": "1607Mog.nodes.heat.oam",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1c469da0-298f-41ea-94a2-aef82264e1e7/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "c29e22e2-1a09-4164-a9a2-72d0e3f5df5b",
+ "invariantUUID": "a0e5c360-f0e7-4b8d-ac97-969b9dc5b187",
+ "name": "Vmmsc.nodes.heat.nems_be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c29e22e2-1a09-4164-a9a2-72d0e3f5df5b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "986b76dc-aca7-45b1-919c-398b770d5504",
+ "invariantUUID": "cd2f22e1-e21e-474b-a506-1bb4365aa106",
+ "name": "AppcTest.nodes.heat.fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/986b76dc-aca7-45b1-919c-398b770d5504/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "606f6c2b-a411-4644-a183-5487e3aed612",
+ "invariantUUID": "d67b05d1-119c-47a3-8b20-2babb53b42b3",
+ "name": "Vpe.nodes.heat.vmx_vpfe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/606f6c2b-a411-4644-a183-5487e3aed612/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "00695bbf-fa3f-47e4-96d7-973700a66f4f",
+ "invariantUUID": "d26ce6ce-b1f8-4cdc-955d-e2272563cff6",
+ "name": "TestPort.nodes.heat.smp",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/00695bbf-fa3f-47e4-96d7-973700a66f4f/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "d94275b4-ccfa-4096-bd7b-dd45ff6e84f2",
+ "invariantUUID": "56a1b1c7-6a6f-402b-890f-8e3a1cc56feb",
+ "name": "Vieccf.nodes.heat.plt",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d94275b4-ccfa-4096-bd7b-dd45ff6e84f2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "8beb2fe4-672e-46c3-8650-e2065ea429ea",
+ "invariantUUID": "be756449-fd9d-4889-83ad-41ff26a82f09",
+ "name": "Pxtc.nodes.heat.mts",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8beb2fe4-672e-46c3-8650-e2065ea429ea/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "c4b4f162-a616-45c6-b229-9833a78a46fd",
+ "invariantUUID": "b502eeb1-091c-41cf-b4ba-52f9ab6ecfcc",
+ "name": "Vpe.nodes.heat.vmx_vre",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c4b4f162-a616-45c6-b229-9833a78a46fd/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "95e982cd-551d-49b2-9600-04f1328b9ab5",
+ "invariantUUID": "26813b60-5437-4780-aaaa-9705b9d30357",
+ "name": "TestConsol.nodes.heat.be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/95e982cd-551d-49b2-9600-04f1328b9ab5/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "8316c6e3-7791-42cb-80fb-e57ed0809be6",
+ "invariantUUID": "5ca065b5-c2e3-4561-9dc6-58fc84c8398c",
+ "name": "Vscp0502.nodes.heat.smp",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8316c6e3-7791-42cb-80fb-e57ed0809be6/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "49cc354b-ea2e-48a9-a6b8-d414e6991898",
+ "invariantUUID": "b94ec614-4972-4355-ab2f-3c7068714581",
+ "name": "Ronytestcsar.nodes.heat.arb",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/49cc354b-ea2e-48a9-a6b8-d414e6991898/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rb844h"
+ },
+
+ {
+ "uuid": "cc0048fb-a464-4407-9907-5e760684bc7b",
+ "invariantUUID": "06aff944-cdab-42cd-a5a3-f2c2c65df4b2",
+ "name": "TestConsol.nodes.heat.fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/cc0048fb-a464-4407-9907-5e760684bc7b/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "bc1dea1b-5753-4d17-af6f-ac6050b3e281",
+ "invariantUUID": "76d0ef26-6721-4f11-ba1a-04c93e7154c3",
+ "name": "Vieccf.nodes.heat.app",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bc1dea1b-5753-4d17-af6f-ac6050b3e281/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "0b894e43-6d45-4c3d-95dd-2e80228055f3",
+ "invariantUUID": "ca679ac7-9d4b-4da1-8912-a262c5599692",
+ "name": "VfVolumeGroup.nodes.heat.oam",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/0b894e43-6d45-4c3d-95dd-2e80228055f3/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "2bb1e047-fa3b-41f5-9d29-ebbdbf01857c",
+ "invariantUUID": "988032f2-873e-4273-9075-17ffd47f0a7f",
+ "name": "VfModules1.nodes.heat.nems_be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2bb1e047-fa3b-41f5-9d29-ebbdbf01857c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "05c82d0d-826b-458c-8c81-9572298522a3",
+ "invariantUUID": "6e577da6-377d-46fb-84c0-3bfa4778062f",
+ "name": "Vscp0502.nodes.heat.fe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/05c82d0d-826b-458c-8c81-9572298522a3/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "c6809100-9349-4f98-a066-55b6f0cb8650",
+ "invariantUUID": "4d48d18e-baa3-41bb-8a07-3c553db1fbab",
+ "name": "Ronytestcsar.nodes.heat.eca",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c6809100-9349-4f98-a066-55b6f0cb8650/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rb844h"
+ },
+
+ {
+ "uuid": "abe50ede-b86c-415f-9f5f-235200433b51",
+ "invariantUUID": "c3cbaff7-a657-44d5-a0b3-cc65599b4fa8",
+ "name": "Csartest.nodes.heat.ltm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/abe50ede-b86c-415f-9f5f-235200433b51/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ss8214"
+ },
+
+ {
+ "uuid": "3ce1be04-57ad-4deb-bdba-b18447374a88",
+ "invariantUUID": "b08eef7d-1dd5-4996-9171-7822b48e9a9d",
+ "name": "Vprobe.nodes.qrouter",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3ce1be04-57ad-4deb-bdba-b18447374a88/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "f6406bba-b64c-4211-aaee-773cde6e7d54",
+ "invariantUUID": "490345fc-f6fe-49a6-b18d-6dcacca02a7e",
+ "name": "VscpaasTest2.nodes.be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f6406bba-b64c-4211-aaee-773cde6e7d54/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "d48751e4-07de-4208-9307-7ecb775fe7ca",
+ "invariantUUID": "ca0ae539-78d1-461a-a7ff-3dd663c85e2d",
+ "name": "pnf-test",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d48751e4-07de-4208-9307-7ecb775fe7ca/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "cdb99a41-e2ee-4b59-9107-13f0b2282ccc",
+ "invariantUUID": "6a828e59-cbee-4dc2-aa67-ee35a6eafd50",
+ "name": "Dev2devnfod.nodes.VF",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/cdb99a41-e2ee-4b59-9107-13f0b2282ccc/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "99b9dce6-ed85-4d76-aed9-40c020ba4607",
+ "invariantUUID": "c9e5dab6-eba5-4cc2-abff-305f8f508da1",
+ "name": "py-port-test",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/99b9dce6-ed85-4d76-aed9-40c020ba4607/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "acf4e0fa-17f9-4ac8-9fb2-2301cf942fcf",
+ "invariantUUID": "02cd4db0-a29b-4318-9b3b-a123b9103b85",
+ "name": "VfNoLicense.nodes.ppd",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/acf4e0fa-17f9-4ac8-9fb2-2301cf942fcf/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "fb6a8f39-84be-49a2-b551-26ce99ee6853",
+ "invariantUUID": "501e3f78-ae62-4551-bc47-a9afa8f29034",
+ "name": "ScpTestVsp.nodes.be",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fb6a8f39-84be-49a2-b551-26ce99ee6853/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "b09ec9ff-af66-4bdc-82d4-01a918e8e3ca",
+ "invariantUUID": "02d284b6-feb3-4762-be9b-8f6955f6b0b9",
+ "name": "SdWanTestVsp.nodes.DUMMY_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b09ec9ff-af66-4bdc-82d4-01a918e8e3ca/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "83256b0a-cb38-45de-b5f0-d2d4390f543d",
+ "invariantUUID": "c291bec4-fe31-4e6d-9126-f5ce104b84d1",
+ "name": "Sangeetha.nodes.vCTS_server",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/83256b0a-cb38-45de-b5f0-d2d4390f543d/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "16ba1289-5f91-4f07-914a-d2456d11c673",
+ "invariantUUID": "aafce2ad-8d15-4f53-88f5-9b3a1662f14e",
+ "name": "VpeAvRenana.nodes.vmx_vpfe",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/16ba1289-5f91-4f07-914a-d2456d11c673/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "93fe78c8-1350-4b1f-ac5f-ede411b992a0",
+ "invariantUUID": "a11f76ed-0f0a-4093-9c94-5f5eb6c450b5",
+ "name": "VfNoLicense.nodes.psm",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/93fe78c8-1350-4b1f-ac5f-ede411b992a0/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "1e5eafc0-1888-4247-9762-9ebd1383d0ae",
+ "invariantUUID": "076ddfc3-8a9d-4289-b71e-a707d359b149",
+ "name": "VnfcVspTest.nodes.heat.oam",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1e5eafc0-1888-4247-9762-9ebd1383d0ae/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "01faf05a-70b9-442f-be62-9884ea4cdf33",
+ "invariantUUID": "cd5937cc-37ef-4a85-ba10-2568628d4c1b",
+ "name": "VfDemor.nodes.vmx_vpfe",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/01faf05a-70b9-442f-be62-9884ea4cdf33/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "4583652c-e066-4a5c-88b8-fbcdd8619d2c",
+ "invariantUUID": "216e59ce-6940-4085-949e-9b47d9756383",
+ "name": "VfDemor.nodes.heat.vmx_vre",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4583652c-e066-4a5c-88b8-fbcdd8619d2c/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "16f02038-00f6-4a11-ab98-2a2154e98924",
+ "invariantUUID": "479cf5fc-8df3-49ec-9e85-da7899420b61",
+ "name": "VscpaasTest2.nodes.fe_0",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/16f02038-00f6-4a11-ab98-2a2154e98924/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VFC",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/example/sdc/sdcVFResources.json b/src/test/resources/example/sdc/sdcVFResources.json
new file mode 100644
index 0000000..a8f3219
--- /dev/null
+++ b/src/test/resources/example/sdc/sdcVFResources.json
@@ -0,0 +1,1574 @@
+[
+ {
+ "uuid": "585822c7-4027-4f84-ba50-e9248606f136",
+ "invariantUUID": "585822c7-4027-4f84-ba50-e9248606f134",
+ "name": "resourceName-1",
+ "version": "3.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/585822c7-4027-4f84-ba50-e9248606f136/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Router",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "56389a7d-86db-49e1-aada-62aebf023f23",
+ "invariantUUID": "18a2c267-50a9-42ae-a3ec-4d55dd6df225",
+ "name": "shayVF",
+ "version": "0.2",
+ "toscaModelURL": "/sdc/v1/catalog/resources/56389a7d-86db-49e1-aada-62aebf023f23/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Load Balancer",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ss8214"
+ },
+
+ {
+ "uuid": "2ce2fe72-7f8d-4184-87e6-5fd7aa650acd",
+ "invariantUUID": "9aa658ae-8f6d-49bc-810d-8a544d6b12f2",
+ "name": "Dev2DevNFODVf_17_July",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2ce2fe72-7f8d-4184-87e6-5fd7aa650acd/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sw594b"
+ },
+
+ {
+ "uuid": "ae841bc4-6534-4d12-b8a4-ddd07a062a7e",
+ "invariantUUID": "926f6d60-bf84-46c4-9ed7-f0bb774e5184",
+ "name": "Sangeetha",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ae841bc4-6534-4d12-b8a4-ddd07a062a7e/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Database",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "ss8214"
+ },
+
+ {
+ "uuid": "0c940638-618b-450e-aa99-b991a3200d1a",
+ "invariantUUID": "2d4d1e44-14f7-41e0-a37a-f8a6507c86f6",
+ "name": "Eli",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/0c940638-618b-450e-aa99-b991a3200d1a/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Contrail Route",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "el489u"
+ },
+
+ {
+ "uuid": "91854bc8-534f-4249-899c-bbdc06f83436",
+ "invariantUUID": "5e9c180a-44f1-45ce-a7bc-95b493ae9fd3",
+ "name": "CLAMP-Dev",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/91854bc8-534f-4249-899c-bbdc06f83436/toscaModel",
+ "category": "Generic",
+ "subCategory": "Network Elements",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "168b696d-8ed5-41ff-8158-b8adadfcedfa",
+ "invariantUUID": "9429f628-f58d-492e-aa97-de9bd9f98043",
+ "name": "ariel_test_vf001",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/168b696d-8ed5-41ff-8158-b8adadfcedfa/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Application Server",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "290603da-0c41-4120-b737-f800c6031a58",
+ "invariantUUID": "f22a9390-6d25-4fa7-a1dd-8d0121f6aacf",
+ "name": "VF-example",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/290603da-0c41-4120-b737-f800c6031a58/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "LAN Connectors",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "271b4961-e4dc-42d5-8c0c-4da8685973ac",
+ "invariantUUID": "822e9970-a3fd-4d62-8f00-5819323cb54d",
+ "name": "vf_AR",
+ "version": "3.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/271b4961-e4dc-42d5-8c0c-4da8685973ac/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "b109217b-c959-4228-b30d-8f376668174c",
+ "invariantUUID": "5d616289-3563-48d8-b41a-15a633d5f03c",
+ "name": "Map Microservice",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b109217b-c959-4228-b30d-8f376668174c/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "44b0a91c-8d63-4304-a637-2eda78a86023",
+ "invariantUUID": "9b2e7539-b183-4a59-82ea-842494fe19e0",
+ "name": "enrich snmp",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/44b0a91c-8d63-4304-a637-2eda78a86023/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "418a2ea5-6a8a-4498-9d0f-602a809552d6",
+ "invariantUUID": "58d0e85f-3161-47c9-981d-3cbcf1be56b6",
+ "name": "renana",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/418a2ea5-6a8a-4498-9d0f-602a809552d6/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Media Servers",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "13ae8064-344f-4d67-acd2-810516927f48",
+ "invariantUUID": "69b75e6e-a839-4a91-93d7-821610517cb5",
+ "name": "Dror1",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/13ae8064-344f-4d67-acd2-810516927f48/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "6510ee54-2ccb-406c-a006-8a67b589eecd",
+ "invariantUUID": "2ef1c565-6a85-424e-80ab-8efe14fefe9f",
+ "name": "SD-WAN-Test-VSP",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/6510ee54-2ccb-406c-a006-8a67b589eecd/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "WAN Connectors",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "c3c0a9e1-bcda-4b46-a7d6-3916ea3fc1ca",
+ "invariantUUID": "21052af3-0f73-4f82-af68-03123ed49d41",
+ "name": "rrrr",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c3c0a9e1-bcda-4b46-a7d6-3916ea3fc1ca/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "IP Mux Demux",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ys278k"
+ },
+
+ {
+ "uuid": "10b535db-b01b-4a4b-aeef-97423d2d2093",
+ "invariantUUID": "761ed279-e5ff-43e2-8a05-b160224b7f54",
+ "name": "StringMatchingMS",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/10b535db-b01b-4a4b-aeef-97423d2d2093/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "5ea777fc-a3fe-4688-aefd-b1297bd36381",
+ "invariantUUID": "6d1eb2c8-ae57-4d32-bd63-b47fd503aafb",
+ "name": "map snmp",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5ea777fc-a3fe-4688-aefd-b1297bd36381/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "8d366342-8cfa-431b-82ca-013f7f06af50",
+ "invariantUUID": "822e9970-a3fd-4d62-8f00-5819323cb54d",
+ "name": "vf_AR",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8d366342-8cfa-431b-82ca-013f7f06af50/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFICATION_IN_PROGRESS",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "a804fb4e-33ce-4000-963f-d270a0593de2",
+ "invariantUUID": "6eb4b1ca-75ac-454b-a145-1ea27157bfac",
+ "name": "IP_Mux_Demux",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a804fb4e-33ce-4000-963f-d270a0593de2/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "IP Mux Demux",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "le056g"
+ },
+
+ {
+ "uuid": "9bed9e17-7bfa-4a92-9474-3bcf7187e206",
+ "invariantUUID": "853a6d9a-3004-462c-9142-631eb777a16c",
+ "name": "newShayVFMCT",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/9bed9e17-7bfa-4a92-9474-3bcf7187e206/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ss8214"
+ },
+
+ {
+ "uuid": "cae08b64-2784-4883-8dd0-747f6ebb94c4",
+ "invariantUUID": "3d51584c-aa2e-454a-a17a-970b51bbd668",
+ "name": "VES Collector Lisa",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/cae08b64-2784-4883-8dd0-747f6ebb94c4/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "lr0306"
+ },
+
+ {
+ "uuid": "d06b73ef-b908-44cd-8c17-11f1366c4f93",
+ "invariantUUID": "0ad06008-5ecc-4a24-a123-74fc23d7bf89",
+ "name": "shaytookmyvf",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d06b73ef-b908-44cd-8c17-11f1366c4f93/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "11ff4510-008f-4818-87aa-d22e1b26d03e",
+ "invariantUUID": "5d138333-7a0f-432b-ad74-009a308c91c5",
+ "name": "VF- DemoR",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/11ff4510-008f-4818-87aa-d22e1b26d03e/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Router",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "0ff82855-b0aa-4b0d-8451-82aa978ae4d5",
+ "invariantUUID": "9aa658ae-8f6d-49bc-810d-8a544d6b12f2",
+ "name": "Dev2DevNFODVf_17_July",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/0ff82855-b0aa-4b0d-8451-82aa978ae4d5/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "77d7e04f-89db-405f-ad53-8c2cc5bc721c",
+ "invariantUUID": "f632a0f0-d568-40aa-9342-341d603891e1",
+ "name": "vf_test",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/77d7e04f-89db-405f-ad53-8c2cc5bc721c/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "17dbd4a7-6c4d-4064-857e-8cbbc8303ed5",
+ "invariantUUID": "f632a0f0-d568-40aa-9342-341d603891e1",
+ "name": "vf_test",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/17dbd4a7-6c4d-4064-857e-8cbbc8303ed5/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "2c2fcf53-43af-41f4-8fec-0c729ca3cb4c",
+ "invariantUUID": "fc9af990-1ec6-4969-bd0d-973ae1ceba6f",
+ "name": "supplement snmp",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2c2fcf53-43af-41f4-8fec-0c729ca3cb4c/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "57cc5cac-15a0-4c39-aff4-426930e55057",
+ "invariantUUID": "b0d77932-dadd-4bde-82c9-0bcc367cb81c",
+ "name": "Dev2DevIpAssign_24_07",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/57cc5cac-15a0-4c39-aff4-426930e55057/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "4859989b-5663-4ff5-ab2e-68b7bd1e43c2",
+ "invariantUUID": "489220ac-8a2f-44b8-97a3-12af3280aa0e",
+ "name": "Cognitor",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4859989b-5663-4ff5-ab2e-68b7bd1e43c2/toscaModel",
+ "category": "Generic",
+ "subCategory": "Abstract",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "sj2381"
+ },
+
+ {
+ "uuid": "5de1a119-461f-4ff4-8aa6-6f194e79e861",
+ "invariantUUID": "de9c75f4-7cc1-4a9c-8642-4fa9ee730bd2",
+ "name": "sang_vsp",
+ "version": "0.2",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5de1a119-461f-4ff4-8aa6-6f194e79e861/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "af1041a9-0879-4fc1-9b62-42cf3eda5feb",
+ "invariantUUID": "4ed98cc2-22af-40c9-a031-86998cc12838",
+ "name": "FOI collector",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/af1041a9-0879-4fc1-9b62-42cf3eda5feb/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "271b4961-e4dc-42d5-8c0c-4da8685973ac",
+ "invariantUUID": "822e9970-a3fd-4d62-8f00-5819323cb54d",
+ "name": "vf_AR",
+ "version": "2.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/271b4961-e4dc-42d5-8c0c-4da8685973ac/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFICATION_IN_PROGRESS",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "bdc9b09f-246e-407f-9ccd-313a240ced95",
+ "invariantUUID": "1b6e3f8e-c8e2-4e66-8d44-8c7186c6eb14",
+ "name": "VFTest5.4",
+ "version": "0.3",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bdc9b09f-246e-407f-9ccd-313a240ced95/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Tunnel XConnect",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rb844h"
+ },
+
+ {
+ "uuid": "bbc70754-b046-4d8b-9ba5-1d4e96180788",
+ "invariantUUID": "c8e4743e-f7bd-4f04-8b7d-270f2de46c34",
+ "name": "VNFC_VSP_Test",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/bbc70754-b046-4d8b-9ba5-1d4e96180788/toscaModel",
+ "category": "Network Connectivity",
+ "subCategory": "Virtual Links",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "7cb8a6c7-c4fb-4d46-9233-8b247bd70124",
+ "invariantUUID": "f607e055-7af8-470d-86d3-1e2236c1c5b9",
+ "name": "syslog",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/7cb8a6c7-c4fb-4d46-9233-8b247bd70124/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "ce7f92a3-d5a8-4830-b1f9-72d32ff0f2bc",
+ "invariantUUID": "b0d77932-dadd-4bde-82c9-0bcc367cb81c",
+ "name": "Dev2DevIpAssign_24_07",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ce7f92a3-d5a8-4830-b1f9-72d32ff0f2bc/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sw594b"
+ },
+
+ {
+ "uuid": "f721bc81-be73-4fe5-90ab-ac9544916b74",
+ "invariantUUID": "5ebab19c-76ab-4310-96c1-64ab03ae7f08",
+ "name": "New_vendor_mdns",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f721bc81-be73-4fe5-90ab-ac9544916b74/toscaModel",
+ "category": "Generic",
+ "subCategory": "Database",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "6b934b9d-0785-4b46-8321-943a12b8031b",
+ "invariantUUID": "785012c2-fdd8-450d-8fa2-81ff60e25f1e",
+ "name": "vMMSC_AIC3.0__multi_members_multi_groups_volume.cs",
+ "version": "0.2",
+ "toscaModelURL": "/sdc/v1/catalog/resources/6b934b9d-0785-4b46-8321-943a12b8031b/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Media Servers",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "715426cc-acea-4dd9-9bbe-d338d40b0884",
+ "invariantUUID": "0879d8ba-7207-4ec4-9cc7-2eb695ef6876",
+ "name": "vmme_1710",
+ "version": "0.2",
+ "toscaModelURL": "/sdc/v1/catalog/resources/715426cc-acea-4dd9-9bbe-d338d40b0884/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "04addafc-2e5e-4381-8698-79a26acd5825",
+ "invariantUUID": "d348d94a-b49f-42ad-a5a2-6f94ebf58b75",
+ "name": "AVCXSADDAS",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/04addafc-2e5e-4381-8698-79a26acd5825/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "IP Mux Demux",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "yy815m"
+ },
+
+ {
+ "uuid": "3962491f-c310-4a24-9f13-291d2acf2f08",
+ "invariantUUID": "5d138333-7a0f-432b-ad74-009a308c91c5",
+ "name": "VF- DemoR",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3962491f-c310-4a24-9f13-291d2acf2f08/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Router",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFICATION_IN_PROGRESS",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "191128bc-1756-469b-8973-fcc6236c72c1",
+ "invariantUUID": "c1fae22d-0fdb-42fe-96a7-822f19503f1b",
+ "name": "Scp-tempalte-test",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/191128bc-1756-469b-8973-fcc6236c72c1/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "READY_FOR_CERTIFICATION",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "9a4c7c75-b54b-4240-b3bf-2ead9b7427d1",
+ "invariantUUID": "b595ea39-21e7-4fee-aedb-ef68506d581d",
+ "name": "test-VF",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/9a4c7c75-b54b-4240-b3bf-2ead9b7427d1/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "c3d5e222-28b4-456f-8488-ff3b4846be60",
+ "invariantUUID": "92ff9c15-3b67-410a-b8ed-aed627656a35",
+ "name": "TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEST",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c3d5e222-28b4-456f-8488-ff3b4846be60/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Security Zone",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "nk909r"
+ },
+
+ {
+ "uuid": "c8663b6e-bbe2-401d-9500-ec5425463655",
+ "invariantUUID": "925243cf-e342-4d86-8558-63899fbe88da",
+ "name": "VF Module LDSA",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c8663b6e-bbe2-401d-9500-ec5425463655/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Load Balancer",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "fda7c330-cb1e-4d43-9e97-87a5800b87c0",
+ "invariantUUID": "cc9b643b-8513-449b-a3f7-3c034b3f52a4",
+ "name": "composition",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/fda7c330-cb1e-4d43-9e97-87a5800b87c0/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Utility",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "27adaf15-a0c2-4889-bc10-b3fdb0bb038c",
+ "invariantUUID": "002b36df-41cd-4119-ab8d-0e9fae3cd3cb",
+ "name": "cdap_host",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/27adaf15-a0c2-4889-bc10-b3fdb0bb038c/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Utility",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "84855843-5247-4e97-a2bd-5395a510253b",
+ "invariantUUID": "755deb72-d767-4656-98b0-9d8ed288e9e6",
+ "name": "TestClamp",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/84855843-5247-4e97-a2bd-5395a510253b/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Application Server",
+ "resourceType": "VF",
+ "lifecycleState": "READY_FOR_CERTIFICATION",
+ "lastUpdaterUserId": "rx827p"
+ },
+
+ {
+ "uuid": "e01dfc8f-2529-423b-9765-08b57df6ba51",
+ "invariantUUID": "6c7aaec2-59eb-41d9-8681-b7f976ab668d",
+ "name": "eNodeB-vf",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e01dfc8f-2529-423b-9765-08b57df6ba51/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Application Server",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFICATION_IN_PROGRESS",
+ "lastUpdaterUserId": "rx827p"
+ },
+
+ {
+ "uuid": "d26e8473-b1c9-4751-bf7c-be0e10ba71ac",
+ "invariantUUID": "e06a2a94-5ff9-4ab7-879f-c2d5cfaef1ca",
+ "name": "tdy",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d26e8473-b1c9-4751-bf7c-be0e10ba71ac/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Tunnel XConnect",
+ "resourceType": "VF",
+ "lifecycleState": "READY_FOR_CERTIFICATION",
+ "lastUpdaterUserId": "rb844h"
+ },
+
+ {
+ "uuid": "038601f9-f242-49ab-8c19-08b95f34f7bf",
+ "invariantUUID": "0f183d4f-875b-4e7b-a23d-b9d68d81e0db",
+ "name": "Highland Park",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/038601f9-f242-49ab-8c19-08b95f34f7bf/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "25781e10-5fdd-499c-869d-0d70d61843df",
+ "invariantUUID": "f68b1982-a6ab-4849-b548-0d35655f4410",
+ "name": "Mikes VF",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/25781e10-5fdd-499c-869d-0d70d61843df/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "mh677g"
+ },
+
+ {
+ "uuid": "c1c02cff-855f-438e-85f8-40c362874896",
+ "invariantUUID": "64cb5201-90d4-4cab-a6a9-f7416eeb307f",
+ "name": "PXTC",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c1c02cff-855f-438e-85f8-40c362874896/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Web Server",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "837c2fee-c2b2-4e95-ad48-dd69772d99bd",
+ "invariantUUID": "e48b3ea8-39bc-41eb-84bf-f5ef267d31e4",
+ "name": "vMOG VNF 1",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/837c2fee-c2b2-4e95-ad48-dd69772d99bd/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Gateway",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "29018914-966c-442d-9d08-251b9dc45b8e",
+ "invariantUUID": "a33ed748-3477-4434-b3f3-b5560f5e7d9b",
+ "name": "vcts3",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8e/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Application Server",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "6906502e-6c2c-4b6f-8a3e-a2283f13cd69",
+ "invariantUUID": "fae890f6-4cdc-4e89-9502-3b1491c90393",
+ "name": "Generic VNF Source",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/6906502e-6c2c-4b6f-8a3e-a2283f13cd69/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Source",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "4168799c-a51f-4664-a5e9-f75bedda2a1c",
+ "invariantUUID": "55befb8d-81db-4ac0-8820-8ec582f8147b",
+ "name": "AppleVF",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4168799c-a51f-4664-a5e9-f75bedda2a1c/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "nk909r"
+ },
+
+ {
+ "uuid": "28c11fbd-a859-4819-b8c7-555b4ed05a7f",
+ "invariantUUID": "ab6094d3-ffe3-4386-b1c2-d6e0dbf103f3",
+ "name": "VF",
+ "version": "0.2",
+ "toscaModelURL": "/sdc/v1/catalog/resources/28c11fbd-a859-4819-b8c7-555b4ed05a7f/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ym903w"
+ },
+
+ {
+ "uuid": "dad125b7-cd8a-4fbe-a4ad-2b04944079da",
+ "invariantUUID": "dd3c68ac-5e6c-4b22-bea3-44fd7d6a6097",
+ "name": "Mazav",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/dad125b7-cd8a-4fbe-a4ad-2b04944079da/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Database",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "1e7f07c7-ff4c-40a6-95f6-a9b05f138027",
+ "invariantUUID": "cfff70d2-f942-4b25-b2ca-e64f64af511d",
+ "name": "vMMSC_AIC3.0__multi_members_multi_groups_volume",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1e7f07c7-ff4c-40a6-95f6-a9b05f138027/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Media Servers",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "yy815m"
+ },
+
+ {
+ "uuid": "2539b088-8e74-48d5-8401-77200be23f11",
+ "invariantUUID": "24ff5476-cabe-4cb5-99c8-e0f9ace75412",
+ "name": "AlinaVSP",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2539b088-8e74-48d5-8401-77200be23f11/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "8bebc883-1961-4d2f-9c34-b8a9f56dd6bf",
+ "invariantUUID": "49241b40-9bd1-4d05-83a9-b097f40f4cc0",
+ "name": "MonitoringVSP",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8bebc883-1961-4d2f-9c34-b8a9f56dd6bf/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "e0acc751-00cf-4f45-ac9d-23eb9cfc106d",
+ "invariantUUID": "1181d1c5-2524-40c2-bc81-e40dd813d70f",
+ "name": "Oren",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e0acc751-00cf-4f45-ac9d-23eb9cfc106d/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Service Admin",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ol664w"
+ },
+
+ {
+ "uuid": "2e42bac2-318a-410c-b8ff-3b3a31351be7",
+ "invariantUUID": "b2b88a73-5c55-4984-99dd-a35c55935d14",
+ "name": "SCP-Test-VSP",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2e42bac2-318a-410c-b8ff-3b3a31351be7/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "1a2bc1db-c4b3-4c26-837c-1f16b4e4eed0",
+ "invariantUUID": "869a4e40-2aac-42f6-9520-51d18a7bd5e0",
+ "name": "Vscpaas_Test2",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1a2bc1db-c4b3-4c26-837c-1f16b4e4eed0/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "52150d50-0b95-4056-b07a-abcf6414754e",
+ "invariantUUID": "cc4e47f7-360d-425b-a563-e870203d2d48",
+ "name": "SNMP Trap Collector",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/52150d50-0b95-4056-b07a-abcf6414754e/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "a36b04b6-6756-4860-9cbb-66a72d02361f",
+ "invariantUUID": "35841fd9-e768-466a-9a08-fd9f7dbef98d",
+ "name": "Vf-no-license",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/a36b04b6-6756-4860-9cbb-66a72d02361f/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Media Servers",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "8a1c4ce1-f132-4e05-92c1-91386689ddf5",
+ "invariantUUID": "4bd0b375-cec3-4da8-a6fb-028b523da60e",
+ "name": "vprobe",
+ "version": "0.2",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8a1c4ce1-f132-4e05-92c1-91386689ddf5/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Application Server",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m08740"
+ },
+
+ {
+ "uuid": "4ae669b4-778a-4f13-bf42-99da0c805414",
+ "invariantUUID": "17ba1436-2800-4bcb-b066-0484d119ea8d",
+ "name": "oren2",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4ae669b4-778a-4f13-bf42-99da0c805414/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ol664w"
+ },
+
+ {
+ "uuid": "c68a5162-bebf-4675-9b83-1aec994abd35",
+ "invariantUUID": "219b289e-e94e-4c1b-8ca0-53a19f4cf140",
+ "name": "AlinaVF",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c68a5162-bebf-4675-9b83-1aec994abd35/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "d03c68fc-ed63-4fce-bf7f-ebe23993157d",
+ "invariantUUID": "94746803-5a82-4112-9719-7cb64a43ea99",
+ "name": "testfe",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d03c68fc-ed63-4fce-bf7f-ebe23993157d/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Allotted Resource",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFICATION_IN_PROGRESS",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "ab88f446-f17f-4419-a4ce-84a24bc9a3c0",
+ "invariantUUID": "63aec7b3-8674-42ff-a9be-9d6c51544776",
+ "name": "Tunnel_XConnTest",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ab88f446-f17f-4419-a4ce-84a24bc9a3c0/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Tunnel XConnect",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "81d54f6d-ac2d-4282-ada9-48214e13dfd9",
+ "invariantUUID": "80d253d9-dca7-4d5e-96f2-e060deabf3bb",
+ "name": "Dev2DevNFOD_1207",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/81d54f6d-ac2d-4282-ada9-48214e13dfd9/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "pa0916"
+ },
+
+ {
+ "uuid": "c9ea2798-f3ba-4826-ae93-0786820cb890",
+ "invariantUUID": "5882c528-76fe-4884-90c7-71301ca52cf8",
+ "name": "vMMSC_ECA",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c9ea2798-f3ba-4826-ae93-0786820cb890/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "az2497"
+ },
+
+ {
+ "uuid": "e795b7f2-09c3-40a8-bc38-64bdad5e9f68",
+ "invariantUUID": "96079a9a-dbe3-4492-ba85-95b1b49d0983",
+ "name": "APPleVFV10",
+ "version": "3.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e795b7f2-09c3-40a8-bc38-64bdad5e9f68/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "nk909r"
+ },
+
+ {
+ "uuid": "1b9546ab-d1cd-489b-b07b-13537418ad57",
+ "invariantUUID": "4612156f-0a8d-46c5-bfb1-86e80148d123",
+ "name": "BerryVFNamequaryV10",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1b9546ab-d1cd-489b-b07b-13537418ad57/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "READY_FOR_CERTIFICATION",
+ "lastUpdaterUserId": "nk909r"
+ },
+
+ {
+ "uuid": "b71e8927-6567-4f14-a0ec-3bce871934c4",
+ "invariantUUID": "73bc5a4f-b902-43b2-83c2-915fa274960f",
+ "name": "vPE",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/b71e8927-6567-4f14-a0ec-3bce871934c4/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Border Element",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "31ad5aaa-8779-4384-819f-4a2ec217f608",
+ "invariantUUID": "f47b1fa4-574f-4c30-b0cf-af7919868eed",
+ "name": "BerryVFNamequery",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/31ad5aaa-8779-4384-819f-4a2ec217f608/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "nk909r"
+ },
+
+ {
+ "uuid": "10751313-0dd7-464a-92e3-ec77fcada2c8",
+ "invariantUUID": "229580a6-2d12-49b6-8c89-54d04f4569b4",
+ "name": "vIECCF",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/10751313-0dd7-464a-92e3-ec77fcada2c8/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Database",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99124"
+ },
+
+ {
+ "uuid": "3951e021-7595-43b1-a6fd-de077c01af54",
+ "invariantUUID": "925243cf-e342-4d86-8558-63899fbe88da",
+ "name": "VF Module LDSA",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3951e021-7595-43b1-a6fd-de077c01af54/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Load Balancer",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99124"
+ },
+
+ {
+ "uuid": "3b30f9df-5cc6-4f1d-b8fc-bf034891539e",
+ "invariantUUID": "10a2a956-5190-4aa8-8d3d-dea5863ab40f",
+ "name": "blueberryvf",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3b30f9df-5cc6-4f1d-b8fc-bf034891539e/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "lm906x"
+ },
+
+ {
+ "uuid": "c4e944bd-aa6a-4bd0-85ac-5566c98d2adc",
+ "invariantUUID": "cc4e47f7-360d-425b-a563-e870203d2d48",
+ "name": "SNMP Trap Collector",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c4e944bd-aa6a-4bd0-85ac-5566c98d2adc/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "07116436-aab8-4a54-85be-6691e451e65b",
+ "invariantUUID": "b1133487-2512-4a6d-8b68-4f56b81fd6a2",
+ "name": "1607_MOG",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/07116436-aab8-4a54-85be-6691e451e65b/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "70974b30-6b89-41d2-8b5d-779279db3b96",
+ "invariantUUID": "725e5fd1-2520-4669-a5f2-23f9ad2fbec4",
+ "name": "vSCP0502",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/70974b30-6b89-41d2-8b5d-779279db3b96/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "c9e436c3-539f-45e2-90b4-b046af907877",
+ "invariantUUID": "bc7fe896-e286-41cb-a11f-7081fc92876b",
+ "name": "vMMSC",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c9e436c3-539f-45e2-90b4-b046af907877/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Database",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "79a31423-43ae-4f00-9314-dbc6ed5dfcb7",
+ "invariantUUID": "6c1bcf11-ecdc-465d-83c7-4a1735ff8d00",
+ "name": "1607_MOG_multi_members_volume",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/79a31423-43ae-4f00-9314-dbc6ed5dfcb7/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Border Element",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99124"
+ },
+
+ {
+ "uuid": "ed9927dc-3c43-47bf-9c55-3aa3240749c4",
+ "invariantUUID": "d6ac75ef-0e55-41bb-9cac-bedd59c3b0b8",
+ "name": "SNMP Collector",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ed9927dc-3c43-47bf-9c55-3aa3240749c4/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "82460d6a-1cd7-4c57-bc89-625600555f80",
+ "invariantUUID": "c67108d4-a0b0-4eee-8fbc-c881d7bb21d3",
+ "name": "VF modules vMMSC",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/82460d6a-1cd7-4c57-bc89-625600555f80/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Web Server",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99124"
+ },
+
+ {
+ "uuid": "1d7a184b-3680-47e5-92de-6ac7207699a3",
+ "invariantUUID": "f7ba2bcd-747b-4ff6-994a-91be20fc726c",
+ "name": "VF modules",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1d7a184b-3680-47e5-92de-6ac7207699a3/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Web Server",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "90043cc2-5150-4127-aabe-67ed5c8a603b",
+ "invariantUUID": "fc6589c4-f030-4d02-b516-b99f73bfdca8",
+ "name": "VF module_2",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/90043cc2-5150-4127-aabe-67ed5c8a603b/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Media Servers",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "4c81fa7a-9e59-498a-96ba-2fc16eba23a3",
+ "invariantUUID": "4612156f-0a8d-46c5-bfb1-86e80148d123",
+ "name": "BerryVFNamequaryV10",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/4c81fa7a-9e59-498a-96ba-2fc16eba23a3/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "nk909r"
+ },
+
+ {
+ "uuid": "ac603264-cdf7-49ab-a9ae-92d341023218",
+ "invariantUUID": "379ab526-dc81-4b31-b60d-31c1805ddf5a",
+ "name": "FDNT1",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ac603264-cdf7-49ab-a9ae-92d341023218/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Border Element",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "c8c959fb-c57e-4a10-9f7e-d5cc5bbd4301",
+ "invariantUUID": "1170b507-33f9-4a2e-a9af-e44744b6c10d",
+ "name": "contrail route",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/c8c959fb-c57e-4a10-9f7e-d5cc5bbd4301/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Contrail Route",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "e3edd7bb-9732-4915-b1b9-2b4af561d85c",
+ "invariantUUID": "7669a21f-e8bf-429d-8267-b9a9b1be0e16",
+ "name": "test-port",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e3edd7bb-9732-4915-b1b9-2b4af561d85c/toscaModel",
+ "category": "Network L4+",
+ "subCategory": "Common Network Resources",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "8531f392-b695-49f4-98f8-cba632eb68fc",
+ "invariantUUID": "9dfe647e-7285-48dc-9e5d-f275f470e4ba",
+ "name": "security Zone",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8531f392-b695-49f4-98f8-cba632eb68fc/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Security Zone",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "e4924deb-7355-4f1e-9f8f-bd4e3b609e98",
+ "invariantUUID": "6eb4b1ca-75ac-454b-a145-1ea27157bfac",
+ "name": "IP_Mux_Demux",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e4924deb-7355-4f1e-9f8f-bd4e3b609e98/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "IP Mux Demux",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99124"
+ },
+
+ {
+ "uuid": "44ff8000-e703-4538-b26a-f2bc8205d7d4",
+ "invariantUUID": "26badc5a-d29e-4583-b773-0d42366a8bb1",
+ "name": "FDNT1234",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/44ff8000-e703-4538-b26a-f2bc8205d7d4/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "WAN Connectors",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m99124"
+ },
+
+ {
+ "uuid": "5ce3812b-935b-4c17-a1a7-a79a5179772e",
+ "invariantUUID": "ad3e0a75-d124-418d-ad57-970a9668e4d8",
+ "name": "vTSBC1",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/5ce3812b-935b-4c17-a1a7-a79a5179772e/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Gateway",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "e9fb3aa6-44f7-4154-9db6-1f60dac2d72f",
+ "invariantUUID": "ac661ee8-21b0-417f-98af-0b891c5f6c0d",
+ "name": "TuesdayVSP",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e9fb3aa6-44f7-4154-9db6-1f60dac2d72f/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "75b67a7f-9e2e-4c7d-a926-331f05ce5ff1",
+ "invariantUUID": "32d62649-390c-4208-b5cd-c1dc7dddf3db",
+ "name": "VF modules_1",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/75b67a7f-9e2e-4c7d-a926-331f05ce5ff1/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Load Balancer",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "25b6b8dc-8f32-42ea-bcea-04369827ddbf",
+ "invariantUUID": "e5d959b4-f11e-42ac-aa26-26beb526faf1",
+ "name": "pnf-resource-test",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/25b6b8dc-8f32-42ea-bcea-04369827ddbf/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ed852m"
+ },
+
+ {
+ "uuid": "f4bed159-36a0-4ea4-b2d4-2ebea8c208b8",
+ "invariantUUID": "e6b04d60-4a33-4899-9185-082b9b170cb8",
+ "name": "Dev2DevNFOD",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/f4bed159-36a0-4ea4-b2d4-2ebea8c208b8/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sw594b"
+ },
+
+ {
+ "uuid": "8dec3b8a-a0fa-4634-bbb4-d7bad5a912ab",
+ "invariantUUID": "eda652e4-6740-46bf-8d0f-92c4752070f6",
+ "name": "FCGI_OS",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8dec3b8a-a0fa-4634-bbb4-d7bad5a912ab/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Database",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "691cbc68-61df-472d-ad2d-8791444d2e27",
+ "invariantUUID": "7daf1f14-2aa3-48d8-89e5-3383cf004b6a",
+ "name": "AAI broker",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/691cbc68-61df-472d-ad2d-8791444d2e27/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "ccd6fa51-aafd-401f-96ce-3f0c94418865",
+ "invariantUUID": "fe5535d7-80e5-4278-bbdd-d2156b9a4d24",
+ "name": "test-consol",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/ccd6fa51-aafd-401f-96ce-3f0c94418865/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Gateway",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "100be1c2-28d9-4d8c-8551-608f82b202f8",
+ "invariantUUID": "771cb756-d74d-416d-97cb-6c88f1915721",
+ "name": "Source Generic",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/100be1c2-28d9-4d8c-8551-608f82b202f8/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Source",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "ml4535"
+ },
+
+ {
+ "uuid": "e2555d36-4fec-476a-8504-6e111f5d5dfd",
+ "invariantUUID": "cca91831-e7c4-4761-86eb-200206af302d",
+ "name": "VF Volume group",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e2555d36-4fec-476a-8504-6e111f5d5dfd/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Load Balancer",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "361f7f83-e4dd-4a27-ad4b-a7e1c7a52672",
+ "invariantUUID": "6598647d-b141-4c39-be82-91b536017bf2",
+ "name": "grapevnf",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/361f7f83-e4dd-4a27-ad4b-a7e1c7a52672/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "lm906x"
+ },
+
+ {
+ "uuid": "78160afe-b5e3-4978-8923-40d04671bd30",
+ "invariantUUID": "9b943920-4286-4f78-bc98-387d15812490",
+ "name": "APPC-test",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/78160afe-b5e3-4978-8923-40d04671bd30/toscaModel",
+ "category": "Network L4+",
+ "subCategory": "Common Network Resources",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "596c8b1d-3a1d-47fc-ace2-1fbebb94b1e5",
+ "invariantUUID": "b99889d1-bc9d-4a90-942c-88e21c358f75",
+ "name": "cherryvf",
+ "version": "3.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/596c8b1d-3a1d-47fc-ace2-1fbebb94b1e5/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "nk909r"
+ },
+
+ {
+ "uuid": "da3619c1-9b19-4edc-9853-a714c5034371",
+ "invariantUUID": "b90f7990-667a-4f63-9e7f-ee02f64766f1",
+ "name": "FDNT",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/da3619c1-9b19-4edc-9853-a714c5034371/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Call Control",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "m99121"
+ },
+
+ {
+ "uuid": "3c22db36-3461-4463-8b11-c8fbdb951c1e",
+ "invariantUUID": "42e3c73c-829f-464c-90fd-326ed7018d06",
+ "name": "RonyTestCSAR",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/3c22db36-3461-4463-8b11-c8fbdb951c1e/toscaModel",
+ "category": "Allotted Resource",
+ "subCategory": "Service Admin",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "rb844h"
+ },
+
+ {
+ "uuid": "d6c133c5-ab82-4c60-afe6-90556da55c7e",
+ "invariantUUID": "009e4104-2403-49c4-94ee-6dcb0547e44d",
+ "name": "VES Collector",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/d6c133c5-ab82-4c60-afe6-90556da55c7e/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Collector",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "43efef8f-204c-4a54-9121-ae19951063aa",
+ "invariantUUID": "926f6d60-bf84-46c4-9ed7-f0bb774e5184",
+ "name": "Sangeetha",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/43efef8f-204c-4a54-9121-ae19951063aa/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Database",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "e01dfc8f-2529-423b-9765-08b57df6ba51",
+ "invariantUUID": "6c7aaec2-59eb-41d9-8681-b7f976ab668d",
+ "name": "eNodeB-vf",
+ "version": "2.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/e01dfc8f-2529-423b-9765-08b57df6ba51/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Application Server",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "af3193"
+ },
+
+ {
+ "uuid": "1cad2e90-0259-498f-884d-7bbe5a156fb2",
+ "invariantUUID": "76b01019-a533-4c31-871d-6275924c7543",
+ "name": "vPE-AV-renana",
+ "version": "1.0",
+ "toscaModelURL": "/sdc/v1/catalog/resources/1cad2e90-0259-498f-884d-7bbe5a156fb2/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Router",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "m08743"
+ },
+
+ {
+ "uuid": "747ccce2-7efb-403d-acd3-88bc9ffb43a2",
+ "invariantUUID": "76b01019-a533-4c31-871d-6275924c7543",
+ "name": "vPE-AV-renana",
+ "version": "1.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/747ccce2-7efb-403d-acd3-88bc9ffb43a2/toscaModel",
+ "category": "Network L2-3",
+ "subCategory": "Router",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "2d0cb42c-398e-4c4c-959a-290459489cef",
+ "invariantUUID": "935689b9-80e2-4818-8c2d-fbbeaec9b56a",
+ "name": "csarTest",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/2d0cb42c-398e-4c4c-959a-290459489cef/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Load Balancer",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "ss8214"
+ },
+
+ {
+ "uuid": "62c5d4c8-1a5a-4081-bde7-8805821f41a0",
+ "invariantUUID": "5bf48fb1-a073-4ad5-84e0-387d9160713c",
+ "name": "madhu_mdns",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/62c5d4c8-1a5a-4081-bde7-8805821f41a0/toscaModel",
+ "category": "Application L4+",
+ "subCategory": "Firewall",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKIN",
+ "lastUpdaterUserId": "sa997j"
+ },
+
+ {
+ "uuid": "8faf42f4-287a-430e-a761-9df0ce4075d1",
+ "invariantUUID": "6e2213a9-6ca2-4ab9-adfd-1af95c61f23d",
+ "name": "vPE-BV-Renana",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/8faf42f4-287a-430e-a761-9df0ce4075d1/toscaModel",
+ "category": "Generic",
+ "subCategory": "Infrastructure",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "rh176a"
+ },
+
+ {
+ "uuid": "541310cd-d7b4-48d1-969a-d81866277298",
+ "invariantUUID": "30df25ac-d6c9-4cec-8c56-b287cd462e30",
+ "name": "TCA",
+ "version": "0.1",
+ "toscaModelURL": "/sdc/v1/catalog/resources/541310cd-d7b4-48d1-969a-d81866277298/toscaModel",
+ "category": "DCAE Component",
+ "subCategory": "Microservice",
+ "resourceType": "VF",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "ss7286"
+ }
+]
\ No newline at end of file