From 08673dc040d7483e159a6e705993690538d7b117 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Tue, 8 Aug 2017 02:54:59 -0700 Subject: 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) --- src/test/resources/example/sdc/sdcAlarmsList.csv | 13 + .../resources/example/sdc/sdcCinderVolume.json | 15 + .../resources/example/sdc/sdcMeasurementsList.csv | 17 + .../example/sdc/sdcResourceDetailsExample.json | 126 + .../resources/example/sdc/sdcSecurityRules.json | 15 + .../example/sdc/sdcServiceDetailsExample.json | 230 ++ .../example/sdc/sdcServicesListExample.json | 35 + .../example/sdc/sdcVFCGenericWithAlarms.json | 60 + .../resources/example/sdc/sdcVFCResources.json | 2445 ++++++++++++++++++++ src/test/resources/example/sdc/sdcVFResources.json | 1574 +++++++++++++ 10 files changed, 4530 insertions(+) create mode 100644 src/test/resources/example/sdc/sdcAlarmsList.csv create mode 100644 src/test/resources/example/sdc/sdcCinderVolume.json create mode 100644 src/test/resources/example/sdc/sdcMeasurementsList.csv create mode 100644 src/test/resources/example/sdc/sdcResourceDetailsExample.json create mode 100644 src/test/resources/example/sdc/sdcSecurityRules.json create mode 100644 src/test/resources/example/sdc/sdcServiceDetailsExample.json create mode 100644 src/test/resources/example/sdc/sdcServicesListExample.json create mode 100644 src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json create mode 100644 src/test/resources/example/sdc/sdcVFCResources.json create mode 100644 src/test/resources/example/sdc/sdcVFResources.json (limited to 'src/test/resources/example/sdc') diff --git a/src/test/resources/example/sdc/sdcAlarmsList.csv b/src/test/resources/example/sdc/sdcAlarmsList.csv new file mode 100644 index 000000000..247dcd9aa --- /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 000000000..b5ffe6465 --- /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 000000000..c04a3489e --- /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 000000000..6087d020f --- /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 000000000..07930a288 --- /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 000000000..820c6ca55 --- /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 000000000..3c1277a47 --- /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 000000000..0f9cf637b --- /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 000000000..be2ee46d4 --- /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 000000000..a8f32195d --- /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 -- cgit 1.2.3-korg From 676a7325b3240d69270330928a00b7b2ec8e3861 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Mon, 11 Sep 2017 13:23:12 +0200 Subject: Fix Holmes delegates and sdc Fix holmes delegates not declared in the cldsconfiguration and SDC IT tests that reports some exceptions Change-Id: I19dae11ad994e78e1f71fc78a2ff4627d91e66c1 Issue-Id: CLAMP-27 Signed-off-by: Determe, Sebastien (sd378r) --- .../onap/clamp/clds/config/CldsConfiguration.java | 12 + .../onap/clamp/clds/it/SdcCatalogServicesIT.java | 82 +- .../example/sdc/sdcCVFCResourceExample.json | 54 + .../example/sdc/sdcVFCResourceExample.json | 28 + .../resources/example/sdc/sdcVFCResourcesList.json | 2786 ++++++++++++++++++++ 5 files changed, 2934 insertions(+), 28 deletions(-) create mode 100644 src/test/resources/example/sdc/sdcCVFCResourceExample.json create mode 100644 src/test/resources/example/sdc/sdcVFCResourceExample.json create mode 100644 src/test/resources/example/sdc/sdcVFCResourcesList.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java index eee179111..fa0ca9615 100644 --- a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java @@ -37,6 +37,8 @@ import org.onap.clamp.clds.client.DcaeDispatcherServices; import org.onap.clamp.clds.client.DcaeInventoryServices; import org.onap.clamp.clds.client.DcaeReqDelegate; import org.onap.clamp.clds.client.DcaeReqDeleteDelegate; +import org.onap.clamp.clds.client.HolmesPolicyDelegate; +import org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate; import org.onap.clamp.clds.client.OperationalPolicyDelegate; import org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate; import org.onap.clamp.clds.client.PolicyClient; @@ -172,4 +174,14 @@ public class CldsConfiguration { return new TcaPolicyDeleteDelegate(); } + @Bean(name = "holmesPolicyDelegate") + public HolmesPolicyDelegate getHolmesPolicyDelegate() { + return new HolmesPolicyDelegate(); + } + + @Bean(name = "holmesPolicyDeleteDelegate") + public HolmesPolicyDeleteDelegate getHolmesPolicyDeleteDelegate() { + return new HolmesPolicyDeleteDelegate(); + } + } \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java index a12d6b7d5..2995b6c8d 100644 --- a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java +++ b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesIT.java @@ -237,51 +237,77 @@ public class SdcCatalogServicesIT extends AbstractIT { // This invariant uuid is the one from vcts4 v1.1 String serviceResourceDetailUrl = refProp.getStringValue("sdc.serviceUrl") + "/29018914-966c-442d-9d08-251b9dc45b8f/metadata"; - Mockito.when(spy.getCldsServicesOrResourcesBasedOnURL(serviceResourceDetailUrl, false)) - .thenReturn(IOUtils.toString( - SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServiceDetailsExample.json"), - "UTF-8")); + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServiceDetailsExample.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(serviceResourceDetailUrl, false); String resourceDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/585822c7-4027-4f84-ba50-e9248606f136/metadata"; - Mockito.when(spy.getCldsServicesOrResourcesBasedOnURL(resourceDetailUrl, false)) - .thenReturn(IOUtils.toString( - SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcResourceDetailsExample.json"), - "UTF-8")); + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcResourceDetailsExample.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(resourceDetailUrl, false); String securityRulesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/metadata"; - Mockito.when(spy.getCldsServicesOrResourcesBasedOnURL(securityRulesDetailUrl, false)).thenReturn( - IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcSecurityRules.json"), - "UTF-8")); + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcSecurityRules.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(securityRulesDetailUrl, false); String cinderVolumeDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/b4288e07-597a-44a2-aa98-ad36e551a39d/metadata"; - Mockito.when(spy.getCldsServicesOrResourcesBasedOnURL(cinderVolumeDetailUrl, false)).thenReturn( - IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcCinderVolume.json"), - "UTF-8")); + Mockito.doReturn(IOUtils + .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcCinderVolume.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(cinderVolumeDetailUrl, false); String vfcGenericDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/metadata"; - Mockito.when(spy.getCldsServicesOrResourcesBasedOnURL(vfcGenericDetailUrl, false)).thenReturn(IOUtils.toString( - SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCGenericWithAlarms.json"), "UTF-8")); + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCGenericWithAlarms.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(vfcGenericDetailUrl, false); + + String csvAlarmsDetailUrl = refProp.getStringValue("sdc.catalog.url") + + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392"; + Mockito.doReturn(IOUtils + .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl, false); - String csvDetailUrl = "/sdc/v1/catalog/resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153"; - Mockito.when(spy.getResponsesFromArtifactUrl(csvDetailUrl)).thenReturn(IOUtils.toString( - SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcMeasurementsList.csv"), "UTF-8")); + Mockito.doReturn(IOUtils + .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl, true); - String csvAlarmsDetailUrl = "/sdc/v1/catalog/resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392"; - Mockito.when(spy.getResponsesFromArtifactUrl(csvAlarmsDetailUrl)).thenReturn(IOUtils - .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8")); + String csvAlarmsDetailUrl2 = refProp.getStringValue("sdc.catalog.url") + + "resources/d7646638-2572-4a94-b497-c028ac15f9ca/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392"; + Mockito.doReturn(IOUtils + .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl2, true); String allVfResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VF"; - Mockito.when(spy.getCldsServicesOrResourcesBasedOnURL(allVfResourcesDetailUrl, false)).thenReturn(IOUtils - .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFResources.json"), "UTF-8")); + Mockito.doReturn(IOUtils + .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFResources.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfResourcesDetailUrl, false); + + String cVfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + + "resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/metadata"; + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcCVFCResourceExample.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(cVfcResourcesDetailUrl, false); String allVfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VFC"; - Mockito.when(spy.getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl, false)).thenReturn( - IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"), - "UTF-8")); + Mockito.doReturn(IOUtils + .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl, false); + + String allVfAlarms = refProp.getStringValue("sdc.catalog.url") + + "resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153"; + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcMeasurementsList.csv"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfAlarms, true); + + String vfcResourceExample = refProp.getStringValue("sdc.catalog.url") + + "resources/d7646638-2572-4a94-b497-c028ac15f9ca/metadata"; + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCResourceExample.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(vfcResourceExample, false); CldsServiceData cldsServiceData = spy .getCldsServiceDataWithAlarmConditions("a33ed748-3477-4434-b3f3-b5560f5e7d9c"); @@ -291,7 +317,7 @@ public class SdcCatalogServicesIT extends AbstractIT { List alarmsList = spy.getAllAlarmConditionsFromCldsServiceData(cldsServiceData, "alarmCondition"); - assertTrue(alarmsList.size() == 6); + assertTrue(alarmsList.size() == 12); } diff --git a/src/test/resources/example/sdc/sdcCVFCResourceExample.json b/src/test/resources/example/sdc/sdcCVFCResourceExample.json new file mode 100644 index 000000000..ffda413d3 --- /dev/null +++ b/src/test/resources/example/sdc/sdcCVFCResourceExample.json @@ -0,0 +1,54 @@ +{ + "uuid": "a0475018-1e7e-4ddd-8bee-33cbf958c2e6", + "invariantUUID": "133dd665-fca8-4e8b-8126-9e74a8d23bf5", + "name": "CLAMP-Dev-nodes.virc_fe_be_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/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_0", + "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", + "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/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/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" + } + ] + }, + { + "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" + } + ], + "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/sdcVFCResourceExample.json b/src/test/resources/example/sdc/sdcVFCResourceExample.json new file mode 100644 index 000000000..85b46c5ea --- /dev/null +++ b/src/test/resources/example/sdc/sdcVFCResourceExample.json @@ -0,0 +1,28 @@ +{ + "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", + "lastUpdaterFullName": "Zero ASDCMech", + "toscaResourceName": "org.openecomp.resource.vfc.Clampdev.abstract.nodes.heat.virc_fe_be", + "artifacts": [ + { + "artifactName": "Fault-alarms-ASDC-vprobes-vLB.csv", + "artifactType": "SNMP_TRAP", + "artifactURL": "/sdc/v1/catalog/resources/d7646638-2572-4a94-b497-c028ac15f9ca/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": "Not reusable inner VFC" +} \ No newline at end of file diff --git a/src/test/resources/example/sdc/sdcVFCResourcesList.json b/src/test/resources/example/sdc/sdcVFCResourcesList.json new file mode 100644 index 000000000..d99089cfd --- /dev/null +++ b/src/test/resources/example/sdc/sdcVFCResourcesList.json @@ -0,0 +1,2786 @@ +[ + { + "uuid": "b3538c76-7d58-4e15-9a06-b51b32101965", + "invariantUUID": "18a4a3c3-876f-4452-8cf0-fb3ebaf5344e", + "name": "VfNoLicense.nodes.oam", + "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": "ba541b5b-7d06-4198-adf9-c035b374cdb3", + "invariantUUID": "c2f34d4b-3c45-4367-a6f7-e9c06ad19607", + "name": "Newswproductnamefield.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ba541b5b-7d06-4198-adf9-c035b374cdb3/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "e84b8370-ffb7-4f6c-a242-ab3f340617fa", + "invariantUUID": "c6808001-bc29-4896-a187-06c41a341a18", + "name": "Alaram.nodes.heat.vCTS_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e84b8370-ffb7-4f6c-a242-ab3f340617fa/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "512ea41b-b9ac-412a-95ee-ac7410c2b6b2", + "invariantUUID": "9252564a-de36-4048-8a53-3923a6cb4b11", + "name": "Rony0620111.nodes.heat.rdn", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/512ea41b-b9ac-412a-95ee-ac7410c2b6b2/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "b4897fd9-7a50-492a-9e0c-054d044c1dcf", + "invariantUUID": "544f39a2-1306-472a-978b-9323439a7953", + "name": "RenanaTest2.nodes.heat.vlc", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b4897fd9-7a50-492a-9e0c-054d044c1dcf/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "24413de0-35fd-4e1b-8052-51a1c798b24d", + "invariantUUID": "ca0ae539-78d1-461a-a7ff-3dd663c85e2d", + "name": "pnf-test", + "version": "1.1", + "toscaModelURL": "/sdc/v1/catalog/resources/24413de0-35fd-4e1b-8052-51a1c798b24d/toscaModel", + "category": "Application L4+", + "subCategory": "Call Control", + "resourceType": "VFC", + "lifecycleState": "NOT_CERTIFIED_CHECKIN", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "d3543795-31cd-4bb9-acd7-09249fdf0c5b", + "invariantUUID": "f1703a65-8898-4dcc-8584-f15c0227d59b", + "name": "Ldsa1.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/d3543795-31cd-4bb9-acd7-09249fdf0c5b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "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": "39300382-8d78-4598-afa0-042613d6d8f7", + "invariantUUID": "7f6da2dc-0172-4e79-b152-adcee2ffc02f", + "name": "MnsoamDemo.nodes.heat.mnsoamvfw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/39300382-8d78-4598-afa0-042613d6d8f7/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "1d614214-2bc7-45bd-ab85-801ed72888c0", + "invariantUUID": "c9e19a34-5c50-463c-a409-2b2b0cfbaeac", + "name": "Rony0620.nodes.heat.rdn", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/1d614214-2bc7-45bd-ab85-801ed72888c0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "880e5d06-8c62-43f2-ac4a-befff414e63c", + "invariantUUID": "dd47c5d0-3145-467b-abf1-d1ace19aed04", + "name": "Alinatest.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/880e5d06-8c62-43f2-ac4a-befff414e63c/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "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": "c0cfa0b8-1214-4abc-bf4b-f71aed72f03b", + "invariantUUID": "37fcd63a-2d6e-4c42-8d63-183711976f9b", + "name": "multiFlavorVFC", + "version": "4.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c0cfa0b8-1214-4abc-bf4b-f71aed72f03b/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": "efc0c5f9-b900-4d6e-a8d9-746bfb400c6d", + "invariantUUID": "3f6b3916-cc98-475b-86d6-c1e8c376a004", + "name": "Ldsa.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/efc0c5f9-b900-4d6e-a8d9-746bfb400c6d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "c003a901-a27e-49a4-bf3f-d9d8ca838f0a", + "invariantUUID": "5e38e500-80a6-4d80-b6d8-43af998f4680", + "name": "ciRes259e8de19526", + "version": "0.1", + "toscaModelURL": "/sdc/v1/catalog/resources/c003a901-a27e-49a4-bf3f-d9d8ca838f0a/toscaModel", + "category": "Generic", + "subCategory": "Infrastructure", + "resourceType": "VFC", + "lifecycleState": "NOT_CERTIFIED_CHECKOUT", + "lastUpdaterUserId": "cs0008" + }, + { + "uuid": "eb54de4c-e180-4a89-8025-1d58267049f8", + "invariantUUID": "c22782e4-18ed-4ac6-b636-2c6df20003d9", + "name": "Rony0620.nodes.heat.oam", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/eb54de4c-e180-4a89-8025-1d58267049f8/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "d555e4fc-5c42-4990-9a53-3cc998496595", + "invariantUUID": "aa31721d-d880-4923-af59-7b136a6f1f4f", + "name": "Simonafirst0814.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/d555e4fc-5c42-4990-9a53-3cc998496595/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ss1245" + }, + { + "uuid": "73c3f25a-88a2-4ac3-89a4-9c0ecf5a9b31", + "invariantUUID": "62073892-e518-4cbf-9d67-207998273b9e", + "name": "Simona2test0814.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/73c3f25a-88a2-4ac3-89a4-9c0ecf5a9b31/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ss1245" + }, + { + "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": "eabf4617-19da-4df2-b195-579309638c51", + "invariantUUID": "cec737a5-ffdf-41a0-bc2c-1d5be9726589", + "name": "MnsdmzDemo.nodes.heat.mnsdmzvfw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/eabf4617-19da-4df2-b195-579309638c51/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": "fa5a2fa8-ae63-49c0-9f6c-5e5e2b7f9faa", + "invariantUUID": "0be62615-f136-404e-a3f7-fe13b2507319", + "name": "Rony0620111.nodes.heat.oam", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fa5a2fa8-ae63-49c0-9f6c-5e5e2b7f9faa/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "41dea130-9195-4d0b-97ba-8d86c0b00684", + "invariantUUID": "249fe495-f72d-44f7-aebc-0128070f8467", + "name": "Shani148softwareProduct.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/41dea130-9195-4d0b-97ba-8d86c0b00684/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "b8334449-de6b-4133-9c5d-1eb6c2736614", + "invariantUUID": "41f48075-4619-43bb-9885-b4e42537c2fc", + "name": "AlinaTest2.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b8334449-de6b-4133-9c5d-1eb6c2736614/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "97b6b724-1d91-406f-90c7-4d4643b34630", + "invariantUUID": "cda126b1-bfa5-4b29-aafa-c116e648a17a", + "name": "Ddd.nodes.heat.smp", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/97b6b724-1d91-406f-90c7-4d4643b34630/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "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": "3127c05d-fe28-4d7f-9866-33d87943e082", + "invariantUUID": "574a5ef9-530d-4b28-a7ab-1777547a8be2", + "name": "Vgmux.nodes.heat.vgmux", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3127c05d-fe28-4d7f-9866-33d87943e082/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "c17fc945-c327-469b-9912-f6d628cd6e4e", + "invariantUUID": "706253ae-7a68-4519-83d7-8f8842499246", + "name": "Rony0620111.nodes.heat.prx", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c17fc945-c327-469b-9912-f6d628cd6e4e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "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": "f059ce03-14f3-46c3-a9b3-246404b2f9d0", + "invariantUUID": "c787dc43-4580-42a5-88a7-70f5d56b8f9f", + "name": "NfodCheckpoint.nodes.NFOD_VFC", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f059ce03-14f3-46c3-a9b3-246404b2f9d0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "8dfca155-2ff7-49b3-b563-cc9c80bc951d", + "invariantUUID": "0b2b2953-bc5a-43e2-baf7-3f57b520e87b", + "name": "RenanaTest.nodes.heat.vlc", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/8dfca155-2ff7-49b3-b563-cc9c80bc951d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "b36dd1f0-f6aa-464d-b579-b5b75585ed44", + "invariantUUID": "81944c97-5936-4aab-835f-be41f8d8f52f", + "name": "RenanaTest.nodes.heat.ncb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b36dd1f0-f6aa-464d-b579-b5b75585ed44/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "b425c959-77e2-49bd-8865-dbdb59348b1a", + "invariantUUID": "a19c7920-fa0f-4afe-9db7-504152ab0116", + "name": "Infra.nodes.heat.vdns", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b425c959-77e2-49bd-8865-dbdb59348b1a/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "3f631e5f-5a89-48e1-9a22-ef4bff70041e", + "invariantUUID": "3e77e831-0a4d-4970-a351-0dd04ab6cd9d", + "name": "RenanaTest.nodes.heat.fsb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3f631e5f-5a89-48e1-9a22-ef4bff70041e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "a6c14d60-4705-4c73-a5a6-0210c9f0d8b7", + "invariantUUID": "f97f4614-c0db-4967-9a7a-c3491831e888", + "name": "Vbrgemu.nodes.heat.vbrgemu", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a6c14d60-4705-4c73-a5a6-0210c9f0d8b7/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "f6b85fc7-0be4-408a-8682-66227e9a9788", + "invariantUUID": "4b307d10-8da4-41f3-803a-49e908ea3f15", + "name": "Vgw.nodes.heat.vgw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f6b85fc7-0be4-408a-8682-66227e9a9788/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "35014ae6-b3dd-4a06-9046-df1b54354d40", + "invariantUUID": "372178ed-2849-4626-a87e-9b5fd319c0ee", + "name": "RenanaTest2.nodes.heat.gpb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/35014ae6-b3dd-4a06-9046-df1b54354d40/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "5fe71b5f-c733-4500-b129-a2f5822ba6f2", + "invariantUUID": "6943da4b-d378-4ae3-b1cf-50c011bdc420", + "name": "Alina0831vsp.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5fe71b5f-c733-4500-b129-a2f5822ba6f2/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "1b81e5d3-4a08-4db5-84a9-09096ff0f5ad", + "invariantUUID": "b3a8245a-9571-4e7c-bb76-7664ab035c41", + "name": "RenanaTest2.nodes.heat.ncb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/1b81e5d3-4a08-4db5-84a9-09096ff0f5ad/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "65624d26-fca6-4af0-bbdb-f3cc33b81417", + "invariantUUID": "d6105f5d-a2c2-481a-929f-b9f2b5700fdf", + "name": "RenanaTest2.nodes.heat.fsb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/65624d26-fca6-4af0-bbdb-f3cc33b81417/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "3445e9cf-056a-4f0f-b0c3-a151cf9f3c5c", + "invariantUUID": "61017bfa-4ed3-4027-9942-5abbbce2d55a", + "name": "Demo1234.nodes.first", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3445e9cf-056a-4f0f-b0c3-a151cf9f3c5c/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "78ff76c9-23d2-44c4-b0da-2492d93490b9", + "invariantUUID": "745995d0-6bf0-49d4-895f-32d554a7c333", + "name": "vnfConfiguration", + "version": "4.0", + "toscaModelURL": "/sdc/v1/catalog/resources/78ff76c9-23d2-44c4-b0da-2492d93490b9/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "jh0003" + }, + { + "uuid": "3ce98526-e5b6-4b40-99a1-916cca22b652", + "invariantUUID": "b5c65aea-949f-4fc9-928c-3a80619ffa8b", + "name": "Rony0620.nodes.heat.prx", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3ce98526-e5b6-4b40-99a1-916cca22b652/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "aae2edf9-690a-4633-a6ff-d7556ab9ce58", + "invariantUUID": "c76ccbe5-7087-4eb4-a0ff-2edd7d9a392c", + "name": "ContrailV2VirtualMachineInterface", + "version": "7.0", + "toscaModelURL": "/sdc/v1/catalog/resources/aae2edf9-690a-4633-a6ff-d7556ab9ce58/toscaModel", + "category": "Generic", + "subCategory": "Network Elements", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "jh0003" + }, + { + "uuid": "5a8831a3-d481-49ce-b029-754e37e4bc07", + "invariantUUID": "c319246f-3d23-4004-ac5b-ce65cb4135a0", + "name": "Infra.nodes.heat.vdhcp", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5a8831a3-d481-49ce-b029-754e37e4bc07/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "5c94528b-c068-4ece-9903-2a206e7b653b", + "invariantUUID": "cdc9d941-476d-4f55-a03d-215d8e9a5dca", + "name": "Infra.nodes.heat.vweb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5c94528b-c068-4ece-9903-2a206e7b653b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "0b62cd13-b416-40fc-904b-b071f22134cd", + "invariantUUID": "d1a976cb-5d76-4206-a644-119c1bdf9d93", + "name": "Vbng.nodes.heat.vbng", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/0b62cd13-b416-40fc-904b-b071f22134cd/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "ee55b9c4-6ea2-4351-bf6e-f88f38130fd8", + "invariantUUID": "a059a8c6-f7c2-4048-84fc-ca6f5878f0ec", + "name": "VctsAlina.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ee55b9c4-6ea2-4351-bf6e-f88f38130fd8/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "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": "143166ba-bb54-4a38-b3c5-24850a16a283", + "invariantUUID": "b55f6660-646a-448a-91c2-a7d12bba8039", + "name": "Ddd.nodes.heat.be", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/143166ba-bb54-4a38-b3c5-24850a16a283/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "d6554a01-a3db-4dfe-8f41-af3866e18fa0", + "invariantUUID": "20e8590f-4134-4ee7-b908-a2c81a831128", + "name": "Alina0815vsp.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/d6554a01-a3db-4dfe-8f41-af3866e18fa0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "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": "90024548-1f2c-4267-b3f7-b64b2b7174d5", + "invariantUUID": "589dd9ec-222b-497b-aa50-b529fdece780", + "name": "Ddd.nodes.heat.fe", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/90024548-1f2c-4267-b3f7-b64b2b7174d5/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "592fb9b5-aace-4c14-8e10-f1214cc532f0", + "invariantUUID": "d81200b8-5427-4415-b5c3-d98963a48c43", + "name": "Infra.nodes.heat.vaaa", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/592fb9b5-aace-4c14-8e10-f1214cc532f0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "73b40185-4478-402c-8951-2dd03b3e0e3c", + "invariantUUID": "fa7a3bb4-5892-4c19-a8c6-b0fa7b11102e", + "name": "NSD", + "version": "0.1", + "toscaModelURL": "/sdc/v1/catalog/resources/73b40185-4478-402c-8951-2dd03b3e0e3c/toscaModel", + "category": "Allotted Resource", + "subCategory": "Contrail Route", + "resourceType": "VFC", + "lifecycleState": "NOT_CERTIFIED_CHECKIN", + "lastUpdaterUserId": "ml636r" + }, + { + "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": "42315f4b-660e-44a5-b4bb-7fb80087de69", + "invariantUUID": "873af5a3-8f36-4199-b46a-9613f149de1e", + "name": "RenanaTest.nodes.heat.gpb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/42315f4b-660e-44a5-b4bb-7fb80087de69/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "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": "fda7cb95-cbd0-46cc-8311-87ae632f75d6", + "invariantUUID": "69c6a72d-5b61-4c66-955a-a70f547821f3", + "name": "1607Mog.nodes.heat.ps", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fda7cb95-cbd0-46cc-8311-87ae632f75d6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m99121" + }, + { + "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 -- cgit 1.2.3-korg From eaea5ad06aa510cbf36bb95c920932ab6de0e6de Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Mon, 18 Sep 2017 12:27:51 +0200 Subject: Reformat the JSON and fix checkstyle issue All Json used in the tests have been reformatted. Also some checkstyle bugs have been fixed Change-Id: I48373d9d53d39244c62b9b88b1cf62c15c766cb3 Issue-ID: CLAMP-54 Signed-off-by: Determe, Sebastien (sd378r) --- .../java/org/onap/clamp/clds/it/CldsServiceIT.java | 3 +- .../org/onap/clamp/clds/model/CldsModelTest.java | 80 +- src/test/resources/example/dao/bpmn-prop.json | 106 +- .../example/model-properties/modelBpmn.json | 74 +- .../example/model-properties/modelBpmnProp.json | 374 +- .../model-properties/modelBpmnPropWithGlobal.json | 382 +- .../example/sdc/sdcCVFCResourceExample.json | 106 +- .../example/sdc/sdcVFCResourceExample.json | 54 +- .../resources/example/sdc/sdcVFCResourcesList.json | 5570 ++++++++++---------- .../example/xsl-validation/modelBpmnForVerif.json | 74 +- 10 files changed, 3398 insertions(+), 3425 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/test/java/org/onap/clamp/clds/it/CldsServiceIT.java b/src/test/java/org/onap/clamp/clds/it/CldsServiceIT.java index 96131197b..f09c35778 100644 --- a/src/test/java/org/onap/clamp/clds/it/CldsServiceIT.java +++ b/src/test/java/org/onap/clamp/clds/it/CldsServiceIT.java @@ -94,8 +94,7 @@ public class CldsServiceIT extends AbstractIT { assertTrue(cldsInfo.isPermissionUpdateTemplate()); Properties prop = new Properties(); - // InputStream in = - // CldsInfo.class.getResourceAsStream("clds-version.properties"); + InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("clds-version.properties"); prop.load(in); in.close(); diff --git a/src/test/java/org/onap/clamp/clds/model/CldsModelTest.java b/src/test/java/org/onap/clamp/clds/model/CldsModelTest.java index 0333bdb78..229867813 100644 --- a/src/test/java/org/onap/clamp/clds/model/CldsModelTest.java +++ b/src/test/java/org/onap/clamp/clds/model/CldsModelTest.java @@ -58,22 +58,19 @@ public class CldsModelTest { cldsModel.validateAction("unknown"); } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromCreate() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_CREATE); cldsModel.validateAction(CldsEvent.ACTION_SUBMIT); cldsModel.validateAction(CldsEvent.ACTION_TEST); - try { - cldsModel.validateAction(CldsEvent.ACTION_DEPLOY); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { + cldsModel.validateAction(CldsEvent.ACTION_DEPLOY); + fail("Exception should have been sent"); - } } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromSubmitOrReSubmit() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_SUBMIT); @@ -82,35 +79,29 @@ public class CldsModelTest { cldsModel.validateAction(CldsEvent.ACTION_DEPLOY); fail("Exception should have been sent"); } catch (IllegalArgumentException e) { - + System.out.println("Exception caught IllegalArgumentException as expected"); } cldsModel.getEvent().setActionCd(CldsEvent.ACTION_RESUBMIT); cldsModel.validateAction(CldsEvent.ACTION_RESUBMIT); - try { - cldsModel.validateAction(CldsEvent.ACTION_DEPLOY); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { - } + cldsModel.validateAction(CldsEvent.ACTION_DEPLOY); + fail("Exception should have been sent"); } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromDistribute() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_DISTRIBUTE); cldsModel.validateAction(CldsEvent.ACTION_RESUBMIT); cldsModel.validateAction(CldsEvent.ACTION_DEPLOY); - try { - cldsModel.validateAction(CldsEvent.ACTION_CREATE); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { + cldsModel.validateAction(CldsEvent.ACTION_CREATE); + fail("Exception should have been sent"); - } } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromUndeploy() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_UNDEPLOY); @@ -118,15 +109,12 @@ public class CldsModelTest { cldsModel.validateAction(CldsEvent.ACTION_DEPLOY); cldsModel.validateAction(CldsEvent.ACTION_RESUBMIT); - try { - cldsModel.validateAction(CldsEvent.ACTION_CREATE); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { + cldsModel.validateAction(CldsEvent.ACTION_CREATE); + fail("Exception should have been sent"); - } } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromDeploy() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_DEPLOY); @@ -135,15 +123,12 @@ public class CldsModelTest { cldsModel.validateAction(CldsEvent.ACTION_UPDATE); cldsModel.validateAction(CldsEvent.ACTION_STOP); - try { - cldsModel.validateAction(CldsEvent.ACTION_CREATE); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { + cldsModel.validateAction(CldsEvent.ACTION_CREATE); + fail("Exception should have been sent"); - } } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromRestartOrUpdate() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_RESTART); @@ -156,7 +141,7 @@ public class CldsModelTest { cldsModel.validateAction(CldsEvent.ACTION_CREATE); fail("Exception should have been sent"); } catch (IllegalArgumentException e) { - + System.out.println("Exception caught IllegalArgumentException as expected"); } cldsModel.getEvent().setActionCd(CldsEvent.ACTION_UPDATE); @@ -165,16 +150,12 @@ public class CldsModelTest { cldsModel.validateAction(CldsEvent.ACTION_STOP); cldsModel.validateAction(CldsEvent.ACTION_UNDEPLOY); - try { - cldsModel.validateAction(CldsEvent.ACTION_CREATE); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { - - } + cldsModel.validateAction(CldsEvent.ACTION_CREATE); + fail("Exception should have been sent"); } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromDelete() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_DELETE); @@ -184,21 +165,18 @@ public class CldsModelTest { cldsModel.validateAction(CldsEvent.ACTION_CREATE); fail("Exception should have been sent"); } catch (IllegalArgumentException e) { - + System.out.println("Exception caught IllegalArgumentException as expected"); } cldsModel.getEvent().setActionCd(CldsEvent.ACTION_DELETE); cldsModel.getEvent().setActionStateCd(CldsEvent.ACTION_STATE_SENT); - try { - cldsModel.validateAction(CldsEvent.ACTION_SUBMIT); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { + cldsModel.validateAction(CldsEvent.ACTION_SUBMIT); + fail("Exception should have been sent"); - } } - @Test + @Test(expected = IllegalArgumentException.class) public void testValidateActionFromStop() { CldsModel cldsModel = new CldsModel(); cldsModel.getEvent().setActionCd(CldsEvent.ACTION_STOP); @@ -206,12 +184,8 @@ public class CldsModelTest { cldsModel.validateAction(CldsEvent.ACTION_RESTART); cldsModel.validateAction(CldsEvent.ACTION_UNDEPLOY); - try { - cldsModel.validateAction(CldsEvent.ACTION_CREATE); - fail("Exception should have been sent"); - } catch (IllegalArgumentException e) { - - } + cldsModel.validateAction(CldsEvent.ACTION_CREATE); + fail("Exception should have been sent"); } /** diff --git a/src/test/resources/example/dao/bpmn-prop.json b/src/test/resources/example/dao/bpmn-prop.json index f2bfc7de0..f1b87a006 100644 --- a/src/test/resources/example/dao/bpmn-prop.json +++ b/src/test/resources/example/dao/bpmn-prop.json @@ -1,54 +1,54 @@ { - "Holmes_1m8n1s9": [ - { - "name": "correlationalLogic", - "value": "uktukk" - } - ], - "Policy_19c1hms": { - "policy1": [ - { - "name": "pname", - "value": "policy1" - }, - { - "name": "pid", - "value": "0" - }, - { - "name": "timeout", - "value": "345" - }, - { - "policyConfigurations": [ - [ - { - "name": "maxRetries", - "value": [ - "3" - ] - }, - { - "name": "retryTimeLimit", - "value": [ - "180" - ] - }, - { - "name": "_id", - "value": [ - "JmAZRQx" - ] - }, - { - "name": "parentPolicy", - "value": [ - "" - ] - } - ] - ] - } - ] - } -} \ No newline at end of file + "Holmes_1m8n1s9": [ + { + "name": "correlationalLogic", + "value": "uktukk" + } + ], + "Policy_19c1hms": { + "policy1": [ + { + "name": "pname", + "value": "policy1" + }, + { + "name": "pid", + "value": "0" + }, + { + "name": "timeout", + "value": "345" + }, + { + "policyConfigurations": [ + [ + { + "name": "maxRetries", + "value": [ + "3" + ] + }, + { + "name": "retryTimeLimit", + "value": [ + "180" + ] + }, + { + "name": "_id", + "value": [ + "JmAZRQx" + ] + }, + { + "name": "parentPolicy", + "value": [ + "" + ] + } + ] + ] + } + ] + } +} diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json index 4737174c5..823641c73 100644 --- a/src/test/resources/example/model-properties/modelBpmn.json +++ b/src/test/resources/example/model-properties/modelBpmn.json @@ -1,38 +1,38 @@ { - "collector": [ - { - "id": "Collector_1c72ct5", - "from": "StartEvent_1" - } - ], - "stringMatch": [ - { - "id": "StringMatch_05arstl", - "from": "Collector_1c72ct5" - } - ], - "policy": [ - { - "id": "Policy_0honxgv", - "from": "TCA_1jy9to4" - } - ], - "tca": [ - { - "id": "TCA_1jy9to4", - "from": "Holmes_0i4n2mm" - } - ], - "holmes": [ - { - "id": "Holmes_0i4n2mm", - "from": "VesCollector_0orydnh" - } - ], - "vesCollector": [ - { - "id": "VesCollector_0orydnh", - "from": "StringMatch_05arstl" - } - ] -} \ No newline at end of file + "collector": [ + { + "id": "Collector_1c72ct5", + "from": "StartEvent_1" + } + ], + "stringMatch": [ + { + "id": "StringMatch_05arstl", + "from": "Collector_1c72ct5" + } + ], + "policy": [ + { + "id": "Policy_0honxgv", + "from": "TCA_1jy9to4" + } + ], + "tca": [ + { + "id": "TCA_1jy9to4", + "from": "Holmes_0i4n2mm" + } + ], + "holmes": [ + { + "id": "Holmes_0i4n2mm", + "from": "VesCollector_0orydnh" + } + ], + "vesCollector": [ + { + "id": "VesCollector_0orydnh", + "from": "StringMatch_05arstl" + } + ] +} diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json index 7e799aa8b..413d34009 100644 --- a/src/test/resources/example/model-properties/modelBpmnProp.json +++ b/src/test/resources/example/model-properties/modelBpmnProp.json @@ -1,188 +1,188 @@ { - "Collector_1c72ct5": [ - { - "name": "topicPublishes", - "value": "DCAE-COLLECTOR-UCSNMP" - } - ], - "StringMatch_05arstl": { - "group1": [ - { - "name": "rgname", - "value": "1505133578560" - }, - { - "name": "rgfriendlyname", - "value": "group1" - }, - { - "name": "policyName", - "value": "policy1" - }, - { - "name": "policyId", - "value": "0" - }, - { - "serviceConfigurations": [ - [ - { - "name": "aaiMatchingFields", - "value": [ - "complex.city" - ] - }, - { - "name": "aaiSendFields", - "value": [ - "cloud-region.identity-url" - ] - }, - { - "name": "timeWindow", - "value": [ - "0" - ] - }, - { - "name": "ageLimit", - "value": [ - "1600" - ] - }, - { - "name": "createClosedLoopEventId", - "value": [ - "Initial" - ] - }, - { - "name": "outputEventName", - "value": [ - "" - ] - }, - { - "stringSet": [ - { - - }, - { - "name": "eventSeverity", - "value": [ - "NORMAL" - ] - }, - { - "name": "eventSourceType", - "value": [ - "" - ] - } - ] - } - ] - ] - } - ] - }, - "Policy_0honxgv": { - "policy1": [ - { - "name": "pname", - "value": "policy1" - }, - { - "name": "pid", - "value": "0" - }, - { - "name": "timeout", - "value": "345" - }, - { - "policyConfigurations": [ - [ - { - "name": "maxRetries", - "value": [ - "3" - ] - }, - { - "name": "retryTimeLimit", - "value": [ - "180" - ] - }, - { - "name": "_id", - "value": [ - "dGLuNqg" - ] - }, - { - "name": "parentPolicy", - "value": [ - "" - ] - } - ] - ] - } - ] - }, - "TCA_1jy9to4": { - "tca1": [ - { - "name": "tname", - "value": "tca1" - }, - { - "name": "tuuid", - "value": "f43e3499-8c9c-teed-bb41-a0cb38ebf0d3" - }, - { - "name": "tnfc", - "value": "" - }, - { - "name": "tcaEnab", - "value": "on" - }, - { - "name": "tcaPol", - "value": "policy1" - }, - { - "name": "tcaPolId", - "value": "0" - }, - { - "name": "tcaInt", - "value": "1" - }, - { - "name": "tcaSev", - "value": "NORMAL" - }, - { - "name": "tcaVio", - "value": "1" - }, - { - "serviceConfigurations": [] - } - ] - }, - "Holmes_0i4n2mm": [ - { - "name": "correlationalLogic", - "value": "blabla" - }, - { - "name": "operationalPolicy", - "value": "policy1" - } - ] -} \ No newline at end of file + "Collector_1c72ct5": [ + { + "name": "topicPublishes", + "value": "DCAE-COLLECTOR-UCSNMP" + } + ], + "StringMatch_05arstl": { + "group1": [ + { + "name": "rgname", + "value": "1505133578560" + }, + { + "name": "rgfriendlyname", + "value": "group1" + }, + { + "name": "policyName", + "value": "policy1" + }, + { + "name": "policyId", + "value": "0" + }, + { + "serviceConfigurations": [ + [ + { + "name": "aaiMatchingFields", + "value": [ + "complex.city" + ] + }, + { + "name": "aaiSendFields", + "value": [ + "cloud-region.identity-url" + ] + }, + { + "name": "timeWindow", + "value": [ + "0" + ] + }, + { + "name": "ageLimit", + "value": [ + "1600" + ] + }, + { + "name": "createClosedLoopEventId", + "value": [ + "Initial" + ] + }, + { + "name": "outputEventName", + "value": [ + "" + ] + }, + { + "stringSet": [ + { + }, + { + "name": "eventSeverity", + "value": [ + "NORMAL" + ] + }, + { + "name": "eventSourceType", + "value": [ + "" + ] + } + ] + } + ] + ] + } + ] + }, + "Policy_0honxgv": { + "policy1": [ + { + "name": "pname", + "value": "policy1" + }, + { + "name": "pid", + "value": "0" + }, + { + "name": "timeout", + "value": "345" + }, + { + "policyConfigurations": [ + [ + { + "name": "maxRetries", + "value": [ + "3" + ] + }, + { + "name": "retryTimeLimit", + "value": [ + "180" + ] + }, + { + "name": "_id", + "value": [ + "dGLuNqg" + ] + }, + { + "name": "parentPolicy", + "value": [ + "" + ] + } + ] + ] + } + ] + }, + "TCA_1jy9to4": { + "tca1": [ + { + "name": "tname", + "value": "tca1" + }, + { + "name": "tuuid", + "value": "f43e3499-8c9c-teed-bb41-a0cb38ebf0d3" + }, + { + "name": "tnfc", + "value": "" + }, + { + "name": "tcaEnab", + "value": "on" + }, + { + "name": "tcaPol", + "value": "policy1" + }, + { + "name": "tcaPolId", + "value": "0" + }, + { + "name": "tcaInt", + "value": "1" + }, + { + "name": "tcaSev", + "value": "NORMAL" + }, + { + "name": "tcaVio", + "value": "1" + }, + { + "serviceConfigurations": [ + ] + } + ] + }, + "Holmes_0i4n2mm": [ + { + "name": "correlationalLogic", + "value": "blabla" + }, + { + "name": "operationalPolicy", + "value": "policy1" + } + ] +} diff --git a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json index 5abb28a8c..3846f7cf5 100644 --- a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json +++ b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json @@ -1,192 +1,192 @@ { - "collector": { - "topicPublishes": { - "DCAE-COLLECTOR-UCSNMP": "DCAE-COLLECTOR-UCSNMP", - "GFP-IP-AIC-SNMP-TRAPS": "GFP-IP-AIC-SNMP-TRAPS", - "AIC-SNMP-TRAPS": "AIC-SNMP-TRAPS" - } - }, - "string_match": { - "topicPublishes": { - "DCAE-CL-EVENT": "DCAE-CL-EVENT" - }, - "aaiMatchingFields": { - "cloud-region.identity-url": "cloud-region.identity-url", - "complex.city": "complex.city", - "complex.physical-location-id": "complex.physical-location-id", - "complex.state": "complex.state", - "generic-vnf.service-id": "generic-vnf.service-id", - "generic-vnf.vnf-name": "generic-vnf.vnf-name", - "generic-vnf.vnf-type": "generic-vnf.vnf-type", - "tenant.tenant-id": "tenant.tenant-id", - "vserver.in-maint": "vserver.in-maint", - "vserver.is-closed-loop-disabled": "vserver.is-closed-loop-disabled", - "vserver.l-interface.interface-name": "vserver.l-interface.interface-name", - "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address": "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address", - "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address": "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address", - "vserver.l-interface.network-name": "vserver.l-interface.network-name", - "vserver.prov-status": "vserver.prov-status", - "vserver.selflink": "vserver.selflink", - "vserver.vserver-id": "vserver.vserver-id", - "vserver.vserver-name": "vserver.vserver-name" - }, - "aaiSendFields": { - "cloud-region.identity-url": "cloud-region.identity-url", - "complex.city": "complex.city", - "complex.physical-location-id": "complex.physical-location-id", - "complex.state": "complex.state", - "generic-vnf.service-id": "generic-vnf.service-id", - "generic-vnf.vnf-name": "generic-vnf.vnf-name", - "generic-vnf.vnf-type": "generic-vnf.vnf-type", - "tenant.tenant-id": "tenant.tenant-id", - "vserver.in-maint": "vserver.in-maint", - "vserver.is-closed-loop-disabled": "vserver.is-closed-loop-disabled", - "vserver.l-interface.interface-name": "vserver.l-interface.interface-name", - "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address": "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address", - "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address": "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address", - "vserver.l-interface.network-name": "vserver.l-interface.network-name", - "vserver.prov-status": "vserver.prov-status", - "vserver.selflink": "vserver.selflink", - "vserver.vserver-id": "vserver.vserver-id", - "vserver.vserver-name": "vserver.vserver-name" - }, - "eventSourceType": { - "f5BigIP": "f5BigIP", - "vSBG_Alarms": "vSBG_Alarms", - "vCTS_Alarms": "vCTS_Alarms" - }, - "eventSeverity": { - "NORMAL": "NORMAL", - "not-NORMAL": "not-NORMAL", - "OK": "OK", - "WARNING": "WARNING", - "MINOR": "MINOR", - "MAJOR": "MAJOR", - "CRITICAL": "CRITICAL" - }, - "timeWindow": 0, - "ageLimit": 1600, - "outputEventName": { - "": "", - "ONSET": "ONSET", - "ABATED": "ABATED" - }, - "createClosedLoopEventId": { - "Initial": "Initial", - "Close": "Close" - } - }, - "tca": { - "tname": "New_Set", - "tcaInt": "1", - "tcaVio": "1", - "tcaSev": { - "NORMAL": "NORMAL", - "CRITICAL": "CRITICAL", - "MAJOR": "MAJOR", - "MINOR": "MINOR", - "WARNING": "WARNING" - }, - "fieldPath": { - "FIELDPATH_test_1": "FIELDPATH_test_1", - "FIELDPATH_test_2": "FIELDPATH_test_2" - }, - "operator": { - ">": "GREATER", - "=": "EQUAL", - "<": "LESS" - }, - "opsPolicy": { - "POLICY_test_X": "POLICY_test_X", - "POLICY_test_Y": "POLICY_test_Y" - } - }, - "global": [ - { - "name": "actionSet", - "value": [ - "vnfRecipe" - ] - }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED" - ] - }, - { - "name": "vf", - "value": [ - "f5213e3a-9191-4362-93b5-b67f8d770e44" - ] - }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED", - "LSLEILAA", - "MDTWNJC1" - ] - } - ], - "policy": { - "pname": "0", - "timeout": 345, - "vnfRecipe": { - "": "", - "restart": "Restart", - "rebuild": "Rebuild", - "migrate": "Migrate", - "healthCheck": "Health Check", - "evacuate": "Evacuate" - }, - "enbRecipe": { - "": "", - "reset": "Reset" - }, - "maxRetries": "3", - "retryTimeLimit": 180, - "resource": { - "vCTS": "vCTS", - "v3CDB": "v3CDB", - "vUDR": "vUDR", - "vCOM": "vCOM", - "vRAR": "vRAR", - "vLCS": "vLCS", - "vUDR-BE": "vUDR-BE", - "vDBE": "vDBE" - }, - "parentPolicyConditions": { - "Failure_Retries": "Failure: Max Retries Exceeded", - "Failure_Timeout": "Failure: Time Limit Exceeded", - "Failure_Guard": "Failure: Guard", - "Failure_Exception": "Failure: Exception", - "Failure": "Failure: Other", - "Success": "Success" - } - }, - "shared": { - "byService": { - "": { - "vf": { - "": "" - }, - "location": { - "": "" - }, - "alarmCondition": { - "": "" - } - } - }, - "byVf": { - "": { - "vfc": { - "": "" - } - } - } - } -} \ No newline at end of file + "collector": { + "topicPublishes": { + "DCAE-COLLECTOR-UCSNMP": "DCAE-COLLECTOR-UCSNMP", + "GFP-IP-AIC-SNMP-TRAPS": "GFP-IP-AIC-SNMP-TRAPS", + "AIC-SNMP-TRAPS": "AIC-SNMP-TRAPS" + } + }, + "string_match": { + "topicPublishes": { + "DCAE-CL-EVENT": "DCAE-CL-EVENT" + }, + "aaiMatchingFields": { + "cloud-region.identity-url": "cloud-region.identity-url", + "complex.city": "complex.city", + "complex.physical-location-id": "complex.physical-location-id", + "complex.state": "complex.state", + "generic-vnf.service-id": "generic-vnf.service-id", + "generic-vnf.vnf-name": "generic-vnf.vnf-name", + "generic-vnf.vnf-type": "generic-vnf.vnf-type", + "tenant.tenant-id": "tenant.tenant-id", + "vserver.in-maint": "vserver.in-maint", + "vserver.is-closed-loop-disabled": "vserver.is-closed-loop-disabled", + "vserver.l-interface.interface-name": "vserver.l-interface.interface-name", + "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address": "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address", + "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address": "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address", + "vserver.l-interface.network-name": "vserver.l-interface.network-name", + "vserver.prov-status": "vserver.prov-status", + "vserver.selflink": "vserver.selflink", + "vserver.vserver-id": "vserver.vserver-id", + "vserver.vserver-name": "vserver.vserver-name" + }, + "aaiSendFields": { + "cloud-region.identity-url": "cloud-region.identity-url", + "complex.city": "complex.city", + "complex.physical-location-id": "complex.physical-location-id", + "complex.state": "complex.state", + "generic-vnf.service-id": "generic-vnf.service-id", + "generic-vnf.vnf-name": "generic-vnf.vnf-name", + "generic-vnf.vnf-type": "generic-vnf.vnf-type", + "tenant.tenant-id": "tenant.tenant-id", + "vserver.in-maint": "vserver.in-maint", + "vserver.is-closed-loop-disabled": "vserver.is-closed-loop-disabled", + "vserver.l-interface.interface-name": "vserver.l-interface.interface-name", + "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address": "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address", + "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address": "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address", + "vserver.l-interface.network-name": "vserver.l-interface.network-name", + "vserver.prov-status": "vserver.prov-status", + "vserver.selflink": "vserver.selflink", + "vserver.vserver-id": "vserver.vserver-id", + "vserver.vserver-name": "vserver.vserver-name" + }, + "eventSourceType": { + "f5BigIP": "f5BigIP", + "vSBG_Alarms": "vSBG_Alarms", + "vCTS_Alarms": "vCTS_Alarms" + }, + "eventSeverity": { + "NORMAL": "NORMAL", + "not-NORMAL": "not-NORMAL", + "OK": "OK", + "WARNING": "WARNING", + "MINOR": "MINOR", + "MAJOR": "MAJOR", + "CRITICAL": "CRITICAL" + }, + "timeWindow": 0, + "ageLimit": 1600, + "outputEventName": { + "": "", + "ONSET": "ONSET", + "ABATED": "ABATED" + }, + "createClosedLoopEventId": { + "Initial": "Initial", + "Close": "Close" + } + }, + "tca": { + "tname": "New_Set", + "tcaInt": "1", + "tcaVio": "1", + "tcaSev": { + "NORMAL": "NORMAL", + "CRITICAL": "CRITICAL", + "MAJOR": "MAJOR", + "MINOR": "MINOR", + "WARNING": "WARNING" + }, + "fieldPath": { + "FIELDPATH_test_1": "FIELDPATH_test_1", + "FIELDPATH_test_2": "FIELDPATH_test_2" + }, + "operator": { + ">": "GREATER", + "=": "EQUAL", + "<": "LESS" + }, + "opsPolicy": { + "POLICY_test_X": "POLICY_test_X", + "POLICY_test_Y": "POLICY_test_Y" + } + }, + "global": [ + { + "name": "actionSet", + "value": [ + "vnfRecipe" + ] + }, + { + "name": "location", + "value": [ + "SNDGCA64", + "ALPRGAED" + ] + }, + { + "name": "vf", + "value": [ + "f5213e3a-9191-4362-93b5-b67f8d770e44" + ] + }, + { + "name": "location", + "value": [ + "SNDGCA64", + "ALPRGAED", + "LSLEILAA", + "MDTWNJC1" + ] + } + ], + "policy": { + "pname": "0", + "timeout": 345, + "vnfRecipe": { + "": "", + "restart": "Restart", + "rebuild": "Rebuild", + "migrate": "Migrate", + "healthCheck": "Health Check", + "evacuate": "Evacuate" + }, + "enbRecipe": { + "": "", + "reset": "Reset" + }, + "maxRetries": "3", + "retryTimeLimit": 180, + "resource": { + "vCTS": "vCTS", + "v3CDB": "v3CDB", + "vUDR": "vUDR", + "vCOM": "vCOM", + "vRAR": "vRAR", + "vLCS": "vLCS", + "vUDR-BE": "vUDR-BE", + "vDBE": "vDBE" + }, + "parentPolicyConditions": { + "Failure_Retries": "Failure: Max Retries Exceeded", + "Failure_Timeout": "Failure: Time Limit Exceeded", + "Failure_Guard": "Failure: Guard", + "Failure_Exception": "Failure: Exception", + "Failure": "Failure: Other", + "Success": "Success" + } + }, + "shared": { + "byService": { + "": { + "vf": { + "": "" + }, + "location": { + "": "" + }, + "alarmCondition": { + "": "" + } + } + }, + "byVf": { + "": { + "vfc": { + "": "" + } + } + } + } +} diff --git a/src/test/resources/example/sdc/sdcCVFCResourceExample.json b/src/test/resources/example/sdc/sdcCVFCResourceExample.json index ffda413d3..d31b66b11 100644 --- a/src/test/resources/example/sdc/sdcCVFCResourceExample.json +++ b/src/test/resources/example/sdc/sdcCVFCResourceExample.json @@ -1,54 +1,54 @@ { - "uuid": "a0475018-1e7e-4ddd-8bee-33cbf958c2e6", - "invariantUUID": "133dd665-fca8-4e8b-8126-9e74a8d23bf5", - "name": "CLAMP-Dev-nodes.virc_fe_be_0", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/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_0", - "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", - "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/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/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" - } - ] - }, - { - "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" - } - ], - "description": "Complex node type that is used as nested type in VF" -} \ No newline at end of file + "uuid": "a0475018-1e7e-4ddd-8bee-33cbf958c2e6", + "invariantUUID": "133dd665-fca8-4e8b-8126-9e74a8d23bf5", + "name": "CLAMP-Dev-nodes.virc_fe_be_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/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_0", + "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", + "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/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/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" + } + ] + }, + { + "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" + } + ], + "description": "Complex node type that is used as nested type in VF" +} diff --git a/src/test/resources/example/sdc/sdcVFCResourceExample.json b/src/test/resources/example/sdc/sdcVFCResourceExample.json index 85b46c5ea..0fb2f5dff 100644 --- a/src/test/resources/example/sdc/sdcVFCResourceExample.json +++ b/src/test/resources/example/sdc/sdcVFCResourceExample.json @@ -1,28 +1,28 @@ { - "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", - "lastUpdaterFullName": "Zero ASDCMech", - "toscaResourceName": "org.openecomp.resource.vfc.Clampdev.abstract.nodes.heat.virc_fe_be", - "artifacts": [ - { - "artifactName": "Fault-alarms-ASDC-vprobes-vLB.csv", - "artifactType": "SNMP_TRAP", - "artifactURL": "/sdc/v1/catalog/resources/d7646638-2572-4a94-b497-c028ac15f9ca/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": "Not reusable inner VFC" -} \ No newline at end of file + "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", + "lastUpdaterFullName": "Zero ASDCMech", + "toscaResourceName": "org.openecomp.resource.vfc.Clampdev.abstract.nodes.heat.virc_fe_be", + "artifacts": [ + { + "artifactName": "Fault-alarms-ASDC-vprobes-vLB.csv", + "artifactType": "SNMP_TRAP", + "artifactURL": "/sdc/v1/catalog/resources/d7646638-2572-4a94-b497-c028ac15f9ca/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": "Not reusable inner VFC" +} diff --git a/src/test/resources/example/sdc/sdcVFCResourcesList.json b/src/test/resources/example/sdc/sdcVFCResourcesList.json index d99089cfd..c6ca26dac 100644 --- a/src/test/resources/example/sdc/sdcVFCResourcesList.json +++ b/src/test/resources/example/sdc/sdcVFCResourcesList.json @@ -1,2786 +1,2786 @@ [ - { - "uuid": "b3538c76-7d58-4e15-9a06-b51b32101965", - "invariantUUID": "18a4a3c3-876f-4452-8cf0-fb3ebaf5344e", - "name": "VfNoLicense.nodes.oam", - "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": "ba541b5b-7d06-4198-adf9-c035b374cdb3", - "invariantUUID": "c2f34d4b-3c45-4367-a6f7-e9c06ad19607", - "name": "Newswproductnamefield.nodes.heat.ltm", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/ba541b5b-7d06-4198-adf9-c035b374cdb3/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" - }, - { - "uuid": "e84b8370-ffb7-4f6c-a242-ab3f340617fa", - "invariantUUID": "c6808001-bc29-4896-a187-06c41a341a18", - "name": "Alaram.nodes.heat.vCTS_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/e84b8370-ffb7-4f6c-a242-ab3f340617fa/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" - }, - { - "uuid": "512ea41b-b9ac-412a-95ee-ac7410c2b6b2", - "invariantUUID": "9252564a-de36-4048-8a53-3923a6cb4b11", - "name": "Rony0620111.nodes.heat.rdn", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/512ea41b-b9ac-412a-95ee-ac7410c2b6b2/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" - }, - { - "uuid": "b4897fd9-7a50-492a-9e0c-054d044c1dcf", - "invariantUUID": "544f39a2-1306-472a-978b-9323439a7953", - "name": "RenanaTest2.nodes.heat.vlc", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/b4897fd9-7a50-492a-9e0c-054d044c1dcf/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "uuid": "24413de0-35fd-4e1b-8052-51a1c798b24d", - "invariantUUID": "ca0ae539-78d1-461a-a7ff-3dd663c85e2d", - "name": "pnf-test", - "version": "1.1", - "toscaModelURL": "/sdc/v1/catalog/resources/24413de0-35fd-4e1b-8052-51a1c798b24d/toscaModel", - "category": "Application L4+", - "subCategory": "Call Control", - "resourceType": "VFC", - "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m08740" - }, - { - "uuid": "d3543795-31cd-4bb9-acd7-09249fdf0c5b", - "invariantUUID": "f1703a65-8898-4dcc-8584-f15c0227d59b", - "name": "Ldsa1.nodes.heat.ltm", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/d3543795-31cd-4bb9-acd7-09249fdf0c5b/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" - }, - { - "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": "39300382-8d78-4598-afa0-042613d6d8f7", - "invariantUUID": "7f6da2dc-0172-4e79-b152-adcee2ffc02f", - "name": "MnsoamDemo.nodes.heat.mnsoamvfw", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/39300382-8d78-4598-afa0-042613d6d8f7/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" - }, - { - "uuid": "1d614214-2bc7-45bd-ab85-801ed72888c0", - "invariantUUID": "c9e19a34-5c50-463c-a409-2b2b0cfbaeac", - "name": "Rony0620.nodes.heat.rdn", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/1d614214-2bc7-45bd-ab85-801ed72888c0/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" - }, - { - "uuid": "880e5d06-8c62-43f2-ac4a-befff414e63c", - "invariantUUID": "dd47c5d0-3145-467b-abf1-d1ace19aed04", - "name": "Alinatest.nodes.heat.TEST_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/880e5d06-8c62-43f2-ac4a-befff414e63c/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" - }, - { - "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": "c0cfa0b8-1214-4abc-bf4b-f71aed72f03b", - "invariantUUID": "37fcd63a-2d6e-4c42-8d63-183711976f9b", - "name": "multiFlavorVFC", - "version": "4.0", - "toscaModelURL": "/sdc/v1/catalog/resources/c0cfa0b8-1214-4abc-bf4b-f71aed72f03b/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": "efc0c5f9-b900-4d6e-a8d9-746bfb400c6d", - "invariantUUID": "3f6b3916-cc98-475b-86d6-c1e8c376a004", - "name": "Ldsa.nodes.heat.ltm", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/efc0c5f9-b900-4d6e-a8d9-746bfb400c6d/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" - }, - { - "uuid": "c003a901-a27e-49a4-bf3f-d9d8ca838f0a", - "invariantUUID": "5e38e500-80a6-4d80-b6d8-43af998f4680", - "name": "ciRes259e8de19526", - "version": "0.1", - "toscaModelURL": "/sdc/v1/catalog/resources/c003a901-a27e-49a4-bf3f-d9d8ca838f0a/toscaModel", - "category": "Generic", - "subCategory": "Infrastructure", - "resourceType": "VFC", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "cs0008" - }, - { - "uuid": "eb54de4c-e180-4a89-8025-1d58267049f8", - "invariantUUID": "c22782e4-18ed-4ac6-b636-2c6df20003d9", - "name": "Rony0620.nodes.heat.oam", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/eb54de4c-e180-4a89-8025-1d58267049f8/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" - }, - { - "uuid": "d555e4fc-5c42-4990-9a53-3cc998496595", - "invariantUUID": "aa31721d-d880-4923-af59-7b136a6f1f4f", - "name": "Simonafirst0814.nodes.heat.TEST_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/d555e4fc-5c42-4990-9a53-3cc998496595/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss1245" - }, - { - "uuid": "73c3f25a-88a2-4ac3-89a4-9c0ecf5a9b31", - "invariantUUID": "62073892-e518-4cbf-9d67-207998273b9e", - "name": "Simona2test0814.nodes.heat.TEST_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/73c3f25a-88a2-4ac3-89a4-9c0ecf5a9b31/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss1245" - }, - { - "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": "eabf4617-19da-4df2-b195-579309638c51", - "invariantUUID": "cec737a5-ffdf-41a0-bc2c-1d5be9726589", - "name": "MnsdmzDemo.nodes.heat.mnsdmzvfw", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/eabf4617-19da-4df2-b195-579309638c51/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": "fa5a2fa8-ae63-49c0-9f6c-5e5e2b7f9faa", - "invariantUUID": "0be62615-f136-404e-a3f7-fe13b2507319", - "name": "Rony0620111.nodes.heat.oam", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/fa5a2fa8-ae63-49c0-9f6c-5e5e2b7f9faa/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" - }, - { - "uuid": "41dea130-9195-4d0b-97ba-8d86c0b00684", - "invariantUUID": "249fe495-f72d-44f7-aebc-0128070f8467", - "name": "Shani148softwareProduct.nodes.heat.ltm", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/41dea130-9195-4d0b-97ba-8d86c0b00684/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" - }, - { - "uuid": "b8334449-de6b-4133-9c5d-1eb6c2736614", - "invariantUUID": "41f48075-4619-43bb-9885-b4e42537c2fc", - "name": "AlinaTest2.nodes.heat.TEST_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/b8334449-de6b-4133-9c5d-1eb6c2736614/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" - }, - { - "uuid": "97b6b724-1d91-406f-90c7-4d4643b34630", - "invariantUUID": "cda126b1-bfa5-4b29-aafa-c116e648a17a", - "name": "Ddd.nodes.heat.smp", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/97b6b724-1d91-406f-90c7-4d4643b34630/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" - }, - { - "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": "3127c05d-fe28-4d7f-9866-33d87943e082", - "invariantUUID": "574a5ef9-530d-4b28-a7ab-1777547a8be2", - "name": "Vgmux.nodes.heat.vgmux", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/3127c05d-fe28-4d7f-9866-33d87943e082/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "c17fc945-c327-469b-9912-f6d628cd6e4e", - "invariantUUID": "706253ae-7a68-4519-83d7-8f8842499246", - "name": "Rony0620111.nodes.heat.prx", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/c17fc945-c327-469b-9912-f6d628cd6e4e/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" - }, - { - "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": "f059ce03-14f3-46c3-a9b3-246404b2f9d0", - "invariantUUID": "c787dc43-4580-42a5-88a7-70f5d56b8f9f", - "name": "NfodCheckpoint.nodes.NFOD_VFC", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/f059ce03-14f3-46c3-a9b3-246404b2f9d0/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" - }, - { - "uuid": "8dfca155-2ff7-49b3-b563-cc9c80bc951d", - "invariantUUID": "0b2b2953-bc5a-43e2-baf7-3f57b520e87b", - "name": "RenanaTest.nodes.heat.vlc", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/8dfca155-2ff7-49b3-b563-cc9c80bc951d/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "uuid": "b36dd1f0-f6aa-464d-b579-b5b75585ed44", - "invariantUUID": "81944c97-5936-4aab-835f-be41f8d8f52f", - "name": "RenanaTest.nodes.heat.ncb", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/b36dd1f0-f6aa-464d-b579-b5b75585ed44/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "uuid": "b425c959-77e2-49bd-8865-dbdb59348b1a", - "invariantUUID": "a19c7920-fa0f-4afe-9db7-504152ab0116", - "name": "Infra.nodes.heat.vdns", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/b425c959-77e2-49bd-8865-dbdb59348b1a/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "3f631e5f-5a89-48e1-9a22-ef4bff70041e", - "invariantUUID": "3e77e831-0a4d-4970-a351-0dd04ab6cd9d", - "name": "RenanaTest.nodes.heat.fsb", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/3f631e5f-5a89-48e1-9a22-ef4bff70041e/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "uuid": "a6c14d60-4705-4c73-a5a6-0210c9f0d8b7", - "invariantUUID": "f97f4614-c0db-4967-9a7a-c3491831e888", - "name": "Vbrgemu.nodes.heat.vbrgemu", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/a6c14d60-4705-4c73-a5a6-0210c9f0d8b7/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "f6b85fc7-0be4-408a-8682-66227e9a9788", - "invariantUUID": "4b307d10-8da4-41f3-803a-49e908ea3f15", - "name": "Vgw.nodes.heat.vgw", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/f6b85fc7-0be4-408a-8682-66227e9a9788/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "35014ae6-b3dd-4a06-9046-df1b54354d40", - "invariantUUID": "372178ed-2849-4626-a87e-9b5fd319c0ee", - "name": "RenanaTest2.nodes.heat.gpb", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/35014ae6-b3dd-4a06-9046-df1b54354d40/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "uuid": "5fe71b5f-c733-4500-b129-a2f5822ba6f2", - "invariantUUID": "6943da4b-d378-4ae3-b1cf-50c011bdc420", - "name": "Alina0831vsp.nodes.heat.TEST_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/5fe71b5f-c733-4500-b129-a2f5822ba6f2/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" - }, - { - "uuid": "1b81e5d3-4a08-4db5-84a9-09096ff0f5ad", - "invariantUUID": "b3a8245a-9571-4e7c-bb76-7664ab035c41", - "name": "RenanaTest2.nodes.heat.ncb", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/1b81e5d3-4a08-4db5-84a9-09096ff0f5ad/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "uuid": "65624d26-fca6-4af0-bbdb-f3cc33b81417", - "invariantUUID": "d6105f5d-a2c2-481a-929f-b9f2b5700fdf", - "name": "RenanaTest2.nodes.heat.fsb", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/65624d26-fca6-4af0-bbdb-f3cc33b81417/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "uuid": "3445e9cf-056a-4f0f-b0c3-a151cf9f3c5c", - "invariantUUID": "61017bfa-4ed3-4027-9942-5abbbce2d55a", - "name": "Demo1234.nodes.first", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/3445e9cf-056a-4f0f-b0c3-a151cf9f3c5c/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" - }, - { - "uuid": "78ff76c9-23d2-44c4-b0da-2492d93490b9", - "invariantUUID": "745995d0-6bf0-49d4-895f-32d554a7c333", - "name": "vnfConfiguration", - "version": "4.0", - "toscaModelURL": "/sdc/v1/catalog/resources/78ff76c9-23d2-44c4-b0da-2492d93490b9/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" - }, - { - "uuid": "3ce98526-e5b6-4b40-99a1-916cca22b652", - "invariantUUID": "b5c65aea-949f-4fc9-928c-3a80619ffa8b", - "name": "Rony0620.nodes.heat.prx", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/3ce98526-e5b6-4b40-99a1-916cca22b652/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" - }, - { - "uuid": "aae2edf9-690a-4633-a6ff-d7556ab9ce58", - "invariantUUID": "c76ccbe5-7087-4eb4-a0ff-2edd7d9a392c", - "name": "ContrailV2VirtualMachineInterface", - "version": "7.0", - "toscaModelURL": "/sdc/v1/catalog/resources/aae2edf9-690a-4633-a6ff-d7556ab9ce58/toscaModel", - "category": "Generic", - "subCategory": "Network Elements", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" - }, - { - "uuid": "5a8831a3-d481-49ce-b029-754e37e4bc07", - "invariantUUID": "c319246f-3d23-4004-ac5b-ce65cb4135a0", - "name": "Infra.nodes.heat.vdhcp", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/5a8831a3-d481-49ce-b029-754e37e4bc07/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "5c94528b-c068-4ece-9903-2a206e7b653b", - "invariantUUID": "cdc9d941-476d-4f55-a03d-215d8e9a5dca", - "name": "Infra.nodes.heat.vweb", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/5c94528b-c068-4ece-9903-2a206e7b653b/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "0b62cd13-b416-40fc-904b-b071f22134cd", - "invariantUUID": "d1a976cb-5d76-4206-a644-119c1bdf9d93", - "name": "Vbng.nodes.heat.vbng", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/0b62cd13-b416-40fc-904b-b071f22134cd/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "ee55b9c4-6ea2-4351-bf6e-f88f38130fd8", - "invariantUUID": "a059a8c6-f7c2-4048-84fc-ca6f5878f0ec", - "name": "VctsAlina.nodes.heat.TEST_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/ee55b9c4-6ea2-4351-bf6e-f88f38130fd8/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" - }, - { - "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": "143166ba-bb54-4a38-b3c5-24850a16a283", - "invariantUUID": "b55f6660-646a-448a-91c2-a7d12bba8039", - "name": "Ddd.nodes.heat.be", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/143166ba-bb54-4a38-b3c5-24850a16a283/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" - }, - { - "uuid": "d6554a01-a3db-4dfe-8f41-af3866e18fa0", - "invariantUUID": "20e8590f-4134-4ee7-b908-a2c81a831128", - "name": "Alina0815vsp.nodes.heat.TEST_server", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/d6554a01-a3db-4dfe-8f41-af3866e18fa0/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" - }, - { - "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": "90024548-1f2c-4267-b3f7-b64b2b7174d5", - "invariantUUID": "589dd9ec-222b-497b-aa50-b529fdece780", - "name": "Ddd.nodes.heat.fe", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/90024548-1f2c-4267-b3f7-b64b2b7174d5/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" - }, - { - "uuid": "592fb9b5-aace-4c14-8e10-f1214cc532f0", - "invariantUUID": "d81200b8-5427-4415-b5c3-d98963a48c43", - "name": "Infra.nodes.heat.vaaa", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/592fb9b5-aace-4c14-8e10-f1214cc532f0/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" - }, - { - "uuid": "73b40185-4478-402c-8951-2dd03b3e0e3c", - "invariantUUID": "fa7a3bb4-5892-4c19-a8c6-b0fa7b11102e", - "name": "NSD", - "version": "0.1", - "toscaModelURL": "/sdc/v1/catalog/resources/73b40185-4478-402c-8951-2dd03b3e0e3c/toscaModel", - "category": "Allotted Resource", - "subCategory": "Contrail Route", - "resourceType": "VFC", - "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "ml636r" - }, - { - "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": "42315f4b-660e-44a5-b4bb-7fb80087de69", - "invariantUUID": "873af5a3-8f36-4199-b46a-9613f149de1e", - "name": "RenanaTest.nodes.heat.gpb", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/42315f4b-660e-44a5-b4bb-7fb80087de69/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" - }, - { - "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": "fda7cb95-cbd0-46cc-8311-87ae632f75d6", - "invariantUUID": "69c6a72d-5b61-4c66-955a-a70f547821f3", - "name": "1607Mog.nodes.heat.ps", - "version": "1.0", - "toscaModelURL": "/sdc/v1/catalog/resources/fda7cb95-cbd0-46cc-8311-87ae632f75d6/toscaModel", - "category": "Generic", - "subCategory": "Abstract", - "resourceType": "VFC", - "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" - }, - { - "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 + { + "uuid": "b3538c76-7d58-4e15-9a06-b51b32101965", + "invariantUUID": "18a4a3c3-876f-4452-8cf0-fb3ebaf5344e", + "name": "VfNoLicense.nodes.oam", + "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": "ba541b5b-7d06-4198-adf9-c035b374cdb3", + "invariantUUID": "c2f34d4b-3c45-4367-a6f7-e9c06ad19607", + "name": "Newswproductnamefield.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ba541b5b-7d06-4198-adf9-c035b374cdb3/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "e84b8370-ffb7-4f6c-a242-ab3f340617fa", + "invariantUUID": "c6808001-bc29-4896-a187-06c41a341a18", + "name": "Alaram.nodes.heat.vCTS_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e84b8370-ffb7-4f6c-a242-ab3f340617fa/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "512ea41b-b9ac-412a-95ee-ac7410c2b6b2", + "invariantUUID": "9252564a-de36-4048-8a53-3923a6cb4b11", + "name": "Rony0620111.nodes.heat.rdn", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/512ea41b-b9ac-412a-95ee-ac7410c2b6b2/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "b4897fd9-7a50-492a-9e0c-054d044c1dcf", + "invariantUUID": "544f39a2-1306-472a-978b-9323439a7953", + "name": "RenanaTest2.nodes.heat.vlc", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b4897fd9-7a50-492a-9e0c-054d044c1dcf/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "24413de0-35fd-4e1b-8052-51a1c798b24d", + "invariantUUID": "ca0ae539-78d1-461a-a7ff-3dd663c85e2d", + "name": "pnf-test", + "version": "1.1", + "toscaModelURL": "/sdc/v1/catalog/resources/24413de0-35fd-4e1b-8052-51a1c798b24d/toscaModel", + "category": "Application L4+", + "subCategory": "Call Control", + "resourceType": "VFC", + "lifecycleState": "NOT_CERTIFIED_CHECKIN", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "d3543795-31cd-4bb9-acd7-09249fdf0c5b", + "invariantUUID": "f1703a65-8898-4dcc-8584-f15c0227d59b", + "name": "Ldsa1.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/d3543795-31cd-4bb9-acd7-09249fdf0c5b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "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": "39300382-8d78-4598-afa0-042613d6d8f7", + "invariantUUID": "7f6da2dc-0172-4e79-b152-adcee2ffc02f", + "name": "MnsoamDemo.nodes.heat.mnsoamvfw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/39300382-8d78-4598-afa0-042613d6d8f7/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "1d614214-2bc7-45bd-ab85-801ed72888c0", + "invariantUUID": "c9e19a34-5c50-463c-a409-2b2b0cfbaeac", + "name": "Rony0620.nodes.heat.rdn", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/1d614214-2bc7-45bd-ab85-801ed72888c0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "880e5d06-8c62-43f2-ac4a-befff414e63c", + "invariantUUID": "dd47c5d0-3145-467b-abf1-d1ace19aed04", + "name": "Alinatest.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/880e5d06-8c62-43f2-ac4a-befff414e63c/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "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": "c0cfa0b8-1214-4abc-bf4b-f71aed72f03b", + "invariantUUID": "37fcd63a-2d6e-4c42-8d63-183711976f9b", + "name": "multiFlavorVFC", + "version": "4.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c0cfa0b8-1214-4abc-bf4b-f71aed72f03b/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": "efc0c5f9-b900-4d6e-a8d9-746bfb400c6d", + "invariantUUID": "3f6b3916-cc98-475b-86d6-c1e8c376a004", + "name": "Ldsa.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/efc0c5f9-b900-4d6e-a8d9-746bfb400c6d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "c003a901-a27e-49a4-bf3f-d9d8ca838f0a", + "invariantUUID": "5e38e500-80a6-4d80-b6d8-43af998f4680", + "name": "ciRes259e8de19526", + "version": "0.1", + "toscaModelURL": "/sdc/v1/catalog/resources/c003a901-a27e-49a4-bf3f-d9d8ca838f0a/toscaModel", + "category": "Generic", + "subCategory": "Infrastructure", + "resourceType": "VFC", + "lifecycleState": "NOT_CERTIFIED_CHECKOUT", + "lastUpdaterUserId": "cs0008" + }, + { + "uuid": "eb54de4c-e180-4a89-8025-1d58267049f8", + "invariantUUID": "c22782e4-18ed-4ac6-b636-2c6df20003d9", + "name": "Rony0620.nodes.heat.oam", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/eb54de4c-e180-4a89-8025-1d58267049f8/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "d555e4fc-5c42-4990-9a53-3cc998496595", + "invariantUUID": "aa31721d-d880-4923-af59-7b136a6f1f4f", + "name": "Simonafirst0814.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/d555e4fc-5c42-4990-9a53-3cc998496595/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ss1245" + }, + { + "uuid": "73c3f25a-88a2-4ac3-89a4-9c0ecf5a9b31", + "invariantUUID": "62073892-e518-4cbf-9d67-207998273b9e", + "name": "Simona2test0814.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/73c3f25a-88a2-4ac3-89a4-9c0ecf5a9b31/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ss1245" + }, + { + "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": "eabf4617-19da-4df2-b195-579309638c51", + "invariantUUID": "cec737a5-ffdf-41a0-bc2c-1d5be9726589", + "name": "MnsdmzDemo.nodes.heat.mnsdmzvfw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/eabf4617-19da-4df2-b195-579309638c51/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": "fa5a2fa8-ae63-49c0-9f6c-5e5e2b7f9faa", + "invariantUUID": "0be62615-f136-404e-a3f7-fe13b2507319", + "name": "Rony0620111.nodes.heat.oam", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fa5a2fa8-ae63-49c0-9f6c-5e5e2b7f9faa/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "41dea130-9195-4d0b-97ba-8d86c0b00684", + "invariantUUID": "249fe495-f72d-44f7-aebc-0128070f8467", + "name": "Shani148softwareProduct.nodes.heat.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/41dea130-9195-4d0b-97ba-8d86c0b00684/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "b8334449-de6b-4133-9c5d-1eb6c2736614", + "invariantUUID": "41f48075-4619-43bb-9885-b4e42537c2fc", + "name": "AlinaTest2.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b8334449-de6b-4133-9c5d-1eb6c2736614/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "97b6b724-1d91-406f-90c7-4d4643b34630", + "invariantUUID": "cda126b1-bfa5-4b29-aafa-c116e648a17a", + "name": "Ddd.nodes.heat.smp", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/97b6b724-1d91-406f-90c7-4d4643b34630/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "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": "3127c05d-fe28-4d7f-9866-33d87943e082", + "invariantUUID": "574a5ef9-530d-4b28-a7ab-1777547a8be2", + "name": "Vgmux.nodes.heat.vgmux", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3127c05d-fe28-4d7f-9866-33d87943e082/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "c17fc945-c327-469b-9912-f6d628cd6e4e", + "invariantUUID": "706253ae-7a68-4519-83d7-8f8842499246", + "name": "Rony0620111.nodes.heat.prx", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c17fc945-c327-469b-9912-f6d628cd6e4e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "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": "f059ce03-14f3-46c3-a9b3-246404b2f9d0", + "invariantUUID": "c787dc43-4580-42a5-88a7-70f5d56b8f9f", + "name": "NfodCheckpoint.nodes.NFOD_VFC", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f059ce03-14f3-46c3-a9b3-246404b2f9d0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "8dfca155-2ff7-49b3-b563-cc9c80bc951d", + "invariantUUID": "0b2b2953-bc5a-43e2-baf7-3f57b520e87b", + "name": "RenanaTest.nodes.heat.vlc", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/8dfca155-2ff7-49b3-b563-cc9c80bc951d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "b36dd1f0-f6aa-464d-b579-b5b75585ed44", + "invariantUUID": "81944c97-5936-4aab-835f-be41f8d8f52f", + "name": "RenanaTest.nodes.heat.ncb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b36dd1f0-f6aa-464d-b579-b5b75585ed44/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "b425c959-77e2-49bd-8865-dbdb59348b1a", + "invariantUUID": "a19c7920-fa0f-4afe-9db7-504152ab0116", + "name": "Infra.nodes.heat.vdns", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/b425c959-77e2-49bd-8865-dbdb59348b1a/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "3f631e5f-5a89-48e1-9a22-ef4bff70041e", + "invariantUUID": "3e77e831-0a4d-4970-a351-0dd04ab6cd9d", + "name": "RenanaTest.nodes.heat.fsb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3f631e5f-5a89-48e1-9a22-ef4bff70041e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "a6c14d60-4705-4c73-a5a6-0210c9f0d8b7", + "invariantUUID": "f97f4614-c0db-4967-9a7a-c3491831e888", + "name": "Vbrgemu.nodes.heat.vbrgemu", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a6c14d60-4705-4c73-a5a6-0210c9f0d8b7/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "f6b85fc7-0be4-408a-8682-66227e9a9788", + "invariantUUID": "4b307d10-8da4-41f3-803a-49e908ea3f15", + "name": "Vgw.nodes.heat.vgw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f6b85fc7-0be4-408a-8682-66227e9a9788/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "35014ae6-b3dd-4a06-9046-df1b54354d40", + "invariantUUID": "372178ed-2849-4626-a87e-9b5fd319c0ee", + "name": "RenanaTest2.nodes.heat.gpb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/35014ae6-b3dd-4a06-9046-df1b54354d40/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "5fe71b5f-c733-4500-b129-a2f5822ba6f2", + "invariantUUID": "6943da4b-d378-4ae3-b1cf-50c011bdc420", + "name": "Alina0831vsp.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5fe71b5f-c733-4500-b129-a2f5822ba6f2/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "1b81e5d3-4a08-4db5-84a9-09096ff0f5ad", + "invariantUUID": "b3a8245a-9571-4e7c-bb76-7664ab035c41", + "name": "RenanaTest2.nodes.heat.ncb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/1b81e5d3-4a08-4db5-84a9-09096ff0f5ad/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "65624d26-fca6-4af0-bbdb-f3cc33b81417", + "invariantUUID": "d6105f5d-a2c2-481a-929f-b9f2b5700fdf", + "name": "RenanaTest2.nodes.heat.fsb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/65624d26-fca6-4af0-bbdb-f3cc33b81417/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "3445e9cf-056a-4f0f-b0c3-a151cf9f3c5c", + "invariantUUID": "61017bfa-4ed3-4027-9942-5abbbce2d55a", + "name": "Demo1234.nodes.first", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3445e9cf-056a-4f0f-b0c3-a151cf9f3c5c/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "78ff76c9-23d2-44c4-b0da-2492d93490b9", + "invariantUUID": "745995d0-6bf0-49d4-895f-32d554a7c333", + "name": "vnfConfiguration", + "version": "4.0", + "toscaModelURL": "/sdc/v1/catalog/resources/78ff76c9-23d2-44c4-b0da-2492d93490b9/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "jh0003" + }, + { + "uuid": "3ce98526-e5b6-4b40-99a1-916cca22b652", + "invariantUUID": "b5c65aea-949f-4fc9-928c-3a80619ffa8b", + "name": "Rony0620.nodes.heat.prx", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3ce98526-e5b6-4b40-99a1-916cca22b652/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "aae2edf9-690a-4633-a6ff-d7556ab9ce58", + "invariantUUID": "c76ccbe5-7087-4eb4-a0ff-2edd7d9a392c", + "name": "ContrailV2VirtualMachineInterface", + "version": "7.0", + "toscaModelURL": "/sdc/v1/catalog/resources/aae2edf9-690a-4633-a6ff-d7556ab9ce58/toscaModel", + "category": "Generic", + "subCategory": "Network Elements", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "jh0003" + }, + { + "uuid": "5a8831a3-d481-49ce-b029-754e37e4bc07", + "invariantUUID": "c319246f-3d23-4004-ac5b-ce65cb4135a0", + "name": "Infra.nodes.heat.vdhcp", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5a8831a3-d481-49ce-b029-754e37e4bc07/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "5c94528b-c068-4ece-9903-2a206e7b653b", + "invariantUUID": "cdc9d941-476d-4f55-a03d-215d8e9a5dca", + "name": "Infra.nodes.heat.vweb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5c94528b-c068-4ece-9903-2a206e7b653b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "0b62cd13-b416-40fc-904b-b071f22134cd", + "invariantUUID": "d1a976cb-5d76-4206-a644-119c1bdf9d93", + "name": "Vbng.nodes.heat.vbng", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/0b62cd13-b416-40fc-904b-b071f22134cd/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "ee55b9c4-6ea2-4351-bf6e-f88f38130fd8", + "invariantUUID": "a059a8c6-f7c2-4048-84fc-ca6f5878f0ec", + "name": "VctsAlina.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ee55b9c4-6ea2-4351-bf6e-f88f38130fd8/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "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": "143166ba-bb54-4a38-b3c5-24850a16a283", + "invariantUUID": "b55f6660-646a-448a-91c2-a7d12bba8039", + "name": "Ddd.nodes.heat.be", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/143166ba-bb54-4a38-b3c5-24850a16a283/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "d6554a01-a3db-4dfe-8f41-af3866e18fa0", + "invariantUUID": "20e8590f-4134-4ee7-b908-a2c81a831128", + "name": "Alina0815vsp.nodes.heat.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/d6554a01-a3db-4dfe-8f41-af3866e18fa0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "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": "90024548-1f2c-4267-b3f7-b64b2b7174d5", + "invariantUUID": "589dd9ec-222b-497b-aa50-b529fdece780", + "name": "Ddd.nodes.heat.fe", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/90024548-1f2c-4267-b3f7-b64b2b7174d5/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "592fb9b5-aace-4c14-8e10-f1214cc532f0", + "invariantUUID": "d81200b8-5427-4415-b5c3-d98963a48c43", + "name": "Infra.nodes.heat.vaaa", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/592fb9b5-aace-4c14-8e10-f1214cc532f0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "73b40185-4478-402c-8951-2dd03b3e0e3c", + "invariantUUID": "fa7a3bb4-5892-4c19-a8c6-b0fa7b11102e", + "name": "NSD", + "version": "0.1", + "toscaModelURL": "/sdc/v1/catalog/resources/73b40185-4478-402c-8951-2dd03b3e0e3c/toscaModel", + "category": "Allotted Resource", + "subCategory": "Contrail Route", + "resourceType": "VFC", + "lifecycleState": "NOT_CERTIFIED_CHECKIN", + "lastUpdaterUserId": "ml636r" + }, + { + "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": "42315f4b-660e-44a5-b4bb-7fb80087de69", + "invariantUUID": "873af5a3-8f36-4199-b46a-9613f149de1e", + "name": "RenanaTest.nodes.heat.gpb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/42315f4b-660e-44a5-b4bb-7fb80087de69/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "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": "fda7cb95-cbd0-46cc-8311-87ae632f75d6", + "invariantUUID": "69c6a72d-5b61-4c66-955a-a70f547821f3", + "name": "1607Mog.nodes.heat.ps", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fda7cb95-cbd0-46cc-8311-87ae632f75d6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "VFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m99121" + }, + { + "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" + } +] diff --git a/src/test/resources/example/xsl-validation/modelBpmnForVerif.json b/src/test/resources/example/xsl-validation/modelBpmnForVerif.json index 1bef49a1a..40afe179e 100644 --- a/src/test/resources/example/xsl-validation/modelBpmnForVerif.json +++ b/src/test/resources/example/xsl-validation/modelBpmnForVerif.json @@ -1,38 +1,38 @@ { - "collector": [ - { - "id": "Collector_", - "from": "StartEvent_1" - } - ], - "stringMatch": [ - { - "id": "StringMatch_0tw2y4f", - "from": "Collector_" - } - ], - "policy": [ - { - "id": "Policy_", - "from": "TCA_09hcdsx" - } - ], - "tca": [ - { - "id": "TCA_09hcdsx", - "from": "VesCollector_1kxjxy6" - } - ], - "vesCollector": [ - { - "id": "VesCollector_1kxjxy6", - "from": "Holmes_1fzdqp9" - } - ], - "holmes": [ - { - "id": "Holmes_1fzdqp9", - "from": "StringMatch_0tw2y4f" - } - ] -} \ No newline at end of file + "collector": [ + { + "id": "Collector_", + "from": "StartEvent_1" + } + ], + "stringMatch": [ + { + "id": "StringMatch_0tw2y4f", + "from": "Collector_" + } + ], + "policy": [ + { + "id": "Policy_", + "from": "TCA_09hcdsx" + } + ], + "tca": [ + { + "id": "TCA_09hcdsx", + "from": "VesCollector_1kxjxy6" + } + ], + "vesCollector": [ + { + "id": "VesCollector_1kxjxy6", + "from": "Holmes_1fzdqp9" + } + ], + "holmes": [ + { + "id": "Holmes_1fzdqp9", + "from": "StringMatch_0tw2y4f" + } + ] +} -- cgit 1.2.3-korg From bc25b72025a7b92c2b1bb7a3f0cfcd9ddedba001 Mon Sep 17 00:00:00 2001 From: xg353y Date: Wed, 27 Sep 2017 13:21:21 +0200 Subject: Code Improvement Change-Id: I703aabf234cb656b1faea3b5c0776d034d8ec807 Signed-off-by: xg353y Issue-ID: CLAMP-54 --- .../clds/client/StringMatchPolicyDelegate.java | 74 -- .../client/StringMatchPolicyDeleteDelegate.java | 62 -- .../org/onap/clamp/clds/client/req/SdcReq.java | 61 +- .../clds/client/req/StringMatchPolicyReq.java | 139 --- .../onap/clamp/clds/config/CldsConfiguration.java | 12 - .../clds/model/prop/AbstractModelElement.java | 4 +- .../org/onap/clamp/clds/model/prop/Collector.java | 54 -- .../org/onap/clamp/clds/model/prop/ModelBpmn.java | 13 +- .../onap/clamp/clds/model/prop/ModelBpmnEntry.java | 5 +- .../clamp/clds/model/prop/ModelProperties.java | 3 +- .../onap/clamp/clds/model/prop/ResourceGroup.java | 2 +- .../clds/model/prop/ServiceConfiguration.java | 4 +- .../onap/clamp/clds/model/prop/StringMatch.java | 98 -- .../clamp/clds/service/CldsTemplateService.java | 10 +- .../META-INF/resources/designer/css/app.css | 6 +- .../designer/images/clds-string-match-icon.png | Bin 276 -> 0 bytes .../resources/META-INF/resources/designer/index.js | 162 ---- .../partials/portfolios/Collector_properties.html | 122 --- .../portfolios/stringMatch_properties.html | 1019 -------------------- .../resources/designer/scripts/CldsModelService.js | 2 - .../META-INF/resources/designer/scripts/app.js | 114 --- src/main/resources/bpmn/clds-process-action.bpmn | 74 +- src/main/resources/clds/clds-reference.properties | 15 +- src/main/resources/clds/globalClds.properties | 2 +- src/main/resources/xsl/clds-bpmn-transformer.xsl | 16 +- .../org/onap/clamp/clds/it/PolicyClientIT.java | 48 - .../java/org/onap/clamp/clds/it/RefPropIT.java | 2 +- src/test/java/org/onap/clamp/clds/it/SdcIT.java | 15 - .../clamp/clds/model/prop/ModelPropertiesTest.java | 16 - src/test/resources/clds/clds-reference.properties | 26 +- src/test/resources/example/dao/bpmn-template.xml | 20 +- src/test/resources/example/dao/image-template.xml | 42 - .../example/model-properties/modelBpmn.json | 14 +- .../example/model-properties/modelBpmnProp.json | 86 -- .../model-properties/modelBpmnPropWithGlobal.json | 77 -- src/test/resources/example/modelBpmnProp.json | 24 +- .../resources/example/modelBpmnPropForPolicy.json | 13 +- src/test/resources/example/modelProp.json | 392 +------- src/test/resources/example/sdc/sdcVFResources.json | 2 +- src/test/resources/example/templateProp.json | 10 - .../resources/example/xsl-validation/modelBpmn.xml | 23 +- .../example/xsl-validation/modelBpmnForVerif.json | 14 +- src/test/resources/expected/stringmatch.json | 1 - 43 files changed, 96 insertions(+), 2802 deletions(-) delete mode 100644 src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java delete mode 100644 src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java delete mode 100644 src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java delete mode 100644 src/main/java/org/onap/clamp/clds/model/prop/Collector.java delete mode 100644 src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java delete mode 100644 src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png delete mode 100644 src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html delete mode 100644 src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html delete mode 100644 src/test/resources/example/templateProp.json delete mode 100644 src/test/resources/expected/stringmatch.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java deleted file mode 100644 index d149137b6..000000000 --- a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============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.client; - -import java.util.UUID; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; -import org.onap.clamp.clds.client.req.StringMatchPolicyReq; -import org.onap.clamp.clds.model.prop.ModelProperties; -import org.onap.clamp.clds.model.prop.StringMatch; -import org.onap.clamp.clds.model.refprop.RefProp; -import org.springframework.beans.factory.annotation.Autowired; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -/** - * Send String Match info to policy api. - */ -public class StringMatchPolicyDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance() - .getLogger(StringMatchPolicyDelegate.class); - protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - - @Autowired - private PolicyClient policyClient; - - @Autowired - private RefProp refProp; - - /** - * Perform activity. Send String Match info to policy api. - * - * @param execution - */ - @Override - public void execute(DelegateExecution execution) throws Exception { - String stringMatchPolicyRequestUuid = UUID.randomUUID().toString(); - execution.setVariable("stringMatchPolicyRequestUuid", stringMatchPolicyRequestUuid); - - ModelProperties prop = ModelProperties.create(execution); - StringMatch stringMatch = prop.getType(StringMatch.class); - if (stringMatch.isFound()) { - String policyJson = StringMatchPolicyReq.format(refProp, prop); - String responseMessage = policyClient.sendMicroServiceInJson(policyJson, prop, stringMatchPolicyRequestUuid); - if (responseMessage != null) { - execution.setVariable("stringMatchPolicyResponseMessage", responseMessage.getBytes()); - } - } - } - -} diff --git a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java deleted file mode 100644 index 5bda8d361..000000000 --- a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============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.client; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; -import org.onap.clamp.clds.model.prop.ModelProperties; -import org.onap.clamp.clds.model.prop.StringMatch; -import org.springframework.beans.factory.annotation.Autowired; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -/** - * Delete String Match Policy via policy api. - */ -public class StringMatchPolicyDeleteDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance() - .getLogger(StringMatchPolicyDeleteDelegate.class); - protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - - @Autowired - private PolicyClient policyClient; - - /** - * Perform activity. Delete String Match Policy via policy api. - * - * @param execution - */ - @Override - public void execute(DelegateExecution execution) throws Exception { - ModelProperties prop = ModelProperties.create(execution); - StringMatch stringMatch = prop.getType(StringMatch.class); - if (stringMatch.isFound()) { - prop.setCurrentModelElementId(stringMatch.getId()); - - policyClient.deleteMicrosService(prop); - } - } - -} 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 f8351ca5d..c5e26f30a 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 @@ -50,7 +50,6 @@ 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; @@ -88,22 +87,8 @@ public class SdcReq { String yamlvalue = getYamlvalue(docText); String updatedBlueprint = ""; - 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, - prop); - logger.info("Value of serviceConfigurations:" + serviceConfigurations); - ObjectNode servConfNode = (ObjectNode) serviceConfigurations.get("serviceConfigurations"); - - // get updated blueprint by attaching service Conf from - // globalProperties - updatedBlueprint = getUpdatedBlueprintWithServiceConf(refProp, prop, yamlvalue, servConfNode); - } else if (tca.isFound()) { + if (tca.isFound()) { prop.setCurrentModelElementId(tca.getId()); ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("tca.template", service); ObjectNode content = rootNode.with("content"); @@ -121,50 +106,6 @@ public class SdcReq { return updatedBlueprint; } - private static String getUpdatedBlueprintWithServiceConf(RefProp refProp, ModelProperties prop, String yamlValue, - ObjectNode serviceConf) throws IOException { - Yaml yaml = new Yaml(); - - // Serialiaze Yaml file - Map loadedYaml = (Map) yaml.load(yamlValue); - // Get node templates information from Yaml - Map nodeTemplates = loadedYaml.get("node_templates"); - logger.info("value of NodeTemplates:" + nodeTemplates); - - // Get StringMatch Object information from node templates of Yaml - Map smObject = nodeTemplates.get("SM"); - logger.info("value of StringMatch:" + smObject); - - // Get Properties Object information from stringmatch of Yaml - Map propsObject = smObject.get("properties"); - logger.info("value of PropsObject:" + propsObject); - - String deploymentJsonObject = propsObject.get("deployment_JSON"); - logger.info("value of deploymentJson:" + deploymentJsonObject); - - ObjectMapper mapper = new ObjectMapper(); - ObjectNode deployJsonNode = (ObjectNode) mapper.readTree(deploymentJsonObject); - ObjectNode configurationObjectNode = (ObjectNode) deployJsonNode.get("configuration"); - - // "policyName":"example_model06.ClosedLoop_FRWL_SIG_0538e6f2_8c1b_4656_9999_3501b3c59ad7_StringMatch_", - String policyNamePrefix = refProp.getStringValue("policy.ms.policyNamePrefix"); - String policyName = prop.getCurrentPolicyScopeAndFullPolicyName(policyNamePrefix); - configurationObjectNode.put("policyName", policyName); - - // "closedLoopControlName":"ClosedLoop-FRWL-SIG-0538e6f2-8c1b-4656-9999-3501b3c59ad7", - configurationObjectNode.put("closedLoopControlName", prop.getControlName()); - configurationObjectNode.put("messageReaderConsumerGroup", prop.getModelName()); - configurationObjectNode.set("serviceConfigurations", serviceConf); - propsObject.put("deployment_JSON", deployJsonNode.toString()); - String blueprint = yaml.dump(loadedYaml); - logger.info("value of updated Yaml File:" + blueprint); - - blueprint = yaml.dump(loadedYaml); - logger.info("value of updated Yaml File:" + blueprint); - - return blueprint; - } - private static String getUpdatedBlueprintWithConfiguration(RefProp refProp, ModelProperties prop, String yamlValue, ObjectNode serviceConf) throws JsonProcessingException, IOException { String blueprint = ""; diff --git a/src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java b/src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java deleted file mode 100644 index 5884c3dd2..000000000 --- a/src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java +++ /dev/null @@ -1,139 +0,0 @@ -/*- - * ============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.client.req; - -import java.io.IOException; -import java.util.Iterator; -import java.util.Map.Entry; - -import org.onap.clamp.clds.model.prop.Global; -import org.onap.clamp.clds.model.prop.ModelProperties; -import org.onap.clamp.clds.model.prop.ResourceGroup; -import org.onap.clamp.clds.model.prop.ServiceConfiguration; -import org.onap.clamp.clds.model.prop.StringMatch; -import org.onap.clamp.clds.model.refprop.RefProp; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Construct a Policy for String Match Micro Service request given CLDS objects. - */ -public class StringMatchPolicyReq { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(StringMatchPolicyReq.class); - protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - - /** - * Format Policy String Match request. - * - * @param refProp - * @param prop - * @return - * @throws IOException - */ - public static String format(RefProp refProp, ModelProperties prop) throws IOException { - Global global = prop.getGlobal(); - String service = global.getService(); - - StringMatch sm = prop.getType(StringMatch.class); - prop.setCurrentModelElementId(sm.getId()); - ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("sm.template", service); - rootNode.put("policyName", prop.getCurrentPolicyScopeAndPolicyName()); - ObjectNode content = rootNode.with("content"); - appendServiceConfigurations(refProp, service, content, sm, prop); - - String stringMatchPolicyReq = rootNode.toString(); - logger.info("stringMatchPolicyReq=" + stringMatchPolicyReq); - return stringMatchPolicyReq; - } - - /** - * Add serviceConfigurations to json - * - * @param appendToNode - * @param sm - * @throws IOException - */ - public static void appendServiceConfigurations(RefProp refProp, String service, ObjectNode appendToNode, - StringMatch sm, ModelProperties prop) throws IOException { - // "serviceConfigurations":{ - ObjectNode scNodes = appendToNode.with("serviceConfigurations"); - - int index = 0; - if (sm != null && sm.getResourceGroups() != null) { - for (ResourceGroup resourceGroup : sm.getResourceGroups()) { - Iterator scItr = resourceGroup.getServiceConfigurations().iterator(); - - while (scItr.hasNext()) { - ServiceConfiguration sc = scItr.next(); - - // "ItemX":{ - index++; - String keyValue = "Item" + index; - ObjectNode scNode = (ObjectNode) refProp.getJsonTemplate("sm.sc.template", service); - scNodes.set(keyValue, scNode); - - // "rulegroup":"abc", - String rulegroupInd = refProp.getStringValue("sm.rulegroup", service); - String groupNumber = resourceGroup.getGroupNumber(); - if (rulegroupInd != null && rulegroupInd.equalsIgnoreCase("true") && groupNumber != null - && groupNumber.length() > 0) { - scNode.put("rulegroup", groupNumber); - } - - // "closedLoopControlName": - prop.setPolicyUniqueId(resourceGroup.getPolicyId()); - scNode.put("closedLoopControlName", prop.getControlNameAndPolicyUniqueId()); - - // "aaiMatchingFields" : ["VM_NAME"], - JsonUtil.addArrayField(scNode, "aaiMatchingFields", sc.getaaiMatchingFields()); - // "aaiSendFields" : ["VMID", "TenantID"], - JsonUtil.addArrayField(scNode, "aaiSendFields", sc.getaaiSendFields()); - - // "stringSet": [ - ArrayNode ssNode = scNode.putArray("stringSet"); - - for (Entry entry : sc.getStringSet().entrySet()) { - // exclude eventSourceType - if (!entry.getKey().equals("eventSourceType")) { - ssNode.add(entry.getKey()); - ssNode.add(entry.getValue()); - } - } - - // timeWindow": "0", - scNode.put("timeWindow", sc.getTimeWindow()); - // "ageLimit": "3600", - scNode.put("ageLimit", sc.getAgeLimit()); - // "createClosedLoopEventId" : "Initial", - scNode.put("createClosedLoopEventId", sc.getCreateClosedLoopEventId()); - // "outputEventName": "OnSet" - scNode.put("outputEventName", sc.getOutputEventName()); - } - } - } - } -} diff --git a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java index a6baa969e..6b7d337ec 100644 --- a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java @@ -42,8 +42,6 @@ import org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate; import org.onap.clamp.clds.client.PolicyClient; import org.onap.clamp.clds.client.SdcCatalogServices; import org.onap.clamp.clds.client.SdcSendReqDelegate; -import org.onap.clamp.clds.client.StringMatchPolicyDelegate; -import org.onap.clamp.clds.client.StringMatchPolicyDeleteDelegate; import org.onap.clamp.clds.client.TcaPolicyDelegate; import org.onap.clamp.clds.client.TcaPolicyDeleteDelegate; import org.onap.clamp.clds.dao.CldsDao; @@ -128,16 +126,6 @@ public class CldsConfiguration { return new OperationalPolicyDeleteDelegate(); } - @Bean(name = "stringMatchPolicyDelegate") - public StringMatchPolicyDelegate getStringMatchPolicyDelegate() { - return new StringMatchPolicyDelegate(); - } - - @Bean(name = "stringMatchPolicyDeleteDelegate") - public StringMatchPolicyDeleteDelegate getStringMatchPolicyDeleteDelegate() { - return new StringMatchPolicyDeleteDelegate(); - } - @Bean(name = "sdcCatalogServices") public SdcCatalogServices getSdcCatalogServices() { return new SdcCatalogServices(); diff --git a/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java b/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java index 7038dc6cf..9ced01998 100644 --- a/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java +++ b/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java @@ -33,7 +33,7 @@ import java.util.List; /** * Provide base ModelElement functionality. Perform base parsing of properties - * for a ModelElement (such as, Collector, StringMatch, Policy, Tca, Holmes, + * for a ModelElement (such as, VesCollector, Policy, Tca, Holmes, * ...) */ public abstract class AbstractModelElement { @@ -54,7 +54,7 @@ public abstract class AbstractModelElement { /** * Perform base parsing of properties for a ModelElement (such as, - * Collector, StringMatch, Policy and Tca) + * VesCollector, Policy and Tca) * * @param type * @param modelProp diff --git a/src/main/java/org/onap/clamp/clds/model/prop/Collector.java b/src/main/java/org/onap/clamp/clds/model/prop/Collector.java deleted file mode 100644 index be30f3ec2..000000000 --- a/src/main/java/org/onap/clamp/clds/model/prop/Collector.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============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.prop; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Parse Collector json properties. - */ -public class Collector extends AbstractModelElement { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(Collector.class); - protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); - - private static final String TYPE_COLLECTOR = "collector"; - - /** - * Parse Collector given json node. - * - * @param modelBpmn - * @param modelJson - */ - public Collector(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) { - super(TYPE_COLLECTOR, modelProp, modelBpmn, modelJson); - topicPublishes = getValueByName("topicPublishes"); - } - - public static final String getType() { - return TYPE_COLLECTOR; - } - -} diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java index ae7028dcd..f3d344a79 100644 --- a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java +++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java @@ -45,9 +45,8 @@ import org.onap.clamp.clds.service.CldsService; /** * Parse Model BPMN properties. *

- * Example json: {"collector":[{"id":"Collector_11r50j1", - * "from":"StartEvent_1"}],"stringMatch":[{"id":"StringMatch_0h6cbdv"}],"policy" - * :[{"id":"Policy_0oxeocn", "from":"StringMatch_0h6cbdv"}]} + * Example json: {"policy" + * :[{"id":"Policy_0oxeocn", "from":"StartEvent_1"}]} */ public class ModelBpmn { protected static final EELFLogger logger = EELFManager.getInstance() @@ -77,7 +76,7 @@ public class ModelBpmn { ObjectMapper objectMapper = new ObjectMapper(); ObjectNode root = objectMapper.readValue(modelBpmnPropText, ObjectNode.class); // iterate over each entry like: - // "collector":[{"id":"Collector_11r50j1","from":"StartEvent_1"}] + // "Policy":[{"id":"Policy","from":"StartEvent_1"}] Iterator> entryItr = root.fields(); List bpmnElementIdList = new ArrayList<>(); while (entryItr.hasNext()) { @@ -86,7 +85,7 @@ public class ModelBpmn { String type = entry.getKey(); ArrayNode arrayNode = (ArrayNode) entry.getValue(); // process each id/from object, like: - // {"id":"Collector_11r50j1","from":"StartEvent_1"} + // {"id":"Policy","from":"StartEvent_1"} for (JsonNode anArrayNode : arrayNode) { ObjectNode node = (ObjectNode) anArrayNode; String id = node.get("id").asText(); @@ -123,11 +122,11 @@ public class ModelBpmn { } /** - * This method verifies if the ModelElement Type (collector, holmes, tca, + * This method verifies if the ModelElement Type (holmes, tca, * ...) is in the list. * * @param type - * A model Element type (tca, collector, ...) + * A model Element type (tca, ...) * @return true if the element is found or false otherwise */ public boolean isModelElementTypeInList(String type) { diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java index 210795be4..dc6682297 100644 --- a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java +++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java @@ -29,9 +29,8 @@ import com.att.eelf.configuration.EELFManager; /** * Model BPMN property entry *

- * Example json: {"collector":[{"id":"Collector_11r50j1", - * "from":"StartEvent_1"}],"stringMatch":[{"id":"StringMatch_0h6cbdv"],"policy": - * [{"id":"Policy_0oxeocn", "from":"StringMatch_0h6cbdv"}]} + * Example json: {"policy": + * [{"id":"Policy_0oxeocn", "from":"StartEvent_1"}]} */ public class ModelBpmnEntry { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(ModelBpmnEntry.class); diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java index dc0de326b..b9effc57a 100644 --- a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java +++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java @@ -72,10 +72,9 @@ public class ModelProperties { static { synchronized (lock) { - modelElementClasses.put(Collector.class, Collector.getType()); modelElementClasses.put(Policy.class, Policy.getType()); - modelElementClasses.put(StringMatch.class, StringMatch.getType()); modelElementClasses.put(Tca.class, Tca.getType()); + modelElementClasses.put(Holmes.class, Holmes.getType()); } } diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java b/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java index 7395ced00..8b2dbeb83 100644 --- a/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java +++ b/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java @@ -35,7 +35,7 @@ import java.util.List; * Parse Resource Group json properties. * * Example json: - * {"StringMatch_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{ + * {"TCA_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{ * "name":"rgfriendlyname","value":"Group1"},{"name":"policyName","value": * "Policy1"},{"name":"policyId","value":"1"},{"serviceConfigurations":[[{"name" * :"aaiMatchingFields","value":["complex.city","vserver.vserver-name"]},{"name" diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java b/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java index f15d70196..418afbb9f 100644 --- a/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java @@ -33,10 +33,10 @@ import com.att.eelf.configuration.EELFManager; import com.fasterxml.jackson.databind.JsonNode; /** - * Parse serviceConfigurations from StringMatch json properties. + * Parse serviceConfigurations from Tca json properties. *

* Example json: - * {"StringMatch_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{ + * {"Tca_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{ * "name":"rgfriendlyname","value":"Group1"},{"name":"policyName","value": * "Policy1"},{"name":"policyId","value":"1"},{"serviceConfigurations":[[{"name" * :"aaiMatchingFields","value":["complex.city","vserver.vserver-name"]},{"name" diff --git a/src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java b/src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java deleted file mode 100644 index b74e7d134..000000000 --- a/src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============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.prop; - -import com.fasterxml.jackson.databind.JsonNode; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * Parse StringMatch json properties. - *

- * Example json: - * {"StringMatch_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{ - * "name":"rgfriendlyname","value":"Group1"},{"name":"policyName","value": - * "Policy1"},{"name":"policyId","value":"1"},{"serviceConfigurations":[[{"name" - * :"aaiMatchingFields","value":["complex.city","vserver.vserver-name"]},{"name" - * :"aaiSendFields","value":["complex.city","vserver.vserver-name"]},{"name": - * "eventSeverity","value":["OK"]},{"name":"eventSourceType","value":[""]},{ - * "name":"timeWindow","value":["100"]},{"name":"ageLimit","value":["100"]},{ - * "name":"createClosedLoopEventId","value":["Initial"]},{"name": - * "outputEventName","value":["ONSET"]}]]}],"Group2":[{"name":"rgname","value": - * "1493749665149"},{"name":"rgfriendlyname","value":"Group2"},{"name": - * "policyName","value":"Policy2"},{"name":"policyId","value":"2"},{ - * "serviceConfigurations":[[{"name":"aaiMatchingFields","value":[ - * "cloud-region.identity-url","vserver.vserver-name"]},{"name":"aaiSendFields", - * "value":["cloud-region.identity-url","vserver.vserver-name"]},{"name": - * "eventSeverity","value":["NORMAL"]},{"name":"eventSourceType","value":[""]},{ - * "name":"timeWindow","value":["1000"]},{"name":"ageLimit","value":["1000"]},{ - * "name":"createClosedLoopEventId","value":["Initial"]},{"name": - * "outputEventName","value":["ONSET"]}],[{"name":"aaiMatchingFields","value":[ - * "generic-vnf.vnf-name","vserver.vserver-name"]},{"name":"aaiSendFields", - * "value":["generic-vnf.vnf-name","vserver.vserver-name"]},{"name": - * "eventSeverity","value":["CRITICAL"]},{"name":"eventSourceType","value":[""]} - * ,{"name":"timeWindow","value":["3000"]},{"name":"ageLimit","value":["3000"]}, - * {"name":"createClosedLoopEventId","value":["Initial"]},{"name": - * "outputEventName","value":["ABATED"]}]]}]}} - * - */ -public class StringMatch extends AbstractModelElement { - - private List resourceGroups; - - private static final String TYPE_STRING_MATCH = "stringMatch"; - - /** - * Parse StringMatch given json node. - * - * @param modelBpmn - * @param modelJson - */ - public StringMatch(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) { - super(TYPE_STRING_MATCH, modelProp, modelBpmn, modelJson); - - // process Server_Configurations - if (modelElementJsonNode != null) { - Iterator itr = modelElementJsonNode.elements(); - resourceGroups = new ArrayList<>(); - while (itr.hasNext()) { - resourceGroups.add(new ResourceGroup(itr.next())); - } - } - } - - /** - * @return the resourceGroups - */ - public List getResourceGroups() { - return resourceGroups; - } - - public static final String getType() { - return TYPE_STRING_MATCH; - } - -} diff --git a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java index e6e7325a9..e29b18879 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java @@ -65,8 +65,6 @@ import org.springframework.beans.factory.annotation.Value; @Path("/cldsTempate") public class CldsTemplateService extends SecureServiceBase { - private static final String COLLECTOR_KEY = "Collector"; - private static final String STRING_MATCH_KEY = "StringMatch"; private static final String POLICY_KEY = "Policy"; @Value("${CLDS_PERMISSION_TYPE_TEMPLATE:permission-type-template}") @@ -314,16 +312,12 @@ public class CldsTemplateService extends SecureServiceBase { if (keyPropName != null && keyPropName.equalsIgnoreCase(currElementId)) { ArrayNode arrayNode = (ArrayNode) entry.getValue(); // process each id/from object, like: - // {"id":"Collector_11r50j1", "from":"StartEvent_1"} + // {"id":"Policy_11r50j1", "from":"StartEvent_1"} for (JsonNode anArrayNode : arrayNode) { ObjectNode node = (ObjectNode) anArrayNode; String valueNode = node.get("value").asText(); logger.info("value of node:" + valueNode); - if (keyPropName.startsWith(COLLECTOR_KEY)) { - valueNode = COLLECTOR_KEY + "_" + valueNode; - } else if (keyPropName.startsWith(STRING_MATCH_KEY)) { - valueNode = STRING_MATCH_KEY + "_" + valueNode; - } else if (keyPropName.startsWith(POLICY_KEY)) { + if (keyPropName.startsWith(POLICY_KEY)) { valueNode = POLICY_KEY + "_" + valueNode; } bpmnIoIdsMap.put(keyPropName, valueNode); diff --git a/src/main/resources/META-INF/resources/designer/css/app.css b/src/main/resources/META-INF/resources/designer/css/app.css index 333c96669..e387dc030 100644 --- a/src/main/resources/META-INF/resources/designer/css/app.css +++ b/src/main/resources/META-INF/resources/designer/css/app.css @@ -170,20 +170,18 @@ svg:not(:root) { } /* 'î ¡' */ .define-path:before{ - content: url('../images/DefinePath.png'); + content: url('../images/DefinePath.png'); position:relative; /*or absolute*/ z-index:100000; /*a number that's more than the modal box*/ } /* 'î ¡' */ -.define-decision:before{ +.define-decision:before{ content: url('../images/DefineDecision.png'); position:relative; /*or absolute*/ z-index:100000; /*a number that's more than the modal box*/ } /* 'î ¡' */ .icon-initial-node:before{ content: url('../images/InitialProcess.png'); } /* 'î ¡' */ -.icon-collector-node:before{ content: url('../images/clds-collector-icon.png'); } /* 'î ¡' */ .icon-holmes-node:before{ content: url('../images/clds-holmes-icon.png'); } /* 'î ¡' */ .icon-ves-collector-node:before{ content: url('../images/clds-ves-collector-icon.png'); } /* 'î ¡' */ -.icon-stringmatch-node:before{ content: url('../images/clds-string-match-icon.png'); } /* 'î ¡' */ .icon-tca-node:before{ content: url('../images/clds-tca-icon.png'); } /* 'î ¡' */ .icon-policy-node:before{ content: url('../images/clds-policy-icon.png'); } /* 'î ¡' */ .icon-goc-node:before{ content: url('../images/GOC.png'); } /* 'î ¡' */ diff --git a/src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png b/src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png deleted file mode 100644 index 6b00414fd..000000000 Binary files a/src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/index.js b/src/main/resources/META-INF/resources/designer/index.js index 89a688aca..33b84e6fc 100644 --- a/src/main/resources/META-INF/resources/designer/index.js +++ b/src/main/resources/META-INF/resources/designer/index.js @@ -1449,58 +1449,6 @@ function visibility_model() { return lane; - }, - 'bpmn:Collector': function(p, element) { - var lane = renderer('bpmn:Lane')(p, element, { - fill: 'White' - }); - - var expandedPool = DiUtil.isExpanded(element); - - if (expandedPool) { - drawLine(p, [{ - x: element.width, - y: 80 - }, { - x: element.width, - y: 20 - }]); - - drawLine(p, [{ - x: 20, - y: 0 - }, { - x: 20, - y: element.height - }]); - var text2 = getSemantic(element).name; - if (text2 == undefined) { - text2 = 'Collector'; - } - - renderLabel(p, text2, { - box: element, - align: 'center-middle' - }); - - } else { - // Collapsed pool draw text inline - var text2 = getSemantic(element).name; - renderLabel(p, text2, { - box: element, - align: 'center-middle' - }); - } - - var participantMultiplicity = !!(getSemantic(element).participantMultiplicity); - - if (participantMultiplicity) { - renderer('ParticipantMultiplicityMarker')(p, element); - } - - return lane; - - }, 'bpmn:VesCollector': function(p, element) { var lane = renderer('bpmn:Lane')(p, element, { @@ -1626,52 +1574,6 @@ function visibility_model() { return lane; }, - - 'bpmn:StringMatch': function(p, element) { - var lane = renderer('bpmn:Lane')(p, element, { - fill: 'White' - }); - - var expandedPool = DiUtil.isExpanded(element); - - if (expandedPool) { - - drawLine(p, [{ - x: 0, - y: 20 - }, { - x: element.width, - y: 20 - }]); - var text2 = getSemantic(element).name; - if (text2 == undefined) { - text2 = 'StringMatch'; - } - renderLabel(p, text2, { - box: element, - align: 'center-middle' - }); - - } else { - // Collapsed pool draw text inline - var text2 = getSemantic(element).name; - renderLabel(p, text2, { - box: element, - align: 'center-middle' - }); - } - - var participantMultiplicity = !!(getSemantic(element).participantMultiplicity); - - if (participantMultiplicity) { - renderer('ParticipantMultiplicityMarker')(p, element); - } - - return lane; - - - }, - 'bpmn:TCA': function(p, element) { var lane = renderer('bpmn:Lane')(p, element, { fill: 'White' @@ -3838,39 +3740,6 @@ function visibility_model() { if (bpmnElement.$instanceOf('bpmn:InitiateProcess')) {} if (bpmnElement.$instanceOf('bpmn:StartEvent')) {} - if (bpmnElement.$instanceOf('bpmn:Collector')) { - assign(actions, { - 'Properties': { - group: 'clds', - label: 'Edit Properties', - className: 'clds-edit-properties', - title: 'Properties', - action: { - click: function(event) { - lastElementSelected = bpmnElement.id - CollectorsWindow(bpmnElement); - } - } - } - }); - - } - if (bpmnElement.$instanceOf('bpmn:StringMatch')) { - assign(actions, { - 'Properties': { - group: 'clds', - label: 'Edit Properties', - className: 'clds-edit-properties', - title: 'Properties', - action: { - click: function(event) { - lastElementSelected = bpmnElement.id - StringMatchWindow(bpmnElement); - } - } - } - }); - } if (bpmnElement.$instanceOf('bpmn:Holmes')) { assign(actions, { 'Properties': { @@ -5007,19 +4876,6 @@ function visibility_model() { height: 80 }; } - if (semantic.$instanceOf('bpmn:Collector')) { - return { - width: 120, - height: 80 - }; - } - - if (semantic.$instanceOf('bpmn:StringMatch')) { - return { - width: 120, - height: 80 - }; - } if (semantic.$instanceOf('bpmn:VesCollector')) { return { width: 120, @@ -6541,12 +6397,6 @@ function visibility_model() { 'create.start-event': createAction( 'bpmn:StartEvent', 'event', 'icon-start-event-none', "Start" ), - 'create.collector': createAction( - 'bpmn:Collector', 'event', 'icon-collector-node', 'Collector' - ), - 'create.String-Match': createAction( - 'bpmn:StringMatch', 'event', 'icon-stringmatch-node', 'String Match' - ), 'create.ves-collector': createAction( 'bpmn:VesCollector', 'event', 'icon-ves-collector-node', 'Ves Collector' ), @@ -14381,18 +14231,6 @@ function visibility_model() { "Activity", "InteractionNode" ] - }, { - "name": "Collector", - "superClass": [ - "Activity", - "InteractionNode" - ] - }, { - "name": "StringMatch", - "superClass": [ - "Activity", - "InteractionNode" - ] }, { "name": "VesCollector", "superClass": [ diff --git a/src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html deleted file mode 100644 index 7537f72aa..000000000 --- a/src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - -

- - - - -
- - diff --git a/src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html deleted file mode 100644 index 49ac07d73..000000000 --- a/src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html +++ /dev/null @@ -1,1019 +0,0 @@ - - - - - - -
- - - - - - - - -
diff --git a/src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js b/src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js index b42b5bb56..195886c9f 100644 --- a/src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js +++ b/src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js @@ -30,10 +30,8 @@ app.service('cldsModelService', ['alertService', '$http', '$q', function(alertSe } mapping = { - 'stringmatch': StringMatchWindow, 'tca': TCAWindow, 'policy': PolicyWindow, - 'collector': CollectorsWindow, 'vescollector': VesCollectorWindow, 'holmes': HolmesWindow, }; diff --git a/src/main/resources/META-INF/resources/designer/scripts/app.js b/src/main/resources/META-INF/resources/designer/scripts/app.js index 555b31c55..f300bb092 100644 --- a/src/main/resources/META-INF/resources/designer/scripts/app.js +++ b/src/main/resources/META-INF/resources/designer/scripts/app.js @@ -1296,106 +1296,6 @@ var app = angular.module('clds-app', ['ngRoute', // $modalInstance.close("closed"); }); }; - $scope.CollectorsWindow = function(collectorsWin) { - - if (isTemplate) { - var dlg = dialogs - .create( - 'partials/portfolios/Template_model.html', - 'ImportSchemaCtrl', - collectorsWin, { - closable: true, - draggable: true - }, { - size: 'lg', - keyboard: true, - backdrop: 'static', - windowClass: 'my-class' - }); - dlg.result.then(function(name) { - - }, function() { - - // if(angular.equals($scope.name,'')) - // $scope.name = 'You did not enter in - // your name!'; - }); - } else { - var dlg = dialogs - .create( - 'partials/portfolios/Collector_properties.html', - 'ImportSchemaCtrl', { - closable: true, - draggable: true - }, { - size: 'lg', - keyboard: true, - backdrop: 'static', - windowClass: 'my-class' - }); - dlg.result.then(function(name) { - - }, function() { - - // if(angular.equals($scope.name,'')) - // $scope.name = 'You did not enter in - // your name!'; - }); - - } - - }; - $scope.StringMatchWindow = function(stringMatch) { - - if (isTemplate) { - var dlg = dialogs - .create( - 'partials/portfolios/Template_model.html', - 'ImportSchemaCtrl', - stringMatch, { - closable: true, - draggable: true - }, { - size: 'lg', - keyboard: true, - backdrop: 'static', - windowClass: 'my-class' - }); - dlg.result.then(function(name) { - - }, function() { - - // if(angular.equals($scope.name,'')) - // $scope.name = 'You did not enter in - // your name!'; - }); - } else { - - var dlg = dialogs - .create( - 'partials/portfolios/stringMatch_properties.html', - 'ImportSchemaCtrl', { - closable: true, - draggable: true - }, { - size: 'lg', - keyboard: true, - backdrop: 'static', - windowClass: 'my-class' - }); - - dlg.result.then(function(name) { - - // $scope.name = name; - }, function() { - - // if(angular.equals($scope.name,'')) - // $scope.name = 'You did not enter in - // your name!'; - }); - - } - }; $scope.VesCollectorWindow = function(vesCollector) { if (isTemplate) { @@ -1677,13 +1577,6 @@ function importshema() { } -function CollectorsWindow(collectorsWin) { - - angular.element(document.getElementById('navbar')).scope() - .CollectorsWindow(collectorsWin); - -} - function VesCollectorWindow(vesCollectorWin) { angular.element(document.getElementById('navbar')).scope() .VesCollectorWindow(vesCollectorWin); @@ -1700,13 +1593,6 @@ function F5Window() { } -function StringMatchWindow(stringMatch) { - - angular.element(document.getElementById('navbar')).scope() - .StringMatchWindow(stringMatch); - -} - function TCAWindow(tca) { angular.element(document.getElementById('navbar')).scope().TCAWindow(tca); diff --git a/src/main/resources/bpmn/clds-process-action.bpmn b/src/main/resources/bpmn/clds-process-action.bpmn index 780162403..11edc0714 100644 --- a/src/main/resources/bpmn/clds-process-action.bpmn +++ b/src/main/resources/bpmn/clds-process-action.bpmn @@ -1,5 +1,5 @@ - + @@ -14,18 +14,15 @@ StartEvent_1 ServiceTask_0x8ypxf sendTcaReqDistribute - sendStringMatchingReqDistribute sendHolmesReqDistribute - sendStringMatchingReqDelete sendTcaReqDelete sendOpPolicyReqDelete sendHolmesReqDelete sendOpPolicyReqUpdate - sendStringMatchingReqUpdate sendTcaReqUpdate sendHolmesReqUpdate @@ -79,7 +76,7 @@ SequenceFlow_0ejpmee SequenceFlow_28 - + @@ -103,16 +100,11 @@ SequenceFlow_2 - - SequenceFlow_15 - SequenceFlow_23 - - - + - + @@ -124,19 +116,14 @@ - SequenceFlow_23 + SequenceFlow_15 SequenceFlow_0tpegxf - SequenceFlow_14 - SequenceFlow_1rga27p - - SequenceFlow_0w39hon - SequenceFlow_14 + SequenceFlow_1rga27p - SequenceFlow_1rga27p @@ -151,15 +138,10 @@ SequenceFlow_1mtizad - - SequenceFlow_27 - SequenceFlow_26 - - SequenceFlow_26 + SequenceFlow_27 SequenceFlow_1kegg6u - SequenceFlow_1kegg6u SequenceFlow_0ejpmee @@ -180,19 +162,9 @@ - - - - - - - - - - @@ -249,39 +221,19 @@ - - - - - - - - - - - - - - - - - - - - - + - + @@ -341,10 +293,10 @@ - + - + @@ -354,9 +306,9 @@ - + - + diff --git a/src/main/resources/clds/clds-reference.properties b/src/main/resources/clds/clds-reference.properties index abc25b179..d404e4e37 100644 --- a/src/main/resources/clds/clds-reference.properties +++ b/src/main/resources/clds/clds-reference.properties @@ -27,7 +27,7 @@ # # DCAE request build properties # -dcae.template={"properties":{"service_name":"","service_ids":[],"vnf_ids":[],"location_ids":[]},"template":{"string_matching":{"dcae":{"inputTopic":"","outputTopic":"","closedLoopControlName":"","closedLoopEventClient":"configuration.dcae.microservice.stringmatcher.xml","policyName":"","policyScope":"service=vSCP;resource=F5;type=configuration","policyVersion":"v0.0.1","serviceConfigurations":{}}}}} +dcae.template={"properties":{"service_name":"","service_ids":[],"vnf_ids":[],"location_ids":[]},"template":{"tca":{"dcae":{"inputTopic":"","outputTopic":"","closedLoopControlName":"","closedLoopEventClient":"configuration.dcae.microservice.tca.xml","policyName":"","policyScope":"service=vSCP;resource=F5;type=configuration","policyVersion":"v0.0.1","serviceConfigurations":{}}}}} dcae.decode.service_ids={"vUSP":["vUSP - vCTS"],"Trinity":["ASBGv TLS VNF","ASBGv No TLS","ASBGv (NO TLS) VNF","ASBGv TLS","NSBGv VNF","NSBGv"],"vSCP":["AKRON_vSCP_F5_FW-SVC/vSCP_F5_FW 1","ALLEN_vSCP_F5_FW-SVC/vSCP_F5_FW 1"],"vProbes":["vProbes - FW"]} # # SDC request blueprint properties @@ -50,19 +50,6 @@ policy.op.policyNamePrefix=Config_BRMS_Param_ tca.template={"service":"MThresholdCrossingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"MThresholdCrossingConfiguration","templateVersion":"5.2.0.1","priority":"4","version":"5.2.0.1","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"$class": "com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration","domain":"measurementsForVfScaling","policyScope":"pnf=eNodeB;type=configuration","policyName":"policy.dcae.configuration","policyVersion":"1.0.0","subscriberContentType": "application/json","subscriberConsumerId": "c13","subscriberConsumerGroup": "OpenDCAE-c13","subscriberTimeoutMS": "-1","subscriberMessageLimit": "-1","subscriberPollingInterval": "20000","publisherContentType": "application/json","publisherMaxBatchSize": "10","publisherMaxRecoveryQueueSize": "100000","publisherPollingInterval": "20000","publisherAlertWindowingTime": "86400","signatures":[]}} tca.signature.template={"nfNamingCode":"ENBE","target":"common_id","targetType":"eNodeB","useCaseName":"???","signatureName":"???","signatureUuid":"???","closedLoopControlName":"???","severity":"???","version":"1.0.2","maxInterval":1200,"minMessageViolations":4,"thresholds":[]} # -# String Match MicroService Policy request build properties -# -# default -sm.template={"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"1610","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{}}} -# by service: vSCP -sm.template.vSCP={"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"0.1.0-SNAPSHOT","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{}}} -sm.sc.template={} -# -# default -sm.rulegroup=true -# by service: vSCP -sm.rulegroup.vSCP=false -# # # Operational Policy request build properties # diff --git a/src/main/resources/clds/globalClds.properties b/src/main/resources/clds/globalClds.properties index f6607cb35..ac4f0cf30 100644 --- a/src/main/resources/clds/globalClds.properties +++ b/src/main/resources/clds/globalClds.properties @@ -21,4 +21,4 @@ # ECOMP is a trademark and service mark of AT&T Intellectual Property. ### -globalCldsProps ={"collector":{"topicPublishes":{"DCAE-COLLECTOR-UCSNMP":"DCAE-COLLECTOR-UCSNMP"}},"string_match":{"topicPublishes":{"DCAE-CL-EVENT":"DCAE-CL-EVENT"},"aaiMatchingFields":{"cloud-region.identity-url":"cloud-region.identity-url","complex.city":"complex.city","complex.physical-location-id":"complex.physical-location-id","complex.state":"complex.state","generic-vnf.service-id":"generic-vnf.service-id","generic-vnf.vnf-name":"generic-vnf.vnf-name","generic-vnf.vnf-type":"generic-vnf.vnf-type","tenant.tenant-id":"tenant.tenant-id","vserver.in-maint":"vserver.in-maint","vserver.is-closed-loop-disabled":"vserver.is-closed-loop-disabled","vserver.l-interface.interface-name":"vserver.l-interface.interface-name","vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address":"vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address","vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address":"vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address","vserver.l-interface.network-name":"vserver.l-interface.network-name","vserver.prov-status":"vserver.prov-status","vserver.selflink":"vserver.selflink","vserver.vserver-id":"vserver.vserver-id","vserver.vserver-name":"vserver.vserver-name"},"aaiSendFields":{"cloud-region.identity-url":"cloud-region.identity-url","complex.city":"complex.city","complex.physical-location-id":"complex.physical-location-id","complex.state":"complex.state","generic-vnf.service-id":"generic-vnf.service-id","generic-vnf.vnf-name":"generic-vnf.vnf-name","generic-vnf.vnf-type":"generic-vnf.vnf-type","tenant.tenant-id":"tenant.tenant-id","vserver.in-maint":"vserver.in-maint","vserver.is-closed-loop-disabled":"vserver.is-closed-loop-disabled","vserver.l-interface.interface-name":"vserver.l-interface.interface-name","vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address":"vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address","vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address":"vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address","vserver.l-interface.network-name":"vserver.l-interface.network-name","vserver.prov-status":"vserver.prov-status","vserver.selflink":"vserver.selflink","vserver.vserver-id":"vserver.vserver-id","vserver.vserver-name":"vserver.vserver-name"},"eventSourceType":{"f5BigIP":"f5BigIP","vSBG_Alarms":"vSBG_Alarms","vCTS_Alarms":"vCTS_Alarms"},"eventSeverity":{"NORMAL":"NORMAL","not-NORMAL":"not-NORMAL","OK":"OK","WARNING":"WARNING","MINOR":"MINOR","MAJOR":"MAJOR","CRITICAL":"CRITICAL"},"timeWindow":0,"ageLimit":1600,"outputEventName":{"":"","ONSET":"ONSET","ABATED":"ABATED"},"createClosedLoopEventId":{"Initial":"Initial","Close":"Close"}},"tca":{"tname":"New_Set","tcaInt":"1","tcaVio":"1","tcaSev":{"NORMAL":"NORMAL","CRITICAL":"CRITICAL","MAJOR":"MAJOR","MINOR":"MINOR","WARNING":"WARNING"},"fieldPath":{"FIELDPATH_test_1":"FIELDPATH_test_1","FIELDPATH_test_2":"FIELDPATH_test_2"},"operator":{">":"GREATER","=":"EQUAL","<":"LESS"},"opsPolicy":{"POLICY_test_X":"POLICY_test_X","POLICY_test_Y":"POLICY_test_Y"}},"global":{"actionSet":{"vnfRecipe":"VNF", "enbRecipe":"eNodeB"},"location":{"SNDGCA64":"San Diego SAN3","ALPRGAED":"Alpharetta PDK1","LSLEILAA":"Lisle DPA3","MDTWNJC1":"FTL_C_location1","MDTWNJC2":"FTL_C_location2","MDTWNJ21":"FTL_L_location1","MDTWNJ22":"FTL_L_location2","RDM2WAGPLCP":"ISTFTL_location","RDM3":"RDM3WAGPLCP"}},"policy":{"pname":"0","timeout":345,"vnfRecipe":{"":"","restart":"Restart","rebuild":"Rebuild","migrate":"Migrate","healthCheck":"Health Check"},"enbRecipe":{"":"","reset":"Reset"},"maxRetries":"3","retryTimeLimit":180,"resource":{"vCTS":"vCTS","v3CDB":"v3CDB","vUDR":"vUDR","vCOM":"vCOM","vRAR":"vRAR","vLCS":"vLCS","vUDR-BE":"vUDR-BE","vDBE":"vDBE"},"parentPolicyConditions":{"Failure_Retries":"Failure: Max Retries Exceeded","Failure_Timeout":"Failure: Time Limit Exceeded","Failure_Guard":"Failure: Guard","Failure_Exception":"Failure: Exception","Failure":"Failure: Other","Success":"Success"}},"shared":{"byService":{"":{"vf":{"":""},"location":{"":""},"alarmCondition":{"":""}}},"byVf":{"":{"vfc":{"":""}}}}} \ No newline at end of file +globalCldsProps ={"tca":{"tname":"New_Set","tcaInt":"1","tcaVio":"1","tcaSev":{"NORMAL":"NORMAL","CRITICAL":"CRITICAL","MAJOR":"MAJOR","MINOR":"MINOR","WARNING":"WARNING"},"fieldPath":{"FIELDPATH_test_1":"FIELDPATH_test_1","FIELDPATH_test_2":"FIELDPATH_test_2"},"operator":{">":"GREATER","=":"EQUAL","<":"LESS"},"opsPolicy":{"POLICY_test_X":"POLICY_test_X","POLICY_test_Y":"POLICY_test_Y"}},"global":{"actionSet":{"vnfRecipe":"VNF", "enbRecipe":"eNodeB"},"location":{"SNDGCA64":"San Diego SAN3","ALPRGAED":"Alpharetta PDK1","LSLEILAA":"Lisle DPA3","MDTWNJC1":"FTL_C_location1","MDTWNJC2":"FTL_C_location2","MDTWNJ21":"FTL_L_location1","MDTWNJ22":"FTL_L_location2","RDM2WAGPLCP":"ISTFTL_location","RDM3":"RDM3WAGPLCP"}},"policy":{"pname":"0","timeout":345,"vnfRecipe":{"":"","restart":"Restart","rebuild":"Rebuild","migrate":"Migrate","healthCheck":"Health Check"},"enbRecipe":{"":"","reset":"Reset"},"maxRetries":"3","retryTimeLimit":180,"resource":{"vCTS":"vCTS","v3CDB":"v3CDB","vUDR":"vUDR","vCOM":"vCOM","vRAR":"vRAR","vLCS":"vLCS","vUDR-BE":"vUDR-BE","vDBE":"vDBE"},"parentPolicyConditions":{"Failure_Retries":"Failure: Max Retries Exceeded","Failure_Timeout":"Failure: Time Limit Exceeded","Failure_Guard":"Failure: Guard","Failure_Exception":"Failure: Exception","Failure":"Failure: Other","Success":"Success"}},"shared":{"byService":{"":{"vf":{"":""},"location":{"":""},"alarmCondition":{"":""}}},"byVf":{"":{"vfc":{"":""}}}}} \ No newline at end of file diff --git a/src/main/resources/xsl/clds-bpmn-transformer.xsl b/src/main/resources/xsl/clds-bpmn-transformer.xsl index 8a39be55a..3cd98e3af 100644 --- a/src/main/resources/xsl/clds-bpmn-transformer.xsl +++ b/src/main/resources/xsl/clds-bpmn-transformer.xsl @@ -34,19 +34,7 @@ - {"collector":[ - - - - ], - - "stringMatch":[ - - - - ], - - "policy":[ + {"policy":[ @@ -63,7 +51,7 @@ ], - + "vesCollector":[ diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java index c57ddbfd6..22abb13d2 100644 --- a/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java +++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java @@ -35,13 +35,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.clamp.clds.AbstractIT; import org.onap.clamp.clds.client.req.OperationalPolicyReq; -import org.onap.clamp.clds.client.req.StringMatchPolicyReq; import org.onap.clamp.clds.client.req.TcaMPolicyReq; import org.onap.clamp.clds.model.CldsEvent; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.prop.Policy; import org.onap.clamp.clds.model.prop.PolicyChain; -import org.onap.clamp.clds.model.prop.StringMatch; import org.onap.clamp.clds.model.prop.Tca; import org.onap.clamp.clds.util.ResourceFileUtil; import org.onap.policy.api.AttributeType; @@ -74,24 +72,6 @@ public class PolicyClientIT extends AbstractIT { controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf"; } - private void createUpdateStringMatch(String actionCd) throws Exception { - ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp); - StringMatch stringMatch = prop.getType(StringMatch.class); - if (stringMatch.isFound()) { - String stringMatchPolicyRequestUuid = UUID.randomUUID().toString(); - - String policyJson = StringMatchPolicyReq.format(refProp, prop); - String correctValue = ResourceFileUtil.getResourceAsString("expected/stringmatch.json"); - JSONAssert.assertEquals(policyJson, correctValue, true); - String responseMessage = ""; - try { - responseMessage = policyClient.sendMicroServiceInJson(policyJson, prop, stringMatchPolicyRequestUuid); - } catch (Exception e) { - assertTrue(e.getMessage().contains("Policy send failed: PE500 ")); - } - } - } - private void createUpdateOperationalPolicy(String actionCd) throws Exception { ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp); Policy policy = prop.getType(Policy.class); @@ -123,21 +103,6 @@ public class PolicyClientIT extends AbstractIT { } } - private void deleteStringMatchPolicy(String actionCd) throws Exception { - ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp); - - StringMatch stringMatch = prop.getType(StringMatch.class); - if (stringMatch.isFound()) { - prop.setCurrentModelElementId(stringMatch.getId()); - String responseMessage = ""; - try { - responseMessage = policyClient.deleteMicrosService(prop); - } catch (Exception e) { - assertTrue(e.getMessage().contains("Policy delete failed: PE500 ")); - } - } - } - private void deleteOperationalPolicy(String actionCd) throws Exception { ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp); @@ -166,19 +131,6 @@ public class PolicyClientIT extends AbstractIT { } } - // @Test - /** - * Temporarily disabled Test. - */ - public void testCreateUpdateDeleteStringMatchPolicy() throws Exception { - - createUpdateStringMatch(CldsEvent.ACTION_SUBMIT); - - TimeUnit.SECONDS.sleep(20); - - deleteStringMatchPolicy(CldsEvent.ACTION_DELETE); - } - // @Test /** * Temporarily disabled Test. diff --git a/src/test/java/org/onap/clamp/clds/it/RefPropIT.java b/src/test/java/org/onap/clamp/clds/it/RefPropIT.java index 473ce4a27..4617f5b42 100644 --- a/src/test/java/org/onap/clamp/clds/it/RefPropIT.java +++ b/src/test/java/org/onap/clamp/clds/it/RefPropIT.java @@ -51,7 +51,7 @@ public class RefPropIT extends AbstractIT { */ @Test public void testJsonTemplate() throws IOException { - ObjectNode root = (ObjectNode) refProp.getJsonTemplate("sm.template"); + ObjectNode root = (ObjectNode) refProp.getJsonTemplate("tca.template"); root.put("closedLoopControlName", "ClosedLoop-FRWL-SIG-1582f840-2881-11e6-b4ec-005056a9d756"); ObjectMapper mapper = new ObjectMapper(); diff --git a/src/test/java/org/onap/clamp/clds/it/SdcIT.java b/src/test/java/org/onap/clamp/clds/it/SdcIT.java index 8883af254..46ac4089c 100644 --- a/src/test/java/org/onap/clamp/clds/it/SdcIT.java +++ b/src/test/java/org/onap/clamp/clds/it/SdcIT.java @@ -57,21 +57,6 @@ public class SdcIT extends AbstractIT { System.setProperty("AJSC_CONF_HOME", System.getProperty("user.dir") + "/src/test/resources/"); } - @Test - public void testBlueprint() throws Exception { - String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json"); - String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json"); - String modelName = "example-model06"; - String controlName = "ClosedLoop-FRWL-SIG04-1582f840-test-test-1234-005056a9d756"; - String docText = ResourceFileUtil.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 = ResourceFileUtil.getResourceAsString("example/modelPropForPolicy.json"); diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java index f87bd37dd..60056d42f 100644 --- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java +++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java @@ -54,22 +54,6 @@ public class ModelPropertiesTest { ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn, modelBpmnProp); - StringMatch stringMatch = prop.getType(StringMatch.class); - assertTrue(stringMatch.isFound()); - assertEquals("1505133578560", stringMatch.getResourceGroups().get(0).getGroupNumber()); - assertEquals("0", stringMatch.getResourceGroups().get(0).getPolicyId()); - assertEquals(1, stringMatch.getResourceGroups().get(0).getServiceConfigurations().size()); - List aaiMathcingFields = new ArrayList(); - aaiMathcingFields.add("complex.city"); - assertEquals(aaiMathcingFields, - stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getaaiMatchingFields()); - assertEquals("1600", stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getAgeLimit()); - assertEquals(1, stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getStringSet().size()); - - Collector collector = prop.getType(Collector.class); - assertTrue(collector.isFound()); - assertEquals("DCAE-COLLECTOR-UCSNMP", collector.getTopicPublishes()); - Policy policy = prop.getType(Policy.class); assertTrue(policy.isFound()); assertEquals(1, policy.getPolicyChains().size()); diff --git a/src/test/resources/clds/clds-reference.properties b/src/test/resources/clds/clds-reference.properties index fb91197d1..f2ec43b76 100644 --- a/src/test/resources/clds/clds-reference.properties +++ b/src/test/resources/clds/clds-reference.properties @@ -34,7 +34,7 @@ tca.signature.template={"nfNamingCode":"ENBE","target":"common_id","targetType": # # DCAE request build properties # -dcae.template={"properties":{"service_name":"","service_ids":[],"vnf_ids":[],"location_ids":[]},"template":{"string_matching":{"dcae":{"inputTopic":"","outputTopic":"","closedLoopControlName":"","closedLoopEventClient":"configuration.dcae.microservice.stringmatcher.xml","policyName":"","policyScope":"service=vSCP;resource=F5;type=configuration","policyVersion":"v0.0.1","serviceConfigurations":{}}}}} +dcae.template={"properties":{"service_name":"","service_ids":[],"vnf_ids":[],"location_ids":[]},"template":{"tca":{"dcae":{"inputTopic":"","outputTopic":"","closedLoopControlName":"","closedLoopEventClient":"configuration.dcae.microservice.tca.xml","policyName":"","policyScope":"service=vSCP;resource=F5;type=configuration","policyVersion":"v0.0.1","serviceConfigurations":{}}}}} dcae.decode.service_ids={"vUSP":["vUSP - vCTS"],"Trinity":["ASBGv TLS VNF","ASBGv No TLS","ASBGv (NO TLS) VNF","ASBGv TLS","NSBGv VNF","NSBGv"],"vSCP":["AKRON_vSCP_F5_FW-SVC/vSCP_F5_FW 1","ALLEN_vSCP_F5_FW-SVC/vSCP_F5_FW 1"],"vProbes":["vProbes - FW"]} # # SDC request blueprint properties @@ -51,22 +51,6 @@ policy.ms.type=MicroService policy.ms.policyNamePrefix=Config_MS_ policy.op.type=BRMS_Param policy.op.policyNamePrefix=Config_BRMS_Param_ - -# by service: xxx -# -# -# String Match MicroService Policy request build properties -# -# default -sm.template={"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"1610","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{}}} -# by service: vSCP -sm.template.vSCP={"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"0.1.0-SNAPSHOT","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{}}} -sm.sc.template={} -# -# default -sm.rulegroup=true -# by service: vSCP -sm.rulegroup.vSCP=false # # # Operational Policy request build properties @@ -113,9 +97,9 @@ action.test.override=false action.insert.test.event=false CLDS_SERVICE_CACHE_MAX_SECONDS=14400 # -globalProps={"collector": {"topicPublishes": {"DCAE-COLLECTOR-UCSNMP": "DCAE-COLLECTOR-UCSNMP", "GFP-IP-SNMP-TRAPS" : "GFP-IP-SNMP-TRAPS" } }, "string_match": { "topicPublishes": { "DCAE-CL-EVENT": "DCAE-CL-EVENT" }, "aaiMatchingFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "ProvStatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "aaiSendFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "Provstatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "eventSourceType": { "f5BigIP": "f5BigIP", "vSBG_Alarms": "vSBG_Alarms", "vCTS_Alarms": "vCTS_Alarms" }, "eventSeverity": { "NORMAL": "NORMAL", "not-NORMAL": "not-NORMAL", "WARNING": "WARNING", "MINOR": "MINOR", "MAJOR": "MAJOR", "CRITICAL": "CRITICAL" }, "timeWindow": 0, "ageLimit": 1600, "outputEventName": { "": "", "OnSet": "OnSet", "Abatement": "Abatement" }, "createClosedLoopEventId": { "Initial": "Initial", "Close": "Close" } }, "global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } }, "shared": { "byService": { "": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } }, "vSCP": { "vf": { "frwl_scp": "FW" }, "vfc": { "FW": "FW" }, "location": { "AKRNOHAH": "Akron", "ALLNTXSA": "Allen-2" }, "alarmCondition": { "authenticationFailure": "authenticationFailure", "bigipActive": "bigipActive", "bigipActiveActive": "bigipActiveActive", "bigipAgentRestart": "bigipAgentRestart", "bigipAgentShutdown": "bigipAgentShutdown", "bigipAgentStart": "bigipAgentStart", "bigipAggrReaperStateChange": "bigipAggrReaperStateChange", "bigipAomCpuTempTooHigh": "bigipAomCpuTempTooHigh", "bigipARPConflict": "bigipARPConflict", "bigipAsmBruteForceAttackDetected": "bigipAsmBruteForceAttackDetected", "bigipAsmDosAttackDetected": "bigipAsmDosAttackDetected", "bigipAsmFtpRequestBlocked": "bigipAsmFtpRequestBlocked", "bigipAsmFtpRequestViolation": "bigipAsmFtpRequestViolation", "bigipAsmRequestBlocked": "bigipAsmRequestBlocked", "bigipAsmRequestViolation": "bigipAsmRequestViolation", "bigipAsmSmtpRequestBlocked": "bigipAsmSmtpRequestBlocked", "bigipAsmSmtpRequestViolation": "bigipAsmSmtpRequestViolation", "bigipAuthFailed": "bigipAuthFailed", "bigipAvrAlertsMetricSmtp": "bigipAvrAlertsMetricSmtp", "bigipAvrAlertsMetricSnmp": "bigipAvrAlertsMetricSnmp", "bigipBladeNoPower": "bigipBladeNoPower", "bigipBladeOffline": "bigipBladeOffline", "bigipBladeTempHigh": "bigipBladeTempHigh", "bigipChassisFanBad": "bigipChassisFanBad", "bigipChassisPowerSupplyBad": "bigipChassisPowerSupplyBad", "bigipChassisTempHigh": "bigipChassisTempHigh", "bigipChmandAlertFanTrayBad": "bigipChmandAlertFanTrayBad", "bigipClusterdNoResponse": "bigipClusterdNoResponse", "bigipClusterPrimaryChanged": "bigipClusterPrimaryChanged", "bigipCompLimitExceeded": "bigipCompLimitExceeded", "bigipConfigLoaded": "bigipConfigLoaded", "bigipCpuFanSpeedBad": "bigipCpuFanSpeedBad", "bigipCpuFanSpeedLow": "bigipCpuFanSpeedLow", "bigipCpuTempHigh": "bigipCpuTempHigh", "bigipDiskPartitionGrowth": "bigipDiskPartitionGrowth", "bigipDiskPartitionWarn": "bigipDiskPartitionWarn", "bigipDnsRequestRateLimiterEngaged": "bigipDnsRequestRateLimiterEngaged", "bigipDosAttackStart": "bigipDosAttackStart", "bigipDosAttackStop": "bigipDosAttackStop", "bigipExternalLinkChange": "bigipExternalLinkChange", "bigipFeatureFailed": "bigipFeatureFailed", "bigipFeatureOnline": "bigipFeatureOnline", "bigipFipsDeviceError": "bigipFipsDeviceError", "bigipGtmAppAvail": "bigipGtmAppAvail", "bigipGtmAppNotAvail": "bigipGtmAppNotAvail", "bigipGtmAppObjAvail": "bigipGtmAppObjAvail", "bigipGtmAppObjNotAvail": "bigipGtmAppObjNotAvail", "bigipGtmBig3dSslCertExpired": "bigipGtmBig3dSslCertExpired", "bigipGtmBig3dSslCertWillExpire": "bigipGtmBig3dSslCertWillExpire", "bigipGtmBoxAvail": "bigipGtmBoxAvail", "bigipGtmBoxNotAvail": "bigipGtmBoxNotAvail", "bigipGtmDcAvail": "bigipGtmDcAvail", "bigipGtmDcDisabled": "bigipGtmDcDisabled", "bigipGtmDcEnabled": "bigipGtmDcEnabled", "bigipGtmDcNotAvail": "bigipGtmDcNotAvail", "bigipGtmJoinedGroup": "bigipGtmJoinedGroup", "bigipGtmKeyGenerationExpiration": "bigipGtmKeyGenerationExpiration", "bigipGtmKeyGenerationRollover": "bigipGtmKeyGenerationRollover", "bigipGtmLeftGroup": "bigipGtmLeftGroup", "bigipGtmLinkAvail": "bigipGtmLinkAvail", "bigipGtmLinkDisabled": "bigipGtmLinkDisabled", "bigipGtmLinkEnabled": "bigipGtmLinkEnabled", "bigipGtmLinkNotAvail": "bigipGtmLinkNotAvail", "bigipGtmPoolAvail": "bigipGtmPoolAvail", "bigipGtmPoolDisabled": "bigipGtmPoolDisabled", "bigipGtmPoolEnabled": "bigipGtmPoolEnabled", "bigipGtmPoolMbrAvail": "bigipGtmPoolMbrAvail", "bigipGtmPoolMbrDisabled": "bigipGtmPoolMbrDisabled", "bigipGtmPoolMbrEnabled": "bigipGtmPoolMbrEnabled", "bigipGtmPoolMbrNotAvail": "bigipGtmPoolMbrNotAvail", "bigipGtmPoolNotAvail": "bigipGtmPoolNotAvail", "bigipGtmProberPoolDisabled": "bigipGtmProberPoolDisabled", "bigipGtmProberPoolEnabled": "bigipGtmProberPoolEnabled", "bigipGtmProberPoolMbrDisabled": "bigipGtmProberPoolMbrDisabled", "bigipGtmProberPoolMbrEnabled": "bigipGtmProberPoolMbrEnabled", "bigipGtmProberPoolMbrStatusChange": "bigipGtmProberPoolMbrStatusChange", "bigipGtmProberPoolMbrStatusChangeReason": "bigipGtmProberPoolMbrStatusChangeReason", "bigipGtmProberPoolStatusChange": "bigipGtmProberPoolStatusChange", "bigipGtmProberPoolStatusChangeReason": "bigipGtmProberPoolStatusChangeReason", "bigipGtmRequestRateLimiterEngaged": "bigipGtmRequestRateLimiterEngaged", "bigipGtmServerAvail": "bigipGtmServerAvail", "bigipGtmServerDisabled": "bigipGtmServerDisabled", "bigipGtmServerEnabled": "bigipGtmServerEnabled", "bigipGtmServerNotAvail": "bigipGtmServerNotAvail", "bigipGtmSslCertExpired": "bigipGtmSslCertExpired", "bigipGtmSslCertWillExpire": "bigipGtmSslCertWillExpire", "bigipGtmVsAvail": "bigipGtmVsAvail", "bigipGtmVsDisabled": "bigipGtmVsDisabled", "bigipGtmVsEnabled": "bigipGtmVsEnabled", "bigipGtmVsNotAvail": "bigipGtmVsNotAvail", "bigipGtmWideIpAvail": "bigipGtmWideIpAvail", "bigipGtmWideIpDisabled": "bigipGtmWideIpDisabled", "bigipGtmWideIpEnabled": "bigipGtmWideIpEnabled", "bigipGtmWideIpNotAvail": "bigipGtmWideIpNotAvail", "bigipHardDiskFailure": "bigipHardDiskFailure", "bigipInetPortExhaustion": "bigipInetPortExhaustion", "bigipLibhalBladePoweredOff": "bigipLibhalBladePoweredOff", "bigipLibhalDiskBayRemoved": "bigipLibhalDiskBayRemoved", "bigipLibhalSensorAlarmCritical": "bigipLibhalSensorAlarmCritical", "bigipLibhalSsdLogicalDiskRemoved": "bigipLibhalSsdLogicalDiskRemoved", "bigipLibhalSsdPhysicalDiskRemoved": "bigipLibhalSsdPhysicalDiskRemoved", "bigipLicenseExpired": "bigipLicenseExpired", "bigipLicenseFailed": "bigipLicenseFailed", "bigipLogAlert": "bigipLogAlert", "bigipLogCrit": "bigipLogCrit", "bigipLogEmerg": "bigipLogEmerg", "bigipLogErr": "bigipLogErr", "bigipLogWarning": "bigipLogWarning", "bigipLtmVsAvail": "bigipLtmVsAvail", "bigipLtmVsDisabled": "bigipLtmVsDisabled", "bigipLtmVsEnabled": "bigipLtmVsEnabled", "bigipLtmVsUnavail": "bigipLtmVsUnavail", "bigipMemberRate": "bigipMemberRate", "bigipNetLinkDown": "bigipNetLinkDown", "bigipNodeDown": "bigipNodeDown", "bigipNodeRate": "bigipNodeRate", "bigipNodeUp": "bigipNodeUp", "bigipPacketRejected": "bigipPacketRejected", "bigipPsAbsent": "bigipPsAbsent", "bigipPsPowerOff": "bigipPsPowerOff", "bigipPsPowerOn": "bigipPsPowerOn", "bigipRaidDiskFailure": "bigipRaidDiskFailure", "bigipServiceDown": "bigipServiceDown", "bigipServiceUp": "bigipServiceUp", "bigipSsdMwiNearThreshold": "bigipSsdMwiNearThreshold", "bigipSsdMwiReachedThreshold": "bigipSsdMwiReachedThreshold", "bigipSslLimitExceeded": "bigipSslLimitExceeded", "bigipStandby": "bigipStandby", "bigipStandByFail": "bigipStandByFail", "bigipSystemCheckAlertCurrentHigh": "bigipSystemCheckAlertCurrentHigh", "bigipSystemCheckAlertCurrentLow": "bigipSystemCheckAlertCurrentLow", "bigipSystemCheckAlertFanSpeedLow": "bigipSystemCheckAlertFanSpeedLow", "bigipSystemCheckAlertMilliVoltageHigh": "bigipSystemCheckAlertMilliVoltageHigh", "bigipSystemCheckAlertMilliVoltageLow": "bigipSystemCheckAlertMilliVoltageLow", "bigipSystemCheckAlertPowerHigh": "bigipSystemCheckAlertPowerHigh", "bigipSystemCheckAlertPowerLow": "bigipSystemCheckAlertPowerLow", "bigipSystemCheckAlertTempHigh": "bigipSystemCheckAlertTempHigh", "bigipSystemCheckAlertVoltageHigh": "bigipSystemCheckAlertVoltageHigh", "bigipSystemCheckAlertVoltageLow": "bigipSystemCheckAlertVoltageLow", "bigipSystemShutdown": "bigipSystemShutdown", "bigipTamdAlert": "bigipTamdAlert", "bigipTrafficGroupActivate": "bigipTrafficGroupActivate", "bigipTrafficGroupActive": "bigipTrafficGroupActive", "bigipTrafficGroupDeactivate": "bigipTrafficGroupDeactivate", "bigipTrafficGroupForcedOffline": "bigipTrafficGroupForcedOffline", "bigipTrafficGroupOffline": "bigipTrafficGroupOffline", "bigipTrafficGroupStandby": "bigipTrafficGroupStandby", "bigipUnsolicitedRepliesExceededThreshold": "bigipUnsolicitedRepliesExceededThreshold", "bigipUpdateError": "bigipUpdateError", "bigipUpdatePriority": "bigipUpdatePriority", "bigipUpdateServer": "bigipUpdateServer", "bigipVcmpAlertsVcmpHBDetected": "bigipVcmpAlertsVcmpHBDetected", "bigipVcmpAlertsVcmpHBLost": "bigipVcmpAlertsVcmpHBLost", "bigipVcmpAlertsVcmpPowerOff": "bigipVcmpAlertsVcmpPowerOff", "bigipVcmpAlertsVcmpPowerOn": "bigipVcmpAlertsVcmpPowerOn", "bigipVirtualRate": "bigipVirtualRate", "coldStart": "coldStart", "emASMSigInstallComplete": "emASMSigInstallComplete", "emASMSigInstallFailed": "emASMSigInstallFailed", "emASMSigUpdateAvailable": "emASMSigUpdateAvailable", "emASMSigUpdateFailed": "emASMSigUpdateFailed", "emCertificateExpiration": "emCertificateExpiration", "emCpuUsage": "emCpuUsage", "emDeviceActiveMode": "emDeviceActiveMode", "emDeviceClockSkew": "emDeviceClockSkew", "emDeviceConfigSettingChanged": "emDeviceConfigSettingChanged", "emDeviceConfigSync": "emDeviceConfigSync", "emDeviceForcedOfflineMode": "emDeviceForcedOfflineMode", "emDeviceImpaired": "emDeviceImpaired", "emDeviceOfflineMode": "emDeviceOfflineMode", "emDeviceStandbyMode": "emDeviceStandbyMode", "emDeviceUnreachable": "emDeviceUnreachable", "emDiskUsage": "emDiskUsage", "emGatherServiceContractFailure": "emGatherServiceContractFailure", "emHaSyncFailed": "emHaSyncFailed", "emHotfixInstallComplete": "emHotfixInstallComplete", "emHotfixInstallFailed": "emHotfixInstallFailed", "emMemoryUsage": "emMemoryUsage", "emPerformanceStorageCap": "emPerformanceStorageCap", "emPerformanceStorageDays": "emPerformanceStorageDays", "emPerformanceThreshold": "emPerformanceThreshold", "emRaidDriveFailureDetected": "emRaidDriveFailureDetected", "emRaidDriveRebuildComplete": "emRaidDriveRebuildComplete", "emSchedBackupFailed": "emSchedBackupFailed", "emScheduledArchiveFailed": "emScheduledArchiveFailed", "emServiceContractExpiry": "emServiceContractExpiry", "emSoftwareInstallComplete": "emSoftwareInstallComplete", "emSoftwareInstallFailed": "emSoftwareInstallFailed", "emStatsCollectionRateCap": "emStatsCollectionRateCap", "emStatsDBConnectivityLost": "emStatsDBConnectivityLost", "emStatsDBConnectivityRestored": "emStatsDBConnectivityRestored", "fallingAlarm": "fallingAlarm", "ipv6IfStateChange": "ipv6IfStateChange", "linkDown": "linkDown", "linkUp": "linkUp", "mteEventSetFailure": "mteEventSetFailure", "mteTriggerFailure": "mteTriggerFailure", "mteTriggerFalling": "mteTriggerFalling", "mteTriggerFired": "mteTriggerFired", "mteTriggerRising": "mteTriggerRising", "netSnmpExampleHeartbeatNotification": "netSnmpExampleHeartbeatNotification", "newRoot": "newRoot", "nsNotifyRestart": "nsNotifyRestart", "nsNotifyShutdown": "nsNotifyShutdown", "nsNotifyStart": "nsNotifyStart", "risingAlarm": "risingAlarm", "schedActionFailure": "schedActionFailure", "smScriptAbort": "smScriptAbort", "smScriptException": "smScriptException", "smScriptResult": "smScriptResult", "topologyChange": "topologyChange", "ucdShutdown": "ucdShutdown", "ucdStart": "ucdStart", "warmStart": "warmStart" } }, "vUSP": { "vf": { "ctsf-xxx": "vCTS" }, "vfc": { "vCTS - CFED": "vCTS - CFED", "vCTS - Config": "vCTS - Config", "vCTS - DFED": "vCTS - DFED", "vCTS - TAFE-fsd": "vCTS - TAFE-fsd", "vCTS - GLS": "vCTS - GLS", "vCTS - XXX": "vCTS - XXX", "vCTS - Management Interface": "vCTS - Management Interface", "vCTS - SPFE-pfe": "vCTS - SPFE-pfe", "vCTS - DNS": "vCTS - DNS", "vCTS - SPFE-spd": "vCTS - SPFE-spd", "vCTS - SPFE-spt": "vCTS - SPFE-spt", "vCTS - TAFE-tas": "vCTS - TAFE-tas" }, "location": { "SNDGCA06": "San Diego(core site) A06", "SNDGCA64": "San Diego(core site) A64", "SNANTXCA": "San Antonio(core site)", "KSCYMO09": "Kansas City(core site)", "kings_mountain": "Kings Mountain(AMG)", "Secaucus": "Secaucus(AMG)", "lisle": "Lisle(AMG)", "concord": "Concord(AMG)", "houston": "Houston(AMG)", "akron": "Akron(AMG)" }, "alarmCondition": { "acrTemporaryBufferOverload": "acrTemporaryBufferOverload", "adnsExtendedTTLcaching": "adnsExtendedTTLcaching", "adnsQueryFailureCaching": "adnsQueryFailureCaching", "adnsQueueCongestion": "adnsQueueCongestion", "asdaCommunicationFailure": "asdaCommunicationFailure", "asdaRequestQueue": "asdaRequestQueue", "capacityLicenseKeyExpiration": "capacityLicenseKeyExpiration", "capacityLicenseKeyNearExpiration": "capacityLicenseKeyNearExpiration", "capacityLicenseKeyValidationError": "capacityLicenseKeyValidationError", "cardConnectionLost": "cardConnectionLost", "ccdbCommunicationFailure": "ccdbCommunicationFailure", "cpiAlrmCritical": "cpiAlrmCritical", "cpiAlrmMajor": "cpiAlrmMajor", "cpiAlrmMinor": "cpiAlrmMinor", "cpiAlrmWarning": "cpiAlrmWarning", "cpiAsrtEsc": "cpiAsrtEsc", "cpiAsrtNonEsc": "cpiAsrtNonEsc", "cpiAsrtNonEscCritical": "cpiAsrtNonEscCritical", "cpiAsrtNonEscMajor": "cpiAsrtNonEscMajor", "cpiAsrtNonEscMinor": "cpiAsrtNonEscMinor", "cpiAudErrCount": "cpiAudErrCount", "cpiAudManAct": "cpiAudManAct", "cpiAudNewEvent": "cpiAudNewEvent", "cpiCompleteRateAlarm": "cpiCompleteRateAlarm", "cpiCTS3xxFailRate": "cpiCTS3xxFailRate", "cpiCTS4xxFailRate": "cpiCTS4xxFailRate", "cpiCTS5xxFailRate": "cpiCTS5xxFailRate", "cpiCTS6xxFailRate": "cpiCTS6xxFailRate", "cpiCTSSIPRetransmitInvite": "cpiCTSSIPRetransmitInvite", "cpiCTSSIPRetransmitNonInvite": "cpiCTSSIPRetransmitNonInvite", "cpiDropMGAllocConnReq": "cpiDropMGAllocConnReq", "cpiDropRateAlarm": "cpiDropRateAlarm", "cpiExceptionService": "cpiExceptionService", "cpiFailRateAlarm": "cpiFailRateAlarm", "cpiFailSCTPFastRetransIncr": "cpiFailSCTPFastRetransIncr", "cpiFailSCTPFastRetransRate": "cpiFailSCTPFastRetransRate", "cpiFailSCTPSRTT1Incr": "cpiFailSCTPSRTT1Incr", "cpiFailSCTPSRTT2Incr": "cpiFailSCTPSRTT2Incr", "cpiFailSCTPT3RetransIncr": "cpiFailSCTPT3RetransIncr", "cpiFailSCTPT3RetransRate": "cpiFailSCTPT3RetransRate", "cpiFileSysUsage": "cpiFileSysUsage", "cpiMemAllocFail": "cpiMemAllocFail", "cpiNumOfLICDRDel": "cpiNumOfLICDRDel", "cpiReinitServiceSelf": "cpiReinitServiceSelf", "cpiSIPRetransmitInvite": "cpiSIPRetransmitInvite", "cpiSIPRetransmitNonInvite": "cpiSIPRetransmitNonInvite", "cpiSS7DropSCTPPktsRcvd": "cpiSS7DropSCTPPktsRcvd", "cpiSS7FailSCTPFastRetransRate": "cpiSS7FailSCTPFastRetransRate", "cpiStabilityAlarm": "cpiStabilityAlarm", "cpuOverload": "cpuOverload", "databaseConnectionLost": "databaseConnectionLost", "databaseReplicationLinkDown": "databaseReplicationLinkDown", "databaseSizeExhausted": "databaseSizeExhausted", "dbHighCpuUtilization": "dbHighCpuUtilization", "dbOffline": "dbOffline", "dbStatusUnexpected": "dbStatusUnexpected", "degradedResource": "degradedResource", "degrow": "degrow", "deviceServerCxnLost": "deviceServerCxnLost", "diamLinkDown": "diamLinkDown", "diamMaxClientsExceeded": "diamMaxClientsExceeded", "dnsThreshold": "dnsThreshold", "ethernetError": "ethernetError", "ethernetLinkDown": "ethernetLinkDown", "externalConnectivity": "externalConnectivity", "featureLicenseExpiration": "featureLicenseExpiration", "featureLicenseKeyNearExpiration": "featureLicenseKeyNearExpiration", "featureLockValidationError": "featureLockValidationError", "fqdnError": "fqdnError", "fru": "fru", "gatewayCongestion": "gatewayCongestion", "gatewayForcedOOS": "gatewayForcedOOS", "gatewayProvisioningError": "gatewayProvisioningError", "gatewayUnreachable": "gatewayUnreachable", "gatewayUnregistered": "gatewayUnregistered", "globalParameterNotFound": "globalParameterNotFound", "glsInvalidCellId": "glsInvalidCellId", "glsServerUnavailable": "glsServerUnavailable", "grow": "grow", "h248MessageBufferDepletion": "h248MessageBufferDepletion", "hlrSyncConnection": "hlrSyncConnection", "hlrSyncQueue": "hlrSyncQueue", "hostDown": "hostDown", "hostReset": "hostReset", "invalidGateway": "invalidGateway", "iriLinkDown": "iriLinkDown", "ldapServerConnectionLost": "ldapServerConnectionLost", "lispBufferFullExternalLIG": "lispBufferFullExternalLIG", "llcDown": "llcDown", "logicalLinkDown": "logicalLinkDown", "logicalLinkNotFound": "logicalLinkNotFound", "logRotateThreshold": "logRotateThreshold", "memoryOverload": "memoryOverload", "nodeConfigFailure": "nodeConfigFailure", "nodeGroupOOS": "nodeGroupOOS", "nodeOOS": "nodeOOS", "nonCompliantFaultGroupMemberState": "nonCompliantFaultGroupMemberState", "nonCsAddrChannelDepletion": "nonCsAddrChannelDepletion", "numberOfTuplesInUse": "numberOfTuplesInUse", "osSecInfoModificationDetected": "osSecInfoModificationDetected", "osSecInformationMissing": "osSecInformationMissing", "osSecUnexpectedInformation": "osSecUnexpectedInformation", "pdnsMySqlReplication": "pdnsMySqlReplication", "pktCorruptionDetectedViaRCCLANCheck": "pktCorruptionDetectedViaRCCLANCheck", "platformCommandFailure": "platformCommandFailure", "pmDataNotCollected": "pmDataNotCollected", "prdbConnectWithAlternateFailure": "prdbConnectWithAlternateFailure", "prdbSyncDataToAlternateFailure": "prdbSyncDataToAlternateFailure", "preAllocatedResourceOverload": "preAllocatedResourceOverload", "prifSocketError": "prifSocketError", "processDown": "processDown", "processNotStarted": "processNotStarted", "provisioningInhibitedMode": "provisioningInhibitedMode", "prsCallInstanceExceeded": "prsCallInstanceExceeded", "prsCpuOverload": "prsCpuOverload", "prsDatabaseMigrationFailure": "prsDatabaseMigrationFailure", "prsFailureToConnectWithPRDB": "prsFailureToConnectWithPRDB", "prsQueueExceeded": "prsQueueExceeded", "rccInhibitedMode": "rccInhibitedMode", "remotedbLinkDown": "remotedbLinkDown", "remoteQueryServerFailure": "remoteQueryServerFailure", "restore": "restore", "serviceCFGDataTimestampError": "serviceCFGDataTimestampError", "serviceCommCxnLost": "serviceCommCxnLost", "serviceOnewayCommunication": "serviceOnewayCommunication", "sheddingOverload": "sheddingOverload", "simxml": "simxml", "sipLinkSetMaxQuarantineList": "sipLinkSetMaxQuarantineList", "sipLinkSetUnavailable": "sipLinkSetUnavailable", "sipLinkUnavailable": "sipLinkUnavailable", "smdiSocketError": "smdiSocketError", "socketError": "socketError", "softwareAllocatedResourceOverload": "softwareAllocatedResourceOverload", "softwareComponentDown": "softwareComponentDown", "softwareComponentStandbyNotReady": "softwareComponentStandbyNotReady", "softwareLicense": "softwareLicense", "svcdegrow": "svcdegrow", "svcgrow": "svcgrow", "swVersionMismatch": "swVersionMismatch", "tftpDownloadCorrupt": "tftpDownloadCorrupt", "timeStampValueOutOfSystemRange": "timeStampValueOutOfSystemRange", "tlsInitError": "tlsInitError", "transactionHandlerBlockDepletion": "transactionHandlerBlockDepletion", "upgrade": "upgrade", "usageOfSyncTable": "usageOfSyncTable", "utHttpProxyConnectionDown": "utHttpProxyConnectionDown", "wpifSocketError": "wpifSocketError", "BackupFailure": "BackupFailure", "Configuration": "Configuration", "COTRecordTransferFailure": "COTRecordTransferFailure", "CPMUSERDATAINCONSITENCY": "CPMUSERDATAINCONSITENCY", "CPMUSERDATARESTORED": "CPMUSERDATARESTORED", "EventQueueCapacity": "EventQueueCapacity", "ICMPFailure": "ICMPFailure", "IPsecConfig": "IPsecConfig", "LinkDown": "LinkDown", "NotifyDisabled": "NotifyDisabled", "NotifyLocked": "NotifyLocked", "NumTL1MeasThresh": "NumTL1MeasThresh", "RADIUSTOLDAPFAILURE": "RADIUSTOLDAPFAILURE", "ROOTACCESSDENIED": "ROOTACCESSDENIED", "ROOTFTPVIOLATION": "ROOTFTPVIOLATION", "ROOTLOGINVIOLATION": "ROOTLOGINVIOLATION", "ROOTSSHLOGINVIOLATION": "ROOTSSHLOGINVIOLATION", "SetupAAAFailure": "SetupAAAFailure", "SNETrapOverload": "SNETrapOverload", "SNMPAuthenticationFailure": "SNMPAuthenticationFailure", "SNMPFailure": "SNMPFailure", "SUTOROOTFAILURE": "SUTOROOTFAILURE", "SYSTEMTrapOverload": "SYSTEMTrapOverload", "ThresholdCrossed": "ThresholdCrossed", "UndiscoveredObject": "UndiscoveredObject", "WriteAAAFailure": "WriteAAAFailure" } }, "Trinity": { "vf": { "aSBG": "aSBG", "nSBG": "nSBG", "tSBG": "tSBG" }, "vfc": { "pld": "PL - Payload Processor", "scr": "SC - System Controller" }, "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED": "Alpharetta PDK1", "LSLEILAA":"Lisle DPA3" }, "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":"A Fallback Operation will soon be started", "BRM%2C+Auto+Export+Backup+Failed":"BRM, Auto Export Backup Failed", "BRM%2C+Scheduled+Backup+Failed":"BRM, Scheduled Backup Failed", "COM+SA%2C+AMF+Component+Cleanup+Failed":"COM SA, AMF Component Cleanup Failed", "COM+SA%2C+AMF+Component+Instantiation+Failed":"COM SA, AMF Component Instantiation Failed", "COM+SA%2C+AMF+SI+Unassigned":"COM SA, AMF SI Unassigned", "COM+SA%2C+CLM+Cluster+Node+Unavailable":"COM SA, CLM Cluster Node Unavailable", "COM+SA%2C+MDF+Detected+Model+Error":"COM SA, MDF Detected Model Error", "COM+SA%2C+Proxy+Status+of+a+Component+Changed+to+Unproxied":"COM SA, Proxy Status of a Component Changed to Unproxied", "File+Management%2C+Number+of+Files+in+FileGroup+Exceeded":"File Management, Number of Files in FileGroup Exceeded", "File+Management%2C+Max+Size+in+FileGroup+Exceeded":"File Management, Max Size in FileGroup Exceeded", "LOTC+Disk+Replication+Communication":"LOTC Disk Replication Communication", "LOTC+Disk+Replication+Consistency":"LOTC Disk Replication Consistency", "LOTC+Disk+Usage":"LOTC Disk Usage", "LOTC+memory+Usage":"LOTC memory Usage", "LOTC+Time+Synchronization":"LOTC Time Synchronization", "SBG%2C+BGF+Control+Link+Down":"SBG, BGF Control Link Down", "SBG%2C+BGF+Control+Link+Disabled":"SBG, BGF Control Link Disabled", "SBG%2C+BGF+Control+Link+Enabled":"SBG, BGF Control Link Enabled", "SBG%2C+BGF+Control+Link+Remote+Locked":"SBG, BGF Control Link Remote Locked", "SBG%2C+Charging+Data+Storage+Maximum+Records+Reached":"SBG, Charging Data Storage Maximum Records Reached", "SBG%2C+Charging+Server+Rejects+Charging+Data":"SBG, Charging Server Rejects Charging Data", "SBG%2C+Excessive+Packet+Rate+Detected+":"SBG, Excessive Packet Rate Detected ", "SBG%2C+High+Amount+of+Malformed+Packets+Received":"SBG, High Amount of Malformed Packets Received", "SBG%2C+High+Amount+of+STUN+Packets+Detected":"SBG, High Amount of STUN Packets Detected", "SBG%2C+High+Amount+of+TCP+SYN+Packets+Received":"SBG, High Amount of TCP SYN Packets Received", "SBG%2C+High+Amount+of+UDP+Packets+Received+":"SBG, High Amount of UDP Packets Received ", "SBG%2C+IP+Address+Blocked+Due+to+Excessive+Packet+Rate":"SBG, IP Address Blocked Due to Excessive Packet Rate", "SBG%2C+Lost+Connectivity+to+Diameter+Server":"SBG, Lost Connectivity to Diameter Server", "SBG%2C+Mated+Pair+out+of+Service":"SBG, Mated Pair out of Service", "SBG%2C+Network+Unavailable+for+Media+Handling":"SBG, Network Unavailable for Media Handling", "SBG%2C+Non-emergency+Call+Released+to+Free+Resources+for+Emergency+Call":"SBG, Non-emergency Call Released to Free Resources for Emergency Call", "SBG%2C+Not+Enough+Disk+Space+for+Storing+Charging+Data":"SBG, Not Enough Disk Space for Storing Charging Data", "SBG%2C+Payload+Mated+Pair+Failure":"SBG, Payload Mated Pair Failure", "SBG%2C+Payload+Processor+Failure":"SBG, Payload Processor Failure", "SBG%2C+Processor+Overloaded":"SBG, Processor Overloaded", "SBG%2C+Registered+User+Set+in+Quarantine":"SBG, Registered User Set in Quarantine", "SBG%2C+Registration+Contacts+Exceed+Configured+Threshold":"SBG, Registration Contacts Exceed Configured Threshold", "SBG%2C+Sequential+Restart+Initiated":"SBG, Sequential Restart Initiated", "SBG%2C+SIP+Abuse+Detected":"SBG, SIP Abuse Detected", "SBG%2C+SIP+Network+Locked":"SBG, SIP Network Locked", "SBG%2C+SIP+Next+Hop+Reachable":"SBG, SIP Next Hop Reachable", "SBG%2C+SIP+Next+Hop+Unreachable":"SBG, SIP Next Hop Unreachable", "SBG%2C+SIP+Request+Rejected+by+Network+Throttling":"SBG, SIP Request Rejected by Network Throttling", "SBG%2C+TLS+Certificate+Imported":"SBG, TLS Certificate Imported", "SBG%2C+Trace+Recording+Session+Number+Limit+Reached":"SBG, Trace Recording Session Number Limit Reached", "SBG%2C+Trace+Session+Deactivated":"SBG, Trace Session Deactivated", "SBG%2C+Trace+Session+Times+Out":"SBG, Trace Session Times Out", "SBG%2C+Unknown+Media+Type+or+Payload+Type":"SBG, Unknown Media Type or Payload Type" } }, "vProbes": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } } } } } -globalPropsPartial={"collector": {"topicPublishes": {"DCAE-COLLECTOR-UCSNMP": "DCAE-COLLECTOR-UCSNMP", "GFP-IP--SNMP-TRAPS" : "GFP-IP--SNMP-TRAPS" } }, "string_match": { "topicPublishes": { "DCAE-CL-EVENT": "DCAE-CL-EVENT" }, "aaiMatchingFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "ProvStatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "aaiSendFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "Provstatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "eventSourceType": { "f5BigIP": "f5BigIP", "vSBG_Alarms": "vSBG_Alarms", "vCTS_Alarms": "vCTS_Alarms" }, "eventSeverity": { "NORMAL": "NORMAL", "not-NORMAL": "not-NORMAL", "WARNING": "WARNING", "MINOR": "MINOR", "MAJOR": "MAJOR", "CRITICAL": "CRITICAL" }, "timeWindow": 0, "ageLimit": 1600, "outputEventName": { "": "", "OnSet": "OnSet", "Abatement": "Abatement" }, "createClosedLoopEventId": { "Initial": "Initial", "Close": "Close" } }, "global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } } } -globalPropsTest={"collector": {"topicPublishes": {"DCAE-COLLECTOR-UCSNMP": "DCAE-COLLECTOR-UCSNMP", "GFP-IP--SNMP-TRAPS" : "GFP-IP--SNMP-TRAPS" } }, "string_match": { "topicPublishes": { "DCAE-CL-EVENT": "DCAE-CL-EVENT" }, "aaiMatchingFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "ProvStatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "aaiSendFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "Provstatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "eventSourceType": { "f5BigIP": "f5BigIP", "vSBG_Alarms": "vSBG_Alarms", "vCTS_Alarms": "vCTS_Alarms" }, "eventSeverity": { "NORMAL": "NORMAL", "not-NORMAL": "not-NORMAL", "WARNING": "WARNING", "MINOR": "MINOR", "MAJOR": "MAJOR", "CRITICAL": "CRITICAL" }, "timeWindow": 0, "ageLimit": 1600, "outputEventName": { "": "", "OnSet": "OnSet", "Abatement": "Abatement" }, "createClosedLoopEventId": { "Initial": "Initial", "Close": "Close" } }, "global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } }, "shared": { "byService": { "": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } }, "vSCP": { "vf": { "frwl_scp": "FW" }, "vfc": { "FW": "FW" }, "location": { "AKRNOHAH": "Akron", "ALLNTXSA": "Allen-2" }, "alarmCondition": { "authenticationFailure": "authenticationFailure", "bigipActive": "bigipActive", "bigipActiveActive": "bigipActiveActive", "bigipAgentRestart": "bigipAgentRestart", "bigipAgentShutdown": "bigipAgentShutdown", "bigipAgentStart": "bigipAgentStart", "bigipAggrReaperStateChange": "bigipAggrReaperStateChange", "bigipAomCpuTempTooHigh": "bigipAomCpuTempTooHigh", "bigipARPConflict": "bigipARPConflict", "bigipAsmBruteForceAttackDetected": "bigipAsmBruteForceAttackDetected", "bigipAsmDosAttackDetected": "bigipAsmDosAttackDetected", "bigipAsmFtpRequestBlocked": "bigipAsmFtpRequestBlocked", "bigipAsmFtpRequestViolation": "bigipAsmFtpRequestViolation", "bigipAsmRequestBlocked": "bigipAsmRequestBlocked", "bigipAsmRequestViolation": "bigipAsmRequestViolation", "bigipAsmSmtpRequestBlocked": "bigipAsmSmtpRequestBlocked", "bigipAsmSmtpRequestViolation": "bigipAsmSmtpRequestViolation", "bigipAuthFailed": "bigipAuthFailed", "bigipAvrAlertsMetricSmtp": "bigipAvrAlertsMetricSmtp", "bigipAvrAlertsMetricSnmp": "bigipAvrAlertsMetricSnmp", "bigipBladeNoPower": "bigipBladeNoPower", "bigipBladeOffline": "bigipBladeOffline", "bigipBladeTempHigh": "bigipBladeTempHigh", "bigipChassisFanBad": "bigipChassisFanBad", "bigipChassisPowerSupplyBad": "bigipChassisPowerSupplyBad", "bigipChassisTempHigh": "bigipChassisTempHigh", "bigipChmandAlertFanTrayBad": "bigipChmandAlertFanTrayBad", "bigipClusterdNoResponse": "bigipClusterdNoResponse", "bigipClusterPrimaryChanged": "bigipClusterPrimaryChanged", "bigipCompLimitExceeded": "bigipCompLimitExceeded", "bigipConfigLoaded": "bigipConfigLoaded", "bigipCpuFanSpeedBad": "bigipCpuFanSpeedBad", "bigipCpuFanSpeedLow": "bigipCpuFanSpeedLow", "bigipCpuTempHigh": "bigipCpuTempHigh", "bigipDiskPartitionGrowth": "bigipDiskPartitionGrowth", "bigipDiskPartitionWarn": "bigipDiskPartitionWarn", "bigipDnsRequestRateLimiterEngaged": "bigipDnsRequestRateLimiterEngaged", "bigipDosAttackStart": "bigipDosAttackStart", "bigipDosAttackStop": "bigipDosAttackStop", "bigipExternalLinkChange": "bigipExternalLinkChange", "bigipFeatureFailed": "bigipFeatureFailed", "bigipFeatureOnline": "bigipFeatureOnline", "bigipFipsDeviceError": "bigipFipsDeviceError", "bigipGtmAppAvail": "bigipGtmAppAvail", "bigipGtmAppNotAvail": "bigipGtmAppNotAvail", "bigipGtmAppObjAvail": "bigipGtmAppObjAvail", "bigipGtmAppObjNotAvail": "bigipGtmAppObjNotAvail", "bigipGtmBig3dSslCertExpired": "bigipGtmBig3dSslCertExpired", "bigipGtmBig3dSslCertWillExpire": "bigipGtmBig3dSslCertWillExpire", "bigipGtmBoxAvail": "bigipGtmBoxAvail", "bigipGtmBoxNotAvail": "bigipGtmBoxNotAvail", "bigipGtmDcAvail": "bigipGtmDcAvail", "bigipGtmDcDisabled": "bigipGtmDcDisabled", "bigipGtmDcEnabled": "bigipGtmDcEnabled", "bigipGtmDcNotAvail": "bigipGtmDcNotAvail", "bigipGtmJoinedGroup": "bigipGtmJoinedGroup", "bigipGtmKeyGenerationExpiration": "bigipGtmKeyGenerationExpiration", "bigipGtmKeyGenerationRollover": "bigipGtmKeyGenerationRollover", "bigipGtmLeftGroup": "bigipGtmLeftGroup", "bigipGtmLinkAvail": "bigipGtmLinkAvail", "bigipGtmLinkDisabled": "bigipGtmLinkDisabled", "bigipGtmLinkEnabled": "bigipGtmLinkEnabled", "bigipGtmLinkNotAvail": "bigipGtmLinkNotAvail", "bigipGtmPoolAvail": "bigipGtmPoolAvail", "bigipGtmPoolDisabled": "bigipGtmPoolDisabled", "bigipGtmPoolEnabled": "bigipGtmPoolEnabled", "bigipGtmPoolMbrAvail": "bigipGtmPoolMbrAvail", "bigipGtmPoolMbrDisabled": "bigipGtmPoolMbrDisabled", "bigipGtmPoolMbrEnabled": "bigipGtmPoolMbrEnabled", "bigipGtmPoolMbrNotAvail": "bigipGtmPoolMbrNotAvail", "bigipGtmPoolNotAvail": "bigipGtmPoolNotAvail", "bigipGtmProberPoolDisabled": "bigipGtmProberPoolDisabled", "bigipGtmProberPoolEnabled": "bigipGtmProberPoolEnabled", "bigipGtmProberPoolMbrDisabled": "bigipGtmProberPoolMbrDisabled", "bigipGtmProberPoolMbrEnabled": "bigipGtmProberPoolMbrEnabled", "bigipGtmProberPoolMbrStatusChange": "bigipGtmProberPoolMbrStatusChange", "bigipGtmProberPoolMbrStatusChangeReason": "bigipGtmProberPoolMbrStatusChangeReason", "bigipGtmProberPoolStatusChange": "bigipGtmProberPoolStatusChange", "bigipGtmProberPoolStatusChangeReason": "bigipGtmProberPoolStatusChangeReason", "bigipGtmRequestRateLimiterEngaged": "bigipGtmRequestRateLimiterEngaged", "bigipGtmServerAvail": "bigipGtmServerAvail", "bigipGtmServerDisabled": "bigipGtmServerDisabled", "bigipGtmServerEnabled": "bigipGtmServerEnabled", "bigipGtmServerNotAvail": "bigipGtmServerNotAvail", "bigipGtmSslCertExpired": "bigipGtmSslCertExpired", "bigipGtmSslCertWillExpire": "bigipGtmSslCertWillExpire", "bigipGtmVsAvail": "bigipGtmVsAvail", "bigipGtmVsDisabled": "bigipGtmVsDisabled", "bigipGtmVsEnabled": "bigipGtmVsEnabled", "bigipGtmVsNotAvail": "bigipGtmVsNotAvail", "bigipGtmWideIpAvail": "bigipGtmWideIpAvail", "bigipGtmWideIpDisabled": "bigipGtmWideIpDisabled", "bigipGtmWideIpEnabled": "bigipGtmWideIpEnabled", "bigipGtmWideIpNotAvail": "bigipGtmWideIpNotAvail", "bigipHardDiskFailure": "bigipHardDiskFailure", "bigipInetPortExhaustion": "bigipInetPortExhaustion", "bigipLibhalBladePoweredOff": "bigipLibhalBladePoweredOff", "bigipLibhalDiskBayRemoved": "bigipLibhalDiskBayRemoved", "bigipLibhalSensorAlarmCritical": "bigipLibhalSensorAlarmCritical", "bigipLibhalSsdLogicalDiskRemoved": "bigipLibhalSsdLogicalDiskRemoved", "bigipLibhalSsdPhysicalDiskRemoved": "bigipLibhalSsdPhysicalDiskRemoved", "bigipLicenseExpired": "bigipLicenseExpired", "bigipLicenseFailed": "bigipLicenseFailed", "bigipLogAlert": "bigipLogAlert", "bigipLogCrit": "bigipLogCrit", "bigipLogEmerg": "bigipLogEmerg", "bigipLogErr": "bigipLogErr", "bigipLogWarning": "bigipLogWarning", "bigipLtmVsAvail": "bigipLtmVsAvail", "bigipLtmVsDisabled": "bigipLtmVsDisabled", "bigipLtmVsEnabled": "bigipLtmVsEnabled", "bigipLtmVsUnavail": "bigipLtmVsUnavail", "bigipMemberRate": "bigipMemberRate", "bigipNetLinkDown": "bigipNetLinkDown", "bigipNodeDown": "bigipNodeDown", "bigipNodeRate": "bigipNodeRate", "bigipNodeUp": "bigipNodeUp", "bigipPacketRejected": "bigipPacketRejected", "bigipPsAbsent": "bigipPsAbsent", "bigipPsPowerOff": "bigipPsPowerOff", "bigipPsPowerOn": "bigipPsPowerOn", "bigipRaidDiskFailure": "bigipRaidDiskFailure", "bigipServiceDown": "bigipServiceDown", "bigipServiceUp": "bigipServiceUp", "bigipSsdMwiNearThreshold": "bigipSsdMwiNearThreshold", "bigipSsdMwiReachedThreshold": "bigipSsdMwiReachedThreshold", "bigipSslLimitExceeded": "bigipSslLimitExceeded", "bigipStandby": "bigipStandby", "bigipStandByFail": "bigipStandByFail", "bigipSystemCheckAlertCurrentHigh": "bigipSystemCheckAlertCurrentHigh", "bigipSystemCheckAlertCurrentLow": "bigipSystemCheckAlertCurrentLow", "bigipSystemCheckAlertFanSpeedLow": "bigipSystemCheckAlertFanSpeedLow", "bigipSystemCheckAlertMilliVoltageHigh": "bigipSystemCheckAlertMilliVoltageHigh", "bigipSystemCheckAlertMilliVoltageLow": "bigipSystemCheckAlertMilliVoltageLow", "bigipSystemCheckAlertPowerHigh": "bigipSystemCheckAlertPowerHigh", "bigipSystemCheckAlertPowerLow": "bigipSystemCheckAlertPowerLow", "bigipSystemCheckAlertTempHigh": "bigipSystemCheckAlertTempHigh", "bigipSystemCheckAlertVoltageHigh": "bigipSystemCheckAlertVoltageHigh", "bigipSystemCheckAlertVoltageLow": "bigipSystemCheckAlertVoltageLow", "bigipSystemShutdown": "bigipSystemShutdown", "bigipTamdAlert": "bigipTamdAlert", "bigipTrafficGroupActivate": "bigipTrafficGroupActivate", "bigipTrafficGroupActive": "bigipTrafficGroupActive", "bigipTrafficGroupDeactivate": "bigipTrafficGroupDeactivate", "bigipTrafficGroupForcedOffline": "bigipTrafficGroupForcedOffline", "bigipTrafficGroupOffline": "bigipTrafficGroupOffline", "bigipTrafficGroupStandby": "bigipTrafficGroupStandby", "bigipUnsolicitedRepliesExceededThreshold": "bigipUnsolicitedRepliesExceededThreshold", "bigipUpdateError": "bigipUpdateError", "bigipUpdatePriority": "bigipUpdatePriority", "bigipUpdateServer": "bigipUpdateServer", "bigipVcmpAlertsVcmpHBDetected": "bigipVcmpAlertsVcmpHBDetected", "bigipVcmpAlertsVcmpHBLost": "bigipVcmpAlertsVcmpHBLost", "bigipVcmpAlertsVcmpPowerOff": "bigipVcmpAlertsVcmpPowerOff", "bigipVcmpAlertsVcmpPowerOn": "bigipVcmpAlertsVcmpPowerOn", "bigipVirtualRate": "bigipVirtualRate", "coldStart": "coldStart", "emASMSigInstallComplete": "emASMSigInstallComplete", "emASMSigInstallFailed": "emASMSigInstallFailed", "emASMSigUpdateAvailable": "emASMSigUpdateAvailable", "emASMSigUpdateFailed": "emASMSigUpdateFailed", "emCertificateExpiration": "emCertificateExpiration", "emCpuUsage": "emCpuUsage", "emDeviceActiveMode": "emDeviceActiveMode", "emDeviceClockSkew": "emDeviceClockSkew", "emDeviceConfigSettingChanged": "emDeviceConfigSettingChanged", "emDeviceConfigSync": "emDeviceConfigSync", "emDeviceForcedOfflineMode": "emDeviceForcedOfflineMode", "emDeviceImpaired": "emDeviceImpaired", "emDeviceOfflineMode": "emDeviceOfflineMode", "emDeviceStandbyMode": "emDeviceStandbyMode", "emDeviceUnreachable": "emDeviceUnreachable", "emDiskUsage": "emDiskUsage", "emGatherServiceContractFailure": "emGatherServiceContractFailure", "emHaSyncFailed": "emHaSyncFailed", "emHotfixInstallComplete": "emHotfixInstallComplete", "emHotfixInstallFailed": "emHotfixInstallFailed", "emMemoryUsage": "emMemoryUsage", "emPerformanceStorageCap": "emPerformanceStorageCap", "emPerformanceStorageDays": "emPerformanceStorageDays", "emPerformanceThreshold": "emPerformanceThreshold", "emRaidDriveFailureDetected": "emRaidDriveFailureDetected", "emRaidDriveRebuildComplete": "emRaidDriveRebuildComplete", "emSchedBackupFailed": "emSchedBackupFailed", "emScheduledArchiveFailed": "emScheduledArchiveFailed", "emServiceContractExpiry": "emServiceContractExpiry", "emSoftwareInstallComplete": "emSoftwareInstallComplete", "emSoftwareInstallFailed": "emSoftwareInstallFailed", "emStatsCollectionRateCap": "emStatsCollectionRateCap", "emStatsDBConnectivityLost": "emStatsDBConnectivityLost", "emStatsDBConnectivityRestored": "emStatsDBConnectivityRestored", "fallingAlarm": "fallingAlarm", "ipv6IfStateChange": "ipv6IfStateChange", "linkDown": "linkDown", "linkUp": "linkUp", "mteEventSetFailure": "mteEventSetFailure", "mteTriggerFailure": "mteTriggerFailure", "mteTriggerFalling": "mteTriggerFalling", "mteTriggerFired": "mteTriggerFired", "mteTriggerRising": "mteTriggerRising", "netSnmpExampleHeartbeatNotification": "netSnmpExampleHeartbeatNotification", "newRoot": "newRoot", "nsNotifyRestart": "nsNotifyRestart", "nsNotifyShutdown": "nsNotifyShutdown", "nsNotifyStart": "nsNotifyStart", "risingAlarm": "risingAlarm", "schedActionFailure": "schedActionFailure", "smScriptAbort": "smScriptAbort", "smScriptException": "smScriptException", "smScriptResult": "smScriptResult", "topologyChange": "topologyChange", "ucdShutdown": "ucdShutdown", "ucdStart": "ucdStart", "warmStart": "warmStart" } }, "vUSP": { "vf": { "ctsf-xxx": "vCTS" }, "vfc": { "vCTS - CFED": "vCTS - CFED", "vCTS - Config": "vCTS - Config", "vCTS - DFED": "vCTS - DFED", "vCTS - TAFE-fsd": "vCTS - TAFE-fsd", "vCTS - GLS": "vCTS - GLS", "vCTS - XXX": "vCTS - XXX", "vCTS - Management Interface": "vCTS - Management Interface", "vCTS - SPFE-pfe": "vCTS - SPFE-pfe", "vCTS - DNS": "vCTS - DNS", "vCTS - SPFE-spd": "vCTS - SPFE-spd", "vCTS - SPFE-spt": "vCTS - SPFE-spt", "vCTS - TAFE-tas": "vCTS - TAFE-tas" }, "location": { "SNDGCA06": "San Diego(core site) A06", "SNDGCA64": "San Diego(core site) A64", "SNANTXCA": "San Antonio(core site)", "KSCYMO09": "Kansas City(core site)", "kings_mountain": "Kings Mountain(AMG)", "Secaucus": "Secaucus(AMG)", "lisle": "Lisle(AMG)", "concord": "Concord(AMG)", "houston": "Houston(AMG)", "akron": "Akron(AMG)" }, "alarmCondition": { "acrTemporaryBufferOverload": "acrTemporaryBufferOverload", "adnsExtendedTTLcaching": "adnsExtendedTTLcaching", "adnsQueryFailureCaching": "adnsQueryFailureCaching", "adnsQueueCongestion": "adnsQueueCongestion", "asdaCommunicationFailure": "asdaCommunicationFailure", "asdaRequestQueue": "asdaRequestQueue", "capacityLicenseKeyExpiration": "capacityLicenseKeyExpiration", "capacityLicenseKeyNearExpiration": "capacityLicenseKeyNearExpiration", "capacityLicenseKeyValidationError": "capacityLicenseKeyValidationError", "cardConnectionLost": "cardConnectionLost", "ccdbCommunicationFailure": "ccdbCommunicationFailure", "cpiAlrmCritical": "cpiAlrmCritical", "cpiAlrmMajor": "cpiAlrmMajor", "cpiAlrmMinor": "cpiAlrmMinor", "cpiAlrmWarning": "cpiAlrmWarning", "cpiAsrtEsc": "cpiAsrtEsc", "cpiAsrtNonEsc": "cpiAsrtNonEsc", "cpiAsrtNonEscCritical": "cpiAsrtNonEscCritical", "cpiAsrtNonEscMajor": "cpiAsrtNonEscMajor", "cpiAsrtNonEscMinor": "cpiAsrtNonEscMinor", "cpiAudErrCount": "cpiAudErrCount", "cpiAudManAct": "cpiAudManAct", "cpiAudNewEvent": "cpiAudNewEvent", "cpiCompleteRateAlarm": "cpiCompleteRateAlarm", "cpiCTS3xxFailRate": "cpiCTS3xxFailRate", "cpiCTS4xxFailRate": "cpiCTS4xxFailRate", "cpiCTS5xxFailRate": "cpiCTS5xxFailRate", "cpiCTS6xxFailRate": "cpiCTS6xxFailRate", "cpiCTSSIPRetransmitInvite": "cpiCTSSIPRetransmitInvite", "cpiCTSSIPRetransmitNonInvite": "cpiCTSSIPRetransmitNonInvite", "cpiDropMGAllocConnReq": "cpiDropMGAllocConnReq", "cpiDropRateAlarm": "cpiDropRateAlarm", "cpiExceptionService": "cpiExceptionService", "cpiFailRateAlarm": "cpiFailRateAlarm", "cpiFailSCTPFastRetransIncr": "cpiFailSCTPFastRetransIncr", "cpiFailSCTPFastRetransRate": "cpiFailSCTPFastRetransRate", "cpiFailSCTPSRTT1Incr": "cpiFailSCTPSRTT1Incr", "cpiFailSCTPSRTT2Incr": "cpiFailSCTPSRTT2Incr", "cpiFailSCTPT3RetransIncr": "cpiFailSCTPT3RetransIncr", "cpiFailSCTPT3RetransRate": "cpiFailSCTPT3RetransRate", "cpiFileSysUsage": "cpiFileSysUsage", "cpiMemAllocFail": "cpiMemAllocFail", "cpiNumOfLICDRDel": "cpiNumOfLICDRDel", "cpiReinitServiceSelf": "cpiReinitServiceSelf", "cpiSIPRetransmitInvite": "cpiSIPRetransmitInvite", "cpiSIPRetransmitNonInvite": "cpiSIPRetransmitNonInvite", "cpiSS7DropSCTPPktsRcvd": "cpiSS7DropSCTPPktsRcvd", "cpiSS7FailSCTPFastRetransRate": "cpiSS7FailSCTPFastRetransRate", "cpiStabilityAlarm": "cpiStabilityAlarm", "cpuOverload": "cpuOverload", "databaseConnectionLost": "databaseConnectionLost", "databaseReplicationLinkDown": "databaseReplicationLinkDown", "databaseSizeExhausted": "databaseSizeExhausted", "dbHighCpuUtilization": "dbHighCpuUtilization", "dbOffline": "dbOffline", "dbStatusUnexpected": "dbStatusUnexpected", "degradedResource": "degradedResource", "degrow": "degrow", "deviceServerCxnLost": "deviceServerCxnLost", "diamLinkDown": "diamLinkDown", "diamMaxClientsExceeded": "diamMaxClientsExceeded", "dnsThreshold": "dnsThreshold", "ethernetError": "ethernetError", "ethernetLinkDown": "ethernetLinkDown", "externalConnectivity": "externalConnectivity", "featureLicenseExpiration": "featureLicenseExpiration", "featureLicenseKeyNearExpiration": "featureLicenseKeyNearExpiration", "featureLockValidationError": "featureLockValidationError", "fqdnError": "fqdnError", "fru": "fru", "gatewayCongestion": "gatewayCongestion", "gatewayForcedOOS": "gatewayForcedOOS", "gatewayProvisioningError": "gatewayProvisioningError", "gatewayUnreachable": "gatewayUnreachable", "gatewayUnregistered": "gatewayUnregistered", "globalParameterNotFound": "globalParameterNotFound", "glsInvalidCellId": "glsInvalidCellId", "glsServerUnavailable": "glsServerUnavailable", "grow": "grow", "h248MessageBufferDepletion": "h248MessageBufferDepletion", "hlrSyncConnection": "hlrSyncConnection", "hlrSyncQueue": "hlrSyncQueue", "hostDown": "hostDown", "hostReset": "hostReset", "invalidGateway": "invalidGateway", "iriLinkDown": "iriLinkDown", "ldapServerConnectionLost": "ldapServerConnectionLost", "lispBufferFullExternalLIG": "lispBufferFullExternalLIG", "llcDown": "llcDown", "logicalLinkDown": "logicalLinkDown", "logicalLinkNotFound": "logicalLinkNotFound", "logRotateThreshold": "logRotateThreshold", "memoryOverload": "memoryOverload", "nodeConfigFailure": "nodeConfigFailure", "nodeGroupOOS": "nodeGroupOOS", "nodeOOS": "nodeOOS", "nonCompliantFaultGroupMemberState": "nonCompliantFaultGroupMemberState", "nonCsAddrChannelDepletion": "nonCsAddrChannelDepletion", "numberOfTuplesInUse": "numberOfTuplesInUse", "osSecInfoModificationDetected": "osSecInfoModificationDetected", "osSecInformationMissing": "osSecInformationMissing", "osSecUnexpectedInformation": "osSecUnexpectedInformation", "pdnsMySqlReplication": "pdnsMySqlReplication", "pktCorruptionDetectedViaRCCLANCheck": "pktCorruptionDetectedViaRCCLANCheck", "platformCommandFailure": "platformCommandFailure", "pmDataNotCollected": "pmDataNotCollected", "prdbConnectWithAlternateFailure": "prdbConnectWithAlternateFailure", "prdbSyncDataToAlternateFailure": "prdbSyncDataToAlternateFailure", "preAllocatedResourceOverload": "preAllocatedResourceOverload", "prifSocketError": "prifSocketError", "processDown": "processDown", "processNotStarted": "processNotStarted", "provisioningInhibitedMode": "provisioningInhibitedMode", "prsCallInstanceExceeded": "prsCallInstanceExceeded", "prsCpuOverload": "prsCpuOverload", "prsDatabaseMigrationFailure": "prsDatabaseMigrationFailure", "prsFailureToConnectWithPRDB": "prsFailureToConnectWithPRDB", "prsQueueExceeded": "prsQueueExceeded", "rccInhibitedMode": "rccInhibitedMode", "remotedbLinkDown": "remotedbLinkDown", "remoteQueryServerFailure": "remoteQueryServerFailure", "restore": "restore", "serviceCFGDataTimestampError": "serviceCFGDataTimestampError", "serviceCommCxnLost": "serviceCommCxnLost", "serviceOnewayCommunication": "serviceOnewayCommunication", "sheddingOverload": "sheddingOverload", "simxml": "simxml", "sipLinkSetMaxQuarantineList": "sipLinkSetMaxQuarantineList", "sipLinkSetUnavailable": "sipLinkSetUnavailable", "sipLinkUnavailable": "sipLinkUnavailable", "smdiSocketError": "smdiSocketError", "socketError": "socketError", "softwareAllocatedResourceOverload": "softwareAllocatedResourceOverload", "softwareComponentDown": "softwareComponentDown", "softwareComponentStandbyNotReady": "softwareComponentStandbyNotReady", "softwareLicense": "softwareLicense", "svcdegrow": "svcdegrow", "svcgrow": "svcgrow", "swVersionMismatch": "swVersionMismatch", "tftpDownloadCorrupt": "tftpDownloadCorrupt", "timeStampValueOutOfSystemRange": "timeStampValueOutOfSystemRange", "tlsInitError": "tlsInitError", "transactionHandlerBlockDepletion": "transactionHandlerBlockDepletion", "upgrade": "upgrade", "usageOfSyncTable": "usageOfSyncTable", "utHttpProxyConnectionDown": "utHttpProxyConnectionDown", "wpifSocketError": "wpifSocketError", "BackupFailure": "BackupFailure", "Configuration": "Configuration", "COTRecordTransferFailure": "COTRecordTransferFailure", "CPMUSERDATAINCONSITENCY": "CPMUSERDATAINCONSITENCY", "CPMUSERDATARESTORED": "CPMUSERDATARESTORED", "EventQueueCapacity": "EventQueueCapacity", "ICMPFailure": "ICMPFailure", "IPsecConfig": "IPsecConfig", "LinkDown": "LinkDown", "NotifyDisabled": "NotifyDisabled", "NotifyLocked": "NotifyLocked", "NumTL1MeasThresh": "NumTL1MeasThresh", "RADIUSTOLDAPFAILURE": "RADIUSTOLDAPFAILURE", "ROOTACCESSDENIED": "ROOTACCESSDENIED", "ROOTFTPVIOLATION": "ROOTFTPVIOLATION", "ROOTLOGINVIOLATION": "ROOTLOGINVIOLATION", "ROOTSSHLOGINVIOLATION": "ROOTSSHLOGINVIOLATION", "SetupAAAFailure": "SetupAAAFailure", "SNETrapOverload": "SNETrapOverload", "SNMPAuthenticationFailure": "SNMPAuthenticationFailure", "SNMPFailure": "SNMPFailure", "SUTOROOTFAILURE": "SUTOROOTFAILURE", "SYSTEMTrapOverload": "SYSTEMTrapOverload", "ThresholdCrossed": "ThresholdCrossed", "UndiscoveredObject": "UndiscoveredObject", "WriteAAAFailure": "WriteAAAFailure" } }, "Trinity": { "vf": { "aSBG": "aSBG", "nSBG": "nSBG", "tSBG": "tSBG" }, "vfc": { "pld": "PL - Payload Processor", "scr": "SC - System Controller" }, "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED": "Alpharetta PDK1", "LSLEILAA":"Lisle DPA3" }, "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":"A Fallback Operation will soon be started", "BRM%2C+Auto+Export+Backup+Failed":"BRM, Auto Export Backup Failed", "BRM%2C+Scheduled+Backup+Failed":"BRM, Scheduled Backup Failed", "COM+SA%2C+AMF+Component+Cleanup+Failed":"COM SA, AMF Component Cleanup Failed", "COM+SA%2C+AMF+Component+Instantiation+Failed":"COM SA, AMF Component Instantiation Failed", "COM+SA%2C+AMF+SI+Unassigned":"COM SA, AMF SI Unassigned", "COM+SA%2C+CLM+Cluster+Node+Unavailable":"COM SA, CLM Cluster Node Unavailable", "COM+SA%2C+MDF+Detected+Model+Error":"COM SA, MDF Detected Model Error", "COM+SA%2C+Proxy+Status+of+a+Component+Changed+to+Unproxied":"COM SA, Proxy Status of a Component Changed to Unproxied", "File+Management%2C+Number+of+Files+in+FileGroup+Exceeded":"File Management, Number of Files in FileGroup Exceeded", "File+Management%2C+Max+Size+in+FileGroup+Exceeded":"File Management, Max Size in FileGroup Exceeded", "LOTC+Disk+Replication+Communication":"LOTC Disk Replication Communication", "LOTC+Disk+Replication+Consistency":"LOTC Disk Replication Consistency", "LOTC+Disk+Usage":"LOTC Disk Usage", "LOTC+memory+Usage":"LOTC memory Usage", "LOTC+Time+Synchronization":"LOTC Time Synchronization", "SBG%2C+BGF+Control+Link+Down":"SBG, BGF Control Link Down", "SBG%2C+BGF+Control+Link+Disabled":"SBG, BGF Control Link Disabled", "SBG%2C+BGF+Control+Link+Enabled":"SBG, BGF Control Link Enabled", "SBG%2C+BGF+Control+Link+Remote+Locked":"SBG, BGF Control Link Remote Locked", "SBG%2C+Charging+Data+Storage+Maximum+Records+Reached":"SBG, Charging Data Storage Maximum Records Reached", "SBG%2C+Charging+Server+Rejects+Charging+Data":"SBG, Charging Server Rejects Charging Data", "SBG%2C+Excessive+Packet+Rate+Detected+":"SBG, Excessive Packet Rate Detected ", "SBG%2C+High+Amount+of+Malformed+Packets+Received":"SBG, High Amount of Malformed Packets Received", "SBG%2C+High+Amount+of+STUN+Packets+Detected":"SBG, High Amount of STUN Packets Detected", "SBG%2C+High+Amount+of+TCP+SYN+Packets+Received":"SBG, High Amount of TCP SYN Packets Received", "SBG%2C+High+Amount+of+UDP+Packets+Received+":"SBG, High Amount of UDP Packets Received ", "SBG%2C+IP+Address+Blocked+Due+to+Excessive+Packet+Rate":"SBG, IP Address Blocked Due to Excessive Packet Rate", "SBG%2C+Lost+Connectivity+to+Diameter+Server":"SBG, Lost Connectivity to Diameter Server", "SBG%2C+Mated+Pair+out+of+Service":"SBG, Mated Pair out of Service", "SBG%2C+Network+Unavailable+for+Media+Handling":"SBG, Network Unavailable for Media Handling", "SBG%2C+Non-emergency+Call+Released+to+Free+Resources+for+Emergency+Call":"SBG, Non-emergency Call Released to Free Resources for Emergency Call", "SBG%2C+Not+Enough+Disk+Space+for+Storing+Charging+Data":"SBG, Not Enough Disk Space for Storing Charging Data", "SBG%2C+Payload+Mated+Pair+Failure":"SBG, Payload Mated Pair Failure", "SBG%2C+Payload+Processor+Failure":"SBG, Payload Processor Failure", "SBG%2C+Processor+Overloaded":"SBG, Processor Overloaded", "SBG%2C+Registered+User+Set+in+Quarantine":"SBG, Registered User Set in Quarantine", "SBG%2C+Registration+Contacts+Exceed+Configured+Threshold":"SBG, Registration Contacts Exceed Configured Threshold", "SBG%2C+Sequential+Restart+Initiated":"SBG, Sequential Restart Initiated", "SBG%2C+SIP+Abuse+Detected":"SBG, SIP Abuse Detected", "SBG%2C+SIP+Network+Locked":"SBG, SIP Network Locked", "SBG%2C+SIP+Next+Hop+Reachable":"SBG, SIP Next Hop Reachable", "SBG%2C+SIP+Next+Hop+Unreachable":"SBG, SIP Next Hop Unreachable", "SBG%2C+SIP+Request+Rejected+by+Network+Throttling":"SBG, SIP Request Rejected by Network Throttling", "SBG%2C+TLS+Certificate+Imported":"SBG, TLS Certificate Imported", "SBG%2C+Trace+Recording+Session+Number+Limit+Reached":"SBG, Trace Recording Session Number Limit Reached", "SBG%2C+Trace+Session+Deactivated":"SBG, Trace Session Deactivated", "SBG%2C+Trace+Session+Times+Out":"SBG, Trace Session Times Out", "SBG%2C+Unknown+Media+Type+or+Payload+Type":"SBG, Unknown Media Type or Payload Type" } }, "vProbes": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } } } } } -globalPropsPartialTest={"collector": {"topicPublishes": {"DCAE-COLLECTOR-UCSNMP": "DCAE-COLLECTOR-UCSNMP", "GFP-IP--SNMP-TRAPS" : "GFP-IP--SNMP-TRAPS" } }, "string_match": { "topicPublishes": { "DCAE-CL-EVENT": "DCAE-CL-EVENT" }, "aaiMatchingFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "ProvStatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "aaiSendFields": { "VMID": "VMID", "Identiy": "Identiy", "VNFNAME": "VNFNAME", "LOCID": "LOCID", "VServerSelfLink": "VServerSelfLink", "Provstatus": "Provstatus", "OAMIPV4": "OAMIPV4", "OAMIPV6": "OAMIPV6", "VMNAME": "VMNAME", "TenantID":"TenantID", "in_maint":"in_maint", "is_closed_loop_disabled":"is_closed_loop_disabled", "Location":"Location", "OAM_network_name":"OAM_network_name" }, "eventSourceType": { "f5BigIP": "f5BigIP", "vSBG_Alarms": "vSBG_Alarms", "vCTS_Alarms": "vCTS_Alarms" }, "eventSeverity": { "NORMAL": "NORMAL", "not-NORMAL": "not-NORMAL", "WARNING": "WARNING", "MINOR": "MINOR", "MAJOR": "MAJOR", "CRITICAL": "CRITICAL" }, "timeWindow": 0, "ageLimit": 1600, "outputEventName": { "": "", "OnSet": "OnSet", "Abatement": "Abatement" }, "createClosedLoopEventId": { "Initial": "Initial", "Close": "Close" } }, "global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } }} +globalProps={"global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } }, "shared": { "byService": { "": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } }, "vSCP": { "vf": { "frwl_scp": "FW" }, "vfc": { "FW": "FW" }, "location": { "AKRNOHAH": "Akron", "ALLNTXSA": "Allen-2" }, "alarmCondition": { "authenticationFailure": "authenticationFailure", "bigipActive": "bigipActive", "bigipActiveActive": "bigipActiveActive", "bigipAgentRestart": "bigipAgentRestart", "bigipAgentShutdown": "bigipAgentShutdown", "bigipAgentStart": "bigipAgentStart", "bigipAggrReaperStateChange": "bigipAggrReaperStateChange", "bigipAomCpuTempTooHigh": "bigipAomCpuTempTooHigh", "bigipARPConflict": "bigipARPConflict", "bigipAsmBruteForceAttackDetected": "bigipAsmBruteForceAttackDetected", "bigipAsmDosAttackDetected": "bigipAsmDosAttackDetected", "bigipAsmFtpRequestBlocked": "bigipAsmFtpRequestBlocked", "bigipAsmFtpRequestViolation": "bigipAsmFtpRequestViolation", "bigipAsmRequestBlocked": "bigipAsmRequestBlocked", "bigipAsmRequestViolation": "bigipAsmRequestViolation", "bigipAsmSmtpRequestBlocked": "bigipAsmSmtpRequestBlocked", "bigipAsmSmtpRequestViolation": "bigipAsmSmtpRequestViolation", "bigipAuthFailed": "bigipAuthFailed", "bigipAvrAlertsMetricSmtp": "bigipAvrAlertsMetricSmtp", "bigipAvrAlertsMetricSnmp": "bigipAvrAlertsMetricSnmp", "bigipBladeNoPower": "bigipBladeNoPower", "bigipBladeOffline": "bigipBladeOffline", "bigipBladeTempHigh": "bigipBladeTempHigh", "bigipChassisFanBad": "bigipChassisFanBad", "bigipChassisPowerSupplyBad": "bigipChassisPowerSupplyBad", "bigipChassisTempHigh": "bigipChassisTempHigh", "bigipChmandAlertFanTrayBad": "bigipChmandAlertFanTrayBad", "bigipClusterdNoResponse": "bigipClusterdNoResponse", "bigipClusterPrimaryChanged": "bigipClusterPrimaryChanged", "bigipCompLimitExceeded": "bigipCompLimitExceeded", "bigipConfigLoaded": "bigipConfigLoaded", "bigipCpuFanSpeedBad": "bigipCpuFanSpeedBad", "bigipCpuFanSpeedLow": "bigipCpuFanSpeedLow", "bigipCpuTempHigh": "bigipCpuTempHigh", "bigipDiskPartitionGrowth": "bigipDiskPartitionGrowth", "bigipDiskPartitionWarn": "bigipDiskPartitionWarn", "bigipDnsRequestRateLimiterEngaged": "bigipDnsRequestRateLimiterEngaged", "bigipDosAttackStart": "bigipDosAttackStart", "bigipDosAttackStop": "bigipDosAttackStop", "bigipExternalLinkChange": "bigipExternalLinkChange", "bigipFeatureFailed": "bigipFeatureFailed", "bigipFeatureOnline": "bigipFeatureOnline", "bigipFipsDeviceError": "bigipFipsDeviceError", "bigipGtmAppAvail": "bigipGtmAppAvail", "bigipGtmAppNotAvail": "bigipGtmAppNotAvail", "bigipGtmAppObjAvail": "bigipGtmAppObjAvail", "bigipGtmAppObjNotAvail": "bigipGtmAppObjNotAvail", "bigipGtmBig3dSslCertExpired": "bigipGtmBig3dSslCertExpired", "bigipGtmBig3dSslCertWillExpire": "bigipGtmBig3dSslCertWillExpire", "bigipGtmBoxAvail": "bigipGtmBoxAvail", "bigipGtmBoxNotAvail": "bigipGtmBoxNotAvail", "bigipGtmDcAvail": "bigipGtmDcAvail", "bigipGtmDcDisabled": "bigipGtmDcDisabled", "bigipGtmDcEnabled": "bigipGtmDcEnabled", "bigipGtmDcNotAvail": "bigipGtmDcNotAvail", "bigipGtmJoinedGroup": "bigipGtmJoinedGroup", "bigipGtmKeyGenerationExpiration": "bigipGtmKeyGenerationExpiration", "bigipGtmKeyGenerationRollover": "bigipGtmKeyGenerationRollover", "bigipGtmLeftGroup": "bigipGtmLeftGroup", "bigipGtmLinkAvail": "bigipGtmLinkAvail", "bigipGtmLinkDisabled": "bigipGtmLinkDisabled", "bigipGtmLinkEnabled": "bigipGtmLinkEnabled", "bigipGtmLinkNotAvail": "bigipGtmLinkNotAvail", "bigipGtmPoolAvail": "bigipGtmPoolAvail", "bigipGtmPoolDisabled": "bigipGtmPoolDisabled", "bigipGtmPoolEnabled": "bigipGtmPoolEnabled", "bigipGtmPoolMbrAvail": "bigipGtmPoolMbrAvail", "bigipGtmPoolMbrDisabled": "bigipGtmPoolMbrDisabled", "bigipGtmPoolMbrEnabled": "bigipGtmPoolMbrEnabled", "bigipGtmPoolMbrNotAvail": "bigipGtmPoolMbrNotAvail", "bigipGtmPoolNotAvail": "bigipGtmPoolNotAvail", "bigipGtmProberPoolDisabled": "bigipGtmProberPoolDisabled", "bigipGtmProberPoolEnabled": "bigipGtmProberPoolEnabled", "bigipGtmProberPoolMbrDisabled": "bigipGtmProberPoolMbrDisabled", "bigipGtmProberPoolMbrEnabled": "bigipGtmProberPoolMbrEnabled", "bigipGtmProberPoolMbrStatusChange": "bigipGtmProberPoolMbrStatusChange", "bigipGtmProberPoolMbrStatusChangeReason": "bigipGtmProberPoolMbrStatusChangeReason", "bigipGtmProberPoolStatusChange": "bigipGtmProberPoolStatusChange", "bigipGtmProberPoolStatusChangeReason": "bigipGtmProberPoolStatusChangeReason", "bigipGtmRequestRateLimiterEngaged": "bigipGtmRequestRateLimiterEngaged", "bigipGtmServerAvail": "bigipGtmServerAvail", "bigipGtmServerDisabled": "bigipGtmServerDisabled", "bigipGtmServerEnabled": "bigipGtmServerEnabled", "bigipGtmServerNotAvail": "bigipGtmServerNotAvail", "bigipGtmSslCertExpired": "bigipGtmSslCertExpired", "bigipGtmSslCertWillExpire": "bigipGtmSslCertWillExpire", "bigipGtmVsAvail": "bigipGtmVsAvail", "bigipGtmVsDisabled": "bigipGtmVsDisabled", "bigipGtmVsEnabled": "bigipGtmVsEnabled", "bigipGtmVsNotAvail": "bigipGtmVsNotAvail", "bigipGtmWideIpAvail": "bigipGtmWideIpAvail", "bigipGtmWideIpDisabled": "bigipGtmWideIpDisabled", "bigipGtmWideIpEnabled": "bigipGtmWideIpEnabled", "bigipGtmWideIpNotAvail": "bigipGtmWideIpNotAvail", "bigipHardDiskFailure": "bigipHardDiskFailure", "bigipInetPortExhaustion": "bigipInetPortExhaustion", "bigipLibhalBladePoweredOff": "bigipLibhalBladePoweredOff", "bigipLibhalDiskBayRemoved": "bigipLibhalDiskBayRemoved", "bigipLibhalSensorAlarmCritical": "bigipLibhalSensorAlarmCritical", "bigipLibhalSsdLogicalDiskRemoved": "bigipLibhalSsdLogicalDiskRemoved", "bigipLibhalSsdPhysicalDiskRemoved": "bigipLibhalSsdPhysicalDiskRemoved", "bigipLicenseExpired": "bigipLicenseExpired", "bigipLicenseFailed": "bigipLicenseFailed", "bigipLogAlert": "bigipLogAlert", "bigipLogCrit": "bigipLogCrit", "bigipLogEmerg": "bigipLogEmerg", "bigipLogErr": "bigipLogErr", "bigipLogWarning": "bigipLogWarning", "bigipLtmVsAvail": "bigipLtmVsAvail", "bigipLtmVsDisabled": "bigipLtmVsDisabled", "bigipLtmVsEnabled": "bigipLtmVsEnabled", "bigipLtmVsUnavail": "bigipLtmVsUnavail", "bigipMemberRate": "bigipMemberRate", "bigipNetLinkDown": "bigipNetLinkDown", "bigipNodeDown": "bigipNodeDown", "bigipNodeRate": "bigipNodeRate", "bigipNodeUp": "bigipNodeUp", "bigipPacketRejected": "bigipPacketRejected", "bigipPsAbsent": "bigipPsAbsent", "bigipPsPowerOff": "bigipPsPowerOff", "bigipPsPowerOn": "bigipPsPowerOn", "bigipRaidDiskFailure": "bigipRaidDiskFailure", "bigipServiceDown": "bigipServiceDown", "bigipServiceUp": "bigipServiceUp", "bigipSsdMwiNearThreshold": "bigipSsdMwiNearThreshold", "bigipSsdMwiReachedThreshold": "bigipSsdMwiReachedThreshold", "bigipSslLimitExceeded": "bigipSslLimitExceeded", "bigipStandby": "bigipStandby", "bigipStandByFail": "bigipStandByFail", "bigipSystemCheckAlertCurrentHigh": "bigipSystemCheckAlertCurrentHigh", "bigipSystemCheckAlertCurrentLow": "bigipSystemCheckAlertCurrentLow", "bigipSystemCheckAlertFanSpeedLow": "bigipSystemCheckAlertFanSpeedLow", "bigipSystemCheckAlertMilliVoltageHigh": "bigipSystemCheckAlertMilliVoltageHigh", "bigipSystemCheckAlertMilliVoltageLow": "bigipSystemCheckAlertMilliVoltageLow", "bigipSystemCheckAlertPowerHigh": "bigipSystemCheckAlertPowerHigh", "bigipSystemCheckAlertPowerLow": "bigipSystemCheckAlertPowerLow", "bigipSystemCheckAlertTempHigh": "bigipSystemCheckAlertTempHigh", "bigipSystemCheckAlertVoltageHigh": "bigipSystemCheckAlertVoltageHigh", "bigipSystemCheckAlertVoltageLow": "bigipSystemCheckAlertVoltageLow", "bigipSystemShutdown": "bigipSystemShutdown", "bigipTamdAlert": "bigipTamdAlert", "bigipTrafficGroupActivate": "bigipTrafficGroupActivate", "bigipTrafficGroupActive": "bigipTrafficGroupActive", "bigipTrafficGroupDeactivate": "bigipTrafficGroupDeactivate", "bigipTrafficGroupForcedOffline": "bigipTrafficGroupForcedOffline", "bigipTrafficGroupOffline": "bigipTrafficGroupOffline", "bigipTrafficGroupStandby": "bigipTrafficGroupStandby", "bigipUnsolicitedRepliesExceededThreshold": "bigipUnsolicitedRepliesExceededThreshold", "bigipUpdateError": "bigipUpdateError", "bigipUpdatePriority": "bigipUpdatePriority", "bigipUpdateServer": "bigipUpdateServer", "bigipVcmpAlertsVcmpHBDetected": "bigipVcmpAlertsVcmpHBDetected", "bigipVcmpAlertsVcmpHBLost": "bigipVcmpAlertsVcmpHBLost", "bigipVcmpAlertsVcmpPowerOff": "bigipVcmpAlertsVcmpPowerOff", "bigipVcmpAlertsVcmpPowerOn": "bigipVcmpAlertsVcmpPowerOn", "bigipVirtualRate": "bigipVirtualRate", "coldStart": "coldStart", "emASMSigInstallComplete": "emASMSigInstallComplete", "emASMSigInstallFailed": "emASMSigInstallFailed", "emASMSigUpdateAvailable": "emASMSigUpdateAvailable", "emASMSigUpdateFailed": "emASMSigUpdateFailed", "emCertificateExpiration": "emCertificateExpiration", "emCpuUsage": "emCpuUsage", "emDeviceActiveMode": "emDeviceActiveMode", "emDeviceClockSkew": "emDeviceClockSkew", "emDeviceConfigSettingChanged": "emDeviceConfigSettingChanged", "emDeviceConfigSync": "emDeviceConfigSync", "emDeviceForcedOfflineMode": "emDeviceForcedOfflineMode", "emDeviceImpaired": "emDeviceImpaired", "emDeviceOfflineMode": "emDeviceOfflineMode", "emDeviceStandbyMode": "emDeviceStandbyMode", "emDeviceUnreachable": "emDeviceUnreachable", "emDiskUsage": "emDiskUsage", "emGatherServiceContractFailure": "emGatherServiceContractFailure", "emHaSyncFailed": "emHaSyncFailed", "emHotfixInstallComplete": "emHotfixInstallComplete", "emHotfixInstallFailed": "emHotfixInstallFailed", "emMemoryUsage": "emMemoryUsage", "emPerformanceStorageCap": "emPerformanceStorageCap", "emPerformanceStorageDays": "emPerformanceStorageDays", "emPerformanceThreshold": "emPerformanceThreshold", "emRaidDriveFailureDetected": "emRaidDriveFailureDetected", "emRaidDriveRebuildComplete": "emRaidDriveRebuildComplete", "emSchedBackupFailed": "emSchedBackupFailed", "emScheduledArchiveFailed": "emScheduledArchiveFailed", "emServiceContractExpiry": "emServiceContractExpiry", "emSoftwareInstallComplete": "emSoftwareInstallComplete", "emSoftwareInstallFailed": "emSoftwareInstallFailed", "emStatsCollectionRateCap": "emStatsCollectionRateCap", "emStatsDBConnectivityLost": "emStatsDBConnectivityLost", "emStatsDBConnectivityRestored": "emStatsDBConnectivityRestored", "fallingAlarm": "fallingAlarm", "ipv6IfStateChange": "ipv6IfStateChange", "linkDown": "linkDown", "linkUp": "linkUp", "mteEventSetFailure": "mteEventSetFailure", "mteTriggerFailure": "mteTriggerFailure", "mteTriggerFalling": "mteTriggerFalling", "mteTriggerFired": "mteTriggerFired", "mteTriggerRising": "mteTriggerRising", "netSnmpExampleHeartbeatNotification": "netSnmpExampleHeartbeatNotification", "newRoot": "newRoot", "nsNotifyRestart": "nsNotifyRestart", "nsNotifyShutdown": "nsNotifyShutdown", "nsNotifyStart": "nsNotifyStart", "risingAlarm": "risingAlarm", "schedActionFailure": "schedActionFailure", "smScriptAbort": "smScriptAbort", "smScriptException": "smScriptException", "smScriptResult": "smScriptResult", "topologyChange": "topologyChange", "ucdShutdown": "ucdShutdown", "ucdStart": "ucdStart", "warmStart": "warmStart" } }, "vUSP": { "vf": { "ctsf-xxx": "vCTS" }, "vfc": { "vCTS - CFED": "vCTS - CFED", "vCTS - Config": "vCTS - Config", "vCTS - DFED": "vCTS - DFED", "vCTS - TAFE-fsd": "vCTS - TAFE-fsd", "vCTS - GLS": "vCTS - GLS", "vCTS - XXX": "vCTS - XXX", "vCTS - Management Interface": "vCTS - Management Interface", "vCTS - SPFE-pfe": "vCTS - SPFE-pfe", "vCTS - DNS": "vCTS - DNS", "vCTS - SPFE-spd": "vCTS - SPFE-spd", "vCTS - SPFE-spt": "vCTS - SPFE-spt", "vCTS - TAFE-tas": "vCTS - TAFE-tas" }, "location": { "SNDGCA06": "San Diego(core site) A06", "SNDGCA64": "San Diego(core site) A64", "SNANTXCA": "San Antonio(core site)", "KSCYMO09": "Kansas City(core site)", "kings_mountain": "Kings Mountain(AMG)", "Secaucus": "Secaucus(AMG)", "lisle": "Lisle(AMG)", "concord": "Concord(AMG)", "houston": "Houston(AMG)", "akron": "Akron(AMG)" }, "alarmCondition": { "acrTemporaryBufferOverload": "acrTemporaryBufferOverload", "adnsExtendedTTLcaching": "adnsExtendedTTLcaching", "adnsQueryFailureCaching": "adnsQueryFailureCaching", "adnsQueueCongestion": "adnsQueueCongestion", "asdaCommunicationFailure": "asdaCommunicationFailure", "asdaRequestQueue": "asdaRequestQueue", "capacityLicenseKeyExpiration": "capacityLicenseKeyExpiration", "capacityLicenseKeyNearExpiration": "capacityLicenseKeyNearExpiration", "capacityLicenseKeyValidationError": "capacityLicenseKeyValidationError", "cardConnectionLost": "cardConnectionLost", "ccdbCommunicationFailure": "ccdbCommunicationFailure", "cpiAlrmCritical": "cpiAlrmCritical", "cpiAlrmMajor": "cpiAlrmMajor", "cpiAlrmMinor": "cpiAlrmMinor", "cpiAlrmWarning": "cpiAlrmWarning", "cpiAsrtEsc": "cpiAsrtEsc", "cpiAsrtNonEsc": "cpiAsrtNonEsc", "cpiAsrtNonEscCritical": "cpiAsrtNonEscCritical", "cpiAsrtNonEscMajor": "cpiAsrtNonEscMajor", "cpiAsrtNonEscMinor": "cpiAsrtNonEscMinor", "cpiAudErrCount": "cpiAudErrCount", "cpiAudManAct": "cpiAudManAct", "cpiAudNewEvent": "cpiAudNewEvent", "cpiCompleteRateAlarm": "cpiCompleteRateAlarm", "cpiCTS3xxFailRate": "cpiCTS3xxFailRate", "cpiCTS4xxFailRate": "cpiCTS4xxFailRate", "cpiCTS5xxFailRate": "cpiCTS5xxFailRate", "cpiCTS6xxFailRate": "cpiCTS6xxFailRate", "cpiCTSSIPRetransmitInvite": "cpiCTSSIPRetransmitInvite", "cpiCTSSIPRetransmitNonInvite": "cpiCTSSIPRetransmitNonInvite", "cpiDropMGAllocConnReq": "cpiDropMGAllocConnReq", "cpiDropRateAlarm": "cpiDropRateAlarm", "cpiExceptionService": "cpiExceptionService", "cpiFailRateAlarm": "cpiFailRateAlarm", "cpiFailSCTPFastRetransIncr": "cpiFailSCTPFastRetransIncr", "cpiFailSCTPFastRetransRate": "cpiFailSCTPFastRetransRate", "cpiFailSCTPSRTT1Incr": "cpiFailSCTPSRTT1Incr", "cpiFailSCTPSRTT2Incr": "cpiFailSCTPSRTT2Incr", "cpiFailSCTPT3RetransIncr": "cpiFailSCTPT3RetransIncr", "cpiFailSCTPT3RetransRate": "cpiFailSCTPT3RetransRate", "cpiFileSysUsage": "cpiFileSysUsage", "cpiMemAllocFail": "cpiMemAllocFail", "cpiNumOfLICDRDel": "cpiNumOfLICDRDel", "cpiReinitServiceSelf": "cpiReinitServiceSelf", "cpiSIPRetransmitInvite": "cpiSIPRetransmitInvite", "cpiSIPRetransmitNonInvite": "cpiSIPRetransmitNonInvite", "cpiSS7DropSCTPPktsRcvd": "cpiSS7DropSCTPPktsRcvd", "cpiSS7FailSCTPFastRetransRate": "cpiSS7FailSCTPFastRetransRate", "cpiStabilityAlarm": "cpiStabilityAlarm", "cpuOverload": "cpuOverload", "databaseConnectionLost": "databaseConnectionLost", "databaseReplicationLinkDown": "databaseReplicationLinkDown", "databaseSizeExhausted": "databaseSizeExhausted", "dbHighCpuUtilization": "dbHighCpuUtilization", "dbOffline": "dbOffline", "dbStatusUnexpected": "dbStatusUnexpected", "degradedResource": "degradedResource", "degrow": "degrow", "deviceServerCxnLost": "deviceServerCxnLost", "diamLinkDown": "diamLinkDown", "diamMaxClientsExceeded": "diamMaxClientsExceeded", "dnsThreshold": "dnsThreshold", "ethernetError": "ethernetError", "ethernetLinkDown": "ethernetLinkDown", "externalConnectivity": "externalConnectivity", "featureLicenseExpiration": "featureLicenseExpiration", "featureLicenseKeyNearExpiration": "featureLicenseKeyNearExpiration", "featureLockValidationError": "featureLockValidationError", "fqdnError": "fqdnError", "fru": "fru", "gatewayCongestion": "gatewayCongestion", "gatewayForcedOOS": "gatewayForcedOOS", "gatewayProvisioningError": "gatewayProvisioningError", "gatewayUnreachable": "gatewayUnreachable", "gatewayUnregistered": "gatewayUnregistered", "globalParameterNotFound": "globalParameterNotFound", "glsInvalidCellId": "glsInvalidCellId", "glsServerUnavailable": "glsServerUnavailable", "grow": "grow", "h248MessageBufferDepletion": "h248MessageBufferDepletion", "hlrSyncConnection": "hlrSyncConnection", "hlrSyncQueue": "hlrSyncQueue", "hostDown": "hostDown", "hostReset": "hostReset", "invalidGateway": "invalidGateway", "iriLinkDown": "iriLinkDown", "ldapServerConnectionLost": "ldapServerConnectionLost", "lispBufferFullExternalLIG": "lispBufferFullExternalLIG", "llcDown": "llcDown", "logicalLinkDown": "logicalLinkDown", "logicalLinkNotFound": "logicalLinkNotFound", "logRotateThreshold": "logRotateThreshold", "memoryOverload": "memoryOverload", "nodeConfigFailure": "nodeConfigFailure", "nodeGroupOOS": "nodeGroupOOS", "nodeOOS": "nodeOOS", "nonCompliantFaultGroupMemberState": "nonCompliantFaultGroupMemberState", "nonCsAddrChannelDepletion": "nonCsAddrChannelDepletion", "numberOfTuplesInUse": "numberOfTuplesInUse", "osSecInfoModificationDetected": "osSecInfoModificationDetected", "osSecInformationMissing": "osSecInformationMissing", "osSecUnexpectedInformation": "osSecUnexpectedInformation", "pdnsMySqlReplication": "pdnsMySqlReplication", "pktCorruptionDetectedViaRCCLANCheck": "pktCorruptionDetectedViaRCCLANCheck", "platformCommandFailure": "platformCommandFailure", "pmDataNotCollected": "pmDataNotCollected", "prdbConnectWithAlternateFailure": "prdbConnectWithAlternateFailure", "prdbSyncDataToAlternateFailure": "prdbSyncDataToAlternateFailure", "preAllocatedResourceOverload": "preAllocatedResourceOverload", "prifSocketError": "prifSocketError", "processDown": "processDown", "processNotStarted": "processNotStarted", "provisioningInhibitedMode": "provisioningInhibitedMode", "prsCallInstanceExceeded": "prsCallInstanceExceeded", "prsCpuOverload": "prsCpuOverload", "prsDatabaseMigrationFailure": "prsDatabaseMigrationFailure", "prsFailureToConnectWithPRDB": "prsFailureToConnectWithPRDB", "prsQueueExceeded": "prsQueueExceeded", "rccInhibitedMode": "rccInhibitedMode", "remotedbLinkDown": "remotedbLinkDown", "remoteQueryServerFailure": "remoteQueryServerFailure", "restore": "restore", "serviceCFGDataTimestampError": "serviceCFGDataTimestampError", "serviceCommCxnLost": "serviceCommCxnLost", "serviceOnewayCommunication": "serviceOnewayCommunication", "sheddingOverload": "sheddingOverload", "simxml": "simxml", "sipLinkSetMaxQuarantineList": "sipLinkSetMaxQuarantineList", "sipLinkSetUnavailable": "sipLinkSetUnavailable", "sipLinkUnavailable": "sipLinkUnavailable", "smdiSocketError": "smdiSocketError", "socketError": "socketError", "softwareAllocatedResourceOverload": "softwareAllocatedResourceOverload", "softwareComponentDown": "softwareComponentDown", "softwareComponentStandbyNotReady": "softwareComponentStandbyNotReady", "softwareLicense": "softwareLicense", "svcdegrow": "svcdegrow", "svcgrow": "svcgrow", "swVersionMismatch": "swVersionMismatch", "tftpDownloadCorrupt": "tftpDownloadCorrupt", "timeStampValueOutOfSystemRange": "timeStampValueOutOfSystemRange", "tlsInitError": "tlsInitError", "transactionHandlerBlockDepletion": "transactionHandlerBlockDepletion", "upgrade": "upgrade", "usageOfSyncTable": "usageOfSyncTable", "utHttpProxyConnectionDown": "utHttpProxyConnectionDown", "wpifSocketError": "wpifSocketError", "BackupFailure": "BackupFailure", "Configuration": "Configuration", "COTRecordTransferFailure": "COTRecordTransferFailure", "CPMUSERDATAINCONSITENCY": "CPMUSERDATAINCONSITENCY", "CPMUSERDATARESTORED": "CPMUSERDATARESTORED", "EventQueueCapacity": "EventQueueCapacity", "ICMPFailure": "ICMPFailure", "IPsecConfig": "IPsecConfig", "LinkDown": "LinkDown", "NotifyDisabled": "NotifyDisabled", "NotifyLocked": "NotifyLocked", "NumTL1MeasThresh": "NumTL1MeasThresh", "RADIUSTOLDAPFAILURE": "RADIUSTOLDAPFAILURE", "ROOTACCESSDENIED": "ROOTACCESSDENIED", "ROOTFTPVIOLATION": "ROOTFTPVIOLATION", "ROOTLOGINVIOLATION": "ROOTLOGINVIOLATION", "ROOTSSHLOGINVIOLATION": "ROOTSSHLOGINVIOLATION", "SetupAAAFailure": "SetupAAAFailure", "SNETrapOverload": "SNETrapOverload", "SNMPAuthenticationFailure": "SNMPAuthenticationFailure", "SNMPFailure": "SNMPFailure", "SUTOROOTFAILURE": "SUTOROOTFAILURE", "SYSTEMTrapOverload": "SYSTEMTrapOverload", "ThresholdCrossed": "ThresholdCrossed", "UndiscoveredObject": "UndiscoveredObject", "WriteAAAFailure": "WriteAAAFailure" } }, "Trinity": { "vf": { "aSBG": "aSBG", "nSBG": "nSBG", "tSBG": "tSBG" }, "vfc": { "pld": "PL - Payload Processor", "scr": "SC - System Controller" }, "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED": "Alpharetta PDK1", "LSLEILAA":"Lisle DPA3" }, "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":"A Fallback Operation will soon be started", "BRM%2C+Auto+Export+Backup+Failed":"BRM, Auto Export Backup Failed", "BRM%2C+Scheduled+Backup+Failed":"BRM, Scheduled Backup Failed", "COM+SA%2C+AMF+Component+Cleanup+Failed":"COM SA, AMF Component Cleanup Failed", "COM+SA%2C+AMF+Component+Instantiation+Failed":"COM SA, AMF Component Instantiation Failed", "COM+SA%2C+AMF+SI+Unassigned":"COM SA, AMF SI Unassigned", "COM+SA%2C+CLM+Cluster+Node+Unavailable":"COM SA, CLM Cluster Node Unavailable", "COM+SA%2C+MDF+Detected+Model+Error":"COM SA, MDF Detected Model Error", "COM+SA%2C+Proxy+Status+of+a+Component+Changed+to+Unproxied":"COM SA, Proxy Status of a Component Changed to Unproxied", "File+Management%2C+Number+of+Files+in+FileGroup+Exceeded":"File Management, Number of Files in FileGroup Exceeded", "File+Management%2C+Max+Size+in+FileGroup+Exceeded":"File Management, Max Size in FileGroup Exceeded", "LOTC+Disk+Replication+Communication":"LOTC Disk Replication Communication", "LOTC+Disk+Replication+Consistency":"LOTC Disk Replication Consistency", "LOTC+Disk+Usage":"LOTC Disk Usage", "LOTC+memory+Usage":"LOTC memory Usage", "LOTC+Time+Synchronization":"LOTC Time Synchronization", "SBG%2C+BGF+Control+Link+Down":"SBG, BGF Control Link Down", "SBG%2C+BGF+Control+Link+Disabled":"SBG, BGF Control Link Disabled", "SBG%2C+BGF+Control+Link+Enabled":"SBG, BGF Control Link Enabled", "SBG%2C+BGF+Control+Link+Remote+Locked":"SBG, BGF Control Link Remote Locked", "SBG%2C+Charging+Data+Storage+Maximum+Records+Reached":"SBG, Charging Data Storage Maximum Records Reached", "SBG%2C+Charging+Server+Rejects+Charging+Data":"SBG, Charging Server Rejects Charging Data", "SBG%2C+Excessive+Packet+Rate+Detected+":"SBG, Excessive Packet Rate Detected ", "SBG%2C+High+Amount+of+Malformed+Packets+Received":"SBG, High Amount of Malformed Packets Received", "SBG%2C+High+Amount+of+STUN+Packets+Detected":"SBG, High Amount of STUN Packets Detected", "SBG%2C+High+Amount+of+TCP+SYN+Packets+Received":"SBG, High Amount of TCP SYN Packets Received", "SBG%2C+High+Amount+of+UDP+Packets+Received+":"SBG, High Amount of UDP Packets Received ", "SBG%2C+IP+Address+Blocked+Due+to+Excessive+Packet+Rate":"SBG, IP Address Blocked Due to Excessive Packet Rate", "SBG%2C+Lost+Connectivity+to+Diameter+Server":"SBG, Lost Connectivity to Diameter Server", "SBG%2C+Mated+Pair+out+of+Service":"SBG, Mated Pair out of Service", "SBG%2C+Network+Unavailable+for+Media+Handling":"SBG, Network Unavailable for Media Handling", "SBG%2C+Non-emergency+Call+Released+to+Free+Resources+for+Emergency+Call":"SBG, Non-emergency Call Released to Free Resources for Emergency Call", "SBG%2C+Not+Enough+Disk+Space+for+Storing+Charging+Data":"SBG, Not Enough Disk Space for Storing Charging Data", "SBG%2C+Payload+Mated+Pair+Failure":"SBG, Payload Mated Pair Failure", "SBG%2C+Payload+Processor+Failure":"SBG, Payload Processor Failure", "SBG%2C+Processor+Overloaded":"SBG, Processor Overloaded", "SBG%2C+Registered+User+Set+in+Quarantine":"SBG, Registered User Set in Quarantine", "SBG%2C+Registration+Contacts+Exceed+Configured+Threshold":"SBG, Registration Contacts Exceed Configured Threshold", "SBG%2C+Sequential+Restart+Initiated":"SBG, Sequential Restart Initiated", "SBG%2C+SIP+Abuse+Detected":"SBG, SIP Abuse Detected", "SBG%2C+SIP+Network+Locked":"SBG, SIP Network Locked", "SBG%2C+SIP+Next+Hop+Reachable":"SBG, SIP Next Hop Reachable", "SBG%2C+SIP+Next+Hop+Unreachable":"SBG, SIP Next Hop Unreachable", "SBG%2C+SIP+Request+Rejected+by+Network+Throttling":"SBG, SIP Request Rejected by Network Throttling", "SBG%2C+TLS+Certificate+Imported":"SBG, TLS Certificate Imported", "SBG%2C+Trace+Recording+Session+Number+Limit+Reached":"SBG, Trace Recording Session Number Limit Reached", "SBG%2C+Trace+Session+Deactivated":"SBG, Trace Session Deactivated", "SBG%2C+Trace+Session+Times+Out":"SBG, Trace Session Times Out", "SBG%2C+Unknown+Media+Type+or+Payload+Type":"SBG, Unknown Media Type or Payload Type" } }, "vProbes": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } } } } } +globalPropsPartial={"global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } } } +globalPropsTest={"global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } }, "shared": { "byService": { "": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } }, "vSCP": { "vf": { "frwl_scp": "FW" }, "vfc": { "FW": "FW" }, "location": { "AKRNOHAH": "Akron", "ALLNTXSA": "Allen-2" }, "alarmCondition": { "authenticationFailure": "authenticationFailure", "bigipActive": "bigipActive", "bigipActiveActive": "bigipActiveActive", "bigipAgentRestart": "bigipAgentRestart", "bigipAgentShutdown": "bigipAgentShutdown", "bigipAgentStart": "bigipAgentStart", "bigipAggrReaperStateChange": "bigipAggrReaperStateChange", "bigipAomCpuTempTooHigh": "bigipAomCpuTempTooHigh", "bigipARPConflict": "bigipARPConflict", "bigipAsmBruteForceAttackDetected": "bigipAsmBruteForceAttackDetected", "bigipAsmDosAttackDetected": "bigipAsmDosAttackDetected", "bigipAsmFtpRequestBlocked": "bigipAsmFtpRequestBlocked", "bigipAsmFtpRequestViolation": "bigipAsmFtpRequestViolation", "bigipAsmRequestBlocked": "bigipAsmRequestBlocked", "bigipAsmRequestViolation": "bigipAsmRequestViolation", "bigipAsmSmtpRequestBlocked": "bigipAsmSmtpRequestBlocked", "bigipAsmSmtpRequestViolation": "bigipAsmSmtpRequestViolation", "bigipAuthFailed": "bigipAuthFailed", "bigipAvrAlertsMetricSmtp": "bigipAvrAlertsMetricSmtp", "bigipAvrAlertsMetricSnmp": "bigipAvrAlertsMetricSnmp", "bigipBladeNoPower": "bigipBladeNoPower", "bigipBladeOffline": "bigipBladeOffline", "bigipBladeTempHigh": "bigipBladeTempHigh", "bigipChassisFanBad": "bigipChassisFanBad", "bigipChassisPowerSupplyBad": "bigipChassisPowerSupplyBad", "bigipChassisTempHigh": "bigipChassisTempHigh", "bigipChmandAlertFanTrayBad": "bigipChmandAlertFanTrayBad", "bigipClusterdNoResponse": "bigipClusterdNoResponse", "bigipClusterPrimaryChanged": "bigipClusterPrimaryChanged", "bigipCompLimitExceeded": "bigipCompLimitExceeded", "bigipConfigLoaded": "bigipConfigLoaded", "bigipCpuFanSpeedBad": "bigipCpuFanSpeedBad", "bigipCpuFanSpeedLow": "bigipCpuFanSpeedLow", "bigipCpuTempHigh": "bigipCpuTempHigh", "bigipDiskPartitionGrowth": "bigipDiskPartitionGrowth", "bigipDiskPartitionWarn": "bigipDiskPartitionWarn", "bigipDnsRequestRateLimiterEngaged": "bigipDnsRequestRateLimiterEngaged", "bigipDosAttackStart": "bigipDosAttackStart", "bigipDosAttackStop": "bigipDosAttackStop", "bigipExternalLinkChange": "bigipExternalLinkChange", "bigipFeatureFailed": "bigipFeatureFailed", "bigipFeatureOnline": "bigipFeatureOnline", "bigipFipsDeviceError": "bigipFipsDeviceError", "bigipGtmAppAvail": "bigipGtmAppAvail", "bigipGtmAppNotAvail": "bigipGtmAppNotAvail", "bigipGtmAppObjAvail": "bigipGtmAppObjAvail", "bigipGtmAppObjNotAvail": "bigipGtmAppObjNotAvail", "bigipGtmBig3dSslCertExpired": "bigipGtmBig3dSslCertExpired", "bigipGtmBig3dSslCertWillExpire": "bigipGtmBig3dSslCertWillExpire", "bigipGtmBoxAvail": "bigipGtmBoxAvail", "bigipGtmBoxNotAvail": "bigipGtmBoxNotAvail", "bigipGtmDcAvail": "bigipGtmDcAvail", "bigipGtmDcDisabled": "bigipGtmDcDisabled", "bigipGtmDcEnabled": "bigipGtmDcEnabled", "bigipGtmDcNotAvail": "bigipGtmDcNotAvail", "bigipGtmJoinedGroup": "bigipGtmJoinedGroup", "bigipGtmKeyGenerationExpiration": "bigipGtmKeyGenerationExpiration", "bigipGtmKeyGenerationRollover": "bigipGtmKeyGenerationRollover", "bigipGtmLeftGroup": "bigipGtmLeftGroup", "bigipGtmLinkAvail": "bigipGtmLinkAvail", "bigipGtmLinkDisabled": "bigipGtmLinkDisabled", "bigipGtmLinkEnabled": "bigipGtmLinkEnabled", "bigipGtmLinkNotAvail": "bigipGtmLinkNotAvail", "bigipGtmPoolAvail": "bigipGtmPoolAvail", "bigipGtmPoolDisabled": "bigipGtmPoolDisabled", "bigipGtmPoolEnabled": "bigipGtmPoolEnabled", "bigipGtmPoolMbrAvail": "bigipGtmPoolMbrAvail", "bigipGtmPoolMbrDisabled": "bigipGtmPoolMbrDisabled", "bigipGtmPoolMbrEnabled": "bigipGtmPoolMbrEnabled", "bigipGtmPoolMbrNotAvail": "bigipGtmPoolMbrNotAvail", "bigipGtmPoolNotAvail": "bigipGtmPoolNotAvail", "bigipGtmProberPoolDisabled": "bigipGtmProberPoolDisabled", "bigipGtmProberPoolEnabled": "bigipGtmProberPoolEnabled", "bigipGtmProberPoolMbrDisabled": "bigipGtmProberPoolMbrDisabled", "bigipGtmProberPoolMbrEnabled": "bigipGtmProberPoolMbrEnabled", "bigipGtmProberPoolMbrStatusChange": "bigipGtmProberPoolMbrStatusChange", "bigipGtmProberPoolMbrStatusChangeReason": "bigipGtmProberPoolMbrStatusChangeReason", "bigipGtmProberPoolStatusChange": "bigipGtmProberPoolStatusChange", "bigipGtmProberPoolStatusChangeReason": "bigipGtmProberPoolStatusChangeReason", "bigipGtmRequestRateLimiterEngaged": "bigipGtmRequestRateLimiterEngaged", "bigipGtmServerAvail": "bigipGtmServerAvail", "bigipGtmServerDisabled": "bigipGtmServerDisabled", "bigipGtmServerEnabled": "bigipGtmServerEnabled", "bigipGtmServerNotAvail": "bigipGtmServerNotAvail", "bigipGtmSslCertExpired": "bigipGtmSslCertExpired", "bigipGtmSslCertWillExpire": "bigipGtmSslCertWillExpire", "bigipGtmVsAvail": "bigipGtmVsAvail", "bigipGtmVsDisabled": "bigipGtmVsDisabled", "bigipGtmVsEnabled": "bigipGtmVsEnabled", "bigipGtmVsNotAvail": "bigipGtmVsNotAvail", "bigipGtmWideIpAvail": "bigipGtmWideIpAvail", "bigipGtmWideIpDisabled": "bigipGtmWideIpDisabled", "bigipGtmWideIpEnabled": "bigipGtmWideIpEnabled", "bigipGtmWideIpNotAvail": "bigipGtmWideIpNotAvail", "bigipHardDiskFailure": "bigipHardDiskFailure", "bigipInetPortExhaustion": "bigipInetPortExhaustion", "bigipLibhalBladePoweredOff": "bigipLibhalBladePoweredOff", "bigipLibhalDiskBayRemoved": "bigipLibhalDiskBayRemoved", "bigipLibhalSensorAlarmCritical": "bigipLibhalSensorAlarmCritical", "bigipLibhalSsdLogicalDiskRemoved": "bigipLibhalSsdLogicalDiskRemoved", "bigipLibhalSsdPhysicalDiskRemoved": "bigipLibhalSsdPhysicalDiskRemoved", "bigipLicenseExpired": "bigipLicenseExpired", "bigipLicenseFailed": "bigipLicenseFailed", "bigipLogAlert": "bigipLogAlert", "bigipLogCrit": "bigipLogCrit", "bigipLogEmerg": "bigipLogEmerg", "bigipLogErr": "bigipLogErr", "bigipLogWarning": "bigipLogWarning", "bigipLtmVsAvail": "bigipLtmVsAvail", "bigipLtmVsDisabled": "bigipLtmVsDisabled", "bigipLtmVsEnabled": "bigipLtmVsEnabled", "bigipLtmVsUnavail": "bigipLtmVsUnavail", "bigipMemberRate": "bigipMemberRate", "bigipNetLinkDown": "bigipNetLinkDown", "bigipNodeDown": "bigipNodeDown", "bigipNodeRate": "bigipNodeRate", "bigipNodeUp": "bigipNodeUp", "bigipPacketRejected": "bigipPacketRejected", "bigipPsAbsent": "bigipPsAbsent", "bigipPsPowerOff": "bigipPsPowerOff", "bigipPsPowerOn": "bigipPsPowerOn", "bigipRaidDiskFailure": "bigipRaidDiskFailure", "bigipServiceDown": "bigipServiceDown", "bigipServiceUp": "bigipServiceUp", "bigipSsdMwiNearThreshold": "bigipSsdMwiNearThreshold", "bigipSsdMwiReachedThreshold": "bigipSsdMwiReachedThreshold", "bigipSslLimitExceeded": "bigipSslLimitExceeded", "bigipStandby": "bigipStandby", "bigipStandByFail": "bigipStandByFail", "bigipSystemCheckAlertCurrentHigh": "bigipSystemCheckAlertCurrentHigh", "bigipSystemCheckAlertCurrentLow": "bigipSystemCheckAlertCurrentLow", "bigipSystemCheckAlertFanSpeedLow": "bigipSystemCheckAlertFanSpeedLow", "bigipSystemCheckAlertMilliVoltageHigh": "bigipSystemCheckAlertMilliVoltageHigh", "bigipSystemCheckAlertMilliVoltageLow": "bigipSystemCheckAlertMilliVoltageLow", "bigipSystemCheckAlertPowerHigh": "bigipSystemCheckAlertPowerHigh", "bigipSystemCheckAlertPowerLow": "bigipSystemCheckAlertPowerLow", "bigipSystemCheckAlertTempHigh": "bigipSystemCheckAlertTempHigh", "bigipSystemCheckAlertVoltageHigh": "bigipSystemCheckAlertVoltageHigh", "bigipSystemCheckAlertVoltageLow": "bigipSystemCheckAlertVoltageLow", "bigipSystemShutdown": "bigipSystemShutdown", "bigipTamdAlert": "bigipTamdAlert", "bigipTrafficGroupActivate": "bigipTrafficGroupActivate", "bigipTrafficGroupActive": "bigipTrafficGroupActive", "bigipTrafficGroupDeactivate": "bigipTrafficGroupDeactivate", "bigipTrafficGroupForcedOffline": "bigipTrafficGroupForcedOffline", "bigipTrafficGroupOffline": "bigipTrafficGroupOffline", "bigipTrafficGroupStandby": "bigipTrafficGroupStandby", "bigipUnsolicitedRepliesExceededThreshold": "bigipUnsolicitedRepliesExceededThreshold", "bigipUpdateError": "bigipUpdateError", "bigipUpdatePriority": "bigipUpdatePriority", "bigipUpdateServer": "bigipUpdateServer", "bigipVcmpAlertsVcmpHBDetected": "bigipVcmpAlertsVcmpHBDetected", "bigipVcmpAlertsVcmpHBLost": "bigipVcmpAlertsVcmpHBLost", "bigipVcmpAlertsVcmpPowerOff": "bigipVcmpAlertsVcmpPowerOff", "bigipVcmpAlertsVcmpPowerOn": "bigipVcmpAlertsVcmpPowerOn", "bigipVirtualRate": "bigipVirtualRate", "coldStart": "coldStart", "emASMSigInstallComplete": "emASMSigInstallComplete", "emASMSigInstallFailed": "emASMSigInstallFailed", "emASMSigUpdateAvailable": "emASMSigUpdateAvailable", "emASMSigUpdateFailed": "emASMSigUpdateFailed", "emCertificateExpiration": "emCertificateExpiration", "emCpuUsage": "emCpuUsage", "emDeviceActiveMode": "emDeviceActiveMode", "emDeviceClockSkew": "emDeviceClockSkew", "emDeviceConfigSettingChanged": "emDeviceConfigSettingChanged", "emDeviceConfigSync": "emDeviceConfigSync", "emDeviceForcedOfflineMode": "emDeviceForcedOfflineMode", "emDeviceImpaired": "emDeviceImpaired", "emDeviceOfflineMode": "emDeviceOfflineMode", "emDeviceStandbyMode": "emDeviceStandbyMode", "emDeviceUnreachable": "emDeviceUnreachable", "emDiskUsage": "emDiskUsage", "emGatherServiceContractFailure": "emGatherServiceContractFailure", "emHaSyncFailed": "emHaSyncFailed", "emHotfixInstallComplete": "emHotfixInstallComplete", "emHotfixInstallFailed": "emHotfixInstallFailed", "emMemoryUsage": "emMemoryUsage", "emPerformanceStorageCap": "emPerformanceStorageCap", "emPerformanceStorageDays": "emPerformanceStorageDays", "emPerformanceThreshold": "emPerformanceThreshold", "emRaidDriveFailureDetected": "emRaidDriveFailureDetected", "emRaidDriveRebuildComplete": "emRaidDriveRebuildComplete", "emSchedBackupFailed": "emSchedBackupFailed", "emScheduledArchiveFailed": "emScheduledArchiveFailed", "emServiceContractExpiry": "emServiceContractExpiry", "emSoftwareInstallComplete": "emSoftwareInstallComplete", "emSoftwareInstallFailed": "emSoftwareInstallFailed", "emStatsCollectionRateCap": "emStatsCollectionRateCap", "emStatsDBConnectivityLost": "emStatsDBConnectivityLost", "emStatsDBConnectivityRestored": "emStatsDBConnectivityRestored", "fallingAlarm": "fallingAlarm", "ipv6IfStateChange": "ipv6IfStateChange", "linkDown": "linkDown", "linkUp": "linkUp", "mteEventSetFailure": "mteEventSetFailure", "mteTriggerFailure": "mteTriggerFailure", "mteTriggerFalling": "mteTriggerFalling", "mteTriggerFired": "mteTriggerFired", "mteTriggerRising": "mteTriggerRising", "netSnmpExampleHeartbeatNotification": "netSnmpExampleHeartbeatNotification", "newRoot": "newRoot", "nsNotifyRestart": "nsNotifyRestart", "nsNotifyShutdown": "nsNotifyShutdown", "nsNotifyStart": "nsNotifyStart", "risingAlarm": "risingAlarm", "schedActionFailure": "schedActionFailure", "smScriptAbort": "smScriptAbort", "smScriptException": "smScriptException", "smScriptResult": "smScriptResult", "topologyChange": "topologyChange", "ucdShutdown": "ucdShutdown", "ucdStart": "ucdStart", "warmStart": "warmStart" } }, "vUSP": { "vf": { "ctsf-xxx": "vCTS" }, "vfc": { "vCTS - CFED": "vCTS - CFED", "vCTS - Config": "vCTS - Config", "vCTS - DFED": "vCTS - DFED", "vCTS - TAFE-fsd": "vCTS - TAFE-fsd", "vCTS - GLS": "vCTS - GLS", "vCTS - XXX": "vCTS - XXX", "vCTS - Management Interface": "vCTS - Management Interface", "vCTS - SPFE-pfe": "vCTS - SPFE-pfe", "vCTS - DNS": "vCTS - DNS", "vCTS - SPFE-spd": "vCTS - SPFE-spd", "vCTS - SPFE-spt": "vCTS - SPFE-spt", "vCTS - TAFE-tas": "vCTS - TAFE-tas" }, "location": { "SNDGCA06": "San Diego(core site) A06", "SNDGCA64": "San Diego(core site) A64", "SNANTXCA": "San Antonio(core site)", "KSCYMO09": "Kansas City(core site)", "kings_mountain": "Kings Mountain(AMG)", "Secaucus": "Secaucus(AMG)", "lisle": "Lisle(AMG)", "concord": "Concord(AMG)", "houston": "Houston(AMG)", "akron": "Akron(AMG)" }, "alarmCondition": { "acrTemporaryBufferOverload": "acrTemporaryBufferOverload", "adnsExtendedTTLcaching": "adnsExtendedTTLcaching", "adnsQueryFailureCaching": "adnsQueryFailureCaching", "adnsQueueCongestion": "adnsQueueCongestion", "asdaCommunicationFailure": "asdaCommunicationFailure", "asdaRequestQueue": "asdaRequestQueue", "capacityLicenseKeyExpiration": "capacityLicenseKeyExpiration", "capacityLicenseKeyNearExpiration": "capacityLicenseKeyNearExpiration", "capacityLicenseKeyValidationError": "capacityLicenseKeyValidationError", "cardConnectionLost": "cardConnectionLost", "ccdbCommunicationFailure": "ccdbCommunicationFailure", "cpiAlrmCritical": "cpiAlrmCritical", "cpiAlrmMajor": "cpiAlrmMajor", "cpiAlrmMinor": "cpiAlrmMinor", "cpiAlrmWarning": "cpiAlrmWarning", "cpiAsrtEsc": "cpiAsrtEsc", "cpiAsrtNonEsc": "cpiAsrtNonEsc", "cpiAsrtNonEscCritical": "cpiAsrtNonEscCritical", "cpiAsrtNonEscMajor": "cpiAsrtNonEscMajor", "cpiAsrtNonEscMinor": "cpiAsrtNonEscMinor", "cpiAudErrCount": "cpiAudErrCount", "cpiAudManAct": "cpiAudManAct", "cpiAudNewEvent": "cpiAudNewEvent", "cpiCompleteRateAlarm": "cpiCompleteRateAlarm", "cpiCTS3xxFailRate": "cpiCTS3xxFailRate", "cpiCTS4xxFailRate": "cpiCTS4xxFailRate", "cpiCTS5xxFailRate": "cpiCTS5xxFailRate", "cpiCTS6xxFailRate": "cpiCTS6xxFailRate", "cpiCTSSIPRetransmitInvite": "cpiCTSSIPRetransmitInvite", "cpiCTSSIPRetransmitNonInvite": "cpiCTSSIPRetransmitNonInvite", "cpiDropMGAllocConnReq": "cpiDropMGAllocConnReq", "cpiDropRateAlarm": "cpiDropRateAlarm", "cpiExceptionService": "cpiExceptionService", "cpiFailRateAlarm": "cpiFailRateAlarm", "cpiFailSCTPFastRetransIncr": "cpiFailSCTPFastRetransIncr", "cpiFailSCTPFastRetransRate": "cpiFailSCTPFastRetransRate", "cpiFailSCTPSRTT1Incr": "cpiFailSCTPSRTT1Incr", "cpiFailSCTPSRTT2Incr": "cpiFailSCTPSRTT2Incr", "cpiFailSCTPT3RetransIncr": "cpiFailSCTPT3RetransIncr", "cpiFailSCTPT3RetransRate": "cpiFailSCTPT3RetransRate", "cpiFileSysUsage": "cpiFileSysUsage", "cpiMemAllocFail": "cpiMemAllocFail", "cpiNumOfLICDRDel": "cpiNumOfLICDRDel", "cpiReinitServiceSelf": "cpiReinitServiceSelf", "cpiSIPRetransmitInvite": "cpiSIPRetransmitInvite", "cpiSIPRetransmitNonInvite": "cpiSIPRetransmitNonInvite", "cpiSS7DropSCTPPktsRcvd": "cpiSS7DropSCTPPktsRcvd", "cpiSS7FailSCTPFastRetransRate": "cpiSS7FailSCTPFastRetransRate", "cpiStabilityAlarm": "cpiStabilityAlarm", "cpuOverload": "cpuOverload", "databaseConnectionLost": "databaseConnectionLost", "databaseReplicationLinkDown": "databaseReplicationLinkDown", "databaseSizeExhausted": "databaseSizeExhausted", "dbHighCpuUtilization": "dbHighCpuUtilization", "dbOffline": "dbOffline", "dbStatusUnexpected": "dbStatusUnexpected", "degradedResource": "degradedResource", "degrow": "degrow", "deviceServerCxnLost": "deviceServerCxnLost", "diamLinkDown": "diamLinkDown", "diamMaxClientsExceeded": "diamMaxClientsExceeded", "dnsThreshold": "dnsThreshold", "ethernetError": "ethernetError", "ethernetLinkDown": "ethernetLinkDown", "externalConnectivity": "externalConnectivity", "featureLicenseExpiration": "featureLicenseExpiration", "featureLicenseKeyNearExpiration": "featureLicenseKeyNearExpiration", "featureLockValidationError": "featureLockValidationError", "fqdnError": "fqdnError", "fru": "fru", "gatewayCongestion": "gatewayCongestion", "gatewayForcedOOS": "gatewayForcedOOS", "gatewayProvisioningError": "gatewayProvisioningError", "gatewayUnreachable": "gatewayUnreachable", "gatewayUnregistered": "gatewayUnregistered", "globalParameterNotFound": "globalParameterNotFound", "glsInvalidCellId": "glsInvalidCellId", "glsServerUnavailable": "glsServerUnavailable", "grow": "grow", "h248MessageBufferDepletion": "h248MessageBufferDepletion", "hlrSyncConnection": "hlrSyncConnection", "hlrSyncQueue": "hlrSyncQueue", "hostDown": "hostDown", "hostReset": "hostReset", "invalidGateway": "invalidGateway", "iriLinkDown": "iriLinkDown", "ldapServerConnectionLost": "ldapServerConnectionLost", "lispBufferFullExternalLIG": "lispBufferFullExternalLIG", "llcDown": "llcDown", "logicalLinkDown": "logicalLinkDown", "logicalLinkNotFound": "logicalLinkNotFound", "logRotateThreshold": "logRotateThreshold", "memoryOverload": "memoryOverload", "nodeConfigFailure": "nodeConfigFailure", "nodeGroupOOS": "nodeGroupOOS", "nodeOOS": "nodeOOS", "nonCompliantFaultGroupMemberState": "nonCompliantFaultGroupMemberState", "nonCsAddrChannelDepletion": "nonCsAddrChannelDepletion", "numberOfTuplesInUse": "numberOfTuplesInUse", "osSecInfoModificationDetected": "osSecInfoModificationDetected", "osSecInformationMissing": "osSecInformationMissing", "osSecUnexpectedInformation": "osSecUnexpectedInformation", "pdnsMySqlReplication": "pdnsMySqlReplication", "pktCorruptionDetectedViaRCCLANCheck": "pktCorruptionDetectedViaRCCLANCheck", "platformCommandFailure": "platformCommandFailure", "pmDataNotCollected": "pmDataNotCollected", "prdbConnectWithAlternateFailure": "prdbConnectWithAlternateFailure", "prdbSyncDataToAlternateFailure": "prdbSyncDataToAlternateFailure", "preAllocatedResourceOverload": "preAllocatedResourceOverload", "prifSocketError": "prifSocketError", "processDown": "processDown", "processNotStarted": "processNotStarted", "provisioningInhibitedMode": "provisioningInhibitedMode", "prsCallInstanceExceeded": "prsCallInstanceExceeded", "prsCpuOverload": "prsCpuOverload", "prsDatabaseMigrationFailure": "prsDatabaseMigrationFailure", "prsFailureToConnectWithPRDB": "prsFailureToConnectWithPRDB", "prsQueueExceeded": "prsQueueExceeded", "rccInhibitedMode": "rccInhibitedMode", "remotedbLinkDown": "remotedbLinkDown", "remoteQueryServerFailure": "remoteQueryServerFailure", "restore": "restore", "serviceCFGDataTimestampError": "serviceCFGDataTimestampError", "serviceCommCxnLost": "serviceCommCxnLost", "serviceOnewayCommunication": "serviceOnewayCommunication", "sheddingOverload": "sheddingOverload", "simxml": "simxml", "sipLinkSetMaxQuarantineList": "sipLinkSetMaxQuarantineList", "sipLinkSetUnavailable": "sipLinkSetUnavailable", "sipLinkUnavailable": "sipLinkUnavailable", "smdiSocketError": "smdiSocketError", "socketError": "socketError", "softwareAllocatedResourceOverload": "softwareAllocatedResourceOverload", "softwareComponentDown": "softwareComponentDown", "softwareComponentStandbyNotReady": "softwareComponentStandbyNotReady", "softwareLicense": "softwareLicense", "svcdegrow": "svcdegrow", "svcgrow": "svcgrow", "swVersionMismatch": "swVersionMismatch", "tftpDownloadCorrupt": "tftpDownloadCorrupt", "timeStampValueOutOfSystemRange": "timeStampValueOutOfSystemRange", "tlsInitError": "tlsInitError", "transactionHandlerBlockDepletion": "transactionHandlerBlockDepletion", "upgrade": "upgrade", "usageOfSyncTable": "usageOfSyncTable", "utHttpProxyConnectionDown": "utHttpProxyConnectionDown", "wpifSocketError": "wpifSocketError", "BackupFailure": "BackupFailure", "Configuration": "Configuration", "COTRecordTransferFailure": "COTRecordTransferFailure", "CPMUSERDATAINCONSITENCY": "CPMUSERDATAINCONSITENCY", "CPMUSERDATARESTORED": "CPMUSERDATARESTORED", "EventQueueCapacity": "EventQueueCapacity", "ICMPFailure": "ICMPFailure", "IPsecConfig": "IPsecConfig", "LinkDown": "LinkDown", "NotifyDisabled": "NotifyDisabled", "NotifyLocked": "NotifyLocked", "NumTL1MeasThresh": "NumTL1MeasThresh", "RADIUSTOLDAPFAILURE": "RADIUSTOLDAPFAILURE", "ROOTACCESSDENIED": "ROOTACCESSDENIED", "ROOTFTPVIOLATION": "ROOTFTPVIOLATION", "ROOTLOGINVIOLATION": "ROOTLOGINVIOLATION", "ROOTSSHLOGINVIOLATION": "ROOTSSHLOGINVIOLATION", "SetupAAAFailure": "SetupAAAFailure", "SNETrapOverload": "SNETrapOverload", "SNMPAuthenticationFailure": "SNMPAuthenticationFailure", "SNMPFailure": "SNMPFailure", "SUTOROOTFAILURE": "SUTOROOTFAILURE", "SYSTEMTrapOverload": "SYSTEMTrapOverload", "ThresholdCrossed": "ThresholdCrossed", "UndiscoveredObject": "UndiscoveredObject", "WriteAAAFailure": "WriteAAAFailure" } }, "Trinity": { "vf": { "aSBG": "aSBG", "nSBG": "nSBG", "tSBG": "tSBG" }, "vfc": { "pld": "PL - Payload Processor", "scr": "SC - System Controller" }, "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED": "Alpharetta PDK1", "LSLEILAA":"Lisle DPA3" }, "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":"A Fallback Operation will soon be started", "BRM%2C+Auto+Export+Backup+Failed":"BRM, Auto Export Backup Failed", "BRM%2C+Scheduled+Backup+Failed":"BRM, Scheduled Backup Failed", "COM+SA%2C+AMF+Component+Cleanup+Failed":"COM SA, AMF Component Cleanup Failed", "COM+SA%2C+AMF+Component+Instantiation+Failed":"COM SA, AMF Component Instantiation Failed", "COM+SA%2C+AMF+SI+Unassigned":"COM SA, AMF SI Unassigned", "COM+SA%2C+CLM+Cluster+Node+Unavailable":"COM SA, CLM Cluster Node Unavailable", "COM+SA%2C+MDF+Detected+Model+Error":"COM SA, MDF Detected Model Error", "COM+SA%2C+Proxy+Status+of+a+Component+Changed+to+Unproxied":"COM SA, Proxy Status of a Component Changed to Unproxied", "File+Management%2C+Number+of+Files+in+FileGroup+Exceeded":"File Management, Number of Files in FileGroup Exceeded", "File+Management%2C+Max+Size+in+FileGroup+Exceeded":"File Management, Max Size in FileGroup Exceeded", "LOTC+Disk+Replication+Communication":"LOTC Disk Replication Communication", "LOTC+Disk+Replication+Consistency":"LOTC Disk Replication Consistency", "LOTC+Disk+Usage":"LOTC Disk Usage", "LOTC+memory+Usage":"LOTC memory Usage", "LOTC+Time+Synchronization":"LOTC Time Synchronization", "SBG%2C+BGF+Control+Link+Down":"SBG, BGF Control Link Down", "SBG%2C+BGF+Control+Link+Disabled":"SBG, BGF Control Link Disabled", "SBG%2C+BGF+Control+Link+Enabled":"SBG, BGF Control Link Enabled", "SBG%2C+BGF+Control+Link+Remote+Locked":"SBG, BGF Control Link Remote Locked", "SBG%2C+Charging+Data+Storage+Maximum+Records+Reached":"SBG, Charging Data Storage Maximum Records Reached", "SBG%2C+Charging+Server+Rejects+Charging+Data":"SBG, Charging Server Rejects Charging Data", "SBG%2C+Excessive+Packet+Rate+Detected+":"SBG, Excessive Packet Rate Detected ", "SBG%2C+High+Amount+of+Malformed+Packets+Received":"SBG, High Amount of Malformed Packets Received", "SBG%2C+High+Amount+of+STUN+Packets+Detected":"SBG, High Amount of STUN Packets Detected", "SBG%2C+High+Amount+of+TCP+SYN+Packets+Received":"SBG, High Amount of TCP SYN Packets Received", "SBG%2C+High+Amount+of+UDP+Packets+Received+":"SBG, High Amount of UDP Packets Received ", "SBG%2C+IP+Address+Blocked+Due+to+Excessive+Packet+Rate":"SBG, IP Address Blocked Due to Excessive Packet Rate", "SBG%2C+Lost+Connectivity+to+Diameter+Server":"SBG, Lost Connectivity to Diameter Server", "SBG%2C+Mated+Pair+out+of+Service":"SBG, Mated Pair out of Service", "SBG%2C+Network+Unavailable+for+Media+Handling":"SBG, Network Unavailable for Media Handling", "SBG%2C+Non-emergency+Call+Released+to+Free+Resources+for+Emergency+Call":"SBG, Non-emergency Call Released to Free Resources for Emergency Call", "SBG%2C+Not+Enough+Disk+Space+for+Storing+Charging+Data":"SBG, Not Enough Disk Space for Storing Charging Data", "SBG%2C+Payload+Mated+Pair+Failure":"SBG, Payload Mated Pair Failure", "SBG%2C+Payload+Processor+Failure":"SBG, Payload Processor Failure", "SBG%2C+Processor+Overloaded":"SBG, Processor Overloaded", "SBG%2C+Registered+User+Set+in+Quarantine":"SBG, Registered User Set in Quarantine", "SBG%2C+Registration+Contacts+Exceed+Configured+Threshold":"SBG, Registration Contacts Exceed Configured Threshold", "SBG%2C+Sequential+Restart+Initiated":"SBG, Sequential Restart Initiated", "SBG%2C+SIP+Abuse+Detected":"SBG, SIP Abuse Detected", "SBG%2C+SIP+Network+Locked":"SBG, SIP Network Locked", "SBG%2C+SIP+Next+Hop+Reachable":"SBG, SIP Next Hop Reachable", "SBG%2C+SIP+Next+Hop+Unreachable":"SBG, SIP Next Hop Unreachable", "SBG%2C+SIP+Request+Rejected+by+Network+Throttling":"SBG, SIP Request Rejected by Network Throttling", "SBG%2C+TLS+Certificate+Imported":"SBG, TLS Certificate Imported", "SBG%2C+Trace+Recording+Session+Number+Limit+Reached":"SBG, Trace Recording Session Number Limit Reached", "SBG%2C+Trace+Session+Deactivated":"SBG, Trace Session Deactivated", "SBG%2C+Trace+Session+Times+Out":"SBG, Trace Session Times Out", "SBG%2C+Unknown+Media+Type+or+Payload+Type":"SBG, Unknown Media Type or Payload Type" } }, "vProbes": { "vf": { }, "vfc": { }, "location": { }, "alarmCondition": { } } } } } +globalPropsPartialTest={"global": { "service": { "": "", "vUSP": "vUSP", "vSCP": "vSCP", "vProbes": "vProbes" } }, "policy": { "timeout": 5, "recipe": { "": "", "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate" }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { "vCTS": "vCTS", "v3CDB": "v3CDB", "vUDR": "vUDR", "vCOM": "vCOM", "vRAR": "vRAR", "vLCS": "vLCS", "vUDR-BE": "vUDR-BE", "vDBE": "vDBE" }, "parentPolicyConditions": { "Failure_Retries": "Failure: Max Retries Exceeded", "Failure_Timeout": "Failure: Time Limit Exceeded", "Failure_Exception": "Failure: Exception", "Failure": "Failure: Other", "Success": "Success" } }} ui.location.default={"location":{"SNDGCA64":"San Diego SAN3","ALPRGAED":"Alpharetta PDK1","LSLEILAA":"Lisle DPA3"}} ui.alarm.fault={"alarmCondition":{"A+Fallback+Operation+will+soon+be+started":"A Fallback Operation will soon be started","BRM%2C+Auto+Export+Backup+Failed":"BRM, Auto Export Backup Failed","BRM%2C+Scheduled+Backup+Failed":"BRM, Scheduled Backup Failed","COM+SA%2C+AMF+Component+Cleanup+Failed":"COM SA, AMF Component Cleanup Failed","COM+SA%2C+AMF+Component+Instantiation+Failed":"COM SA, AMF Component Instantiation Failed","COM+SA%2C+AMF+SI+Unassigned":"COM SA, AMF SI Unassigned","COM+SA%2C+CLM+Cluster+Node+Unavailable":"COM SA, CLM Cluster Node Unavailable","COM+SA%2C+MDF+Detected+Model+Error":"COM SA, MDF Detected Model Error","COM+SA%2C+Proxy+Status+of+a+Component+Changed+to+Unproxied":"COM SA, Proxy Status of a Component Changed to Unproxied","File+Management%2C+Number+of+Files+in+FileGroup+Exceeded":"File Management, Number of Files in FileGroup Exceeded","File+Management%2C+Max+Size+in+FileGroup+Exceeded":"File Management, Max Size in FileGroup Exceeded","LOTC+Disk+Replication+Communication":"LOTC Disk Replication Communication","LOTC+Disk+Replication+Consistency":"LOTC Disk Replication Consistency","LOTC+Disk+Usage":"LOTC Disk Usage","LOTC+memory+Usage":"LOTC memory Usage","LOTC+Time+Synchronization":"LOTC Time Synchronization","SBG%2C+BGF+Control+Link+Down":"SBG, BGF Control Link Down","SBG%2C+BGF+Control+Link+Disabled":"SBG, BGF Control Link Disabled","SBG%2C+BGF+Control+Link+Enabled":"SBG, BGF Control Link Enabled","SBG%2C+BGF+Control+Link+Remote+Locked":"SBG, BGF Control Link Remote Locked","SBG%2C+Charging+Data+Storage+Maximum+Records+Reached":"SBG, Charging Data Storage Maximum Records Reached","SBG%2C+Charging+Server+Rejects+Charging+Data":"SBG, Charging Server Rejects Charging Data","SBG%2C+Excessive+Packet+Rate+Detected+":"SBG, Excessive Packet Rate Detected ","SBG%2C+High+Amount+of+Malformed+Packets+Received":"SBG, High Amount of Malformed Packets Received","SBG%2C+High+Amount+of+STUN+Packets+Detected":"SBG, High Amount of STUN Packets Detected","SBG%2C+High+Amount+of+TCP+SYN+Packets+Received":"SBG, High Amount of TCP SYN Packets Received","SBG%2C+High+Amount+of+UDP+Packets+Received+":"SBG, High Amount of UDP Packets Received ","SBG%2C+IP+Address+Blocked+Due+to+Excessive+Packet+Rate":"SBG, IP Address Blocked Due to Excessive Packet Rate","SBG%2C+Lost+Connectivity+to+Diameter+Server":"SBG, Lost Connectivity to Diameter Server","SBG%2C+Mated+Pair+out+of+Service":"SBG, Mated Pair out of Service","SBG%2C+Network+Unavailable+for+Media+Handling":"SBG, Network Unavailable for Media Handling","SBG%2C+Non-emergency+Call+Released+to+Free+Resources+for+Emergency+Call":"SBG, Non-emergency Call Released to Free Resources for Emergency Call","SBG%2C+Not+Enough+Disk+Space+for+Storing+Charging+Data":"SBG, Not Enough Disk Space for Storing Charging Data","SBG%2C+Payload+Mated+Pair+Failure":"SBG, Payload Mated Pair Failure","SBG%2C+Payload+Processor+Failure":"SBG, Payload Processor Failure","SBG%2C+Processor+Overloaded":"SBG, Processor Overloaded","SBG%2C+Registered+User+Set+in+Quarantine":"SBG, Registered User Set in Quarantine","SBG%2C+Registration+Contacts+Exceed+Configured+Threshold":"SBG, Registration Contacts Exceed Configured Threshold","SBG%2C+Sequential+Restart+Initiated":"SBG, Sequential Restart Initiated","SBG%2C+SIP+Abuse+Detected":"SBG, SIP Abuse Detected","SBG%2C+SIP+Network+Locked":"SBG, SIP Network Locked","SBG%2C+SIP+Next+Hop+Reachable":"SBG, SIP Next Hop Reachable","SBG%2C+SIP+Next+Hop+Unreachable":"SBG, SIP Next Hop Unreachable","SBG%2C+SIP+Request+Rejected+by+Network+Throttling":"SBG, SIP Request Rejected by Network Throttling","SBG%2C+TLS+Certificate+Imported":"SBG, TLS Certificate Imported","SBG%2C+Trace+Recording+Session+Number+Limit+Reached":"SBG, Trace Recording Session Number Limit Reached","SBG%2C+Trace+Session+Deactivated":"SBG, Trace Session Deactivated","SBG%2C+Trace+Session+Times+Out":"SBG, Trace Session Times Out","SBG%2C+Unknown+Media+Type+or+Payload+Type":"SBG, Unknown Media Type or Payload Type"}} diff --git a/src/test/resources/example/dao/bpmn-template.xml b/src/test/resources/example/dao/bpmn-template.xml index 5aa133acf..12671ac92 100644 --- a/src/test/resources/example/dao/bpmn-template.xml +++ b/src/test/resources/example/dao/bpmn-template.xml @@ -4,16 +4,8 @@ SequenceFlow_0mshiwd - - SequenceFlow_0mshiwd - SequenceFlow_0z37chw - - - SequenceFlow_0z37chw - SequenceFlow_1io8zzg - - SequenceFlow_1io8zzg + SequenceFlow_0mshiwd SequenceFlow_0yenh9m @@ -31,9 +23,7 @@ SequenceFlow_1q2yngv - - - + @@ -44,12 +34,6 @@ - - - - - - diff --git a/src/test/resources/example/dao/image-template.xml b/src/test/resources/example/dao/image-template.xml index d7af2aa67..fe0af0671 100644 --- a/src/test/resources/example/dao/image-template.xml +++ b/src/test/resources/example/dao/image-template.xml @@ -69,48 +69,6 @@ class="djs-hit"> - - - - - - - - - Collector - - - - - - - - - - - - - StringMatch - - - - - diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json index 823641c73..8f7b8e61a 100644 --- a/src/test/resources/example/model-properties/modelBpmn.json +++ b/src/test/resources/example/model-properties/modelBpmn.json @@ -1,16 +1,4 @@ { - "collector": [ - { - "id": "Collector_1c72ct5", - "from": "StartEvent_1" - } - ], - "stringMatch": [ - { - "id": "StringMatch_05arstl", - "from": "Collector_1c72ct5" - } - ], "policy": [ { "id": "Policy_0honxgv", @@ -32,7 +20,7 @@ "vesCollector": [ { "id": "VesCollector_0orydnh", - "from": "StringMatch_05arstl" + "from": "StartEvent_1" } ] } diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json index 3b86ad79b..a521ba7d7 100644 --- a/src/test/resources/example/model-properties/modelBpmnProp.json +++ b/src/test/resources/example/model-properties/modelBpmnProp.json @@ -1,90 +1,4 @@ { - "Collector_1c72ct5": [ - { - "name": "topicPublishes", - "value": "DCAE-COLLECTOR-UCSNMP" - } - ], - "StringMatch_05arstl": { - "group1": [ - { - "name": "rgname", - "value": "1505133578560" - }, - { - "name": "rgfriendlyname", - "value": "group1" - }, - { - "name": "policyName", - "value": "policy1" - }, - { - "name": "policyId", - "value": "0" - }, - { - "serviceConfigurations": [ - [ - { - "name": "aaiMatchingFields", - "value": [ - "complex.city" - ] - }, - { - "name": "aaiSendFields", - "value": [ - "cloud-region.identity-url" - ] - }, - { - "name": "timeWindow", - "value": [ - "0" - ] - }, - { - "name": "ageLimit", - "value": [ - "1600" - ] - }, - { - "name": "createClosedLoopEventId", - "value": [ - "Initial" - ] - }, - { - "name": "outputEventName", - "value": [ - "" - ] - }, - { - "stringSet": [ - { - }, - { - "name": "eventSeverity", - "value": [ - "NORMAL" - ] - }, - { - "name": "eventSourceType", - "value": [ - "" - ] - } - ] - } - ] - ] - } - ] - }, "Policy_0honxgv": { "policy1": [ { diff --git a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json index fba99c6f4..3030adfb3 100644 --- a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json +++ b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json @@ -1,81 +1,4 @@ { - "collector": { - "topicPublishes": { - "DCAE-COLLECTOR-UCSNMP": "DCAE-COLLECTOR-UCSNMP", - "GFP-IP-AIC-SNMP-TRAPS": "GFP-IP-AIC-SNMP-TRAPS", - "AIC-SNMP-TRAPS": "AIC-SNMP-TRAPS" - } - }, - "string_match": { - "topicPublishes": { - "DCAE-CL-EVENT": "DCAE-CL-EVENT" - }, - "aaiMatchingFields": { - "cloud-region.identity-url": "cloud-region.identity-url", - "complex.city": "complex.city", - "complex.physical-location-id": "complex.physical-location-id", - "complex.state": "complex.state", - "generic-vnf.service-id": "generic-vnf.service-id", - "generic-vnf.vnf-name": "generic-vnf.vnf-name", - "generic-vnf.vnf-type": "generic-vnf.vnf-type", - "tenant.tenant-id": "tenant.tenant-id", - "vserver.in-maint": "vserver.in-maint", - "vserver.is-closed-loop-disabled": "vserver.is-closed-loop-disabled", - "vserver.l-interface.interface-name": "vserver.l-interface.interface-name", - "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address": "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address", - "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address": "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address", - "vserver.l-interface.network-name": "vserver.l-interface.network-name", - "vserver.prov-status": "vserver.prov-status", - "vserver.selflink": "vserver.selflink", - "vserver.vserver-id": "vserver.vserver-id", - "vserver.vserver-name": "vserver.vserver-name" - }, - "aaiSendFields": { - "cloud-region.identity-url": "cloud-region.identity-url", - "complex.city": "complex.city", - "complex.physical-location-id": "complex.physical-location-id", - "complex.state": "complex.state", - "generic-vnf.service-id": "generic-vnf.service-id", - "generic-vnf.vnf-name": "generic-vnf.vnf-name", - "generic-vnf.vnf-type": "generic-vnf.vnf-type", - "tenant.tenant-id": "tenant.tenant-id", - "vserver.in-maint": "vserver.in-maint", - "vserver.is-closed-loop-disabled": "vserver.is-closed-loop-disabled", - "vserver.l-interface.interface-name": "vserver.l-interface.interface-name", - "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address": "vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address", - "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address": "vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address", - "vserver.l-interface.network-name": "vserver.l-interface.network-name", - "vserver.prov-status": "vserver.prov-status", - "vserver.selflink": "vserver.selflink", - "vserver.vserver-id": "vserver.vserver-id", - "vserver.vserver-name": "vserver.vserver-name" - }, - "eventSourceType": { - "f5BigIP": "f5BigIP", - "vSBG_Alarms": "vSBG_Alarms", - "vCTS_Alarms": "vCTS_Alarms" - }, - "eventSeverity": { - "NORMAL": "NORMAL", - "not-NORMAL": "not-NORMAL", - "OK": "OK", - "WARNING": "WARNING", - "MINOR": "MINOR", - "MAJOR": "MAJOR", - "CRITICAL": "CRITICAL" - }, - "timeWindow": 0, - "ageLimit": 1600, - "outputEventName": { - "": "", - "ONSET": "ONSET", - "ABATED": "ABATED" - }, - "createClosedLoopEventId": { - "Initial": "Initial", - "Close": "Close" - } - }, "tca": { "tname": "New_Set", "tcaInt": "1", diff --git a/src/test/resources/example/modelBpmnProp.json b/src/test/resources/example/modelBpmnProp.json index 26fd884d8..c8efff877 100644 --- a/src/test/resources/example/modelBpmnProp.json +++ b/src/test/resources/example/modelBpmnProp.json @@ -1,29 +1,13 @@ { - "collector": - [ - { - "id": "Collector_", - "from": "StartEvent_1" - } - ], - - "stringMatch": - [ - { - "id": "StringMatch_", - "from": "Collector_" - } - ], - - "policy": + "policy": [ { "id": "Policy_", - "from": "StringMatch_" + "from": "StartEvent_1" } ], - "tca": + "tca": [ { "id": "TCA_", @@ -31,7 +15,7 @@ } ], - "customType": + "customType": [ { "id": "CustomType_", diff --git a/src/test/resources/example/modelBpmnPropForPolicy.json b/src/test/resources/example/modelBpmnPropForPolicy.json index 243f7e807..de643a69a 100644 --- a/src/test/resources/example/modelBpmnPropForPolicy.json +++ b/src/test/resources/example/modelBpmnPropForPolicy.json @@ -1,14 +1,5 @@ { - "collector": - [ - - ], - "stringMatch": - [ - - ], - - "policy": + "policy": [ { "id": "Policy_", @@ -16,7 +7,7 @@ } ], - "tca": + "tca": [ { "id": "TCA_", diff --git a/src/test/resources/example/modelProp.json b/src/test/resources/example/modelProp.json index c2262f528..99f67b62e 100644 --- a/src/test/resources/example/modelProp.json +++ b/src/test/resources/example/modelProp.json @@ -1,17 +1,9 @@ { - "Collector_": - [ - { - "name": "topicPublishes", - "value": "DCAE-COLLECTOR-UCSNMP" - } - ], - - "global": + "global": [ { "name": "service", - "value": + "value": [ "0f983e18-4603-4bb4-a98c-e29691fb16a1" ] @@ -19,7 +11,7 @@ { "name": "vf", - "value": + "value": [ "6c7aaec2-59eb-41d9-8681-b7f976ab668d" ] @@ -27,7 +19,7 @@ { "name": "actionSet", - "value": + "value": [ "enbRecipe" ] @@ -35,318 +27,16 @@ { "name": "location", - "value": + "value": [ "SNDGCA64" ] } ], - "StringMatch_": - { - "Group1": - [ - { - "name": "rgname", - "value": "1493749598520" - }, - - { - "name": "rgfriendlyname", - "value": "Group1" - }, - - { - "name": "policyName", - "value": "Policy1" - }, - - { - "name": "policyId", - "value": "1" - }, - - { - "serviceConfigurations": - [ - [ - { - "name": "aaiMatchingFields", - "value": - [ - "complex.city", - "vserver.vserver-name" - ] - }, - - { - "name": "aaiSendFields", - "value": - [ - "complex.city", - "vserver.vserver-name" - ] - }, - - { - "name": "timeWindow", - "value": - [ - "100" - ] - }, - - { - "name": "ageLimit", - "value": - [ - "100" - ] - }, - - { - "name": "createClosedLoopEventId", - "value": - [ - "Initial" - ] - }, - - { - "name": "outputEventName", - "value": - [ - "ONSET" - ] - }, - - { - "stringSet": - [ - { - "name": "alarmCondition", - "value": - [ - "Reports a transient alarm condition when an outgoing Ro message send fails" - ] - }, - - { - "name": "eventSeverity", - "value": - [ - "WARNING" - ] - }, - - { - "name": "eventSourceType", - "value": - [ - "f5BigIP" - ] - } - ] - } - ] - ] - } - ], - - "Group2": - [ - { - "name": "rgname", - "value": "1493749665149" - }, - - { - "name": "rgfriendlyname", - "value": "Group2" - }, - - { - "name": "policyName", - "value": "Policy2" - }, - - { - "name": "policyId", - "value": "2" - }, - - { - "serviceConfigurations": - [ - [ - { - "name": "aaiMatchingFields", - "value": - [ - "cloud-region.identity-url", - "vserver.vserver-name" - ] - }, - - { - "name": "aaiSendFields", - "value": - [ - "cloud-region.identity-url", - "vserver.vserver-name" - ] - }, - - { - "name": "timeWindow", - "value": - [ - "1000" - ] - }, - - { - "name": "ageLimit", - "value": - [ - "1000" - ] - }, - - { - "name": "createClosedLoopEventId", - "value": - [ - "Initial" - ] - }, - - { - "name": "outputEventName", - "value": - [ - "ONSET" - ] - }, - - { - "stringSet": - [ - { - "name": "alarmCondition", - "value": - [ - "LSS_asdaCommunicationFailure" - ] - }, - - { - "name": "eventSeverity", - "value": - [ - "WARNING" - ] - }, - - { - "name": "eventSourceType", - "value": - [ - "f5BigIP" - ] - } - ] - } - ], - - [ - { - "name": "aaiMatchingFields", - "value": - [ - "generic-vnf.vnf-name", - "vserver.vserver-name" - ] - }, - - { - "name": "aaiSendFields", - "value": - [ - "generic-vnf.vnf-name", - "vserver.vserver-name" - ] - }, - - { - "name": "timeWindow", - "value": - [ - "3000" - ] - }, - - { - "name": "ageLimit", - "value": - [ - "3000" - ] - }, - - { - "name": "createClosedLoopEventId", - "value": - [ - "Initial" - ] - }, - - { - "name": "outputEventName", - "value": - [ - "ABATED" - ] - }, - - { - "stringSet": - [ - { - "name": "alarmCondition", - "value": - [ - "LSS_asdaCommunicationFailure" - ] - }, - - { - "name": "eventSeverity", - "value": - [ - "MAJOR" - ] - }, - - { - "name": "eventSourceType", - "value": - [ - "f5BigIP" - ] - } - ] - } - ] - ] - } - ] - }, - - "Policy_": + "Policy_": { - "Policy1": + "Policy1": [ { "name": "pname", @@ -364,12 +54,12 @@ }, { - "policyConfigurations": + "policyConfigurations": [ [ { "name": "recipe", - "value": + "value": [ "restart" ] @@ -377,7 +67,7 @@ { "name": "maxRetries", - "value": + "value": [ "3" ] @@ -385,7 +75,7 @@ { "name": "retryTimeLimit", - "value": + "value": [ "180" ] @@ -393,7 +83,7 @@ { "name": "_id", - "value": + "value": [ "n9bQ4t6" ] @@ -401,14 +91,14 @@ { "name": "parentPolicy", - "value": + "value": [ "" ] }, { "name": "targetResourceId", - "value": + "value": [ "resource-id" ] @@ -418,7 +108,7 @@ [ { "name": "recipe", - "value": + "value": [ "rebuild" ] @@ -426,7 +116,7 @@ { "name": "maxRetries", - "value": + "value": [ "3" ] @@ -434,7 +124,7 @@ { "name": "retryTimeLimit", - "value": + "value": [ "180" ] @@ -442,7 +132,7 @@ { "name": "_id", - "value": + "value": [ "ItE5xKT" ] @@ -450,7 +140,7 @@ { "name": "parentPolicy", - "value": + "value": [ "n9bQ4t6" ] @@ -458,7 +148,7 @@ { "name": "parentPolicyConditions", - "value": + "value": [ "Failure_Retries", "Failure_Timeout", @@ -468,7 +158,7 @@ }, { "name": "targetResourceId", - "value": + "value": [ "resource-id" ] @@ -478,7 +168,7 @@ } ], - "Policy2": + "Policy2": [ { "name": "pname", @@ -496,12 +186,12 @@ }, { - "policyConfigurations": + "policyConfigurations": [ [ { "name": "recipe", - "value": + "value": [ "restart" ] @@ -509,7 +199,7 @@ { "name": "maxRetries", - "value": + "value": [ "3" ] @@ -517,7 +207,7 @@ { "name": "retryTimeLimit", - "value": + "value": [ "180" ] @@ -525,7 +215,7 @@ { "name": "_id", - "value": + "value": [ "n9bQ4t6" ] @@ -533,14 +223,14 @@ { "name": "parentPolicy", - "value": + "value": [ "" ] }, { "name": "targetResourceId", - "value": + "value": [ "resource-id" ] @@ -550,7 +240,7 @@ [ { "name": "recipe", - "value": + "value": [ "rebuild" ] @@ -558,7 +248,7 @@ { "name": "maxRetries", - "value": + "value": [ "3" ] @@ -566,7 +256,7 @@ { "name": "retryTimeLimit", - "value": + "value": [ "180" ] @@ -574,7 +264,7 @@ { "name": "_id", - "value": + "value": [ "ItE5xKT" ] @@ -582,7 +272,7 @@ { "name": "parentPolicy", - "value": + "value": [ "n9bQ4t6" ] @@ -590,7 +280,7 @@ { "name": "parentPolicyConditions", - "value": + "value": [ "Failure_Retries", "Failure_Timeout", @@ -600,7 +290,7 @@ }, { "name": "targetResourceId", - "value": + "value": [ "resource-id" ] @@ -611,9 +301,9 @@ ] }, - "TCA_": + "TCA_": { - "Narra": + "Narra": [ { "name": "tname", @@ -661,7 +351,7 @@ }, { - "serviceConfigurations": + "serviceConfigurations": [ [ "PMRRCCONNESTABFAILCELLLATENCY", @@ -680,7 +370,7 @@ } ], - "Srini": + "Srini": [ { "name": "tname", @@ -728,7 +418,7 @@ }, { - "serviceConfigurations": + "serviceConfigurations": [ [ "PMRRCCONNESTABFAILCELLLATENCY", diff --git a/src/test/resources/example/sdc/sdcVFResources.json b/src/test/resources/example/sdc/sdcVFResources.json index a8f32195d..62c58bee6 100644 --- a/src/test/resources/example/sdc/sdcVFResources.json +++ b/src/test/resources/example/sdc/sdcVFResources.json @@ -197,7 +197,7 @@ { "uuid": "10b535db-b01b-4a4b-aeef-97423d2d2093", "invariantUUID": "761ed279-e5ff-43e2-8a05-b160224b7f54", - "name": "StringMatchingMS", + "name": "TcaMS", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/10b535db-b01b-4a4b-aeef-97423d2d2093/toscaModel", "category": "DCAE Component", diff --git a/src/test/resources/example/templateProp.json b/src/test/resources/example/templateProp.json deleted file mode 100644 index bbbfca598..000000000 --- a/src/test/resources/example/templateProp.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "global":[ - { - "name":"service", - "value":[ - "tosca_definitions_version: cloudify_dsl_1_2\r\n\r\nimports:\r\n - http:\/\/www.getcloudify.org\/spec\/cloudify\/3.3.1\/types.yaml\r\n - http:\/\/127.0.0.1\/1607_prod\/type_files\/cdap_app.yaml\r\n\r\nnode_templates:\r\n SM:\r\n type: dcae.nodes.cdap_app\r\n properties:\r\n service_name: \"cdap-string-matching\"\r\n deployment_JSON: |-\r\n {\r\n \"clusterService\": {\"$ref\": \"\/services\/vm-cdap-cluster-central\/instances\/rdm2-central\"},\r\n \"$class\": \"com.att.ecomp.dcae.controller.service.cdap.CdapServiceInstance\",\r\n \"namespace\": \"<%= dcae_target_name %>\",\r\n \"appNames\": [ \"SM\" ],\r\n \"flowNames\": [ \"SM.SimpleFlow\" ],\r\n \"apps\": {\r\n \"SM\": {\r\n \"jarFile\": \"\/opt\/app\/dcae-analytics-closed-loop-stringmatching-jars\/lib\/CdapClosedLoopSnmpTrapStringMatcher-0.1.jar\",\r\n \"artifactName\": \"CdapClosedLoopSnmpTrapStringMatcher\",\r\n \"version\": \"0.1\"\r\n }\r\n },\r\n \r\n \"configuration\": {\r\n \"$class\": \"com.att.ecomp.dcae.clamp.common.StringMatchingConfiguration\",\r\n \"messageReaderConsumerID\":\"4699\",\r\n \"messageReaderConsumerGroup\": \"<%= dcae_target_name %>\",\r\n \"aaiURL\": \"http:\/\/REPLACE_THIS_WITH_IP_PORT_FROM_BOOTED_DOCKER\/tenant\/\",\r\n \"closedLoopEventClient\": \"configuration.dcae.microservice.stringmatcher.xml\",\r\n \"dcae_target_name\": \"<%= dcae_target_name %>\",\r\n \"dcae_target_type\": \"VM\",\r\n \r\n \"serviceConfigurations\": {}\r\n }\r\n }}}" - ] - } - ] -} diff --git a/src/test/resources/example/xsl-validation/modelBpmn.xml b/src/test/resources/example/xsl-validation/modelBpmn.xml index 3021902c7..d80c89e3e 100644 --- a/src/test/resources/example/xsl-validation/modelBpmn.xml +++ b/src/test/resources/example/xsl-validation/modelBpmn.xml @@ -7,18 +7,10 @@ SequenceFlow_1nvvr00 - - SequenceFlow_0qf2552 - SequenceFlow_1a2oxpd - SequenceFlow_0jeu0gv SequenceFlow_15gkgs5 - - SequenceFlow_1nvvr00 - SequenceFlow_0qf2552 - SequenceFlow_15gkgs5 SequenceFlow_0ev75ss @@ -31,15 +23,11 @@ SequenceFlow_103hvmr - SequenceFlow_1a2oxpd + SequenceFlow_1nvvr00 SequenceFlow_0jeu0gv - - + sourceRef="StartEvent_1" targetRef="Holmes_1fzdqp9" /> - - - - - - diff --git a/src/test/resources/example/xsl-validation/modelBpmnForVerif.json b/src/test/resources/example/xsl-validation/modelBpmnForVerif.json index 40afe179e..567a69db3 100644 --- a/src/test/resources/example/xsl-validation/modelBpmnForVerif.json +++ b/src/test/resources/example/xsl-validation/modelBpmnForVerif.json @@ -1,16 +1,4 @@ { - "collector": [ - { - "id": "Collector_", - "from": "StartEvent_1" - } - ], - "stringMatch": [ - { - "id": "StringMatch_0tw2y4f", - "from": "Collector_" - } - ], "policy": [ { "id": "Policy_", @@ -32,7 +20,7 @@ "holmes": [ { "id": "Holmes_1fzdqp9", - "from": "StringMatch_0tw2y4f" + "from": "StartEvent_1" } ] } diff --git a/src/test/resources/expected/stringmatch.json b/src/test/resources/expected/stringmatch.json deleted file mode 100644 index 52e6d01a4..000000000 --- a/src/test/resources/expected/stringmatch.json +++ /dev/null @@ -1 +0,0 @@ -{"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"example_model06.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_StringMatch_","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"1610","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{"Item1":{"rulegroup":"1493749598520","closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_1","aaiMatchingFields":["complex.city","vserver.vserver-name"],"aaiSendFields":["complex.city","vserver.vserver-name"],"stringSet":["eventSeverity","WARNING","alarmCondition","Reports a transient alarm condition when an outgoing Ro message send fails"],"timeWindow":"100","ageLimit":"100","createClosedLoopEventId":"Initial","outputEventName":"ONSET"},"Item2":{"rulegroup":"1493749665149","closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_2","aaiMatchingFields":["cloud-region.identity-url","vserver.vserver-name"],"aaiSendFields":["cloud-region.identity-url","vserver.vserver-name"],"stringSet":["eventSeverity","WARNING","alarmCondition","Reports a transient alarm condition when an outgoing Ro message send fails"],"timeWindow":"1000","ageLimit":"1000","createClosedLoopEventId":"Initial","outputEventName":"ONSET"},"Item3":{"rulegroup":"1493749665149","closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_2","aaiMatchingFields":["generic-vnf.vnf-name","vserver.vserver-name"],"aaiSendFields":["generic-vnf.vnf-name","vserver.vserver-name"],"stringSet":["eventSeverity","WARNING","alarmCondition","Reports a transient alarm condition when an outgoing Ro message send fails"],"timeWindow":"3000","ageLimit":"3000","createClosedLoopEventId":"Initial","outputEventName":"ABATED"}}}} \ No newline at end of file -- cgit 1.2.3-korg From 434170f50621917a7fb2cbe7c7b01c4b29a8211e Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Mon, 30 Oct 2017 18:50:37 +0100 Subject: Add encryption for passwords Add encrypted password on all values specified in the properties files, unit tests have been reworked. Change-Id: I619ff67fe1025f69af733b776f055914f949f26a Issue-ID: CLAMP-64 Signed-off-by: Determe, Sebastien (sd378r) --- .../clamp/clds/client/DcaeInventoryServices.java | 30 +- .../onap/clamp/clds/client/SdcCatalogServices.java | 191 ++-- .../onap/clamp/clds/client/SdcSendReqDelegate.java | 48 +- .../org/onap/clamp/clds/client/req/SdcReq.java | 91 +- .../clds/config/CamundaEngineConfiguration.java | 13 +- .../onap/clamp/clds/config/CldsConfiguration.java | 14 +- .../org/onap/clamp/clds/service/CldsService.java | 231 ++-- .../onap/clamp/clds/service/SecureServiceBase.java | 47 +- .../java/org/onap/clamp/clds/util/CryptoUtils.java | 116 ++ .../clds/workflow/ProcessRequestDelegate.java | 22 +- src/main/resources/application.properties | 5 +- src/main/resources/clds/clds-reference.properties | 2 +- src/main/resources/logback.xml | 469 ++++---- .../org/onap/clamp/clds/client/req/SdcReqTest.java | 84 -- .../org/onap/clamp/clds/it/CryptoUtilsItCase.java | 76 ++ .../clamp/clds/it/SdcCatalogServicesItCase.java | 5 + .../java/org/onap/clamp/clds/it/SdcReqItCase.java | 88 ++ .../resources/application-no-camunda.properties | 27 +- .../resources/example/sdc/sdcCVFCResources.json | 1166 ++++++++++++++++++++ src/test/resources/https/https-test.properties | 9 +- 20 files changed, 2074 insertions(+), 660 deletions(-) create mode 100644 src/main/java/org/onap/clamp/clds/util/CryptoUtils.java delete mode 100644 src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java create mode 100644 src/test/java/org/onap/clamp/clds/it/CryptoUtilsItCase.java create mode 100644 src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java create mode 100644 src/test/resources/example/sdc/sdcCVFCResources.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java index 8f80e07ca..71e57ded9 100644 --- a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java +++ b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java @@ -32,6 +32,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; +import java.security.GeneralSecurityException; import java.util.Date; import java.util.List; @@ -52,34 +53,37 @@ import org.onap.clamp.clds.util.LoggingUtils; import org.springframework.beans.factory.annotation.Autowired; /** + * * This class implements the communication with DCAE for the service inventory. * + * + * */ public class DcaeInventoryServices { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class); protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - @Autowired private RefProp refProp; - @Autowired private CldsDao cldsDao; - @Autowired private SdcCatalogServices sdcCatalogServices; /** + * * Set the event inventory. * * @param cldsModel * The CldsModel * @param userId * The user ID + * @throws GeneralSecurityException + * In case of issue when decryting the DCAE password * @throws ParseException - * In case of issues during the parsing of DCAE answer + * In case of DCAE Json parse exception */ - public void setEventInventory(CldsModel cldsModel, String userId) throws ParseException { + public void setEventInventory(CldsModel cldsModel, String userId) throws GeneralSecurityException, ParseException { String artifactName = cldsModel.getControlName(); DcaeEvent dcaeEvent = new DcaeEvent(); String isDcaeInfoAvailable = null; @@ -90,8 +94,11 @@ public class DcaeInventoryServices { } try { /* + * * Below are the properties required for calling the dcae inventory + * * url call + * */ ModelProperties prop = new ModelProperties(cldsModel.getName(), cldsModel.getControlName(), null, false, "{}", cldsModel.getPropText()); @@ -105,11 +112,9 @@ public class DcaeInventoryServices { } /* Invemtory service url is called in this method */ isDcaeInfoAvailable = getDcaeInformation(artifactName, serviceUuid, resourceUuid); - /* set dcae events */ dcaeEvent.setArtifactName(artifactName); dcaeEvent.setEvent(DcaeEvent.EVENT_DISTRIBUTION); - } catch (JsonProcessingException e) { logger.error("Error during JSON decoding", e); } catch (IOException ex) { @@ -159,6 +164,7 @@ public class DcaeInventoryServices { * In case of issues with the stream * @throws ParseException * In case of issues with the Json parsing + * */ public String getDcaeInformation(String artifactName, String serviceUuid, String resourceUuid) throws IOException, ParseException { @@ -167,28 +173,22 @@ public class DcaeInventoryServices { String queryString = "?sdcResourceId=" + resourceUuid + "&sdcServiceId=" + serviceUuid + "&typeName=" + artifactName; String fullUrl = refProp.getStringValue("DCAE_INVENTORY_URL") + "/dcae-service-types" + queryString; - logger.info("Dcae Inventory Service full url - " + fullUrl); String daceInventoryResponse = null; URL inventoryUrl = new URL(fullUrl); - HttpURLConnection conn = (HttpURLConnection) inventoryUrl.openConnection(); conn.setRequestMethod("GET"); String reqid = LoggingUtils.getRequestId(); logger.info("reqid set to " + reqid); conn.setRequestProperty("X-ECOMP-RequestID", reqid); - boolean requestFailed = true; int responseCode = conn.getResponseCode(); if (responseCode == 200) { requestFailed = false; } - StringBuilder response = new StringBuilder(); - try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()))) { String inputLine = null; - while ((inputLine = in.readLine()) != null) { response.append(inputLine); } @@ -203,11 +203,8 @@ public class DcaeInventoryServices { String jsonResponseString = response.toString(); JSONParser parser = new JSONParser(); Object obj0 = parser.parse(jsonResponseString); - JSONObject jsonObj = (JSONObject) obj0; - Long totalCount = (Long) jsonObj.get("totalCount"); - int numServices = totalCount.intValue(); if (numServices == 0) { daceInventoryResponse = null; @@ -221,5 +218,4 @@ public class DcaeInventoryServices { metricsLogger.info("getDcaeInformation complete: number services returned=" + numServices); return daceInventoryResponse; } - } 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 56f296184..36265e837 100644 --- a/src/main/java/org/onap/clamp/clds/client/SdcCatalogServices.java +++ b/src/main/java/org/onap/clamp/clds/client/SdcCatalogServices.java @@ -40,6 +40,7 @@ import java.io.Reader; import java.io.StringReader; import java.net.HttpURLConnection; import java.net.URL; +import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -71,14 +72,16 @@ import org.onap.clamp.clds.util.LoggingUtils; import org.springframework.beans.factory.annotation.Autowired; public class SdcCatalogServices { - 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"; - + 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"; + private static final String RESOURCE_CVFC_TYPE = "CVFC"; @Autowired private RefProp refProp; + @Autowired + private SdcReq sdcReq; /** * This method get the SDC services Information with the corresponding @@ -87,31 +90,29 @@ public class SdcCatalogServices { * @param uuid * The service UUID * @return A Json String with all the service list + * @throws GeneralSecurityException + * In case of issue when decryting the SDC password */ - public String getSdcServicesInformation(String uuid) { + public String getSdcServicesInformation(String uuid) throws GeneralSecurityException { Date startTime = new Date(); String baseUrl = refProp.getStringValue("sdc.serviceUrl"); - String basicAuth = SdcReq.getSdcBasicAuth(refProp); + String basicAuth = sdcReq.getSdcBasicAuth(); LoggingUtils.setTargetContext("SDC", "getSdcServicesInformation"); - try { String url = baseUrl; if (uuid != null) { url = baseUrl + "/" + uuid + "/metadata"; } URL urlObj = new URL(url); - HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection(); - conn.setRequestProperty(refProp.getStringValue("sdc.InstanceID"), "CLAMP-Tool"); conn.setRequestProperty("Authorization", basicAuth); conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); conn.setRequestProperty("X-ECOMP-RequestID", LoggingUtils.getRequestId()); conn.setRequestMethod("GET"); - String resp = getResponse(conn); if (resp != null) { - logger.info(resp); + logger.info(resp); // metrics log LoggingUtils.setResponseContext("0", "Get sdc services success", this.getClass().getName()); return resp; @@ -124,13 +125,12 @@ public class SdcCatalogServices { LoggingUtils.setTimeContext(startTime, new Date()); metricsLogger.info("getSdcServicesInformation complete"); } - return ""; } /** * To remove duplicate serviceUUIDs from sdc services List. - * + * * @param rawCldsSdcServiceList * A list of CldsSdcServiceInfo * @return A list of CldsSdcServiceInfo without duplicate service UUID @@ -159,7 +159,7 @@ public class SdcCatalogServices { /** * To remove duplicate serviceUUIDs from sdc resources List. - * + * * @param rawCldsSdcResourceList * @return */ @@ -187,7 +187,7 @@ public class SdcCatalogServices { /** * To remove duplicate basic resources with same resourceUUIDs. - * + * * @param rawCldsSdcResourceListBasicList * @return */ @@ -217,12 +217,14 @@ public class SdcCatalogServices { /** * To get ServiceUUID by using serviceInvariantUUID. - * + * * @param invariantId * The invariant ID * @return The service UUID + * @throws GeneralSecurityException + * In case of issue when decryting the SDC password */ - public String getServiceUuidFromServiceInvariantId(String invariantId) { + public String getServiceUuidFromServiceInvariantId(String invariantId) throws GeneralSecurityException { String serviceUuid = ""; String responseStr = getSdcServicesInformation(null); List rawCldsSdcServicesList = getCldsSdcServicesListFromJson(responseStr); @@ -241,7 +243,7 @@ public class SdcCatalogServices { /** * To get CldsAsdsServiceInfo class by parsing json string. - * + * * @param jsonStr * The Json string that must be decoded * @return The list of CldsSdcServiceInfo, if there is a failure it return @@ -274,7 +276,6 @@ public class SdcCatalogServices { if (StringUtils.isBlank(jsonStr)) { return new ArrayList<>(); } - try { return objectMapper.readValue(jsonStr, objectMapper.getTypeFactory().constructCollectionType(List.class, CldsSdcResourceBasicInfo.class)); @@ -286,7 +287,7 @@ public class SdcCatalogServices { /** * To get CldsAsdsResource class by parsing json string. - * + * * @param jsonStr * @return * @throws IOException @@ -298,7 +299,7 @@ public class SdcCatalogServices { /** * To get CldsSdcServiceDetail by parsing json string. - * + * * @param jsonStr * @return */ @@ -314,22 +315,24 @@ public class SdcCatalogServices { /** * To upload artifact to sdc based on serviceUUID and resource name on url. - * + * * @param prop * @param userid * @param url * @param formattedSdcReq * @return + * @throws GeneralSecurityException */ - public String uploadArtifactToSdc(ModelProperties prop, String userid, String url, String formattedSdcReq) { + public String uploadArtifactToSdc(ModelProperties prop, String userid, String url, String formattedSdcReq) + throws GeneralSecurityException { // Verify whether it is triggered by Validation Test button from UI if (prop.isTest()) { return "sdc artifact upload not executed for test action"; } try { logger.info("userid=" + userid); - String md5Text = SdcReq.calculateMD5ByString(formattedSdcReq); - byte[] postData = SdcReq.stringToByteArray(formattedSdcReq); + String md5Text = sdcReq.calculateMD5ByString(formattedSdcReq); + byte[] postData = sdcReq.stringToByteArray(formattedSdcReq); int postDataLength = postData.length; HttpURLConnection conn = getSdcHttpUrlConnection(userid, postDataLength, url, md5Text); try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) { @@ -341,7 +344,6 @@ public class SdcCatalogServices { if (responseCode == 200) { requestFailed = false; } - String responseStr = getResponse(conn); if (responseStr != null && requestFailed) { logger.error("requestFailed - responseStr=" + responseStr); @@ -352,13 +354,13 @@ public class SdcCatalogServices { logger.error("Exception when attempting to communicate with SDC", e); throw new SdcCommunicationException("Exception when attempting to communicate with SDC", e); } - } - private HttpURLConnection getSdcHttpUrlConnection(String userid, int postDataLength, String url, String md5Text) { + private HttpURLConnection getSdcHttpUrlConnection(String userid, int postDataLength, String url, String md5Text) + throws GeneralSecurityException { try { logger.info("userid=" + userid); - String basicAuth = SdcReq.getSdcBasicAuth(refProp); + String basicAuth = sdcReq.getSdcBasicAuth(); String sdcXonapInstanceId = refProp.getStringValue("sdc.sdcX-InstanceID"); URL urlObj = new URL(url); HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection(); @@ -426,7 +428,14 @@ public class SdcCatalogServices { } } - public boolean isCldsSdcCacheDataExpired(CldsServiceData cldsServiceData) { + /** + * Check if the SDC Info in cache has expired. + * + * @param cldsServiceData + * @return + * @throws GeneralSecurityException + */ + public boolean isCldsSdcCacheDataExpired(CldsServiceData cldsServiceData) throws GeneralSecurityException { boolean expired = false; if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) { String cachedServiceUuid = cldsServiceData.getServiceUUID(); @@ -442,7 +451,16 @@ public class SdcCatalogServices { return expired; } - public CldsServiceData getCldsServiceDataWithAlarmConditions(String invariantServiceUuid) { + /** + * Get the Service Data with Alarm Conditions for a given + * invariantServiceUuid. + * + * @param invariantServiceUuid + * @return + * @throws GeneralSecurityException + */ + public CldsServiceData getCldsServiceDataWithAlarmConditions(String invariantServiceUuid) + throws GeneralSecurityException { String url = refProp.getStringValue("sdc.serviceUrl"); String catalogUrl = refProp.getStringValue("sdc.catalog.url"); String serviceUuid = getServiceUuidFromServiceInvariantId(invariantServiceUuid); @@ -460,7 +478,6 @@ public class SdcCatalogServices { } cldsServiceData.setServiceUUID(cldsSdcServiceDetail.getUuid()); cldsServiceData.setServiceInvariantUUID(cldsSdcServiceDetail.getInvariantUUID()); - // To remove duplicate resources from serviceDetail and add valid // vfs to service if (cldsSdcServiceDetail != null && cldsSdcServiceDetail.getResources() != null) { @@ -488,13 +505,15 @@ public class SdcCatalogServices { return cldsServiceData; } - private void getAllVfcForVfList(List cldsVfDataList, String catalogUrl) { + private void getAllVfcForVfList(List cldsVfDataList, String catalogUrl) + throws GeneralSecurityException { // todo : refact this.. if (cldsVfDataList != null && !cldsVfDataList.isEmpty()) { List allVfResources = getAllSdcVForVfcResourcesBasedOnResourceType( RESOURCE_VF_TYPE); List allVfcResources = getAllSdcVForVfcResourcesBasedOnResourceType( RESOURCE_VFC_TYPE); + allVfcResources.addAll(getAllSdcVForVfcResourcesBasedOnResourceType(RESOURCE_CVFC_TYPE)); for (CldsVfData currCldsVfData : cldsVfDataList) { if (currCldsVfData != null && currCldsVfData.getVfInvariantResourceUUID() != null) { String resourceUuid = getResourceUuidFromResourceInvariantUuid( @@ -507,7 +526,6 @@ public class SdcCatalogServices { // associated with the VF's List cldsVfKPIDataList = getFieldPathFromVF(vfResponse); currCldsVfData.setCldsKPIList(cldsVfKPIDataList); - List vfcDataListFromVfResponse = getVfcDataListFromVfResponse(vfResponse); if (vfcDataListFromVfResponse != null) { currCldsVfData.setCldsVfcs(vfcDataListFromVfResponse); @@ -547,7 +565,7 @@ public class SdcCatalogServices { } } - private List getVfcDataListFromVfResponse(String vfResponse) { + private List getVfcDataListFromVfResponse(String vfResponse) throws GeneralSecurityException { ObjectMapper mapper = new ObjectMapper(); ObjectNode vfResponseNode; try { @@ -570,6 +588,11 @@ public class SdcCatalogServices { currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue()); cldsVfcDataList.add(currCldsVfcData); } else if (resourceTypeNode != null && "CVFC".equalsIgnoreCase(resourceTypeNode.textValue())) { + TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName"); + TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID"); + currCldsVfcData.setVfcName(vfcResourceName.textValue()); + currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue()); + cldsVfcDataList.add(currCldsVfcData); cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue())); } } @@ -577,10 +600,9 @@ public class SdcCatalogServices { return cldsVfcDataList; } - private List getVFCfromCVFC(String resourceUUID) { + private List getVFCfromCVFC(String resourceUUID) throws GeneralSecurityException { String catalogUrl = refProp.getStringValue("sdc.catalog.url"); List cldsVfcDataList = new ArrayList<>(); - if (resourceUUID != null) { String vfcResourceUUIDUrl = catalogUrl + "resources" + "/" + resourceUUID + "/metadata"; try { @@ -588,7 +610,6 @@ public class SdcCatalogServices { ObjectMapper mapper = new ObjectMapper(); ObjectNode vfResponseNode = (ObjectNode) mapper.readTree(vfcResponse); ArrayNode vfcArrayNode = (ArrayNode) vfResponseNode.get("resources"); - if (vfcArrayNode != null) { for (JsonNode vfcjsonNode : vfcArrayNode) { CldsVfcData currCldsVfcData = new CldsVfcData(); @@ -614,7 +635,7 @@ public class SdcCatalogServices { return (id != null) ? id.replaceAll("\"", "") : ""; } - private List getAlarmCondtionsFromVfc(String vfcResponse) { + private List getAlarmCondtionsFromVfc(String vfcResponse) throws GeneralSecurityException { List cldsAlarmConditionList = new ArrayList<>(); ObjectMapper mapper = new ObjectMapper(); ObjectNode vfcResponseNode; @@ -625,7 +646,6 @@ public class SdcCatalogServices { return cldsAlarmConditionList; } ArrayNode artifactsArrayNode = (ArrayNode) vfcResponseNode.get("artifacts"); - if (artifactsArrayNode != null && artifactsArrayNode.size() > 0) { for (int index = 0; index < artifactsArrayNode.size(); index++) { ObjectNode currArtifactNode = (ObjectNode) artifactsArrayNode.get(index); @@ -660,7 +680,7 @@ public class SdcCatalogServices { } // Method to get the artifact for any particular VF - private List getFieldPathFromVF(String vfResponse) { + private List getFieldPathFromVF(String vfResponse) throws GeneralSecurityException { List cldsVfKPIDataList = new ArrayList<>(); ObjectMapper mapper = new ObjectMapper(); ObjectNode vfResponseNode; @@ -671,7 +691,6 @@ public class SdcCatalogServices { return cldsVfKPIDataList; } 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); @@ -682,7 +701,7 @@ public class SdcCatalogServices { artifactName = artifactNameNode.textValue(); artifactName = artifactName.substring(artifactName.lastIndexOf('.') + 1); } - if (artifactUrlNode != null && "csv".equalsIgnoreCase(artifactName)) { + if (artifactUrlNode != null && "csv".equalsIgnoreCase(artifactName)) { String responsesFromArtifactUrl = getResponsesFromArtifactUrl(artifactUrlNode.textValue()); cldsVfKPIDataList.addAll(parseCsvToGetFieldPath(responsesFromArtifactUrl)); logger.info(responsesFromArtifactUrl); @@ -697,24 +716,19 @@ public class SdcCatalogServices { 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 @@ -759,7 +773,14 @@ public class SdcCatalogServices { cldsAlarmConditionList.add(cldsAlarmCondition); } - public String getResponsesFromArtifactUrl(String artifactsUrl) { + /** + * Get the responses for the current artifact from the artifacts URL. + * + * @param artifactsUrl + * @return + * @throws GeneralSecurityException + */ + public String getResponsesFromArtifactUrl(String artifactsUrl) throws GeneralSecurityException { String hostUrl = refProp.getStringValue("sdc.hostUrl"); String artifactsUrlReworked = artifactsUrl.replaceAll("\"", ""); String artifactUrl = hostUrl + artifactsUrlReworked; @@ -771,27 +792,29 @@ public class SdcCatalogServices { /** * Service to services/resources/artifacts from sdc.Pass alarmConditions as - * true to get alarmconditons from artifact url and else it is false - * + * true to get alarm conditons from artifact url and else it is false + * * @param url * @param alarmConditions * @return + * @throws GeneralSecurityException + * In case of issue when decrypting the SDC password + * */ - public String getCldsServicesOrResourcesBasedOnURL(String url, boolean alarmConditions) { + public String getCldsServicesOrResourcesBasedOnURL(String url, boolean alarmConditions) + throws GeneralSecurityException { Date startTime = new Date(); try { LoggingUtils.setTargetContext("SDC", "getCldsServicesOrResourcesBasedOnURL"); String urlReworked = removeUnwantedBracesFromString(url); URL urlObj = new URL(urlReworked); - HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection(); - String basicAuth = SdcReq.getSdcBasicAuth(refProp); + String basicAuth = sdcReq.getSdcBasicAuth(); conn.setRequestProperty(refProp.getStringValue("sdc.InstanceID"), "CLAMP-Tool"); conn.setRequestProperty("Authorization", basicAuth); conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); conn.setRequestProperty("X-ECOMP-RequestID", LoggingUtils.getRequestId()); conn.setRequestMethod("GET"); - int responseCode = conn.getResponseCode(); logger.info("Sdc resource url - " + urlReworked + " , responseCode=" + responseCode); StringBuilder response; @@ -818,7 +841,6 @@ public class SdcCatalogServices { LoggingUtils.setTimeContext(startTime, new Date()); metricsLogger.info("getCldsServicesOrResourcesBasedOnURL completed"); } - } /** @@ -833,19 +855,15 @@ public class SdcCatalogServices { ObjectMapper mapper = new ObjectMapper(); ObjectNode globalPropsJson; if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) { - // 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 byKpi ObjectNode kpiObjectNode = mapper.createObjectNode(); if (cldsServiceData.getCldsVfs() != null && !cldsServiceData.getCldsVfs().isEmpty()) { @@ -856,7 +874,6 @@ public class SdcCatalogServices { } } byIdObjectNode.putPOJO("byKpi", kpiObjectNode); - // To create byVfc and alarmCondition with vfcResourceUUID ObjectNode vfcResourceUuidObjectNode = mapper.createObjectNode(); if (cldsServiceData.getCldsVfs() != null && !cldsServiceData.getCldsVfs().isEmpty()) { @@ -868,23 +885,17 @@ public class SdcCatalogServices { } } byIdObjectNode.putPOJO("byVfc", vfcResourceUuidObjectNode); - // To create byAlarmCondition with alarmConditionKey List allAlarmConditions = getAllAlarmConditionsFromCldsServiceData(cldsServiceData, "alarmCondition"); ObjectNode alarmCondObjectNodeByAlarmKey = createAlarmCondObjectNodeByAlarmKey(mapper, allAlarmConditions); - byIdObjectNode.putPOJO("byAlarmCondition", alarmCondObjectNodeByAlarmKey); - // To create byAlertDescription with AlertDescription List allAlertDescriptions = getAllAlarmConditionsFromCldsServiceData(cldsServiceData, "alertDescription"); ObjectNode alertDescObjectNodeByAlert = createAlarmCondObjectNodeByAlarmKey(mapper, allAlertDescriptions); - byIdObjectNode.putPOJO("byAlertDescription", alertDescObjectNodeByAlert); - globalPropsJson = decodeGlobalProp(globalProps, mapper); - globalPropsJson.putPOJO("shared", byIdObjectNode); logger.info("value of objNode:" + globalPropsJson); } else { @@ -940,7 +951,6 @@ public class SdcCatalogServices { */ private List getAllAlarmConditionsFromCldsVfData(CldsVfData currCldsVfData, String eventName) { List alarmCondList = new ArrayList<>(); - if (currCldsVfData != null && currCldsVfData.getCldsVfcs() != null && !currCldsVfData.getCldsVfcs().isEmpty()) { for (CldsVfcData currCldsVfcData : currCldsVfData.getCldsVfcs()) { alarmCondList.addAll(getAllAlarmConditionsFromCldsVfcData(currCldsVfcData, eventName)); @@ -962,7 +972,6 @@ public class SdcCatalogServices { private List getAllAlarmConditionsFromCldsVfcData(CldsVfcData currCldsVfcData, String eventName) { List alarmCondList = new ArrayList<>(); - if (currCldsVfcData != null && currCldsVfcData.getCldsAlarmConditions() != null && !currCldsVfcData.getCldsAlarmConditions().isEmpty()) { for (CldsAlarmCondition currCldsAlarmCondition : currCldsVfcData.getCldsAlarmConditions()) { @@ -978,7 +987,6 @@ public class SdcCatalogServices { private ObjectNode createAlarmCondObjectNodeByAlarmKey(ObjectMapper mapper, List cldsAlarmCondList) { ObjectNode alarmCondKeyNode = mapper.createObjectNode(); - if (cldsAlarmCondList != null && !cldsAlarmCondList.isEmpty()) { for (CldsAlarmCondition currCldsAlarmCondition : cldsAlarmCondList) { if (currCldsAlarmCondition != null) { @@ -1022,17 +1030,13 @@ public class SdcCatalogServices { 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); } } @@ -1050,9 +1054,7 @@ public class SdcCatalogServices { if (currCldsVfcData.getCldsAlarmConditions() != null && !currCldsVfcData.getCldsAlarmConditions().isEmpty()) { for (CldsAlarmCondition currCldsAlarmCondition : currCldsVfcData.getCldsAlarmConditions()) { - alarmCondNode.put(currCldsAlarmCondition.getAlarmConditionKey(), - currCldsAlarmCondition.getAlarmConditionKey()); - if ("alarmCondition".equalsIgnoreCase(currCldsAlarmCondition.getEventName())) { + if ("alarmCondition".equalsIgnoreCase(currCldsAlarmCondition.getEventName())) { alarmCondNode.put(currCldsAlarmCondition.getAlarmConditionKey(), currCldsAlarmCondition.getAlarmConditionKey()); } else { @@ -1061,7 +1063,6 @@ public class SdcCatalogServices { } } } - vfcObjectNode.putPOJO("alarmCondition", alarmCondNode); vfcObjectNode.putPOJO("alertDescription", alertDescNode); vfcResourceUuidObjectNode.putPOJO(currCldsVfcData.getVfcInvariantResourceUUID(), vfcObjectNode); @@ -1085,7 +1086,6 @@ public class SdcCatalogServices { */ private ObjectNode createVfcObjectNodeByVfUuid(ObjectMapper mapper, List cldsVfDataList) { ObjectNode vfUuidObjectNode = mapper.createObjectNode(); - if (cldsVfDataList != null && !cldsVfDataList.isEmpty()) { for (CldsVfData currCldsVfData : cldsVfDataList) { if (currCldsVfData != null) { @@ -1094,8 +1094,11 @@ public class SdcCatalogServices { ObjectNode kpiObjectNode = mapper.createObjectNode(); if (currCldsVfData.getCldsVfcs() != null && !currCldsVfData.getCldsVfcs().isEmpty()) { for (CldsVfcData currCldsVfcData : currCldsVfData.getCldsVfcs()) { - vfcUuidNode.put(currCldsVfcData.getVfcInvariantResourceUUID(), - currCldsVfcData.getVfcName()); + if (currCldsVfcData.getCldsAlarmConditions() != null + && !currCldsVfcData.getCldsAlarmConditions().isEmpty()) { + vfcUuidNode.put(currCldsVfcData.getVfcInvariantResourceUUID(), + currCldsVfcData.getVfcName()); + } } } else { vfcUuidNode.put("", ""); @@ -1159,9 +1162,9 @@ public class SdcCatalogServices { } public String updateControlLoopStatusToDcae(String dcaeUrl, String invariantResourceUuid, - String invariantServiceUuid, String artifactName) { + String invariantServiceUuid, String artifactName) throws GeneralSecurityException { String baseUrl = refProp.getStringValue("sdc.serviceUrl"); - String basicAuth = SdcReq.getSdcBasicAuth(refProp); + String basicAuth = sdcReq.getSdcBasicAuth(); String postStatusData = "{ \n" + "\"event\" : \"" + "Created" + "\",\n" + "\"serviceUUID\" : \"" + invariantServiceUuid + "\",\n" + "\"resourceUUID\" :\"" + invariantResourceUuid + "\",\n" + "\"artifactName\" : \"" + artifactName + "\",\n" + "} \n"; @@ -1171,22 +1174,18 @@ public class SdcCatalogServices { url = dcaeUrl + "/closed-loops"; } URL urlObj = new URL(url); - HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection(); conn.setRequestProperty(refProp.getStringValue("sdc.InstanceID"), "CLAMP-Tool"); conn.setRequestProperty("Authorization", basicAuth); conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); conn.setRequestProperty("X-ECOMP-RequestID", LoggingUtils.getRequestId()); conn.setRequestMethod("POST"); - - byte[] postData = SdcReq.stringToByteArray(postStatusData); + byte[] postData = sdcReq.stringToByteArray(postStatusData); try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) { wr.write(postData); } - int responseCode = conn.getResponseCode(); logger.info("responseCode=" + responseCode); - String resp = getResponse(conn); if (resp != null) { return resp; @@ -1203,8 +1202,12 @@ public class SdcCatalogServices { * @param resourceType * The resourceType * @return The list of CldsSdcResourceBasicInfo + * @throws GeneralSecurityException + * In case of issue when decryting the SDC password + * */ - private List getAllSdcVForVfcResourcesBasedOnResourceType(String resourceType) { + private List getAllSdcVForVfcResourcesBasedOnResourceType(String resourceType) + throws GeneralSecurityException { String catalogUrl = refProp.getStringValue("sdc.catalog.url"); String resourceUrl = catalogUrl + "resources?resourceType=" + resourceType; String allSdcVfcResources = getCldsServicesOrResourcesBasedOnURL(resourceUrl, false); @@ -1260,10 +1263,12 @@ public class SdcCatalogServices { * @param locationArtifactName * The location artifact name from where we can get the Artifact * UUID - * + * @throws GeneralSecurityException + * In case of issues to decrypt the SDC password */ public void uploadToSdc(ModelProperties prop, String userid, List sdcReqUrlsList, String formattedSdcReq, - String formattedSdcLocationReq, String artifactName, String locationArtifactName) { + String formattedSdcLocationReq, String artifactName, String locationArtifactName) + throws GeneralSecurityException { logger.info("userid=" + userid); String serviceInvariantUuid = getServiceInvariantUuidFromProps(prop); if (sdcReqUrlsList != null && !sdcReqUrlsList.isEmpty()) { 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 2d327f5da..90bdcb3a1 100644 --- a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java @@ -23,6 +23,9 @@ package org.onap.clamp.clds.client; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + import java.util.List; import org.camunda.bpm.engine.delegate.DelegateExecution; @@ -33,27 +36,23 @@ import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.refprop.RefProp; import org.springframework.beans.factory.annotation.Autowired; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - /** * Send control loop model to dcae proxy. */ public class SdcSendReqDelegate implements JavaDelegate { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - @Autowired - private RefProp refProp; - + private SdcReq sdcReq; @Autowired - private SdcCatalogServices sdcCatalogServices; - - private String baseUrl; - private String artifactType; - private String locationArtifactType; - private String artifactLabel; - private String locationArtifactLabel; + private RefProp refProp; + @Autowired + private SdcCatalogServices sdcCatalogServices; + private String baseUrl; + private String artifactType; + private String locationArtifactType; + private String artifactLabel; + private String locationArtifactLabel; /** * Perform activity. Send to sdc proxy. @@ -69,36 +68,37 @@ public class SdcSendReqDelegate implements JavaDelegate { execution.setVariable("artifactName", artifactName); getSdcAttributes((String) execution.getVariable("controlName")); ModelProperties prop = ModelProperties.create(execution); - String bluprintPayload = SdcReq.formatBlueprint(refProp, prop, docText); - // no need to upload blueprint for Holmes, thus blueprintPayload for Holmes is empty + String bluprintPayload = sdcReq.formatBlueprint(prop, docText); + // no need to upload blueprint for Holmes, thus blueprintPayload for + // Holmes is empty if (!bluprintPayload.isEmpty()) { - String formattedSdcReq = SdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType); + String formattedSdcReq = sdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType); if (formattedSdcReq != null) { execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes()); } - List sdcReqUrlsList = SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution); - - String sdcLocationsPayload = SdcReq.formatSdcLocationsReq(prop, artifactName); + List sdcReqUrlsList = sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution); + String sdcLocationsPayload = sdcReq.formatSdcLocationsReq(prop, artifactName); String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json"; - String formattedSdcLocationReq = SdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName, - locationArtifactLabel, locationArtifactType); + String formattedSdcLocationReq = sdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName, + locationArtifactLabel, locationArtifactType); if (formattedSdcLocationReq != null) { execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes()); } sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq, - artifactName, locationArtifactName); + artifactName, locationArtifactName); } } /** * Method to get sdc service values from properties file. + * * @param controlName */ private void getSdcAttributes(String controlName) { baseUrl = refProp.getStringValue("sdc.serviceUrl"); - artifactLabel = SdcReq + artifactLabel = sdcReq .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName); - locationArtifactLabel = SdcReq + 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 640d3b0cd..38e3b15a0 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 @@ -31,15 +31,14 @@ 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.dataformat.yaml.snakeyaml.Yaml; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.security.GeneralSecurityException; 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; @@ -51,19 +50,23 @@ import org.onap.clamp.clds.model.prop.Global; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.prop.Tca; import org.onap.clamp.clds.model.refprop.RefProp; +import org.onap.clamp.clds.util.CryptoUtils; +import org.springframework.beans.factory.annotation.Autowired; /** * Construct a Sdc request given CLDS objects. */ public class SdcReq { + @Autowired + protected CryptoUtils cryptoUtils; protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcReq.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); + @Autowired + protected RefProp refProp; /** * Format the Blueprint from a Yaml * - * @param refProp - * The RefProp instance containing the Clds config * @param prop * The ModelProperties describing the clds model * @param docText @@ -77,14 +80,9 @@ public class SdcReq { * @throws IOException * In case of issues */ - public static String formatBlueprint(RefProp refProp, ModelProperties prop, String docText) + public String formatBlueprint(ModelProperties prop, String docText) throws JsonParseException, JsonMappingException, IOException { - - Global globalProp = prop.getGlobal(); - String service = globalProp.getService(); - String yamlvalue = getYamlvalue(docText); - String updatedBlueprint = ""; Tca tca = prop.getType(Tca.class); if (tca.isFound()) { @@ -94,7 +92,17 @@ public class SdcReq { return updatedBlueprint; } - public static String formatSdcLocationsReq(ModelProperties prop, String artifactName) { + /** + * Format the SDC Locations Request in the JSON Format + * + * @param prop + * The ModelProperties describing the clds model + * @param artifactName + * The name of the artifact + * + * @return SDC Locations request in the JSON Format + */ + public String formatSdcLocationsReq(ModelProperties prop, String artifactName) { ObjectMapper objectMapper = new ObjectMapper(); Global global = prop.getGlobal(); List locationsList = global.getLocation(); @@ -106,12 +114,27 @@ public class SdcReq { locationObject.put("artifactName", artifactName); locationObject.putPOJO("locations", locationsArrayNode); String locationJsonFormat = locationObject.toString(); - logger.info("Value of locaation Json Artifact:" + locationsArrayNode); + logger.info("Value of location Json Artifact:" + locationsArrayNode); return locationJsonFormat; } - public static String formatSdcReq(String payloadData, String artifactName, String artifactLabel, - String artifactType) throws IOException { + /** + * Format the SDC Request + * + * @param payloadData + * The ModelProperties describing the clds model + * @param artifactName + * The name of the artifact + * @param artifactLabel + * The Label of the artifact + * @param artifactType + * The type of the artifact + * @return formatted SDC Request + * @throws IOException + * In case of issues + */ + public String formatSdcReq(String payloadData, String artifactName, String artifactLabel, String artifactType) + throws IOException { logger.info("artifact=" + payloadData); String base64Artifact = base64Encode(payloadData); return "{ \n" + "\"payloadData\" : \"" + base64Artifact + "\",\n" + "\"artifactLabel\" : \"" + artifactLabel @@ -120,7 +143,16 @@ public class SdcReq { + "} \n"; } - public static String getSdcReqUrl(ModelProperties prop, String url) { + /** + * Get the SDC Request URL + * + * @param prop + * The ModelProperties describing the clds model + * @param url + * url + * @return SDC Request URL + */ + public String getSdcReqUrl(ModelProperties prop, String url) { Global globalProps = prop.getGlobal(); String serviceUUID = ""; String resourceInstanceName = ""; @@ -143,13 +175,14 @@ public class SdcReq { * @param prop * @param baseUrl * @param sdcCatalogServices + * @param execution * @return + * @throws GeneralSecurityException */ - public static List getSdcReqUrlsList(ModelProperties prop, String baseUrl, - SdcCatalogServices sdcCatalogServices, DelegateExecution execution) { + public List getSdcReqUrlsList(ModelProperties prop, String baseUrl, SdcCatalogServices sdcCatalogServices, + DelegateExecution execution) throws GeneralSecurityException { // TODO : refact and regroup with very similar code List urlList = new ArrayList<>(); - Global globalProps = prop.getGlobal(); if (globalProps != null) { if (globalProps.getService() != null) { @@ -178,7 +211,6 @@ public class SdcReq { } } } - return urlList; } @@ -190,7 +222,7 @@ public class SdcReq { * @param inText * @return */ - public static String normalizeResourceInstanceName(String inText) { + public String normalizeResourceInstanceName(String inText) { return inText.replace(" ", "").replace("-", "").replace(".", "").toLowerCase(); } @@ -200,7 +232,7 @@ public class SdcReq { * @param data * @return */ - public static String calculateMD5ByString(String data) { + public String calculateMD5ByString(String data) { String calculatedMd5 = DigestUtils.md5Hex(data); // encode base-64 result return base64Encode(calculatedMd5.getBytes()); @@ -212,7 +244,7 @@ public class SdcReq { * @param inText * @return */ - public static String base64Encode(String inText) { + public String base64Encode(String inText) { return base64Encode(stringToByteArray(inText)); } @@ -222,7 +254,7 @@ public class SdcReq { * @param inText * @return */ - public static byte[] stringToByteArray(String inText) { + public byte[] stringToByteArray(String inText) { return inText.getBytes(StandardCharsets.UTF_8); } @@ -232,7 +264,7 @@ public class SdcReq { * @param bytes * @return */ - public static String base64Encode(byte[] bytes) { + public String base64Encode(byte[] bytes) { Base64.Encoder encoder = Base64.getEncoder(); return encoder.encodeToString(bytes); } @@ -241,12 +273,15 @@ public class SdcReq { * Return SDC id and pw as a HTTP Basic Auth string (for example: Basic * dGVzdDoxMjM0NTY=). * - * @return + * @return The String with Basic Auth and password + * @throws GeneralSecurityException + * In case of issue when decryting the SDC password */ - public static String getSdcBasicAuth(RefProp refProp) { + public String getSdcBasicAuth() throws GeneralSecurityException { String sdcId = refProp.getStringValue("sdc.serviceUsername"); String sdcPw = refProp.getStringValue("sdc.servicePassword"); - String idPw = base64Encode(sdcId + ":" + sdcPw); + String password = cryptoUtils.decrypt(sdcPw); + String idPw = base64Encode(sdcId + ":" + password); return "Basic " + idPw; } @@ -257,7 +292,7 @@ public class SdcReq { * @return * @throws IOException */ - public static String getYamlvalue(String docText) throws IOException { + public String getYamlvalue(String docText) throws IOException { ObjectMapper objectMapper = new ObjectMapper(); String yamlFileValue = ""; ObjectNode root = objectMapper.readValue(docText, ObjectNode.class); diff --git a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java index a27cc69ba..3790e235f 100644 --- a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java @@ -23,9 +23,10 @@ package org.onap.clamp.clds.config; +import java.security.GeneralSecurityException; + import javax.sql.DataSource; -import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -33,15 +34,17 @@ import org.springframework.context.annotation.Primary; @Configuration public class CamundaEngineConfiguration { - /** - * Camunda Identity databse DataSource configuration + * Camunda Identity database DataSource configuration + * + * @return + * @throws GeneralSecurityException + * In case of issue during the decoding of the password */ @Primary @Bean(name = "camundaBpmDataSource") @ConfigurationProperties(prefix = "spring.datasource.camunda") public DataSource dataSource() { - return DataSourceBuilder.create().build(); + return new EncodedPasswordBasicDataSource(); } - } diff --git a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java index 6b7d337ec..0c73ac71f 100644 --- a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java @@ -26,6 +26,7 @@ package org.onap.clamp.clds.config; import com.att.ajsc.common.AjscProvider; import com.att.ajsc.common.AjscService; +import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.List; @@ -44,12 +45,12 @@ import org.onap.clamp.clds.client.SdcCatalogServices; import org.onap.clamp.clds.client.SdcSendReqDelegate; import org.onap.clamp.clds.client.TcaPolicyDelegate; import org.onap.clamp.clds.client.TcaPolicyDeleteDelegate; +import org.onap.clamp.clds.client.req.SdcReq; import org.onap.clamp.clds.dao.CldsDao; import org.onap.clamp.clds.model.refprop.RefProp; import org.onap.clamp.clds.transform.XslTransformer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -59,17 +60,18 @@ import org.springframework.context.annotation.Profile; @Configuration @Profile("clamp-default") public class CldsConfiguration { - @Autowired private ApplicationContext context; /** * Clds Identity database DataSource configuration + * + * @return */ @Bean(name = "cldsDataSource") @ConfigurationProperties(prefix = "spring.datasource.cldsdb") public DataSource cldsDataSource() { - return DataSourceBuilder.create().build(); + return new EncodedPasswordBasicDataSource(); } @Bean(name = "jaxrsProviders") @@ -101,6 +103,11 @@ public class CldsConfiguration { return new RefProp(); } + @Bean + public SdcReq getSdcReq() { + return new SdcReq(); + } + @Bean public PolicyClient getPolicyClient() { return new PolicyClient(); @@ -160,5 +167,4 @@ public class CldsConfiguration { public HolmesPolicyDeleteDelegate getHolmesPolicyDeleteDelegate() { return new HolmesPolicyDeleteDelegate(); } - } \ No newline at end of file diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java index 19e3caa39..157063456 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java @@ -24,12 +24,15 @@ package org.onap.clamp.clds.service; import com.att.ajsc.common.AjscService; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import java.io.IOException; import java.io.InputStream; +import java.security.GeneralSecurityException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -39,6 +42,7 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; import javax.annotation.PostConstruct; +import javax.ws.rs.BadRequestException; import javax.ws.rs.Consumes; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; @@ -62,11 +66,13 @@ import org.onap.clamp.clds.client.SdcCatalogServices; import org.onap.clamp.clds.dao.CldsDao; import org.onap.clamp.clds.exception.CldsConfigException; import org.onap.clamp.clds.exception.SdcCommunicationException; +import org.onap.clamp.clds.exception.policy.PolicyClientException; import org.onap.clamp.clds.model.CldsDBServiceCache; import org.onap.clamp.clds.model.CldsEvent; import org.onap.clamp.clds.model.CldsHealthCheck; import org.onap.clamp.clds.model.CldsInfo; import org.onap.clamp.clds.model.CldsModel; +import org.onap.clamp.clds.model.CldsModelProp; import org.onap.clamp.clds.model.CldsSdcResource; import org.onap.clamp.clds.model.CldsSdcServiceDetail; import org.onap.clamp.clds.model.CldsSdcServiceInfo; @@ -74,6 +80,7 @@ import org.onap.clamp.clds.model.CldsServiceData; import org.onap.clamp.clds.model.CldsTemplate; import org.onap.clamp.clds.model.DcaeEvent; import org.onap.clamp.clds.model.ValueItem; +import org.onap.clamp.clds.model.prop.AbstractModelElement; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.refprop.RefProp; import org.onap.clamp.clds.transform.XslTransformer; @@ -94,37 +101,26 @@ import io.swagger.annotations.ApiOperation; @Api(value = "/clds") @Path("/clds") public class CldsService extends SecureServiceBase { - + protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger(); @Autowired - private ApplicationContext appContext; - - private static final String RESOURCE_NAME = "clds-version.properties"; - + private ApplicationContext appContext; + private static final String RESOURCE_NAME = "clds-version.properties"; @Value("${CLDS_PERMISSION_TYPE_CL:permission-type-cl}") - private String cldsPersmissionTypeCl; - + private String cldsPersmissionTypeCl; @Value("${CLDS_PERMISSION_TYPE_CL_MANAGE:permission-type-cl-manage}") - private String cldsPermissionTypeClManage; - + private String cldsPermissionTypeClManage; @Value("${CLDS_PERMISSION_TYPE_CL_EVENT:permission-type-cl-event}") - private String cldsPermissionTypeClEvent; - + private String cldsPermissionTypeClEvent; @Value("${CLDS_PERMISSION_TYPE_FILTER_VF:permission-type-filter-vf}") - private String cldsPermissionTypeFilterVf; - + private String cldsPermissionTypeFilterVf; @Value("${CLDS_PERMISSION_TYPE_TEMPLATE:permission-type-template}") - private String cldsPermissionTypeTemplate; - + private String cldsPermissionTypeTemplate; @Value("${CLDS_PERMISSION_INSTANCE:dev}") - private String cldsPermissionInstance; - - private SecureServicePermission permissionReadCl; - - private SecureServicePermission permissionUpdateCl; - - private SecureServicePermission permissionReadTemplate; - - private SecureServicePermission permissionUpdateTemplate; + private String cldsPermissionInstance; + private SecureServicePermission permissionReadCl; + private SecureServicePermission permissionUpdateCl; + private SecureServicePermission permissionReadTemplate; + private SecureServicePermission permissionUpdateTemplate; @PostConstruct private final void afterConstruction() { @@ -138,25 +134,19 @@ public class CldsService extends SecureServiceBase { @Value("${org.onap.clamp.config.files.globalClds:'classpath:/clds/globalClds.properties'}") private String globalClds; - private Properties globalCldsProperties; - @Autowired private CldsDao cldsDao; @Autowired private RuntimeService runtimeService; @Autowired private XslTransformer cldsBpmnTransformer; - @Autowired private RefProp refProp; - @Autowired private SdcCatalogServices sdcCatalogServices; - @Autowired private DcaeDispatcherServices dcaeDispatcherServices; - @Autowired private DcaeInventoryServices dcaeInventoryServices; @@ -173,23 +163,20 @@ public class CldsService extends SecureServiceBase { * that is currently installed from pom.xml file 3. User permissions * */ - @GET @Path("/cldsInfo") @Produces(MediaType.APPLICATION_JSON) public CldsInfo getCldsInfo() { - CldsInfo cldsInfo = new CldsInfo(); - + Date startTime = new Date(); + LoggingUtils.setRequestContext("CldsService: GET cldsInfo", getPrincipalName()); + LoggingUtils.setTimeContext(startTime, new Date()); // Get the user info cldsInfo.setUserName(getUserName()); - // Get CLDS application version String cldsVersion = ""; Properties props = new Properties(); - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - try (InputStream resourceStream = loader.getResourceAsStream(RESOURCE_NAME)) { props.load(resourceStream); cldsVersion = props.getProperty("clds.version"); @@ -197,22 +184,31 @@ public class CldsService extends SecureServiceBase { logger.error("Exception caught during the clds.version reading", ex); } cldsInfo.setCldsVersion(cldsVersion); - // Get the user list of permissions cldsInfo.setPermissionReadCl(isAuthorizedNoException(permissionReadCl)); cldsInfo.setPermissionUpdateCl(isAuthorizedNoException(permissionUpdateCl)); cldsInfo.setPermissionReadTemplate(isAuthorizedNoException(permissionReadTemplate)); cldsInfo.setPermissionUpdateTemplate(isAuthorizedNoException(permissionUpdateTemplate)); + // audit log + LoggingUtils.setTimeContext(startTime, new Date()); + LoggingUtils.setResponseContext("0", "Get cldsInfo success", this.getClass().getName()); + securityLogger.info("GET cldsInfo completed"); return cldsInfo; } + /** + * REST service that retrieves clds healthcheck information. + * + * @return CldsHealthCheck class containing healthcheck info + */ @GET @Path("/healthcheck") @Produces(MediaType.APPLICATION_JSON) public CldsHealthCheck gethealthcheck() { - CldsHealthCheck cldsHealthCheck = new CldsHealthCheck(); - + Date startTime = new Date(); + LoggingUtils.setRequestContext("CldsService: GET healthcheck", getPrincipalName()); + LoggingUtils.setTimeContext(startTime, new Date()); try { cldsDao.doHealthCheck(); cldsHealthCheck.setHealthCheckComponent("CLDS-APP"); @@ -224,8 +220,11 @@ public class CldsService extends SecureServiceBase { cldsHealthCheck.setHealthCheckStatus("DOWN"); cldsHealthCheck.setDescription("NOT-OK"); } + // audit log + LoggingUtils.setTimeContext(startTime, new Date()); + LoggingUtils.setResponseContext("0", "Get healthcheck success", this.getClass().getName()); + securityLogger.info("GET healthcheck completed"); return cldsHealthCheck; - } /** @@ -253,32 +252,6 @@ public class CldsService extends SecureServiceBase { return model.getBpmnText(); } - /** - * REST service that saves BPMN for a CLDS model by name in the database. - * This is subset of the json putModel. This is only expected to be used for - * testing purposes, not by the UI. - * - * @param modelName - */ - @ApiOperation(value = "Saves BPMN for a CLDS model by name in the database", notes = "This is only expected to be used for testing purposes, not by the UI", response = String.class) - @PUT - @Path("/model/bpmn/{modelName}") - @Consumes(MediaType.TEXT_XML) - public String putBpmnXml(@PathParam("modelName") String modelName, String bpmnText) { - LoggingUtils.setRequestContext("CldsService: PUT model bpmn", getPrincipalName()); - isAuthorized(permissionUpdateCl); - logger.info("PUT bpmnText for modelName={}", modelName); - logger.info("PUT bpmnText={}", bpmnText); - CldsModel cldsModel = CldsModel.retrieve(cldsDao, modelName, true); - cldsModel.setBpmnText(bpmnText); - cldsModel.save(cldsDao, getUserId()); - // audit log - LoggingUtils.setTimeContext(new Date(), new Date()); - LoggingUtils.setResponseContext("0", "Put model bpmn success", this.getClass().getName()); - auditLogger.info("PUT model bpmn completed"); - return "wrote bpmnText for modelName=" + modelName; - } - /** * REST service that retrieves image for a CLDS model name from the * database. This is subset of the json getModel. This is only expected to @@ -304,33 +277,6 @@ public class CldsService extends SecureServiceBase { return model.getImageText(); } - /** - * REST service that saves image for a CLDS model by name in the database. - * This is subset of the json putModel. This is only expected to be used for - * testing purposes, not by the UI. - * - * @param modelName - */ - @ApiOperation(value = "Saves image for a CLDS model by name in the database", notes = "This is only expected to be used for testing purposes, not by the UI", response = String.class) - @PUT - @Path("/model/image/{modelName}") - @Consumes(MediaType.TEXT_XML) - public String putImageXml(@PathParam("modelName") String modelName, String imageText) { - Date startTime = new Date(); - LoggingUtils.setRequestContext("CldsService: PUT model image", getPrincipalName()); - isAuthorized(permissionUpdateCl); - logger.info("PUT iamgeText for modelName={}", modelName); - logger.info("PUT imageText={}", imageText); - CldsModel cldsModel = CldsModel.retrieve(cldsDao, modelName, true); - cldsModel.setImageText(imageText); - cldsModel.save(cldsDao, getUserId()); - // audit log - LoggingUtils.setTimeContext(startTime, new Date()); - LoggingUtils.setResponseContext("0", "Put model image success", this.getClass().getName()); - auditLogger.info("PUT model image completed"); - return "wrote imageText for modelName=" + modelName; - } - /** * REST service that retrieves a CLDS model by name from the database. * @@ -349,7 +295,6 @@ public class CldsService extends SecureServiceBase { CldsModel cldsModel = CldsModel.retrieve(cldsDao, modelName, false); isAuthorizedForVf(cldsModel); cldsModel.setUserAuthorizedToUpdate(isAuthorizedNoException(permissionUpdateCl)); - /** * Checking condition whether our CLDS model can call INventory Method */ @@ -392,7 +337,12 @@ public class CldsService extends SecureServiceBase { logger.info("PUT propText={}", cldsModel.getPropText()); logger.info("PUT imageText={}", cldsModel.getImageText()); cldsModel.setName(modelName); - + try { + duplicateCheckforServiceVf(modelName, cldsModel.getPropText()); + } catch (IOException | BadRequestException e) { + logger.error("Exception occured during duplicate check for service and VF", e); + throw new CldsConfigException(e.getMessage(), e); + } if (cldsModel.getTemplateName() != null) { CldsTemplate template = cldsDao.getTemplate(cldsModel.getTemplateName()); if (template != null) { @@ -441,6 +391,7 @@ public class CldsService extends SecureServiceBase { * @return * @throws TransformerException * @throws ParseException + * @throws GeneralSecurityException */ @ApiOperation(value = "Saves and processes an action for a CLDS model by name", notes = "", response = String.class) @PUT @@ -449,7 +400,7 @@ public class CldsService extends SecureServiceBase { @Produces(MediaType.APPLICATION_JSON) public CldsModel putModelAndProcessAction(@PathParam("action") String action, @PathParam("modelName") String modelName, @QueryParam("test") String test, CldsModel model) - throws TransformerException, ParseException { + throws TransformerException, ParseException, GeneralSecurityException { Date startTime = new Date(); LoggingUtils.setRequestContext("CldsService: Process model action", getPrincipalName()); String actionCd = action.toUpperCase(); @@ -460,7 +411,6 @@ public class CldsService extends SecureServiceBase { String userid = getUserId(); String actionStateCd = CldsEvent.ACTION_STATE_INITIATED; String processDefinitionKey = "clds-process-action-wf"; - logger.info("PUT actionCd={}", actionCd); logger.info("PUT actionStateCd={}", actionStateCd); logger.info("PUT processDefinitionKey={}", processDefinitionKey); @@ -471,7 +421,6 @@ public class CldsService extends SecureServiceBase { logger.info("PUT userid={}", userid); logger.info("PUT getTypeId={}", model.getTypeId()); logger.info("PUT deploymentId={}", model.getDeploymentId()); - if (model.getTemplateName() != null) { CldsTemplate template = cldsDao.getTemplate(model.getTemplateName()); if (template != null) { @@ -483,16 +432,13 @@ public class CldsService extends SecureServiceBase { // save model to db model.setName(modelName); model.save(cldsDao, getUserId()); - // get vars and format if necessary String prop = model.getPropText(); String bpmn = model.getBpmnText(); String docText = model.getDocText(); String controlName = model.getControlName(); - String bpmnJson = cldsBpmnTransformer.doXslTransformToString(bpmn); logger.info("PUT bpmnJson={}", bpmnJson); - // Flag indicates whether it is triggered by Validation Test button from // UI boolean isTest = false; @@ -507,17 +453,14 @@ public class CldsService extends SecureServiceBase { } } logger.info("PUT isTest={}", isTest); - boolean isInsertTestEvent = false; String insertTestEvent = refProp.getStringValue("action.insert.test.event"); if (insertTestEvent != null && insertTestEvent.equalsIgnoreCase("true")) { isInsertTestEvent = true; } logger.info("PUT isInsertTestEvent={}", isInsertTestEvent); - // determine if requested action is permitted model.validateAction(actionCd); - // input variables to camunda process Map variables = new HashMap<>(); variables.put("actionCd", actionCd); @@ -531,17 +474,18 @@ public class CldsService extends SecureServiceBase { variables.put("isInsertTestEvent", isInsertTestEvent); logger.info("modelProp - " + prop); logger.info("docText - " + docText); - - // start camunda process - ProcessInstance pi = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables); - - // log process info - logger.info("Started processDefinitionId={}, processInstanceId={}", pi.getProcessDefinitionId(), - pi.getProcessInstanceId()); - + try { + // start camunda process + ProcessInstance pi = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables); + // log process info + logger.info("Started processDefinitionId={}, processInstanceId={}", pi.getProcessDefinitionId(), + pi.getProcessInstanceId()); + } catch (SdcCommunicationException | PolicyClientException | BadRequestException e) { + logger.error("Exception occured during invoking bpmn process", e); + throw new CldsConfigException(e.getMessage(), e); + } // refresh model info from db (get fresh event info) CldsModel retreivedModel = CldsModel.retrieve(cldsDao, modelName, false); - if (actionCd.equalsIgnoreCase(CldsEvent.ACTION_SUBMIT) || actionCd.equalsIgnoreCase(CldsEvent.ACTION_RESUBMIT)) { // To verify inventory status and modify model status to distribute @@ -552,7 +496,6 @@ public class CldsService extends SecureServiceBase { LoggingUtils.setTimeContext(startTime, new Date()); LoggingUtils.setResponseContext("0", "Process model action success", this.getClass().getName()); auditLogger.info("Process model action completed"); - return retreivedModel; } @@ -579,14 +522,12 @@ public class CldsService extends SecureServiceBase { isAuthorized(permissionEvent); userid = getUserId(); } - // Flag indicates whether it is triggered by Validation Test button from // UI boolean isTest = false; if (test != null && test.equalsIgnoreCase("true")) { isTest = true; } - int instanceCount = 0; if (dcaeEvent.getInstances() != null) { instanceCount = dcaeEvent.getInstances().size(); @@ -595,7 +536,6 @@ public class CldsService extends SecureServiceBase { + " resourceUUID=" + dcaeEvent.getResourceUUID() + " artifactName=" + dcaeEvent.getArtifactName() + " instance count=" + instanceCount + " isTest=" + isTest; logger.info("POST dcae event {}", msgInfo); - if (isTest) { logger.warn("Ignorning test event from DCAE"); } else { @@ -610,24 +550,24 @@ public class CldsService extends SecureServiceBase { LoggingUtils.setTimeContext(startTime, new Date()); LoggingUtils.setResponseContext("0", "Post dcae event success", this.getClass().getName()); auditLogger.info("Post dcae event completed"); - return msgInfo; } /** * REST service that retrieves sdc services + * + * @throws GeneralSecurityException + * In case of issue when decryting the SDC password * - * @throws Exception */ @ApiOperation(value = "Retrieves sdc services", notes = "", response = String.class) @GET @Path("/sdc/services") @Produces(MediaType.APPLICATION_JSON) - public String getSdcServices() { + public String getSdcServices() throws GeneralSecurityException { Date startTime = new Date(); LoggingUtils.setRequestContext("CldsService: GET sdc services", getPrincipalName()); String retStr; - String responseStr = sdcCatalogServices.getSdcServicesInformation(null); try { retStr = createUiServiceFormatJson(responseStr); @@ -635,7 +575,6 @@ public class CldsService extends SecureServiceBase { logger.error("IOException during SDC communication", e); throw new SdcCommunicationException("IOException during SDC communication", e); } - logger.info("value of sdcServices : {}", retStr); // audit log LoggingUtils.setTimeContext(startTime, new Date()); @@ -663,6 +602,9 @@ public class CldsService extends SecureServiceBase { * REST service that retrieves total properties by using invariantUUID based * on refresh and non refresh * + * @throws GeneralSecurityException + * In case of issue when decryting the SDC password + * */ @ApiOperation(value = "Retrieves total properties by using invariantUUID based on refresh and non refresh", notes = "", response = String.class) @GET @@ -670,12 +612,11 @@ public class CldsService extends SecureServiceBase { @Produces(MediaType.APPLICATION_JSON) public String getSdcPropertiesByServiceUUIDForRefresh( @PathParam("serviceInvariantUUID") String serviceInvariantUUID, - @DefaultValue("false") @QueryParam("refresh") String refresh) { + @DefaultValue("false") @QueryParam("refresh") String refresh) throws GeneralSecurityException { Date startTime = new Date(); LoggingUtils.setRequestContext("CldsService: GET sdc properties by uuid", getPrincipalName()); CldsServiceData cldsServiceData = new CldsServiceData(); cldsServiceData.setServiceInvariantUUID(serviceInvariantUUID); - boolean isCldsSdcDataExpired = true; // To getcldsService information from database cache using invariantUUID // only when refresh = false @@ -698,18 +639,14 @@ public class CldsService extends SecureServiceBase { cldsServiceData.setCldsServiceCache(cldsDao, cldsDBServiceCache); } } - // filter out VFs the user is not authorized for cldsServiceData.filterVfs(this); - // format retrieved data into properties json String sdcProperties = sdcCatalogServices.createPropertiesObjectByUUID(getGlobalCldsString(), cldsServiceData); - // audit log LoggingUtils.setTimeContext(startTime, new Date()); LoggingUtils.setResponseContext("0", "Get sdc properties by uuid success", this.getClass().getName()); auditLogger.info("GET sdc properties by uuid completed"); - return sdcProperties; } @@ -763,7 +700,6 @@ public class CldsService extends SecureServiceBase { logger.info("value of cldsserviceiNfolist: {}", rawList); if (rawList != null && !rawList.isEmpty()) { List cldsSdcServiceInfoList = sdcCatalogServices.removeDuplicateServices(rawList); - for (CldsSdcServiceInfo currCldsSdcServiceInfo : cldsSdcServiceInfoList) { if (currCldsSdcServiceInfo != null) { invariantIdServiceNode.put(currCldsSdcServiceInfo.getInvariantUUID(), @@ -785,7 +721,6 @@ public class CldsService extends SecureServiceBase { */ ObjectNode serviceObjectNode = createEmptyVfAlarmObject(mapper); ObjectNode vfObjectNode = mapper.createObjectNode(); - /** * to create json with vf and vfresourceId */ @@ -793,7 +728,6 @@ public class CldsService extends SecureServiceBase { serviceObjectNode.putPOJO(cldsSdcServiceDetail.getInvariantUUID(), vfObjectNode); ObjectNode byServiceBasicObjetNode = mapper.createObjectNode(); byServiceBasicObjetNode.putPOJO("byService", serviceObjectNode); - /** * to create json with VFC Node */ @@ -827,7 +761,6 @@ public class CldsService extends SecureServiceBase { List rawCldsSdcResourceList) { ObjectNode vfNode = mapper.createObjectNode(); vfNode.put("", ""); - // To remove repeated resource instance name from // resourceInstanceList List cldsSdcResourceList = sdcCatalogServices @@ -843,7 +776,6 @@ public class CldsService extends SecureServiceBase { } } vfObjectNode2.putPOJO("vf", vfNode); - /** * creating location json object using properties file value */ @@ -857,7 +789,6 @@ public class CldsService extends SecureServiceBase { "Unable to load ui.location.default JSON in clds-references.properties properly", e); } vfObjectNode2.putPOJO("location", locationJsonNode); - /** * creating alarm json object using properties file value */ @@ -872,7 +803,6 @@ public class CldsService extends SecureServiceBase { e); } vfObjectNode2.putPOJO("alarmCondition", alarmStringJsonNode); - } private ObjectNode createByVFCObjectNode(ObjectMapper mapper, List cldsSdcResourceList) { @@ -901,7 +831,13 @@ public class CldsService extends SecureServiceBase { @QueryParam("test") String test, CldsModel model) throws IOException { Date startTime = new Date(); LoggingUtils.setRequestContext("CldsService: Deploy model", getPrincipalName()); - String deploymentId = "closedLoop_" + UUID.randomUUID() + "_deploymentId"; + String deploymentId = ""; + // If model is already deployed then pass same deployment id + if (model.getDeploymentId() != null && !model.getDeploymentId().isEmpty()) { + deploymentId = model.getDeploymentId(); + } else { + deploymentId = "closedLoop_" + UUID.randomUUID() + "_deploymentId"; + } String createNewDeploymentStatusUrl = dcaeDispatcherServices.createNewDeployment(deploymentId, model.getTypeId()); String operationStatus = "processing"; @@ -995,4 +931,27 @@ public class CldsService extends SecureServiceBase { throw new CldsConfigException("Unable to load the globalClds due to an exception", e); } } + + private void duplicateCheckforServiceVf(String modelName, String modelPropText) throws IOException { + JsonNode modelJson = new ObjectMapper().readTree(modelPropText); + JsonNode globalNode = modelJson.get("global"); + String service = AbstractModelElement.getValueByName(globalNode, "service"); + List resourceVf = AbstractModelElement.getValuesByName(globalNode, "vf"); + if (resourceVf != null && !resourceVf.isEmpty()) { + List cldsModelPropList = cldsDao.getAllModelProperties(); + for (CldsModelProp cldsModelProp : cldsModelPropList) { + JsonNode currentJson = new ObjectMapper().readTree(cldsModelProp.getPropText()); + JsonNode currentNode = currentJson.get("global"); + String currentService = AbstractModelElement.getValueByName(currentNode, "service"); + List currentVf = AbstractModelElement.getValuesByName(currentNode, "vf"); + if (currentVf != null && !currentVf.isEmpty()) { + if (!modelName.equalsIgnoreCase(cldsModelProp.getName()) && service.equalsIgnoreCase(currentService) + && resourceVf.get(0).equalsIgnoreCase(currentVf.get(0))) { + throw new BadRequestException("Same service/VF already exists in " + cldsModelProp.getName() + + " model, please select different service/VF."); + } + } + } + } + } } diff --git a/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java b/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java index acbd8bbd4..70ba32f58 100644 --- a/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java +++ b/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java @@ -27,6 +27,7 @@ import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; import java.security.Principal; +import java.util.Date; import javax.ws.rs.NotAuthorizedException; import javax.ws.rs.core.Context; @@ -40,6 +41,7 @@ import org.onap.clamp.clds.util.LoggingUtils; public abstract class SecureServiceBase { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SecureServiceBase.class); protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); + protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger(); // By default we'll set it to a default handler private static UserNameHandler userNameHandler = new DefaultUserNameHandler(); @@ -63,7 +65,10 @@ public abstract class SecureServiceBase { */ public String getUserName() { String name = userNameHandler.retrieveUserName(securityContext); - logger.debug("userName={}", name); + Date startTime = new Date(); + LoggingUtils.setTargetContext("CLDS", "getUserName"); + LoggingUtils.setTimeContext(startTime, new Date()); + securityLogger.debug("User logged into the CLDS system={}", name); return name; } @@ -100,30 +105,33 @@ public abstract class SecureServiceBase { */ public boolean isAuthorized(SecureServicePermission inPermission) throws NotAuthorizedException { boolean authorized = false; - logger.debug("checking if {} has permission: {}", getPrincipalName(), inPermission); + + Date startTime = new Date(); + LoggingUtils.setTargetContext("CLDS", "isAuthorized"); + LoggingUtils.setTimeContext(startTime, new Date()); + + securityLogger.debug("checking if {} has permission: {}", getPrincipalName(), inPermission); + // check if the user has the permission key or the permission key with a // combination of all instance and/or all action. if (securityContext.isUserInRole(inPermission.getKey())) { - logger.info("{} authorized for permission: {}", getPrincipalName(), inPermission.getKey()); + securityLogger.info("{} authorized for permission: {}", getPrincipalName(), inPermission.getKey()); authorized = true; // the rest of these don't seem to be required - isUserInRole method // appears to take * as a wildcard } else if (securityContext.isUserInRole(inPermission.getKeyAllInstance())) { - logger.info("{} authorized because user has permission with * for instance: {}", getPrincipalName(), - inPermission.getKey()); + securityLogger.info("{} authorized because user has permission with * for instance: {}", getPrincipalName(), inPermission.getKey()); authorized = true; } else if (securityContext.isUserInRole(inPermission.getKeyAllInstanceAction())) { - logger.info("{} authorized because user has permission with * for instance and * for action: {}", - getPrincipalName(), inPermission.getKey()); + securityLogger.info("{} authorized because user has permission with * for instance and * for action: {}", getPrincipalName(), inPermission.getKey()); authorized = true; } else if (securityContext.isUserInRole(inPermission.getKeyAllAction())) { - logger.info("{} authorized because user has permission with * for action: {}", getPrincipalName(), - inPermission.getKey()); + securityLogger.info("{} authorized because user has permission with * for action: {}", getPrincipalName(), inPermission.getKey()); authorized = true; } else { String msg = getPrincipalName() + " does not have permission: " + inPermission; LoggingUtils.setErrorContext("100", "Authorization Error"); - logger.warn(msg); + securityLogger.warn(msg); throw new NotAuthorizedException(msg); } return authorized; @@ -144,29 +152,32 @@ public abstract class SecureServiceBase { */ public boolean isAuthorizedNoException(SecureServicePermission inPermission) { boolean authorized = false; - logger.debug("checking if {} has permission: {}", getPrincipalName(), inPermission); + + securityLogger.debug("checking if {} has permission: {}", getPrincipalName(), inPermission); + Date startTime = new Date(); + LoggingUtils.setTargetContext("CLDS", "isAuthorizedNoException"); + LoggingUtils.setTimeContext(startTime, new Date()); + // check if the user has the permission key or the permission key with a // combination of all instance and/or all action. if (securityContext.isUserInRole(inPermission.getKey())) { - logger.info("{} authorized for permission: {}", getPrincipalName(), inPermission.getKey()); + securityLogger.info("{} authorized for permission: {}", getPrincipalName(), inPermission.getKey()); authorized = true; // the rest of these don't seem to be required - isUserInRole method // appears to take * as a wildcard } else if (securityContext.isUserInRole(inPermission.getKeyAllInstance())) { - logger.info("{} authorized because user has permission with * for instance: {}", getPrincipalName(), - inPermission.getKey()); + securityLogger.info("{} authorized because user has permission with * for instance: {}", getPrincipalName(),inPermission.getKey()); authorized = true; } else if (securityContext.isUserInRole(inPermission.getKeyAllInstanceAction())) { - logger.info("{} authorized because user has permission with * for instance and * for action: {}", - getPrincipalName(), inPermission.getKey()); + securityLogger.info("{} authorized because user has permission with * for instance and * for action: {}", getPrincipalName(), inPermission.getKey()); authorized = true; } else if (securityContext.isUserInRole(inPermission.getKeyAllAction())) { - logger.info("{} authorized because user has permission with * for action: {}", getPrincipalName(), - inPermission.getKey()); + securityLogger.info("{} authorized because user has permission with * for action: {}", getPrincipalName(), inPermission.getKey()); authorized = true; } else { String msg = getPrincipalName() + " does not have permission: " + inPermission; LoggingUtils.setErrorContext("100", "Authorization Error"); + securityLogger.warn(msg); logger.warn(msg); } return authorized; diff --git a/src/main/java/org/onap/clamp/clds/util/CryptoUtils.java b/src/main/java/org/onap/clamp/clds/util/CryptoUtils.java new file mode 100644 index 000000000..fd4d1b15c --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/util/CryptoUtils.java @@ -0,0 +1,116 @@ +/*- + * ============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.util; + +import java.security.GeneralSecurityException; + +import javax.annotation.PostConstruct; +import javax.crypto.Cipher; +import javax.crypto.spec.SecretKeySpec; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +/** + * CryptoUtils for encrypting/decrypting string based on a Key defined in + * application.properties (Spring config file). + * + */ +@Component("CryptoUtils") +public final class CryptoUtils { + public static final String AES = "AES"; + public static final String KEY_PARAM = "org.onap.clamp.encryption.aes.key"; + @Autowired + private Environment springEnv; + private SecretKeySpec secretKeySpec; + + /** + * Initialize Method + * + */ + @PostConstruct + public void init() { + secretKeySpec = getSecretKeySpec(springEnv.getProperty(KEY_PARAM)); + } + + /** + * Encrypt a value based on the Clamp Encryption Key. + * + * @param value + * @return The encrypted string + * @throws GeneralSecurityException + * In case of issue with the encryption + */ + public String encrypt(String value) throws GeneralSecurityException { + Cipher cipher = Cipher.getInstance(CryptoUtils.AES); + cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, cipher.getParameters()); + byte[] encrypted = cipher.doFinal(value.getBytes()); + return byteArrayToHexString(encrypted); + } + + /** + * Decrypt a value. + * + * @param message + * The encrypted string that must be decrypted using the Clamp + * Encryption Key + * @return The String decrypted + * @throws GeneralSecurityException + * In case of issue with the encryption + */ + public String decrypt(String message) throws GeneralSecurityException { + Cipher cipher = Cipher.getInstance(CryptoUtils.AES); + cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); + byte[] decrypted = cipher.doFinal(hexStringToByteArray(message)); + return new String(decrypted); + } + + private SecretKeySpec getSecretKeySpec(String keyString) { + byte[] key = hexStringToByteArray(keyString); + return new SecretKeySpec(key, CryptoUtils.AES); + } + + private String byteArrayToHexString(byte[] b) { + StringBuilder sb = new StringBuilder(b.length * 2); + for (int i = 0; i < b.length; i++) { + int v = b[i] & 0xff; + if (v < 16) { + sb.append('0'); + } + sb.append(Integer.toHexString(v)); + } + return sb.toString().toUpperCase(); + } + + private byte[] hexStringToByteArray(String s) { + byte[] b = new byte[s.length() / 2]; + for (int i = 0; i < b.length; i++) { + int index = i * 2; + int v = Integer.parseInt(s.substring(index, index + 2), 16); + b[i] = (byte) v; + } + return b; + } +} diff --git a/src/main/java/org/onap/clamp/clds/workflow/ProcessRequestDelegate.java b/src/main/java/org/onap/clamp/clds/workflow/ProcessRequestDelegate.java index 19bdcaf98..a5d84bb64 100644 --- a/src/main/java/org/onap/clamp/clds/workflow/ProcessRequestDelegate.java +++ b/src/main/java/org/onap/clamp/clds/workflow/ProcessRequestDelegate.java @@ -21,35 +21,21 @@ * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ -/* Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package org.onap.clamp.clds.workflow; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + import org.camunda.bpm.engine.delegate.DelegateExecution; import org.camunda.bpm.engine.delegate.JavaDelegate; import org.springframework.stereotype.Component; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - @Component public class ProcessRequestDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(ProcessRequestDelegate.class); + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(ProcessRequestDelegate.class); protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); - // @Override @Override public void execute(DelegateExecution execution) throws Exception { logger.info("Processing request by '" + execution.getVariable("customerId") + "'..."); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ae5d31a98..8155cb2b2 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -96,7 +96,7 @@ kubernetes.namespace=com-att-ajsc spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 spring.datasource.camunda.username=camunda -spring.datasource.camunda.password=ndMSpw4CAM +spring.datasource.camunda.password=D75B89195FD913848EA11416F755390E spring.datasource.camunda.validationQuery=SELECT 1 spring.datasource.camunda.validationQueryTimeout=20000 spring.datasource.camunda.validationInterval=30000 @@ -117,7 +117,7 @@ camunda.bpm.database.schema-update=false spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 spring.datasource.cldsdb.username=clds -spring.datasource.cldsdb.password=sidnnd83K +spring.datasource.cldsdb.password=035F8819FEBB754F3C99ECCCC1259850 spring.datasource.cldsdb.validationQuery=SELECT 1 spring.datasource.cldsdb.validationQueryTimeout=20000 spring.datasource.cldsdb.validationInterval=30000 @@ -144,6 +144,7 @@ org.onap.clamp.config.files.cldsReference=classpath:/clds/clds-reference.propert org.onap.clamp.config.files.cldsPolicyConfig=classpath:/clds/clds-policy-config.properties org.onap.clamp.config.files.cldsUsers=classpath:/clds/clds-users.json org.onap.clamp.config.files.globalClds=classpath:/clds/globalClds.properties +org.onap.clamp.encryption.aes.key=aa3871669d893c7fb8abbcda31b88b4f #Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case ! CLDS_PERMISSION_TYPE_CL=permission-type-cl diff --git a/src/main/resources/clds/clds-reference.properties b/src/main/resources/clds/clds-reference.properties index 94f6dd2c4..3bf018d3c 100644 --- a/src/main/resources/clds/clds-reference.properties +++ b/src/main/resources/clds/clds-reference.properties @@ -80,7 +80,7 @@ sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/ sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080 sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services sdc.serviceUsername=test -sdc.servicePassword=123456 +sdc.servicePassword=A7CADD84A22398C980847A54D23E24E9 sdc.artifactLabel=blueprintclampcockpit sdc.sdcX-InstanceID=CLAMP sdc.artifactType=DCAE_INVENTORY_BLUEPRINT diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 847031322..a1330e3d2 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,216 +1,257 @@ - - ${module.ajsc.namespace.name} - - - - - - - - INFO - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n - - - - - - - WARN - - ${logDirectory}/CLAMP/error.log - true - - %date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}|%X{RequestId}|%.20thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDescription}|%msg%n - - - 10 - ${logDirectory}/CLAMP/error.%i.log.zip - - - 10MB - - - - - ${logDirectory}/CLAMP/debug.log - true - - %date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}|%X{RequestId}|%.20thread|%.-5level|%logger{36}|%msg%n - - - 10 - ${logDirectory}/CLAMP/debug.%i.log.zip - - - 10MB - - - - - ${logDirectory}/CLAMP/audit.log - true - - %X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n - - - 10 - ${logDirectory}/CLAMP/audit.%i.log.zip - - - 10MB - - - - 256 - - - - - ${logDirectory}/CLAMP/metric.log - true - - %X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n - - - 10 - ${logDirectory}/CLAMP/metric.%i.log.zip - - - 10MB - - - - 256 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.log - - ${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip - - 1 - 9 - - - 5MB - - - "%d [%thread] %-5level %logger{1024} - %msg%n" - - - - - - ${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.log - - ${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip - - 1 - 9 - - - 5MB - - - "%d [%thread] %-5level %logger{1024} - %msg%n" - - - - - - - - - - - - - - - - - - + + ${module.ajsc.namespace.name} + + + + + + + + INFO + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + + + + + + + WARN + + ${logDirectory}/CLAMP/error.log + true + + %date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}|%X{RequestId}|%.20thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDescription}|%msg%n + + + 10 + ${logDirectory}/CLAMP/error.%i.log.zip + + + + 10MB + + + + + ${logDirectory}/CLAMP/debug.log + true + + %date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX",UTC}|%X{RequestId}|%.20thread|%.-5level|%logger{36}|%msg%n + + + 10 + ${logDirectory}/CLAMP/debug.%i.log.zip + + + + 10MB + + + + + ${logDirectory}/CLAMP/audit.log + true + + %X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n + + + + 10 + ${logDirectory}/CLAMP/audit.%i.log.zip + + + + 10MB + + + + 256 + + + + + ${logDirectory}/CLAMP/metric.log + true + + %X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| + %msg%n + + + 10 + ${logDirectory}/CLAMP/metric.%i.log.zip + + + + 10MB + + + + 256 + + + + + + ${logDirectory}/CLAMP/security.log + true + + %X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n + + + + 10 + ${logDirectory}/CLAMP/security.%i.log.zip + + + + 10MB + + + + 256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + + ${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + + 1 + 9 + + + 5MB + + + "%d [%thread] %-5level %logger{1024} - %msg%n" + + + + + + ${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + + ${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + + 1 + 9 + + + 5MB + + + "%d [%thread] %-5level %logger{1024} - %msg%n" + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 deleted file mode 100644 index 497abe0f7..000000000 --- a/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============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.client.req; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.util.ArrayList; -import java.util.List; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.junit.Assert; -import org.junit.Test; -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; - -public class SdcReqTest { - - String baseUrl = "AYBABTU"; - String serviceInvariantUuid = "serviceInvariantUUID"; - - @Test - public void getSdcReqUrlsListNoGlobalPropTest() { - ModelProperties prop = mock(ModelProperties.class); - SdcCatalogServices sdcCatalogServices = mock(SdcCatalogServices.class); - DelegateExecution delegateExecution = mock(DelegateExecution.class); - CldsSdcResource cldsSdcResource = mock(CldsSdcResource.class); - List cldsSdcResources = new ArrayList<>(); - cldsSdcResources.add(cldsSdcResource); - List resourceVf = new ArrayList<>(); - resourceVf.add(serviceInvariantUuid); - - Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - - Global global = mock(Global.class); - when(prop.getGlobal()).thenReturn(global); - Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - - when(global.getService()).thenReturn(serviceInvariantUuid); - Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - - CldsSdcServiceDetail cldsSdcServiceDetail = mock(CldsSdcServiceDetail.class); - when(sdcCatalogServices.getCldsSdcServiceDetailFromJson(null)).thenReturn(cldsSdcServiceDetail); - when(global.getResourceVf()).thenReturn(new ArrayList<>()); - Assert.assertTrue(SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - - when(cldsSdcServiceDetail.getResources()).thenReturn(cldsSdcResources); - Assert.assertTrue(SdcReq.getSdcReqUrlsList(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(cldsSdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUuid); - when(cldsSdcResource.getResourceInstanceName()).thenReturn("Resource instance name"); - List expected = new ArrayList<>(); - expected.add("AYBABTU/null/resourceInstances/resourceinstancename/artifacts"); - Assert.assertEquals(expected, SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution)); - } -} diff --git a/src/test/java/org/onap/clamp/clds/it/CryptoUtilsItCase.java b/src/test/java/org/onap/clamp/clds/it/CryptoUtilsItCase.java new file mode 100644 index 000000000..f03fe83c7 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/it/CryptoUtilsItCase.java @@ -0,0 +1,76 @@ +/*- + * ============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.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.security.GeneralSecurityException; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.clamp.clds.util.CryptoUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +/** + * Test Crypto Utils with Spring. + */ +@RunWith(SpringRunner.class) +@SpringBootTest +@TestPropertySource(locations = "classpath:application-no-camunda.properties") +public class CryptoUtilsItCase { + @Autowired + private CryptoUtils cryptoUtils; + + /** + * This method tests encryption. + * + * @throws GeneralSecurityException + */ + @Test + public final void testEncryption() throws GeneralSecurityException { + final String testData = "This is a test string"; + final String encodedStringExpected = "A5CB112C9F608A220B35AFED08024D98B9653333AF4C9527C2E934DE473F6145"; + String encodedString = cryptoUtils.encrypt(testData); + assertNotNull(encodedString); + assertEquals(encodedStringExpected, encodedString); + } + + /** + * This method tests decryption. + * + * @throws GeneralSecurityException + */ + @Test + public final void testDecryption() throws GeneralSecurityException { + final String decodedStringExpected = "This is a test string"; + final String encodedString = "A5CB112C9F608A220B35AFED08024D98B9653333AF4C9527C2E934DE473F6145"; + String decryptedString = cryptoUtils.decrypt(encodedString); + assertNotNull(decryptedString); + assertEquals(decodedStringExpected, decryptedString); + } +} \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java index 0deae6d31..b684a506f 100644 --- a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java @@ -298,6 +298,11 @@ public class SdcCatalogServicesItCase extends AbstractItCase { SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl, false); + String allCvfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=CVFC"; + Mockito.doReturn(IOUtils.toString( + SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCVFCResources.json"), "UTF-8")) + .when(spy).getCldsServicesOrResourcesBasedOnURL(allCvfcResourcesDetailUrl, false); + String allVfAlarms = refProp.getStringValue("sdc.catalog.url") + "resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153"; Mockito.doReturn(IOUtils.toString( diff --git a/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java new file mode 100644 index 000000000..faff28463 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java @@ -0,0 +1,88 @@ +/*- + * ============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.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.security.GeneralSecurityException; +import java.util.ArrayList; +import java.util.List; + +import org.camunda.bpm.engine.delegate.DelegateExecution; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.clamp.clds.client.SdcCatalogServices; +import org.onap.clamp.clds.client.req.SdcReq; +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.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +@TestPropertySource(locations = "classpath:application-no-camunda.properties") +public class SdcReqItCase { + String baseUrl = "AYBABTU"; + String serviceInvariantUuid = "serviceInvariantUUID"; + @Autowired + private SdcReq sdcReq; + + @Test + public void getSdcReqUrlsListNoGlobalPropTest() throws GeneralSecurityException { + ModelProperties prop = mock(ModelProperties.class); + SdcCatalogServices sdcCatalogServices = mock(SdcCatalogServices.class); + DelegateExecution delegateExecution = mock(DelegateExecution.class); + CldsSdcResource cldsSdcResource = mock(CldsSdcResource.class); + List cldsSdcResources = new ArrayList<>(); + cldsSdcResources.add(cldsSdcResource); + List resourceVf = new ArrayList<>(); + resourceVf.add(serviceInvariantUuid); + Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); + Global global = mock(Global.class); + when(prop.getGlobal()).thenReturn(global); + Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); + when(global.getService()).thenReturn(serviceInvariantUuid); + Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); + CldsSdcServiceDetail cldsSdcServiceDetail = mock(CldsSdcServiceDetail.class); + when(sdcCatalogServices.getCldsSdcServiceDetailFromJson(null)).thenReturn(cldsSdcServiceDetail); + when(global.getResourceVf()).thenReturn(new ArrayList<>()); + Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); + when(cldsSdcServiceDetail.getResources()).thenReturn(cldsSdcResources); + Assert.assertTrue(sdcReq.getSdcReqUrlsList(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(cldsSdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUuid); + when(cldsSdcResource.getResourceInstanceName()).thenReturn("Resource instance name"); + List expected = new ArrayList<>(); + expected.add("AYBABTU/null/resourceInstances/resourceinstancename/artifacts"); + Assert.assertEquals(expected, sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution)); + } +} diff --git a/src/test/resources/application-no-camunda.properties b/src/test/resources/application-no-camunda.properties index 87e84781c..f8727946d 100644 --- a/src/test/resources/application-no-camunda.properties +++ b/src/test/resources/application-no-camunda.properties @@ -64,7 +64,6 @@ server.contextPath=/ #Modified engine-rest applicationpath spring.jersey.application-path=/engine-rest spring.profiles.active=clamp-default,clamp-spring-authentication -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration #The max number of active threads in this pool server.tomcat.max-threads=200 @@ -95,16 +94,19 @@ kubernetes.namespace=com-att-ajsc #server.port=0 #Camunda Process Engine DataSource connection Details -spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100 -spring.datasource.camunda.username=camunda -spring.datasource.camunda.password=ndMSpw4CAM spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver +spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 +spring.datasource.camunda.username=camunda +spring.datasource.camunda.password=D75B89195FD913848EA11416F755390E spring.datasource.camunda.validationQuery=SELECT 1 spring.datasource.camunda.validationQueryTimeout=20000 -spring.datasource.camunda.validationInterval=60000 +spring.datasource.camunda.validationInterval=30000 spring.datasource.camunda.testWhileIdle = true +spring.datasource.camunda.minIdle = 0 +spring.datasource.camunda.initialSize=0 # Automatically test whether a connection provided is good or not spring.datasource.camunda.testOnBorrow=true +spring.datasource.camunda.ignoreExceptionOnPreLoad=true #Camunda application properties #Camunda history level @@ -117,25 +119,25 @@ camunda.bpm.management.health.camunda.enabled=false camunda.bpm.metrics.enabled=false #clds datasource connection details -spring.datasource.cldsdb.driver-class-name=org.mariadb.jdbc.Driver -spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100 +spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver +spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 spring.datasource.cldsdb.username=clds -spring.datasource.cldsdb.password=sidnnd83K -spring.datasource.cldsdb.driverClassName=com.mysql.jdbc.Driver +spring.datasource.cldsdb.password=035F8819FEBB754F3C99ECCCC1259850 spring.datasource.cldsdb.validationQuery=SELECT 1 spring.datasource.cldsdb.validationQueryTimeout=20000 -spring.datasource.cldsdb.validationInterval=60000 +spring.datasource.cldsdb.validationInterval=30000 spring.datasource.cldsdb.testWhileIdle = true +spring.datasource.cldsdb.minIdle = 0 +spring.datasource.cldsdb.initialSize=0 # Automatically test whether a connection provided is good or not spring.datasource.cldsdb.testOnBorrow=true +spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true #Async Executor default Parameters async.core.pool.size=10 async.max.pool.size=20 async.queue.capacity=500 -org.onap.clamp.config.dcae.url=http://localhost:9000/closedloop-dcae-services - #GRM Edge endpoint details service.name=ajsc6camundademo service.version=1.0.0.0 @@ -147,6 +149,7 @@ org.onap.clamp.config.files.cldsReference=classpath:/clds/clds-reference.propert org.onap.clamp.config.files.cldsPolicyConfig=classpath:/clds/clds-policy-config.properties org.onap.clamp.config.files.cldsUsers=classpath:/clds/clds-users.json org.onap.clamp.config.files.globalClds=classpath:/clds/globalClds.properties +org.onap.clamp.encryption.aes.key=aa3871669d893c7fb8abbcda31b88b4f #Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case ! CLDS_PERMISSION_TYPE_CL=permission-type-cl diff --git a/src/test/resources/example/sdc/sdcCVFCResources.json b/src/test/resources/example/sdc/sdcCVFCResources.json new file mode 100644 index 000000000..790b2d53d --- /dev/null +++ b/src/test/resources/example/sdc/sdcCVFCResources.json @@ -0,0 +1,1166 @@ +[ + { + "uuid": "a0475018-1e7e-4ddd-8bee-33cbf958c2e6", + "invariantUUID": "133dd665-fca8-4e8b-8126-9e74a8d23bf5", + "name": "CLAMP-Dev-nodes.virc_fe_be_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "22db11dd-8f1b-4687-93c1-68d9699cc8dd", + "invariantUUID": "5a637382-5168-4493-a08f-6d446cd8a96b", + "name": "Dev2DevNFODVf-nodes.MultiDeploymentFlavor.VF", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/22db11dd-8f1b-4687-93c1-68d9699cc8dd/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "pa0916" + }, + { + "uuid": "a40da782-3ec4-4138-849f-f9dd4013744e", + "invariantUUID": "f3cd3f9c-f3d0-4028-bb34-8e22e265793c", + "name": "VF-example-nodes.vmx_vpfe", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a40da782-3ec4-4138-849f-f9dd4013744e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "d5711e0f-1e01-4f0f-8bb7-e3805607ddc8", + "invariantUUID": "a3584f36-c6ae-43b9-941f-623f24c34879", + "name": "VNFC_VSP_Test-nodes.rdn", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/d5711e0f-1e01-4f0f-8bb7-e3805607ddc8/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ed852m" + }, + { + "uuid": "c4736acb-5f9b-4918-a188-f166c948f21d", + "invariantUUID": "ab0f8c6f-a323-496b-bbf9-e7c62bba49f1", + "name": "VF-example-nodes.vmx_vre", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c4736acb-5f9b-4918-a188-f166c948f21d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "49c45990-9aca-437a-aeea-cd5d97f4db2d", + "invariantUUID": "13c1808a-1fe0-4282-a97b-b753547844bb", + "name": "VF- DemoR-nodes.vmx_vre", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/49c45990-9aca-437a-aeea-cd5d97f4db2d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "37ee791a-cf0b-4968-8003-9f0b93e4e5e0", + "invariantUUID": "43581fed-d9e2-43c4-90a1-d0ece5731807", + "name": "Dev2devnfod1207.nodes.MultiDeploymentFlavor.VF", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/37ee791a-cf0b-4968-8003-9f0b93e4e5e0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "pa0916" + }, + { + "uuid": "59db0e7d-8800-4b73-8236-42d95e28c865", + "invariantUUID": "60f4b883-f468-4d92-950f-469c9527e7d2", + "name": "sang_vsp-nodes.prx", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/59db0e7d-8800-4b73-8236-42d95e28c865/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "26b7ac12-5cf0-456c-adb4-fb7b5d0d7162", + "invariantUUID": "04d790ef-59cc-4e1f-b3f7-3b19975dfe6a", + "name": "vmme_1710-nodes.vlc", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/26b7ac12-5cf0-456c-adb4-fb7b5d0d7162/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "a056a4ab-4e72-4631-8539-0f4327b5beb0", + "invariantUUID": "c31b5f25-7056-44d0-ba77-c8b21aec5309", + "name": "Dev2devnfod.nodes.MultiDeploymentFlavor.VF", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a056a4ab-4e72-4631-8539-0f4327b5beb0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "pa0916" + }, + { + "uuid": "9d81d5e5-72aa-4ec7-b10e-f55f0369f5b5", + "invariantUUID": "c6078024-e29c-49b3-ab12-008cbdf2cb3f", + "name": "NewSWProductNameField-nodes.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/9d81d5e5-72aa-4ec7-b10e-f55f0369f5b5/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "ad90ed2d-5266-41f3-af43-db9b9f6765c3", + "invariantUUID": "55852a3d-6337-4074-960e-9456ca9b0f70", + "name": "Alina0815VSP-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ad90ed2d-5266-41f3-af43-db9b9f6765c3/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "a790f10d-6915-42a4-ae60-f3525d7dfef2", + "invariantUUID": "ba3112d2-3bfb-4756-93ac-df6cbe1f4d3d", + "name": "Rony0620-nodes.prx_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a790f10d-6915-42a4-ae60-f3525d7dfef2/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "8b774c12-26bd-4dff-a9f8-3e4c46d9d5a0", + "invariantUUID": "8d8a5c56-6ef2-4619-bf85-c6432542ee59", + "name": "Rony0620111-nodes.rdn_2", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/8b774c12-26bd-4dff-a9f8-3e4c46d9d5a0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "c2740411-a801-416a-8d71-d10d5a3d3794", + "invariantUUID": "27f53c0b-8e14-4730-839f-747260f78c64", + "name": "Rony0620111-nodes.oam_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c2740411-a801-416a-8d71-d10d5a3d3794/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "7918ba80-97a2-4ead-87f0-dfc61da405c9", + "invariantUUID": "b43016d3-a6fb-49d1-8594-80091136fc2d", + "name": "madhu_mdns-nodes.heat.dns", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/7918ba80-97a2-4ead-87f0-dfc61da405c9/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "bdbe08db-0471-443e-967a-eb7b619be46b", + "invariantUUID": "71bda11f-c327-418e-9654-a64b07963249", + "name": "sang_vsp-nodes.rdn", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/bdbe08db-0471-443e-967a-eb7b619be46b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "0e997760-1d6d-4afc-b9ab-6c2a94807463", + "invariantUUID": "0b85eb07-f67a-49a5-9e8f-28e7273c42af", + "name": "New_vendor_mdns-nodes.heat.dns", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/0e997760-1d6d-4afc-b9ab-6c2a94807463/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "e47dccd6-a23c-4685-a21b-b57d7c5a7007", + "invariantUUID": "c68fb097-69eb-451b-8ad8-3ff80572dae3", + "name": "vmme_1710-nodes.gpb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e47dccd6-a23c-4685-a21b-b57d7c5a7007/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "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" + }, + { + "uuid": "c01cc6f1-4109-4498-b6c1-2cba7140a8b0", + "invariantUUID": "6d31b4ab-182e-4066-9271-b3bb49566a2e", + "name": "VNFC_VSP_Test-nodes.prx", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c01cc6f1-4109-4498-b6c1-2cba7140a8b0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ed852m" + }, + { + "uuid": "0457dd05-f754-48f8-8997-3819c1abbdac", + "invariantUUID": "07bc0b8d-ddf8-4f4a-98ed-8e4192df99a5", + "name": "CVFC1-nodes.pps", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/0457dd05-f754-48f8-8997-3819c1abbdac/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "cba89050-752c-4aac-8cec-6f0463eb8a23", + "invariantUUID": "ac6fab25-abc6-4e0e-ba25-cc2ddd7a51ef", + "name": "LDSA-nodes.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/cba89050-752c-4aac-8cec-6f0463eb8a23/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "93a60704-ce74-4f1e-b845-ddb3acfe8819", + "invariantUUID": "a02a03a8-079f-4c3c-acab-5f1157a4c3fc", + "name": "vmme_1710-nodes.gpb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/93a60704-ce74-4f1e-b845-ddb3acfe8819/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "5ac81105-ff5a-41fd-a84b-2aff8a694d14", + "invariantUUID": "27bb6ae9-b4c8-466a-ba09-38ac56867852", + "name": "Renana-test-nodes.gpb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5ac81105-ff5a-41fd-a84b-2aff8a694d14/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "ba85242a-7910-4501-b8d7-fc47fa9ed902", + "invariantUUID": "e27a8b60-5c64-4407-b82b-7dde70c528ea", + "name": "renana-test2-nodes.gpb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ba85242a-7910-4501-b8d7-fc47fa9ed902/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "dc32e966-81d2-4048-b123-8e91e930b61e", + "invariantUUID": "8f7da555-f4c4-4edd-83ea-913f78a741ac", + "name": "renana-test2-nodes.ncb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/dc32e966-81d2-4048-b123-8e91e930b61e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "fd7fa970-c758-4daa-8cd8-77cbc1dc2604", + "invariantUUID": "ff55ade4-dafa-42f2-bc2a-785e7e3b15ba", + "name": "Rony0620-nodes.rdn_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fd7fa970-c758-4daa-8cd8-77cbc1dc2604/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "9b1b82c1-308c-42b8-8ca3-00e744be4cbf", + "invariantUUID": "46614a9e-ba5c-4e46-a6db-bbcccd8d80ad", + "name": "Rony0620111-nodes.oam_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/9b1b82c1-308c-42b8-8ca3-00e744be4cbf/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "c771d2d4-b5e0-43ce-baa6-020389238484", + "invariantUUID": "0a86d24a-8963-4452-b396-e724fa66c1de", + "name": "Rony0620111-nodes.rdn_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c771d2d4-b5e0-43ce-baa6-020389238484/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "50b5240c-fc4f-4f1e-bd9e-a89f48912b50", + "invariantUUID": "f958fc3b-b922-4527-bdb8-e31f33a77535", + "name": "VNFC_VSP_Test-nodes.oam", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/50b5240c-fc4f-4f1e-bd9e-a89f48912b50/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ed852m" + }, + { + "uuid": "cce30e84-4f25-4712-ae16-6223b81ebe30", + "invariantUUID": "566039a2-07c8-47d4-950c-05b4cc9a1c2f", + "name": "MNSDMZ-Demo-nodes.heat.mnsdmzvfw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/cce30e84-4f25-4712-ae16-6223b81ebe30/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "128b71d0-616c-4ddc-bfc6-831fd07d2b23", + "invariantUUID": "21796132-63ce-43ef-a59a-2bc513f307fe", + "name": "alina_test2-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/128b71d0-616c-4ddc-bfc6-831fd07d2b23/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "2ac67cfc-abc8-4e7a-882f-8594af8a142b", + "invariantUUID": "510f8c68-7581-4fb3-86f5-cfec01b3712e", + "name": "sang_vsp-nodes.oam", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/2ac67cfc-abc8-4e7a-882f-8594af8a142b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "f3264aab-8f59-4942-a118-2663e445e055", + "invariantUUID": "88404161-33c8-4225-9b11-934b2686b005", + "name": "Dev2DevIpAssign_24_07-nodes.pd_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f3264aab-8f59-4942-a118-2663e445e055/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "pa0916" + }, + { + "uuid": "0d094452-1b7d-4b5a-86ff-bce315102473", + "invariantUUID": "60a1acdd-f29e-4f61-a3ec-07de8e1827f5", + "name": "infra-nodes.vaaa", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/0d094452-1b7d-4b5a-86ff-bce315102473/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "dec15871-f6f6-4e44-8a8d-1e30f69ac0d3", + "invariantUUID": "2197d73b-5aa5-4788-a5f5-ec1791425595", + "name": "Rony0620-nodes.rdn_4", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/dec15871-f6f6-4e44-8a8d-1e30f69ac0d3/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "9150f327-801e-4963-b25b-b4583ec55c79", + "invariantUUID": "0ed5371b-1a90-473c-a4f4-4d229a2220cf", + "name": "Rony0620-nodes.oam_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/9150f327-801e-4963-b25b-b4583ec55c79/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "6b143e5e-dfcc-4572-b101-7fcb98c0bdde", + "invariantUUID": "f2be01db-aff3-4456-adbe-4fbdecea3511", + "name": "SimonaFirst0814-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/6b143e5e-dfcc-4572-b101-7fcb98c0bdde/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ss1245" + }, + { + "uuid": "fc93fad1-0133-43c8-8355-9e0797665774", + "invariantUUID": "7d7d720c-a328-4ff1-a9df-e8a3dfef3e1b", + "name": "Simona2Test0814-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fc93fad1-0133-43c8-8355-9e0797665774/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ss1245" + }, + { + "uuid": "24101cfd-f824-4340-916f-a881a203062b", + "invariantUUID": "48f539dd-1edf-40d2-bf36-9f86e1c8a702", + "name": "NFOD_VSP_resource-nodes.MultiDeploymentFlavor.CVFC", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/24101cfd-f824-4340-916f-a881a203062b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "844453e6-46b2-4673-aee7-f0dba8a90218", + "invariantUUID": "96a8385d-a86c-4d37-84fc-f4e916ac1ae4", + "name": "vmme_1710-nodes.fsb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/844453e6-46b2-4673-aee7-f0dba8a90218/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "6e19c4fc-fe71-4fd1-951a-37cdb76016b5", + "invariantUUID": "5c993249-6442-4ca0-8d2f-6ac1d8628957", + "name": "vmme_1710-nodes.ncb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/6e19c4fc-fe71-4fd1-951a-37cdb76016b5/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "8d5cce48-c3cb-4a7d-b94c-f4a40ea13cf6", + "invariantUUID": "34268c2f-4188-47af-8bde-a78add3d2c80", + "name": "New_vendor_mdns-nodes.heat.dns_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/8d5cce48-c3cb-4a7d-b94c-f4a40ea13cf6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "2cb64483-fa56-4599-8752-da98434bfaa0", + "invariantUUID": "0d1fbc01-2a97-4383-8b2e-81e9f6b86ec5", + "name": "renana-dns-nodes.heat.dns", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/2cb64483-fa56-4599-8752-da98434bfaa0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "ca9d0619-51fc-4c62-a653-c22297a7da0d", + "invariantUUID": "26c5b1e8-aa0b-400a-91a7-792de5fd59ed", + "name": "Rony0620-nodes.prx_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ca9d0619-51fc-4c62-a653-c22297a7da0d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "183ca9a3-5e5d-4180-9e16-b89cb19050d6", + "invariantUUID": "9f0ba4ff-766b-4a9a-a652-2d153b1713fe", + "name": "Rony0620-nodes.rdn_3", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/183ca9a3-5e5d-4180-9e16-b89cb19050d6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "a4a0faf3-ec92-425c-8720-2cbd43748348", + "invariantUUID": "45a6581e-9bbf-40d9-a6cf-07330e25a9ff", + "name": "vCTS-Alina-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a4a0faf3-ec92-425c-8720-2cbd43748348/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "140b8590-3d21-474c-9cd2-72d71eae93ac", + "invariantUUID": "4ddeea35-c041-472a-853b-40b8974dd9ca", + "name": "MNSOAM DEMO-nodes.heat.mnsoamvfw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/140b8590-3d21-474c-9cd2-72d71eae93ac/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "2aa34c35-e0b6-4974-89d7-68b0595a67a9", + "invariantUUID": "2aab35d1-61a4-4b08-a69b-a2e472118ea5", + "name": "infra-nodes.vdhcp", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/2aa34c35-e0b6-4974-89d7-68b0595a67a9/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "7fdf044e-7e8b-4a78-b560-1de3709a5748", + "invariantUUID": "9fda9cb6-1d19-4b83-8cb9-2ec6a1fbd72e", + "name": "infra-nodes.vweb", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/7fdf044e-7e8b-4a78-b560-1de3709a5748/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "49632b9c-cb8e-43a3-8aaf-824418e57056", + "invariantUUID": "19a3b039-6c70-4682-b6c6-9d4a0c81f67a", + "name": "vgmux-nodes.vgmux", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/49632b9c-cb8e-43a3-8aaf-824418e57056/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "07d4e7a0-b849-400d-8c9a-3cb77e7dd8b0", + "invariantUUID": "dc87db03-610d-415c-9b4d-2299e34a944f", + "name": "Rony0620111-nodes.rdn_3", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/07d4e7a0-b849-400d-8c9a-3cb77e7dd8b0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "77752274-77c0-430b-a99c-1b4f324fbbe0", + "invariantUUID": "e9367f4e-0346-4fff-996f-309460cd6766", + "name": "Rony0620111-nodes.rdn_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/77752274-77c0-430b-a99c-1b4f324fbbe0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "34236492-9bdf-4014-804d-6067f52bc62d", + "invariantUUID": "e8cea9ef-fe53-453c-a44f-1dd8a1e23fcc", + "name": "CVFC1-nodes.pcm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/34236492-9bdf-4014-804d-6067f52bc62d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "3cc412d3-a6ee-4d3c-acc8-2a1ff7810377", + "invariantUUID": "db337882-2050-45d2-93df-815e686fd9ce", + "name": "CVFC1-nodes.oam", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3cc412d3-a6ee-4d3c-acc8-2a1ff7810377/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "1e55adcd-dabf-432e-b872-f8ba02931b15", + "invariantUUID": "31e1074f-8a61-4834-a7e4-fcb72a1f188c", + "name": "ddd-nodes.fe_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/1e55adcd-dabf-432e-b872-f8ba02931b15/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "62e449b8-0539-450c-a929-e78af95decef", + "invariantUUID": "85f251db-1319-4951-bcdf-d7da9d143469", + "name": "ddd-nodes.be", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/62e449b8-0539-450c-a929-e78af95decef/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "72333ee0-007b-4e98-a097-4bc1da668fc6", + "invariantUUID": "f9257741-42cb-419b-a2d4-97b8bbfe11a8", + "name": "Renana-test-nodes.vlc", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/72333ee0-007b-4e98-a097-4bc1da668fc6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "4de24e5d-9608-45fc-8803-980f93841f89", + "invariantUUID": "0b30ace5-c8d7-431c-944a-9221529dd643", + "name": "renana-test2-nodes.fsb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/4de24e5d-9608-45fc-8803-980f93841f89/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "a5e5d12f-7cc8-4b6a-b1b1-f344a7653b76", + "invariantUUID": "27784c91-39ff-4ed1-b30d-dc5a2f2acf54", + "name": "Renana-test-nodes.ncb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a5e5d12f-7cc8-4b6a-b1b1-f344a7653b76/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "be58ec10-fdda-4436-95db-1f059508e63c", + "invariantUUID": "8694b620-d63c-4e0d-93aa-eb78a7b30836", + "name": "vbrgemu-nodes.vbrgemu", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/be58ec10-fdda-4436-95db-1f059508e63c/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "fb0a4dae-87f6-4c72-897c-aa0c7733bb1d", + "invariantUUID": "c58d67d2-b3b9-43cc-9a37-fd1a3e07533f", + "name": "Rony0620-nodes.rdn_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fb0a4dae-87f6-4c72-897c-aa0c7733bb1d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "eff16637-cc77-4b5e-bb18-e59f4901406b", + "invariantUUID": "f7596e3a-4de9-4e00-9848-193a9f837be7", + "name": "Renana-test-nodes.fsb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/eff16637-cc77-4b5e-bb18-e59f4901406b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "a4d9c48f-177b-498d-a4f2-f727359d930c", + "invariantUUID": "f7d8ca0d-888b-450c-af0f-cee7d6c60bfb", + "name": "Renana-test-nodes.fsb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a4d9c48f-177b-498d-a4f2-f727359d930c/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "a12837b0-336a-473f-b19c-9f711eac89bb", + "invariantUUID": "95f6e77e-bff4-414a-b4e1-05fd278083b0", + "name": "Renana-test-nodes.ncb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/a12837b0-336a-473f-b19c-9f711eac89bb/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "ba665cad-c3fa-4b7b-b49c-e9151e314fff", + "invariantUUID": "a2b7ddb9-d201-42e3-8417-36df684c0606", + "name": "Rony0620111-nodes.prx_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/ba665cad-c3fa-4b7b-b49c-e9151e314fff/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "f577a370-980c-4d28-93d7-6db297260bf6", + "invariantUUID": "c74bce43-ae25-48ab-8d0b-21aaace97443", + "name": "renana-test2-nodes.ncb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f577a370-980c-4d28-93d7-6db297260bf6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "67fc9bfe-5f35-406e-892b-bcd6635d8503", + "invariantUUID": "2e882441-f3a2-4a3d-8ce2-c7fb8e2c96ad", + "name": "renana-test2-nodes.gpb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/67fc9bfe-5f35-406e-892b-bcd6635d8503/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "1ca8c4da-0609-4fe4-86d5-a3e95b326f6d", + "invariantUUID": "d7e5da2d-f19c-4bab-b108-04250bd834e9", + "name": "renana-test2-nodes.fsb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/1ca8c4da-0609-4fe4-86d5-a3e95b326f6d/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "f09d1939-490e-456d-a17c-9e3fe75017aa", + "invariantUUID": "c21c3e6b-0196-43b0-965d-c495b036970d", + "name": "ddd-nodes.fe", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f09d1939-490e-456d-a17c-9e3fe75017aa/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "f502cd24-ee81-446f-87dc-cd4d1924b3d0", + "invariantUUID": "b4955a3a-7d5e-43e8-997a-9f1b6aa88cff", + "name": "infra-nodes.vdns", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/f502cd24-ee81-446f-87dc-cd4d1924b3d0/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "22357844-f903-4252-b9b3-bb21d3190e88", + "invariantUUID": "df1ea6f1-0709-408d-bc46-9ef2dce28d08", + "name": "vbng-nodes.vbng", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/22357844-f903-4252-b9b3-bb21d3190e88/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "5443c9e4-e979-48de-9662-db5e5b0d8473", + "invariantUUID": "f7493b2f-c968-4e2c-bbf4-8fa83e1e0eb0", + "name": "vgw-nodes.vgw", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5443c9e4-e979-48de-9662-db5e5b0d8473/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ml636r" + }, + { + "uuid": "419fd69c-9d1f-4679-9677-88cff351bc13", + "invariantUUID": "dd24130f-dbed-49b9-8d73-945540766db6", + "name": "Rony0620-nodes.rdn_2", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/419fd69c-9d1f-4679-9677-88cff351bc13/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "02eb6606-ba4d-428a-8043-2a57acfc8180", + "invariantUUID": "6ab293e3-3be0-4318-99bd-1235f813e0fa", + "name": "Rony0620111-nodes.prx_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/02eb6606-ba4d-428a-8043-2a57acfc8180/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "9f5fcf0f-013a-429c-807d-325a0ffe1f4e", + "invariantUUID": "913bb2a7-e8f5-41d8-98d5-bc8be4683557", + "name": "AlinaTest-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/9f5fcf0f-013a-429c-807d-325a0ffe1f4e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "3b1050e1-ffef-4e39-9e6e-7f13a3b9c28a", + "invariantUUID": "27d9d366-c241-49f7-b24b-341cc9b1effd", + "name": "Alina0831VSP-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3b1050e1-ffef-4e39-9e6e-7f13a3b9c28a/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "e6f1576a-6ba7-48b9-a72d-c25d6e830b7c", + "invariantUUID": "d293c16b-7576-4422-bf5a-ec205a80381f", + "name": "Renana-test-nodes.gpb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e6f1576a-6ba7-48b9-a72d-c25d6e830b7c/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "c01d30f8-31ee-4e77-90a9-1e6c253e905f", + "invariantUUID": "cabfb49c-e82d-4bbf-b042-debe33041f71", + "name": "renana-test2-nodes.vlc", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c01d30f8-31ee-4e77-90a9-1e6c253e905f/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "9020ebb6-0d56-4355-8308-3b3082d96565", + "invariantUUID": "3ebd6d0e-de0a-4981-9be7-f83855fee828", + "name": "Rony0620-nodes.oam_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/9020ebb6-0d56-4355-8308-3b3082d96565/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "1d746450-e070-4c45-bb49-158537d3246b", + "invariantUUID": "2b4c04b5-13ea-4069-bd80-cd2f1ffabaaf", + "name": "Rony0620111-nodes.rdn_4", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/1d746450-e070-4c45-bb49-158537d3246b/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "el489u" + }, + { + "uuid": "712d2e08-0ca2-4f48-b193-34a887a168c6", + "invariantUUID": "86a03610-7a65-4789-ad34-66af631c2306", + "name": "Shani14.8Software Product-nodes.ltm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/712d2e08-0ca2-4f48-b193-34a887a168c6/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "c13f95f6-7757-4124-a5be-3a7c6ae2bd20", + "invariantUUID": "4255dd9b-6d39-436f-8b80-1b101c261684", + "name": "CVFC1-nodes.psm", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c13f95f6-7757-4124-a5be-3a7c6ae2bd20/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "12e60ab4-7e48-4f6b-a124-f109b50d9f4a", + "invariantUUID": "d2531c7b-fe26-4371-93c6-9630e3f1c920", + "name": "ddd-nodes.smp", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/12e60ab4-7e48-4f6b-a124-f109b50d9f4a/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "fb57af5b-84f2-4baf-b6a8-61062f924cd2", + "invariantUUID": "73690cef-b776-4a29-b6fe-4fc1f871a27c", + "name": "Alina1002VF-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/fb57af5b-84f2-4baf-b6a8-61062f924cd2/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "7f550ae3-1242-4468-b04a-0666946d84aa", + "invariantUUID": "64be47c5-a176-4dbb-9596-e9106e577be7", + "name": "NFOD_CHECKPOINT-nodes.MultiDeploymentFlavor.CVFC", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/7f550ae3-1242-4468-b04a-0666946d84aa/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "3af9b720-144d-4507-aea8-73b49bc243c4", + "invariantUUID": "587e283e-6b8e-4d40-85cc-07285fb88252", + "name": "alaram-nodes.vCTS_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/3af9b720-144d-4507-aea8-73b49bc243c4/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "24ca039c-26e1-4f79-b2a4-660a7a21f752", + "invariantUUID": "d2a36303-93f0-44a3-b96f-f0e1b1580d91", + "name": "Test_SHAY-nodes.vnf", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/24ca039c-26e1-4f79-b2a4-660a7a21f752/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "c0e6a2a1-3fc7-4663-8df7-b0263288f116", + "invariantUUID": "469da957-40a1-44d2-b23c-f90d50ea20fc", + "name": "CVFC1-nodes.ppd", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c0e6a2a1-3fc7-4663-8df7-b0263288f116/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "m08740" + }, + { + "uuid": "e74db726-0ad6-4a6e-be6c-4094df81eafd", + "invariantUUID": "e29b57d8-cbfb-4b37-8aea-7c124671ea03", + "name": "renana_alarm-nodes.heat.dns", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e74db726-0ad6-4a6e-be6c-4094df81eafd/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + }, + { + "uuid": "e49a643b-23a0-4b50-a3c0-a5a60003a958", + "invariantUUID": "b3da7781-0f09-48e1-af15-262e5919141a", + "name": "Simona0912-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e49a643b-23a0-4b50-a3c0-a5a60003a958/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "ss1245" + }, + { + "uuid": "e0941d01-8ec6-448b-80f8-007e8c88ed28", + "invariantUUID": "36aaaafb-9341-4bd3-9ea6-1f7cd4c5f18a", + "name": "demo_1234-nodes.MultiDeploymentFlavor.CVFC", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e0941d01-8ec6-448b-80f8-007e8c88ed28/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "98771c36-da29-4a80-85e9-72e9fbef3286", + "invariantUUID": "741f1b1c-bb27-4e4d-8645-834f357ecf03", + "name": "AlinaVSP1011-nodes.TEST_server", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/98771c36-da29-4a80-85e9-72e9fbef3286/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "af3193" + }, + { + "uuid": "7218a91c-7c13-443f-b085-a10f1593624e", + "invariantUUID": "66326c07-be88-4260-a627-4cab5a9c0bbc", + "name": "vmme_1710-nodes.fsb_1", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/7218a91c-7c13-443f-b085-a10f1593624e/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "5a2c7097-c582-4337-918e-48b58d79dd74", + "invariantUUID": "5e5c0b6c-40c8-4909-bb7c-334e16ad833e", + "name": "vmme_1710-nodes.ncb_0", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/5a2c7097-c582-4337-918e-48b58d79dd74/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "sa997j" + }, + { + "uuid": "e70970f3-aa70-4d6b-9fd4-eb07ff42693f", + "invariantUUID": "84358281-e8c1-4a45-ae2d-e3d797f18fc5", + "name": "VF- DemoR-nodes.vmx_vpfe", + "version": "1.0", + "toscaModelURL": "/sdc/v1/catalog/resources/e70970f3-aa70-4d6b-9fd4-eb07ff42693f/toscaModel", + "category": "Generic", + "subCategory": "Abstract", + "resourceType": "CVFC", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "rh176a" + } +] \ No newline at end of file diff --git a/src/test/resources/https/https-test.properties b/src/test/resources/https/https-test.properties index b0fd639c9..567c79fa4 100644 --- a/src/test/resources/https/https-test.properties +++ b/src/test/resources/https/https-test.properties @@ -94,9 +94,9 @@ kubernetes.namespace=com-att-ajsc #server.port=0 #Camunda Process Engine DataSource connection Details spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver -spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true +spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 spring.datasource.camunda.username=camunda -spring.datasource.camunda.password=ndMSpw4CAM +spring.datasource.camunda.password=D75B89195FD913848EA11416F755390E spring.datasource.camunda.validationQuery=SELECT 1 spring.datasource.camunda.validationQueryTimeout=20000 spring.datasource.camunda.validationInterval=30000 @@ -116,9 +116,9 @@ camunda.bpm.database.schema-update=false #clds datasource connection details spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver -spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true +spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 spring.datasource.cldsdb.username=clds -spring.datasource.cldsdb.password=sidnnd83K +spring.datasource.cldsdb.password=035F8819FEBB754F3C99ECCCC1259850 spring.datasource.cldsdb.validationQuery=SELECT 1 spring.datasource.cldsdb.validationQueryTimeout=20000 spring.datasource.cldsdb.validationInterval=30000 @@ -145,6 +145,7 @@ org.onap.clamp.config.files.cldsReference=classpath:/clds/clds-reference.propert org.onap.clamp.config.files.cldsPolicyConfig=classpath:/clds/clds-policy-config.properties org.onap.clamp.config.files.cldsUsers=classpath:/clds/clds-users.json org.onap.clamp.config.files.globalClds=classpath:/clds/globalClds.properties +org.onap.clamp.encryption.aes.key=aa3871669d893c7fb8abbcda31b88b4f #Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case ! CLDS_PERMISSION_TYPE_CL=permission-type-cl -- cgit 1.2.3-korg From 9ebb9c1aa320e49c581ba1a66202cc2f2bda0c5a Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Wed, 14 Feb 2018 15:30:07 +0100 Subject: Rework the SDC cache Rework the SDC cache that was broken and add unit tests to validate it Issue-ID: CLAMP-85 Change-Id: I43503702733d8f8f0ddbf391f94fb4e5416be98f Signed-off-by: Determe, Sebastien (sd378r) --- src/main/java/org/onap/clamp/clds/dao/CldsDao.java | 22 ++- .../onap/clamp/clds/dao/CldsServiceDataMapper.java | 24 ++- .../onap/clamp/clds/model/CldsDBServiceCache.java | 16 +- .../org/onap/clamp/clds/model/CldsServiceData.java | 27 +--- .../java/org/onap/clamp/clds/it/CldsDaoItCase.java | 37 ++++- .../org/onap/clamp/clds/it/CldsServiceItCase.java | 48 +++++- .../clamp/clds/model/CldsDBServiceCacheTest.java | 67 +++++++++ .../expected-result/sdc-properties-4cc5b45a.json | 161 +++++++++++++++++++++ 8 files changed, 357 insertions(+), 45 deletions(-) create mode 100644 src/test/java/org/onap/clamp/clds/model/CldsDBServiceCacheTest.java create mode 100644 src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/dao/CldsDao.java b/src/main/java/org/onap/clamp/clds/dao/CldsDao.java index 088d47332..5946416ad 100644 --- a/src/main/java/org/onap/clamp/clds/dao/CldsDao.java +++ b/src/main/java/org/onap/clamp/clds/dao/CldsDao.java @@ -354,19 +354,31 @@ public class CldsDao { return template; } + public void clearServiceCache() { + String clearCldsServiceCacheSql = "TRUNCATE clds_service_cache"; + jdbcTemplateObject.execute(clearCldsServiceCacheSql); + } + public CldsServiceData getCldsServiceCache(String invariantUUID) { CldsServiceData cldsServiceData = null; - List cldsServiceDataList = new ArrayList<>(); try { String getCldsServiceSQL = "SELECT * , TIMESTAMPDIFF(SECOND, timestamp, CURRENT_TIMESTAMP()) FROM clds_service_cache where invariant_service_id = ? "; cldsServiceData = jdbcTemplateObject.queryForObject(getCldsServiceSQL, new Object[] { invariantUUID }, new CldsServiceDataMapper()); - logger.info("value of cldsServiceDataList: {}", cldsServiceDataList); + if (cldsServiceData != null) { + logger.info("CldsServiceData found in cache for Service Invariant ID:" + + cldsServiceData.getServiceInvariantUUID()); + return cldsServiceData; + } else { + logger.warn("CldsServiceData not found in cache for Service Invariant ID:" + invariantUUID); + return null; + } } catch (EmptyResultDataAccessException e) { - logger.warn("cache row not found for invariantUUID: " + invariantUUID, e); + logger.info("CldsServiceData not found in cache for Service Invariant ID: " + invariantUUID); + logger.debug("CldsServiceData not found in cache for Service Invariant ID: " + invariantUUID, e); + return null; } - return cldsServiceData; } public void setCldsServiceCache(CldsDBServiceCache cldsDBServiceCache) { @@ -401,7 +413,7 @@ public class CldsDao { * @return list of CldsModelProp */ public List getDeployedModelProperties() { - List cldsModelPropList = new ArrayList(); + List cldsModelPropList = new ArrayList<>(); String modelsSql = "select m.model_id, m.model_name, mp.model_prop_id, mp.model_prop_text FROM model m, model_properties mp, event e " + "WHERE m.model_prop_id = mp.model_prop_id and m.event_id = e.event_id and e.action_cd = 'DEPLOY'"; List> rows = jdbcTemplateObject.queryForList(modelsSql); diff --git a/src/main/java/org/onap/clamp/clds/dao/CldsServiceDataMapper.java b/src/main/java/org/onap/clamp/clds/dao/CldsServiceDataMapper.java index 91d895054..470354a73 100644 --- a/src/main/java/org/onap/clamp/clds/dao/CldsServiceDataMapper.java +++ b/src/main/java/org/onap/clamp/clds/dao/CldsServiceDataMapper.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -27,35 +27,33 @@ import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; import java.io.IOException; -import java.io.InputStream; -import java.io.ObjectInputStream; -import org.apache.commons.io.serialization.ValidatingObjectInputStream; -import java.sql.Blob; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; +import org.apache.commons.io.serialization.ValidatingObjectInputStream; import org.onap.clamp.clds.model.CldsServiceData; +import org.onap.clamp.clds.model.CldsVfData; +import org.onap.clamp.clds.model.CldsVfcData; import org.springframework.jdbc.core.RowMapper; /** * Generic mapper for CldsDBServiceCache */ public final class CldsServiceDataMapper implements RowMapper { + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsDao.class); @Override public CldsServiceData mapRow(ResultSet rs, int rowNum) throws SQLException { CldsServiceData cldsServiceData = new CldsServiceData(); - long age; - age = rs.getLong(5); - Blob blob = rs.getBlob(4); - InputStream is = blob.getBinaryStream(); - try (ValidatingObjectInputStream oip = new ValidatingObjectInputStream(is)) { - oip.accept(CldsServiceData.class); + try (ValidatingObjectInputStream oip = new ValidatingObjectInputStream(rs.getBlob(4).getBinaryStream())) { + oip.accept(CldsServiceData.class, ArrayList.class, CldsVfData.class, CldsVfcData.class); cldsServiceData = (CldsServiceData) oip.readObject(); - cldsServiceData.setAgeOfRecord(age); + cldsServiceData.setAgeOfRecord(rs.getLong(5)); } catch (IOException | ClassNotFoundException e) { - logger.error("Error caught while retrieving cldsServiceData from database", e); + logger.error("Error caught while deserializing cldsServiceData from database", e); + return null; } return cldsServiceData; } diff --git a/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java b/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java index f9a760b77..80e8d8538 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -31,10 +31,16 @@ import java.io.ObjectOutputStream; public class CldsDBServiceCache { - private String invariantId; - private String serviceId; + private String invariantId; + private String serviceId; private InputStream cldsDataInstream; + public CldsDBServiceCache(CldsServiceData cldsServiceData) throws IOException { + setCldsDataInstream(cldsServiceData); + setInvariantId(cldsServiceData.getServiceInvariantUUID()); + setServiceId(cldsServiceData.getServiceUUID()); + } + public String getInvariantId() { return invariantId; } @@ -55,6 +61,10 @@ public class CldsDBServiceCache { return cldsDataInstream; } + public void setCldsDataInstream(InputStream cldsDataInputstream) { + this.cldsDataInstream = cldsDataInputstream; + } + public void setCldsDataInstream(CldsServiceData cldsServiceData) throws IOException { this.cldsDataInstream = getInstreamFromObject(cldsServiceData); } diff --git a/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java b/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java index 943532f02..1a4b4dcf9 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -32,20 +32,17 @@ import java.util.List; import javax.ws.rs.NotAuthorizedException; -import org.onap.clamp.clds.dao.CldsDao; import org.onap.clamp.clds.service.CldsService; public class CldsServiceData implements Serializable { - private static final long serialVersionUID = -9153372664377279423L; - - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsServiceData.class); - protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); - - private String serviceInvariantUUID; - private String serviceUUID; - private Long ageOfRecord; - private List cldsVfs; + private static final long serialVersionUID = -9153372664377279423L; + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsServiceData.class); + protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); + private String serviceInvariantUUID; + private String serviceUUID; + private Long ageOfRecord; + private List cldsVfs; public String getServiceInvariantUUID() { return serviceInvariantUUID; @@ -71,14 +68,6 @@ public class CldsServiceData implements Serializable { this.serviceUUID = serviceUUID; } - public CldsServiceData getCldsServiceCache(CldsDao cldsDao, String invariantServiceUUID) { - return cldsDao.getCldsServiceCache(invariantServiceUUID); - } - - public void setCldsServiceCache(CldsDao cldsDao, CldsDBServiceCache cldsDBServiceCache) { - cldsDao.setCldsServiceCache(cldsDBServiceCache); - } - public Long getAgeOfRecord() { return ageOfRecord; } diff --git a/src/test/java/org/onap/clamp/clds/it/CldsDaoItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsDaoItCase.java index c684d4455..1e9a9ed5e 100644 --- a/src/test/java/org/onap/clamp/clds/it/CldsDaoItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/CldsDaoItCase.java @@ -25,30 +25,35 @@ package org.onap.clamp.clds.it; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import com.att.aft.dme2.internal.apache.commons.lang.RandomStringUtils; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; import java.io.IOException; +import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.List; import javax.ws.rs.NotFoundException; +import org.apache.commons.codec.DecoderException; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.onap.clamp.clds.AbstractItCase; +import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices; import org.onap.clamp.clds.dao.CldsDao; import org.onap.clamp.clds.model.CLDSMonitoringDetails; +import org.onap.clamp.clds.model.CldsDBServiceCache; import org.onap.clamp.clds.model.CldsEvent; import org.onap.clamp.clds.model.CldsModel; +import org.onap.clamp.clds.model.CldsServiceData; import org.onap.clamp.clds.model.CldsTemplate; import org.onap.clamp.clds.util.ResourceFileUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; /** @@ -57,7 +62,6 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class CldsDaoItCase extends AbstractItCase { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsDao.class); @@ -66,6 +70,8 @@ public class CldsDaoItCase extends AbstractItCase { private String bpmnText; private String imageText; private String bpmnPropText; + @Autowired + private SdcCatalogServices sdcCatalogServices; /** * Setup the variable before the tests execution. @@ -161,4 +167,31 @@ public class CldsDaoItCase extends AbstractItCase { assertNotNull(clName.getCloseloopName()); }); } + + @Test + public void testCldsServiceCache() throws GeneralSecurityException, DecoderException, IOException { + CldsServiceData cldsServiceData = sdcCatalogServices + .getCldsServiceDataWithAlarmConditions("4cc5b45a-1f63-4194-8100-cd8e14248c92"); + // Test not in cache so should be null + CldsServiceData cldsServiceDataCache = cldsDao.getCldsServiceCache("4cc5b45a-1f63-4194-8100-cd8e14248c92"); + assertNull(cldsServiceDataCache); + cldsDao.setCldsServiceCache(new CldsDBServiceCache(cldsServiceData)); + cldsServiceDataCache = cldsDao.getCldsServiceCache("4cc5b45a-1f63-4194-8100-cd8e14248c92"); + assertNotNull(cldsServiceDataCache); + assertEquals("56441b4b-0467-41dc-9a0e-e68613838219", cldsServiceDataCache.getServiceUUID()); + assertEquals("4cc5b45a-1f63-4194-8100-cd8e14248c92", cldsServiceDataCache.getServiceInvariantUUID()); + assertEquals(2, cldsServiceDataCache.getCldsVfs().size()); + assertNotNull(cldsServiceDataCache.getAgeOfRecord()); + assertEquals(4, cldsServiceDataCache.getCldsVfs().get(0).getCldsVfcs().size()); + assertEquals("07e266fc-49ab-4cd7-8378-ca4676f1b9ec", + cldsServiceDataCache.getCldsVfs().get(0).getVfInvariantResourceUUID()); + assertEquals(0, cldsServiceDataCache.getCldsVfs().get(0).getCldsKPIList().size()); + // Second update + cldsServiceData.setCldsVfs(null); + cldsDao.setCldsServiceCache(new CldsDBServiceCache(cldsServiceData)); + cldsServiceDataCache = cldsDao.getCldsServiceCache("4cc5b45a-1f63-4194-8100-cd8e14248c92"); + assertNotNull(cldsServiceDataCache); + assertNull(cldsServiceDataCache.getCldsVfs()); + cldsDao.clearServiceCache(); + } } diff --git a/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java index 9dac2dc14..932434de7 100644 --- a/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -26,17 +26,21 @@ package org.onap.clamp.clds.it; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import com.att.aft.dme2.internal.apache.commons.lang.RandomStringUtils; import java.io.IOException; import java.io.InputStream; +import java.security.GeneralSecurityException; import java.security.Principal; import java.util.Properties; import javax.ws.rs.core.SecurityContext; +import org.apache.commons.codec.DecoderException; +import org.json.JSONException; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -46,13 +50,14 @@ import org.onap.clamp.clds.dao.CldsDao; import org.onap.clamp.clds.model.CldsHealthCheck; import org.onap.clamp.clds.model.CldsInfo; import org.onap.clamp.clds.model.CldsModel; +import org.onap.clamp.clds.model.CldsServiceData; import org.onap.clamp.clds.model.CldsTemplate; import org.onap.clamp.clds.service.CldsService; import org.onap.clamp.clds.util.ResourceFileUtil; +import org.skyscreamer.jsonassert.JSONAssert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** @@ -60,7 +65,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; */ @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class CldsServiceItCase extends AbstractItCase { @Autowired @@ -170,4 +174,42 @@ public class CldsServiceItCase extends AbstractItCase { // Verify whether it has been added properly or not assertNotNull(cldsDao.getModel(randomNameModel)); } + + @Test + public void testGetSdcServices() throws GeneralSecurityException, DecoderException, JSONException, IOException { + String result = cldsService.getSdcServices(); + JSONAssert.assertEquals( + ResourceFileUtil.getResourceAsString("example/sdc/expected-result/all-sdc-services.json"), result, + true); + } + + @Test + public void testGetSdcPropertiesByServiceUUIDForRefresh() + throws GeneralSecurityException, DecoderException, JSONException, IOException { + SecurityContext securityContext = Mockito.mock(SecurityContext.class); + Principal principal = Mockito.mock(Principal.class); + Mockito.when(principal.getName()).thenReturn("admin"); + Mockito.when(securityContext.getUserPrincipal()).thenReturn(principal); + Mockito.when(securityContext.isUserInRole("permission-type-cl|dev|read")).thenReturn(true); + Mockito.when(securityContext.isUserInRole("permission-type-cl|dev|update")).thenReturn(true); + Mockito.when(securityContext.isUserInRole("permission-type-template|dev|read")).thenReturn(true); + Mockito.when(securityContext.isUserInRole("permission-type-template|dev|update")).thenReturn(true); + Mockito.when(securityContext.isUserInRole("permission-type-filter-vf|dev|*")).thenReturn(true); + cldsService.setSecurityContext(securityContext); + // Test basic functionalities + String result = cldsService.getSdcPropertiesByServiceUUIDForRefresh("4cc5b45a-1f63-4194-8100-cd8e14248c92", + false); + JSONAssert.assertEquals( + ResourceFileUtil.getResourceAsString("example/sdc/expected-result/sdc-properties-4cc5b45a.json"), + result, true); + // Now test the Cache effect + CldsServiceData cldsServiceDataCache = cldsDao.getCldsServiceCache("c95b0e7c-c1f0-4287-9928-7964c5377a46"); + // Should not be there, so should be null + assertNull(cldsServiceDataCache); + cldsService.getSdcPropertiesByServiceUUIDForRefresh("c95b0e7c-c1f0-4287-9928-7964c5377a46", true); + // Should be there now, so should NOT be null + cldsServiceDataCache = cldsDao.getCldsServiceCache("c95b0e7c-c1f0-4287-9928-7964c5377a46"); + assertNotNull(cldsServiceDataCache); + cldsDao.clearServiceCache(); + } } diff --git a/src/test/java/org/onap/clamp/clds/model/CldsDBServiceCacheTest.java b/src/test/java/org/onap/clamp/clds/model/CldsDBServiceCacheTest.java new file mode 100644 index 000000000..ad1689157 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/model/CldsDBServiceCacheTest.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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 static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; + +public class CldsDBServiceCacheTest { + + @Test + public void testConstructor() throws IOException, ClassNotFoundException { + CldsServiceData cldsServiceData = new CldsServiceData(); + cldsServiceData.setServiceUUID("testUUID"); + cldsServiceData.setAgeOfRecord(Long.valueOf(100)); + cldsServiceData.setServiceInvariantUUID("testInvariantUUID"); + List cldsVfs = new ArrayList<>(); + CldsVfData cldsVfData = new CldsVfData(); + cldsVfData.setVfName("vf"); + List cldsKPIList = new ArrayList<>(); + CldsVfKPIData cldsVfKPIData = new CldsVfKPIData(); + cldsVfKPIData.setFieldPath("fieldPath"); + cldsVfKPIData.setFieldPathValue("fieldValue"); + cldsKPIList.add(cldsVfKPIData); + cldsVfData.setCldsKPIList(cldsKPIList); + cldsVfs.add(cldsVfData); + cldsServiceData.setCldsVfs(cldsVfs); + CldsDBServiceCache cldsDBServiceCache = new CldsDBServiceCache(cldsServiceData); + ObjectInputStream reader = new ObjectInputStream(cldsDBServiceCache.getCldsDataInstream()); + CldsServiceData cldsServiceDataResult = (CldsServiceData) reader.readObject(); + assertNotNull(cldsServiceDataResult); + assertNotNull(cldsServiceDataResult.getCldsVfs()); + assertEquals(cldsServiceDataResult.getCldsVfs().size(), 1); + assertNotNull(cldsServiceDataResult.getCldsVfs().get(0).getCldsKPIList()); + assertEquals(cldsServiceDataResult.getCldsVfs().get(0).getCldsKPIList().size(), 1); + assertEquals(cldsServiceDataResult.getServiceInvariantUUID(), "testInvariantUUID"); + assertEquals(cldsServiceDataResult.getServiceUUID(), "testUUID"); + assertEquals(cldsServiceDataResult.getAgeOfRecord(), Long.valueOf(100L)); + } +} diff --git a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json new file mode 100644 index 000000000..8c5f39d8d --- /dev/null +++ b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json @@ -0,0 +1,161 @@ +{ + "tca": { + "tname": "New_Set", + "tcaInt": "1", + "tcaVio": "1", + "eventName": { + "vCPEvGMUXPacketLoss": "vCPEvGMUXPacketLoss", + "vLoadBalancer": "vLoadBalancer", + "vFirewallBroadcastPackets": "vFirewallBroadcastPackets" + }, + "fieldPathM": { + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated": "receivedBroadcastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta": "receivedDiscardedPacketsDelta" + }, + "operator": { + ">": "GREATER", + ">=": "GREATER_OR_EQUAL", + "=": "EQUAL", + "<=": "LESS_OR_EQUAL", + "<": "LESS" + }, + "opsPolicy": { + "POLICY_test_X": "POLICY_test_X", + "POLICY_test_Y": "POLICY_test_Y" + }, + "controlLoopSchemaType": { + "": "", + "VM": "VM", + "VNF": "VNF" + }, + "closedLoopEventStatus": { + "": "", + "ONSET": "ONSET", + "ABATED": "ABATED" + } + }, + "global": { + "actionSet": { + "vnfRecipe": "VNF", + "enbRecipe": "eNodeB" + }, + "location": { + "DC1": "Data Center 1", + "DC2": "Data Center 2", + "DC3": "Data Center 3" + } + }, + "policy": { + "pname": "0", + "timeout": 345, + "vnfRecipe": { + "": "", + "restart": "Restart", + "rebuild": "Rebuild", + "migrate": "Migrate", + "healthCheck": "Health Check" + }, + "enbRecipe": { + "": "", + "reset": "Reset" + }, + "maxRetries": "3", + "retryTimeLimit": 180, + "resource": { + "vCTS": "vCTS", + "v3CDB": "v3CDB", + "vUDR": "vUDR", + "vCOM": "vCOM", + "vRAR": "vRAR", + "vLCS": "vLCS", + "vUDR-BE": "vUDR-BE", + "vDBE": "vDBE" + }, + "parentPolicyConditions": { + "Failure_Retries": "Failure: Max Retries Exceeded", + "Failure_Timeout": "Failure: Time Limit Exceeded", + "Failure_Guard": "Failure: Guard", + "Failure_Exception": "Failure: Exception", + "Failure": "Failure: Other", + "Success": "Success" + } + }, + "shared": { + "byService": { + "4cc5b45a-1f63-4194-8100-cd8e14248c92": { + "vf": { + "07e266fc-49ab-4cd7-8378-ca4676f1b9ec": "vFirewall 0", + "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad": "vPacketGen 0" + } + } + }, + "byVf": { + "07e266fc-49ab-4cd7-8378-ca4676f1b9ec": { + "vfc": { + }, + "kpi": { + "": "" + } + }, + "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad": { + "vfc": { + }, + "kpi": { + "": "" + } + } + }, + "byKpi": { + }, + "byVfc": { + "53ebeed7-84db-4638-b1f3-8ed44c75985b": { + "alarmCondition": { + }, + "alertDescription": { + } + }, + "1a12347c-6166-4d21-9861-b2c432722a23": { + "alarmCondition": { + }, + "alertDescription": { + } + }, + "74805001-19f5-4c2c-9928-03014161c32a": { + "alarmCondition": { + }, + "alertDescription": { + } + }, + "d66c0bce-d7e1-41ad-bdaf-468d442d0543": { + "alarmCondition": { + }, + "alertDescription": { + } + }, + "28142b9a-7925-4921-bc81-178c5bae4a9b": { + "alarmCondition": { + }, + "alertDescription": { + } + }, + "86769df9-139b-489f-949d-05efb7f0ed6a": { + "alarmCondition": { + }, + "alertDescription": { + } + } + }, + "byAlarmCondition": { + "": { + "eventSourceType": "", + "eventSeverity": "" + } + }, + "byAlertDescription": { + "": { + "eventSourceType": "", + "eventSeverity": "" + } + } + } +} -- cgit 1.2.3-korg From 7c083746477e46a662ce3eb2664a050a210d971f Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Wed, 14 Feb 2018 15:31:55 +0100 Subject: Remove Camunda and replace by Camel The camunda has been replaced by Camel so that DB could be removed. Also the unit tests has been reworked and maven dependencies have been changed Issue-ID: CLAMP-85 Change-Id: I781c3c83cecbdae3535c7e036e62ae83c6b6852f Signed-off-by: Determe, Sebastien (sd378r) --- extra/docker/clamp/clamp.env | 5 +- extra/sql/bulkload/clds-create-db-objects.sql | 7 - pom.xml | 85 ++-- src/main/java/org/onap/clamp/clds/Application.java | 15 + .../java/org/onap/clamp/clds/camel/CamelProxy.java | 67 ++++ .../onap/clamp/clds/client/CldsEventDelegate.java | 36 +- .../clamp/clds/client/DcaeDispatcherServices.java | 36 +- .../clamp/clds/client/DcaeInventoryServices.java | 30 +- .../clamp/clds/client/HolmesPolicyDelegate.java | 30 +- .../clds/client/HolmesPolicyDeleteDelegate.java | 28 +- .../clds/client/OperationalPolicyDelegate.java | 29 +- .../client/OperationalPolicyDeleteDelegate.java | 29 +- .../onap/clamp/clds/client/SdcSendReqDelegate.java | 92 +++-- .../onap/clamp/clds/client/TcaPolicyDelegate.java | 32 +- .../clamp/clds/client/TcaPolicyDeleteDelegate.java | 38 +- .../clamp/clds/client/req/policy/PolicyClient.java | 38 +- .../clds/client/req/sdc/SdcCatalogServices.java | 88 ++--- .../org/onap/clamp/clds/client/req/sdc/SdcReq.java | 97 +++-- .../clds/config/CamundaEngineConfiguration.java | 50 --- .../onap/clamp/clds/config/CldsConfiguration.java | 84 ---- .../clds/exception/CldsDelegateException.java | 59 +++ .../clamp/clds/model/prop/ModelProperties.java | 67 ++-- .../org/onap/clamp/clds/model/refprop/RefProp.java | 15 +- .../org/onap/clamp/clds/service/CldsService.java | 57 ++- .../java/org/onap/clamp/clds/service/CldsUser.java | 7 +- .../onap/clamp/clds/service/JaxrsApplication.java | 34 ++ .../org/onap/clamp/clds/service/JerseyConfig.java | 41 -- .../java/org/onap/clamp/clds/util/LogMessages.java | 35 ++ src/main/resources/META-INF/processes.xml | 37 -- src/main/resources/application.properties | 29 +- src/main/resources/bpmn/clds-process-action.bpmn | 384 ------------------ src/main/resources/clds/camel/flexible-flow.xml | 36 ++ src/main/resources/clds/clds-reference.properties | 6 +- src/main/resources/clds/clds-users.json | 3 +- .../clamp/clds/it/CldsTemplateServiceItCase.java | 2 - .../clds/it/DcaeHttpConnectionManagerItCase.java | 39 +- .../clamp/clds/it/HolmesPolicyDelegateItCase.java | 5 +- .../clamp/clds/it/OperationPolicyReqItCase.java | 26 +- .../org/onap/clamp/clds/it/PolicyClientItCase.java | 9 +- .../java/org/onap/clamp/clds/it/RefPropItCase.java | 5 +- .../clamp/clds/it/SdcCatalogServicesItCase.java | 60 +-- .../java/org/onap/clamp/clds/it/SdcReqItCase.java | 106 ++--- .../clamp/clds/it/TcaRequestFormatterItCase.java | 23 +- .../clamp/clds/model/prop/CustomModelElement.java | 11 +- .../clds/model/prop/CustomModelElementTest.java | 46 +-- .../clamp/clds/model/prop/ModelPropertiesTest.java | 14 +- .../resources/application-no-camunda.properties | 35 +- src/test/resources/clds/clds-reference.properties | 30 +- .../example/model-properties/custom/modelBpmn.json | 25 ++ .../custom/modelBpmnProperties.json | 248 ++++++++++++ .../holmes/modelBpmnProperties.json | 7 - .../example/model-properties/modelBpmn.json | 26 -- .../example/model-properties/modelBpmnProp.json | 108 ----- .../model-properties/modelBpmnPropWithGlobal.json | 116 ------ .../example/model-properties/policy/modelBpmn.json | 17 + .../policy/modelBpmnProperties.json | 440 +++++++++++++++++++++ .../model-properties/tca/modelBpmnProperties.json | 11 +- src/test/resources/example/modelBpmnProp.json | 25 -- .../resources/example/modelBpmnPropForPolicy.json | 17 - src/test/resources/example/modelProp.json | 440 --------------------- src/test/resources/example/modelPropForPolicy.json | 432 -------------------- .../sdc/expected-result/all-sdc-services.json | 6 + .../example/tca-policy-req/blueprint-expected.yaml | 20 +- .../example/tca-policy-req/blueprint-input.yaml | 33 +- .../example/tca-policy-req/prop-text.json | 1 + src/test/resources/https/https-test.properties | 35 +- 66 files changed, 1619 insertions(+), 2525 deletions(-) create mode 100644 src/main/java/org/onap/clamp/clds/camel/CamelProxy.java delete mode 100644 src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java create mode 100644 src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java create mode 100644 src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java delete mode 100644 src/main/java/org/onap/clamp/clds/service/JerseyConfig.java create mode 100644 src/main/java/org/onap/clamp/clds/util/LogMessages.java delete mode 100644 src/main/resources/META-INF/processes.xml delete mode 100644 src/main/resources/bpmn/clds-process-action.bpmn create mode 100644 src/main/resources/clds/camel/flexible-flow.xml create mode 100644 src/test/resources/example/model-properties/custom/modelBpmn.json create mode 100644 src/test/resources/example/model-properties/custom/modelBpmnProperties.json delete mode 100644 src/test/resources/example/model-properties/modelBpmn.json delete mode 100644 src/test/resources/example/model-properties/modelBpmnProp.json delete mode 100644 src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json create mode 100644 src/test/resources/example/model-properties/policy/modelBpmn.json create mode 100644 src/test/resources/example/model-properties/policy/modelBpmnProperties.json delete mode 100644 src/test/resources/example/modelBpmnProp.json delete mode 100644 src/test/resources/example/modelBpmnPropForPolicy.json delete mode 100644 src/test/resources/example/modelProp.json delete mode 100644 src/test/resources/example/modelPropForPolicy.json create mode 100644 src/test/resources/example/sdc/expected-result/all-sdc-services.json create mode 100644 src/test/resources/example/tca-policy-req/prop-text.json (limited to 'src/test/resources/example/sdc') diff --git a/extra/docker/clamp/clamp.env b/extra/docker/clamp/clamp.env index e5936e359..41585aba1 100644 --- a/extra/docker/clamp/clamp.env +++ b/extra/docker/clamp/clamp.env @@ -1 +1,4 @@ -SPRING_APPLICATION_JSON={"spring.datasource.camunda.url":"jdbc:mariadb:sequential://db:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647","spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647"} \ No newline at end of file +SPRING_APPLICATION_JSON={"spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647", +"org.onap.clamp.config.files.cldsPolicyConfig":"classpath:/clds/clds-policy-config.properties", +"org.onap.clamp.config.files.cldsReference":"classpath:/clds/clds-reference.properties" +} \ No newline at end of file diff --git a/extra/sql/bulkload/clds-create-db-objects.sql b/extra/sql/bulkload/clds-create-db-objects.sql index 3312daf56..78a1f7a6c 100644 --- a/extra/sql/bulkload/clds-create-db-objects.sql +++ b/extra/sql/bulkload/clds-create-db-objects.sql @@ -2,13 +2,6 @@ # Create CLDS database objects (tables, etc.) # # -CREATE DATABASE `camundabpm`; -USE `camundabpm`; -DROP USER 'camunda'; -CREATE USER 'camunda'; -GRANT ALL on camundabpm.* to 'camunda' identified by 'ndMSpw4CAM' with GRANT OPTION; -FLUSH PRIVILEGES; - CREATE DATABASE `cldsdb4`; USE `cldsdb4`; DROP USER 'clds'; diff --git a/pom.xml b/pom.xml index bb2534d3f..b0890a57f 100644 --- a/pom.xml +++ b/pom.xml @@ -66,12 +66,13 @@ UTF-8 3306 + 2080 git-server 1.8 1.0.0 2.20.1 - 1.5.9.RELEASE + 1.5.10.RELEASE java jacoco @@ -85,6 +86,8 @@ true true false + + @@ -153,14 +156,6 @@ pom import - - - org.camunda.bpm - camunda-bom - 7.6.0 - import - pom - org.apache.camel @@ -182,7 +177,6 @@ org.apache.camel camel-spring-boot-starter - org.apache.camel @@ -190,7 +184,7 @@ org.apache.camel - camel-cxf-starter + camel-servlet-starter @@ -202,8 +196,9 @@ spring-boot-starter-tomcat - org.springframework.boot - spring-boot-starter-jersey + com.paypal.springboot + resteasy-spring-boot-starter + 2.3.4-RELEASE org.springframework @@ -221,18 +216,28 @@ org.springframework.boot spring-boot-starter-test test + + + com.vaadin.external.google + android-json + + + + + + ch.qos.logback + logback-core + 1.2.3 - - - org.camunda.bpm.extension.springboot - camunda-bpm-spring-boot-starter - 2.0.0 + ch.qos.logback + logback-classic + 1.2.3 - org.camunda.bpm.extension.springboot - camunda-bpm-spring-boot-starter-webapp - 2.0.0 + commons-dbcp + commons-dbcp + 1.4 commons-io @@ -265,11 +270,6 @@ junit junit - - org.mockito - mockito-all - 1.9.5 - com.fasterxml.jackson.core jackson-core @@ -770,13 +770,42 @@ + + python:2 + python + + python + + + ${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app + ${project.basedir}/src/test/resources/http-cache/sdc-example/:/usr/src/http-cache-app/data-cache + + + + + + 8080 + + direct + + + + + ${docker.http-cache.port.host}:8080 + + /usr/src/http-cache-app + + ./start_http_cache.sh ${http.proxy} + + + ${skipITs} - mariadb-start-for-it + docker-start-for-it pre-integration-test start @@ -786,7 +815,7 @@ - mariadb-stop-for-it + docker-stop-for-it post-integration-test stop diff --git a/src/main/java/org/onap/clamp/clds/Application.java b/src/main/java/org/onap/clamp/clds/Application.java index 2727535e4..281a87ca5 100644 --- a/src/main/java/org/onap/clamp/clds/Application.java +++ b/src/main/java/org/onap/clamp/clds/Application.java @@ -26,6 +26,7 @@ package org.onap.clamp.clds; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; +import org.apache.camel.component.servlet.CamelHttpTransportServlet; import org.apache.catalina.connector.Connector; import org.onap.clamp.clds.model.prop.Holmes; import org.onap.clamp.clds.model.prop.ModelProperties; @@ -41,6 +42,7 @@ import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; +import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -88,6 +90,19 @@ public class Application extends SpringBootServletInitializer { ModelProperties.registerModelElement(Holmes.class, Holmes.getType()); } + /** + * This method is used to declare the camel servlet. + * + * @return A servlet bean + */ + @Bean + public ServletRegistrationBean camelServletRegistrationBean() { + ServletRegistrationBean registration = new ServletRegistrationBean(new CamelHttpTransportServlet(), + "/restservices/clds/v2"); + registration.setName("CamelServlet"); + return registration; + } + /** * This method is used by Spring to create the servlet container factory. * diff --git a/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java b/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java new file mode 100644 index 000000000..66cd1f5a9 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.camel; + +import org.apache.camel.ExchangeProperty; + +/** + * This interface describes the CamelProxy parameters that must be passed to the + * Camel flow. + */ +public interface CamelProxy { + + /** + * This method is called when invoking a camel flow. + * + * @param actionCommand + * The action coming from the Clamp UI (like SUBMIT, UPDATE, + * DELETE, ...) + * @param modelProperties + * The Model properties created based on the BPMN Json and + * Properties Json + * @param modelBpmnProperties + * The Json with all the properties describing the flow + * @param modelName + * The model name + * @param controlName + * The control loop name + * @param docText + * The Global properties JSON containing YAML (coming from CLamp + * template) + * @param isTest + * Is a test or not (flag coming from the UI) + * @param userId + * The user ID coming from the UI + * @param isInsertTestEvent + * Is a test or not (flag coming from the UI) + * @return A string containing the result of the Camel flow execution + */ + String submit(@ExchangeProperty("actionCd") String actionCommand, + @ExchangeProperty("modelProp") String modelProperties, + @ExchangeProperty("modelBpmnProp") String modelBpmnProperties, + @ExchangeProperty("modelName") String modelName, @ExchangeProperty("controlName") String controlName, + @ExchangeProperty("docText") String docText, @ExchangeProperty("isTest") boolean isTest, + @ExchangeProperty("userid") String userId, + @ExchangeProperty("isInsertTestEvent") boolean isInsertTestEvent); +} diff --git a/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java b/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java index 4886b0de0..dcc318930 100644 --- a/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -26,40 +26,44 @@ package org.onap.clamp.clds.client; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.apache.camel.Exchange; +import org.apache.camel.Handler; import org.onap.clamp.clds.dao.CldsDao; import org.onap.clamp.clds.model.CldsEvent; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Create CLDS Event. */ -public class CldsEventDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsEventDelegate.class); +@Component +public class CldsEventDelegate { + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsEventDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private CldsDao cldsDao; + private CldsDao cldsDao; /** * Insert event using process variables. * - * @param execution + * @param camelExchange + * The Camel Exchange object containing the properties */ - @Override - public void execute(DelegateExecution execution) { - String controlName = (String) execution.getVariable("controlName"); - String actionCd = (String) execution.getVariable("actionCd"); - String actionStateCd = (String) execution.getVariable("actionStateCd"); + @Handler + public void execute(Exchange camelExchange) { + String controlName = (String) camelExchange.getProperty("controlName"); + String actionCd = (String) camelExchange.getProperty("actionCd"); + String actionStateCd = (String) camelExchange.getProperty("actionStateCd"); // Flag indicate whether it is triggered by Validation Test button from // UI - boolean isTest = (boolean) execution.getVariable("isTest"); - boolean isInsertTestEvent = (boolean) execution.getVariable("isInsertTestEvent"); - String userid = (String) execution.getVariable("userid"); + boolean isTest = (boolean) camelExchange.getProperty("isTest"); + boolean isInsertTestEvent = (boolean) camelExchange.getProperty("isInsertTestEvent"); + String userid = (String) camelExchange.getProperty("userid"); // do not insert events for test actions unless flag set to insert them if (!isTest || isInsertTestEvent) { // won't really have userid here... - CldsEvent.insEvent(cldsDao, controlName, userid, actionCd, actionStateCd, execution.getProcessInstanceId()); + CldsEvent.insEvent(cldsDao, controlName, userid, actionCd, actionStateCd, camelExchange.getExchangeId()); } } } diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java index b8863e026..6053a0de9 100644 --- a/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java +++ b/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java @@ -35,24 +35,26 @@ import org.onap.clamp.clds.exception.DcaeDeploymentException; import org.onap.clamp.clds.model.refprop.RefProp; import org.onap.clamp.clds.util.LoggingUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * This class implements the communication with DCAE for the service * deployments. - * */ +@Component public class DcaeDispatcherServices { - protected static final EELFLogger logger = EELFManager.getInstance() - .getLogger(DcaeDispatcherServices.class); - protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeDispatcherServices.class); + protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private RefProp refProp; - private static final String STATUS_URL_LOG = "Status URL extracted: "; - private static final String DCAE_URL_PREFIX = "/dcae-deployments/"; - private static final String DCAE_URL_PROPERTY_NAME = "DCAE_DISPATCHER_URL"; - public static final String DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId"; - private static final String DCAE_LINK_FIELD = "links"; - private static final String DCAE_STATUS_FIELD = "status"; + private RefProp refProp; + private static final String STATUS_URL_LOG = "Status URL extracted: "; + private static final String DCAE_URL_PREFIX = "/dcae-deployments/"; + private static final String DCAE_URL_PROPERTY_NAME = "DCAE_DISPATCHER_URL"; + private static final String DCAE_REQUEST_FAILED_LOG = "RequestFailed - responseStr="; + public static final String DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId"; + private static final String DCAE_LINK_FIELD = "links"; + private static final String DCAE_STATUS_FIELD = "status"; /** * Delete the deployment on DCAE. @@ -76,7 +78,7 @@ public class DcaeDispatcherServices { LoggingUtils.setResponseContext("0", "Delete deployments success", this.getClass().getName()); return statusUrl; } catch (Exception e) { - //Log StatusCode during exception in metrics log + // Log StatusCode during exception in metrics log LoggingUtils.setResponseContext("900", "Delete deployments failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Delete deployments error"); logger.error("Exception occurred during Delete Deployment Operation with DCAE", e); @@ -93,7 +95,6 @@ public class DcaeDispatcherServices { * @param statusUrl * The URL provided by a previous DCAE Query * @return The status - * */ public String getOperationStatus(String statusUrl) { // Assigning processing status to monitor operation status further @@ -111,7 +112,7 @@ public class DcaeDispatcherServices { LoggingUtils.setResponseContext("0", "Get operation status success", this.getClass().getName()); opStatus = status; } catch (Exception e) { - //Log StatusCode during exception in metrics log + // Log StatusCode during exception in metrics log LoggingUtils.setResponseContext("900", "Get operation status failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Get operation status error"); logger.error("Exception occurred during getOperationStatus Operation with DCAE", e); @@ -124,7 +125,6 @@ public class DcaeDispatcherServices { /** * This method send a getDeployments operation to DCAE. - * */ public void getDeployments() { Date startTime = new Date(); @@ -134,7 +134,7 @@ public class DcaeDispatcherServices { DcaeHttpConnectionManager.doDcaeHttpQuery(url, "GET", null, null); LoggingUtils.setResponseContext("0", "Get deployments success", this.getClass().getName()); } catch (Exception e) { - //Log StatusCode during exception in metrics log + // Log StatusCode during exception in metrics log LoggingUtils.setResponseContext("900", "Get deployments failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Get deployments error"); logger.error("Exception occurred during getDeployments Operation with DCAE", e); @@ -174,7 +174,7 @@ public class DcaeDispatcherServices { LoggingUtils.setResponseContext("0", "Create new deployment failed", this.getClass().getName()); return statusUrl; } catch (Exception e) { - //Log StatusCode during exception in metrics log + // Log StatusCode during exception in metrics log LoggingUtils.setResponseContext("900", "Create new deployment failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Create new deployment error"); logger.error("Exception occurred during createNewDeployment Operation with DCAE", e); @@ -212,7 +212,7 @@ public class DcaeDispatcherServices { LoggingUtils.setResponseContext("0", "Delete existing deployment success", this.getClass().getName()); return statusUrl; } catch (Exception e) { - //Log StatusCode during exception in metrics log + // Log StatusCode during exception in metrics log LoggingUtils.setResponseContext("900", "Delete existing deployment failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Delete existing deployment error"); logger.error("Exception occurred during deleteExistingDeployment Operation with DCAE", e); diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java index 94ebacae5..4dfe089f9 100644 --- a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java +++ b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java @@ -50,10 +50,12 @@ 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 org.springframework.stereotype.Component; /** * This class implements the communication with DCAE for the service inventory. */ +@Component public class DcaeInventoryServices { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class); @@ -107,12 +109,12 @@ public class DcaeInventoryServices { dcaeEvent.setEvent(DcaeEvent.EVENT_DISTRIBUTION); LoggingUtils.setResponseContext("0", "Set inventory success", this.getClass().getName()); } catch (JsonProcessingException e) { - LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName()); - LoggingUtils.setErrorContext("900", "Set inventory error"); + LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName()); + LoggingUtils.setErrorContext("900", "Set inventory error"); logger.error("Error during JSON decoding", e); } catch (IOException ex) { - LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName()); - LoggingUtils.setErrorContext("900", "Set inventory error"); + LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName()); + LoggingUtils.setErrorContext("900", "Set inventory error"); logger.error("Error during DCAE communication", ex); } finally { LoggingUtils.setTimeContext(startTime, new Date()); @@ -209,7 +211,7 @@ public class DcaeInventoryServices { * The vf UUID * @return The DCAE inventory type id */ - public String createUpdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion, + public String createupdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion, String asdcServiceId, String asdcResourceId) { Date startTime = new Date(); LoggingUtils.setTargetContext("DCAE", "createDCAEServiceType"); @@ -237,20 +239,22 @@ public class DcaeInventoryServices { Object obj0 = parser.parse(responseStr); JSONObject jsonObj = (JSONObject) obj0; typeId = (String) jsonObj.get("typeId"); // need to save this - // as - // service_type_id - // in model table + // as + // service_type_id + // in model table } catch (IOException | ParseException e) { logger.error("Exception occurred during createupdateDCAEServiceType Operation with DCAE", e); throw new BadRequestException("Exception occurred during createupdateDCAEServiceType Operation with DCAE", e); } finally { - if(typeId != null) { - LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success", this.getClass().getName()); - } else { - LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed", this.getClass().getName()); + if (typeId != null) { + LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success", + this.getClass().getName()); + } else { + LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed", + this.getClass().getName()); LoggingUtils.setErrorContext("900", "Create update DCAE ServiceType error"); - } + } LoggingUtils.setTimeContext(startTime, new Date()); metricsLogger.info("createupdateDCAEServiceType complete"); } diff --git a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java index aaa4a2c06..34655986d 100644 --- a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,41 +28,45 @@ import com.att.eelf.configuration.EELFManager; import java.util.UUID; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.apache.camel.Exchange; +import org.apache.camel.Handler; import org.onap.clamp.clds.client.req.policy.PolicyClient; import org.onap.clamp.clds.model.prop.Holmes; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.refprop.RefProp; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Send Holmes info to policy api. */ -public class HolmesPolicyDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDelegate.class); +@Component +public class HolmesPolicyDelegate { + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private PolicyClient policyClient; + private PolicyClient policyClient; @Autowired - private RefProp refProp; + private RefProp refProp; /** * Perform activity. Send Holmes info to policy api. * - * @param execution + * @param camelExchange + * The Camel Exchange object containing the properties */ - @Override - public void execute(DelegateExecution execution) { + @Handler + public void execute(Exchange camelExchange) { String holmesPolicyRequestUuid = UUID.randomUUID().toString(); - execution.setVariable("holmesPolicyRequestUuid", holmesPolicyRequestUuid); - ModelProperties prop = ModelProperties.create(execution); + camelExchange.setProperty("holmesPolicyRequestUuid", holmesPolicyRequestUuid); + ModelProperties prop = ModelProperties.create(camelExchange); Holmes holmes = prop.getType(Holmes.class); if (holmes.isFound()) { String responseMessage = policyClient.sendBasePolicyInOther(formatHolmesConfigBody(prop, holmes), holmes.getConfigPolicyName(), prop, holmesPolicyRequestUuid); if (responseMessage != null) { - execution.setVariable("holmesPolicyResponseMessage", responseMessage.getBytes()); + camelExchange.setProperty("holmesPolicyResponseMessage", responseMessage.getBytes()); } } } diff --git a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java index 72db32852..28da14851 100644 --- a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -26,34 +26,34 @@ package org.onap.clamp.clds.client; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import java.io.IOException; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.apache.camel.Exchange; +import org.apache.camel.Handler; import org.onap.clamp.clds.client.req.policy.PolicyClient; import org.onap.clamp.clds.model.prop.Holmes; import org.onap.clamp.clds.model.prop.ModelProperties; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Delete Holmes Policy via policy api. */ -public class HolmesPolicyDeleteDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance() - .getLogger(HolmesPolicyDeleteDelegate.class); +@Component +public class HolmesPolicyDeleteDelegate { + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDeleteDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private PolicyClient policyClient; + private PolicyClient policyClient; /** * Perform activity. Delete Holmes Policy via policy api. * - * @param execution - * @throws IOException + * @param camelExchange + * The Camel Exchange object containing the properties */ - @Override - public void execute(DelegateExecution execution) { - ModelProperties prop = ModelProperties.create(execution); + @Handler + public void execute(Exchange camelExchange) { + ModelProperties prop = ModelProperties.create(camelExchange); Holmes holmes = prop.getType(Holmes.class); if (holmes.isFound()) { prop.setCurrentModelElementId(holmes.getId()); diff --git a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java index e2d16c56c..77d7680bb 100644 --- a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java @@ -29,8 +29,8 @@ import com.att.eelf.configuration.EELFManager; import java.io.UnsupportedEncodingException; import java.util.Map; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.apache.camel.Exchange; +import org.apache.camel.Handler; import org.onap.clamp.clds.client.req.policy.OperationalPolicyReq; import org.onap.clamp.clds.client.req.policy.PolicyClient; import org.onap.clamp.clds.model.prop.ModelProperties; @@ -41,41 +41,42 @@ import org.onap.clamp.clds.util.LoggingUtils; import org.onap.policy.api.AttributeType; import org.onap.policy.controlloop.policy.builder.BuilderException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Send Operational Policy info to policy api. It uses the policy code to define * the model and communicate with it. See also the PolicyClient class. - * */ -public class OperationalPolicyDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance() - .getLogger(OperationalPolicyDelegate.class); +@Component +public class OperationalPolicyDelegate { + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(OperationalPolicyDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); /** * Automatically injected by Spring, define in CldsConfiguration as a bean. */ @Autowired - private PolicyClient policyClient; + private PolicyClient policyClient; /** * Automatically injected by Spring, define in CldsConfiguration as a bean. */ @Autowired - private RefProp refProp; + private RefProp refProp; /** * Perform activity. Send Operational Policy info to policy api. * - * @param execution - * The DelegateExecution + * @param camelExchange + * The Camel Exchange object containing the properties * @throws BuilderException * In case of issues with OperationalPolicyReq * @throws UnsupportedEncodingException * In case of issues with the Charset encoding */ - @Override - public void execute(DelegateExecution execution) throws BuilderException, UnsupportedEncodingException { + @Handler + public void execute(Exchange camelExchange) throws BuilderException, UnsupportedEncodingException { String responseMessage = null; - ModelProperties prop = ModelProperties.create(execution); + ModelProperties prop = ModelProperties.create(camelExchange); Policy policy = prop.getType(Policy.class); if (policy.isFound()) { for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) { @@ -84,7 +85,7 @@ public class OperationalPolicyDelegate implements JavaDelegate { responseMessage = policyClient.sendBrmsPolicy(attributes, prop, LoggingUtils.getRequestId()); } if (responseMessage != null) { - execution.setVariable("operationalPolicyResponseMessage", responseMessage.getBytes()); + camelExchange.setProperty("operationalPolicyResponseMessage", responseMessage.getBytes()); } } } diff --git a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java index 2bca639e1..4dd204080 100644 --- a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -26,35 +26,36 @@ package org.onap.clamp.clds.client; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import java.io.IOException; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.apache.camel.Exchange; +import org.apache.camel.Handler; import org.onap.clamp.clds.client.req.policy.PolicyClient; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.prop.Policy; import org.onap.clamp.clds.model.prop.PolicyChain; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Delete Operational Policy via policy api. */ -public class OperationalPolicyDeleteDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance() +@Component +public class OperationalPolicyDeleteDelegate { + + protected static final EELFLogger logger = EELFManager.getInstance() .getLogger(OperationalPolicyDeleteDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private PolicyClient policyClient; + private PolicyClient policyClient; /** * Perform activity. Delete Operational Policy via policy api. * - * @param execution - * @throws IOException + * @param camelExchange + * The Camel Exchange object containing the properties */ - @Override - public void execute(DelegateExecution execution) { - ModelProperties prop = ModelProperties.create(execution); + @Handler + public void execute(Exchange camelExchange) { + ModelProperties prop = ModelProperties.create(camelExchange); Policy policy = prop.getType(Policy.class); prop.setCurrentModelElementId(policy.getId()); String responseMessage = ""; @@ -64,7 +65,7 @@ public class OperationalPolicyDeleteDelegate implements JavaDelegate { responseMessage = policyClient.deleteBrms(prop); } if (responseMessage != null) { - execution.setVariable("operationalPolicyDeleteResponseMessage", responseMessage.getBytes()); + camelExchange.setProperty("operationalPolicyDeleteResponseMessage", responseMessage.getBytes()); } } } 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 b582349f6..e21bfce41 100644 --- a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -26,82 +26,88 @@ package org.onap.clamp.clds.client; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; +import java.io.IOException; +import java.security.GeneralSecurityException; import java.util.List; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.apache.camel.Exchange; +import org.apache.camel.Handler; +import org.apache.commons.codec.DecoderException; import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices; import org.onap.clamp.clds.client.req.sdc.SdcReq; 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.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Send control loop model to dcae proxy. */ -public class SdcSendReqDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class); +@Component +public class SdcSendReqDelegate { + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private SdcReq sdcReq; + private SdcCatalogServices sdcCatalogServices; @Autowired - private RefProp refProp; + private SdcReq sdcReq; @Autowired - private SdcCatalogServices sdcCatalogServices; - private String baseUrl; - private String artifactType; - private String locationArtifactType; - private String artifactLabel; - private String locationArtifactLabel; + private RefProp refProp; /** * Perform activity. Send to sdc proxy. * - * @param execution + * @param camelExchange + * The camel object that contains all fields + * @throws DecoderException + * In case of issues with password decryption + * @throws GeneralSecurityException + * In case of issues with password decryption + * @throws IOException + * In case of issues with file opening */ - @Override - public void execute(DelegateExecution execution) throws Exception { - String userid = (String) execution.getVariable("userid"); - logger.info("userid=" + userid); - String docText = new String((byte[]) execution.getVariable("docText")); - String artifactName = (String) execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX; - execution.setVariable("artifactName", artifactName); - getSdcAttributes((String) execution.getVariable("controlName")); - ModelProperties prop = ModelProperties.create(execution); - String bluprintPayload = sdcReq.formatBlueprint(prop, docText); + @Handler + public void execute(Exchange camelExchange) throws GeneralSecurityException, DecoderException, IOException { + String controlName = (String) camelExchange.getProperty("controlName"); + String baseUrl = refProp.getStringValue("sdc.serviceUrl"); + String artifactLabel = sdcReq + .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName); + String locationArtifactLabel = sdcReq + .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName); + String artifactType = refProp.getStringValue("sdc.artifactType"); + String locationArtifactType = refProp.getStringValue("sdc.locationArtifactType"); + String userid = (String) camelExchange.getProperty("userid"); + String docText = (String) camelExchange.getProperty("docText"); + String artifactName = (String) camelExchange.getProperty("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX; + camelExchange.setProperty("artifactName", artifactName); + ModelProperties prop = ModelProperties.create(camelExchange); + String bluprintPayload; + bluprintPayload = sdcReq.formatBlueprint(prop, docText); // no need to upload blueprint for Holmes, thus blueprintPayload for // Holmes is empty if (!bluprintPayload.isEmpty()) { String formattedSdcReq = sdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType); if (formattedSdcReq != null) { - execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes()); + camelExchange.setProperty("formattedArtifactReq", formattedSdcReq.getBytes()); } - List sdcReqUrlsList = sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution); + Global globalProps = prop.getGlobal(); + if (globalProps != null && globalProps.getService() != null) { + String serviceInvariantUUID = globalProps.getService(); + camelExchange.setProperty("serviceInvariantUUID", serviceInvariantUUID); + } + List sdcReqUrlsList = sdcReq.getSdcReqUrlsList(prop, baseUrl); String sdcLocationsPayload = sdcReq.formatSdcLocationsReq(prop, artifactName); - String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json"; + String locationArtifactName = (String) camelExchange.getProperty("controlName") + "-location.json"; String formattedSdcLocationReq = sdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName, locationArtifactLabel, locationArtifactType); if (formattedSdcLocationReq != null) { - execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes()); + camelExchange.setProperty("formattedLocationReq", formattedSdcLocationReq.getBytes()); } sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq, artifactName, locationArtifactName); } } - - /** - * Method to get sdc service values from properties file. - * - * @param controlName - */ - 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/TcaPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java index 035e64a61..2657a03f9 100644 --- a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,44 +28,46 @@ import com.att.eelf.configuration.EELFManager; import java.util.UUID; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.apache.camel.Exchange; +import org.apache.camel.Handler; import org.onap.clamp.clds.client.req.policy.PolicyClient; import org.onap.clamp.clds.client.req.tca.TcaRequestFormatter; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.prop.Tca; import org.onap.clamp.clds.model.refprop.RefProp; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Send Tca info to policy api. - * - * */ -public class TcaPolicyDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDelegate.class); +@Component +public class TcaPolicyDelegate { + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDelegate.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private RefProp refProp; + private RefProp refProp; @Autowired - private PolicyClient policyClient; + private PolicyClient policyClient; /** * Perform activity. Send Tca info to policy api. * - * @param execution + * @param camelExchange + * The Camel Exchange object containing the properties */ - @Override - public void execute(DelegateExecution execution) throws Exception { + @Handler + public void execute(Exchange camelExchange) { String tcaPolicyRequestUuid = UUID.randomUUID().toString(); - execution.setVariable("tcaPolicyRequestUuid", tcaPolicyRequestUuid); - ModelProperties prop = ModelProperties.create(execution); + camelExchange.setProperty("tcaPolicyRequestUuid", tcaPolicyRequestUuid); + ModelProperties prop = ModelProperties.create(camelExchange); Tca tca = prop.getType(Tca.class); if (tca.isFound()) { String policyJson = TcaRequestFormatter.createPolicyJson(refProp, prop); String responseMessage = policyClient.sendMicroServiceInOther(policyJson, prop); if (responseMessage != null) { - execution.setVariable("tcaPolicyResponseMessage", responseMessage.getBytes()); + camelExchange.setProperty("tcaPolicyResponseMessage", responseMessage.getBytes()); } } } diff --git a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java index e88b720a7..c2aa303a5 100644 --- a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java +++ b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -23,46 +23,44 @@ package org.onap.clamp.clds.client; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.camunda.bpm.engine.delegate.JavaDelegate; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +import org.apache.camel.Exchange; +import org.apache.camel.Handler; import org.onap.clamp.clds.client.req.policy.PolicyClient; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.prop.Tca; import org.springframework.beans.factory.annotation.Autowired; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; +import org.springframework.stereotype.Component; /** * Delete Tca Policy via policy api. - * - * */ -public class TcaPolicyDeleteDelegate implements JavaDelegate { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDeleteDelegate.class); - protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); +@Component +public class TcaPolicyDeleteDelegate { + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDeleteDelegate.class); + protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - private PolicyClient policyClient; + private PolicyClient policyClient; /** * Perform activity. Delete Tca Policy via policy api. * - * @param execution + * @param camelExchange + * The Camel Exchange object containing the properties */ - @Override - public void execute(DelegateExecution execution) throws Exception { - - ModelProperties prop = ModelProperties.create(execution); + @Handler + public void execute(Exchange camelExchange) { + ModelProperties prop = ModelProperties.create(camelExchange); Tca tca = prop.getType(Tca.class); if (tca.isFound()) { prop.setCurrentModelElementId(tca.getId()); - String responseMessage = policyClient.deleteMicrosService(prop); if (responseMessage != null) { - execution.setVariable("tcaPolicyDeleteResponseMessage", responseMessage.getBytes()); + camelExchange.setProperty("tcaPolicyDeleteResponseMessage", responseMessage.getBytes()); } } } - } diff --git a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java index b4cad9496..046003309 100644 --- a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java +++ b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java @@ -57,23 +57,26 @@ import org.onap.policy.api.PushPolicyParameters; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; /** * Policy utility methods - specifically, send the policy. */ +@Component public class PolicyClient { - protected static final String POLICY_PREFIX_BASE = "Config_"; - protected static final String LOG_POLICY_PREFIX = "Response is "; + + protected static final String POLICY_PREFIX_BASE = "Config_"; + protected static final String LOG_POLICY_PREFIX = "Response is "; protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyClient.class); - protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - protected static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type"; - protected static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name"; + protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); + protected static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type"; + protected static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name"; @Value("${org.onap.clamp.config.files.cldsPolicyConfig:'classpath:/clds/clds-policy-config.properties'}") - protected String cldsPolicyConfigFile; + protected String cldsPolicyConfigFile; @Autowired - protected ApplicationContext appContext; + protected ApplicationContext appContext; @Autowired - protected RefProp refProp; + protected RefProp refProp; /** * Perform BRMS policy type. @@ -229,19 +232,19 @@ public class PolicyClient { responseMessage = response.getResponseMessage(); } } catch (Exception e) { - LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName()); - LoggingUtils.setErrorContext("900", "Policy send error"); + LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName()); + LoggingUtils.setErrorContext("900", "Policy send error"); logger.error("Exception occurred during policy communication", e); throw new PolicyClientException("Exception while communicating with Policy", e); } logger.info(LOG_POLICY_PREFIX + responseMessage); LoggingUtils.setTimeContext(startTime, new Date()); if (response.getResponseCode() == 200) { - LoggingUtils.setResponseContext("0", "Policy send success", this.getClass().getName()); + LoggingUtils.setResponseContext("0", "Policy send success", this.getClass().getName()); logger.info("Policy send successful"); metricsLogger.info("Policy send success"); } else { - LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName()); + LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName()); logger.warn("Policy send failed: " + responseMessage); metricsLogger.info("Policy send failure"); throw new BadRequestException("Policy send failed: " + responseMessage); @@ -278,25 +281,25 @@ public class PolicyClient { PolicyChangeResponse response; String responseMessage = ""; try { - LoggingUtils.setTargetContext("Policy", "pushPolicy"); + LoggingUtils.setTargetContext("Policy", "pushPolicy"); logger.info("Attempting to push policy..."); response = getPolicyEngine().pushPolicy(pushPolicyParameters); if (response != null) { responseMessage = response.getResponseMessage(); } } catch (Exception e) { - LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName()); + LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Policy push error"); logger.error("Exception occurred during policy communication", e); throw new PolicyClientException("Exception while communicating with Policy", e); } logger.info(LOG_POLICY_PREFIX + responseMessage); if (response != null && (response.getResponseCode() == 200 || response.getResponseCode() == 204)) { - LoggingUtils.setResponseContext("0", "Policy push success", this.getClass().getName()); + LoggingUtils.setResponseContext("0", "Policy push success", this.getClass().getName()); logger.info("Policy push successful"); metricsLogger.info("Policy push success"); } else { - LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName()); + LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName()); logger.warn("Policy push failed: " + responseMessage); metricsLogger.info("Policy push failure"); throw new BadRequestException("Policy push failed: " + responseMessage); @@ -350,7 +353,7 @@ public class PolicyClient { private PolicyEngine getPolicyEngine() { PolicyEngine policyEngine; try { - policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getFile().getAbsolutePath()); + policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getURL().getPath()); } catch (IOException e1) { throw new PolicyClientException("Exception when opening policy config file", e1); } catch (PolicyEngineException e) { @@ -399,7 +402,6 @@ public class PolicyClient { * * @param prop * The ModelProperties - * * @return The response message from policy */ protected String deletePolicy(ModelProperties prop, String policyType) { diff --git a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java index 6684f1a1e..45dbf81fe 100644 --- a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java +++ b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java @@ -60,7 +60,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpHeaders; import org.onap.clamp.clds.exception.SdcCommunicationException; 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; @@ -76,23 +75,25 @@ import org.onap.clamp.clds.model.refprop.RefProp; import org.onap.clamp.clds.util.CryptoUtils; import org.onap.clamp.clds.util.LoggingUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class SdcCatalogServices { private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcCatalogServices.class); private static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - private static final String RESOURCE_VF_TYPE = "VF"; - private static final String RESOURCE_VFC_TYPE = "VFC"; - private static final String RESOURCE_CVFC_TYPE = "CVFC"; + private static final String RESOURCE_VF_TYPE = "VF"; + private static final String RESOURCE_VFC_TYPE = "VFC"; + private static final String RESOURCE_CVFC_TYPE = "CVFC"; private static final String SDC_REQUESTID_PROPERTY_NAME = "sdc.header.requestId"; - private static final String SDC_METADATA_URL_PREFIX = "/metadata"; - private static final String SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID"; - private static final String SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url"; - private static final String SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl"; - private static final String SDC_INSTANCE_ID_CLAMP = "CLAMP-Tool"; - private static final String RESOURCE_URL_PREFIX = "resources"; + private static final String SDC_METADATA_URL_PREFIX = "/metadata"; + private static final String SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID"; + private static final String SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url"; + private static final String SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl"; + private static final String SDC_INSTANCE_ID_CLAMP = "CLAMP-Tool"; + private static final String RESOURCE_URL_PREFIX = "resources"; @Autowired - private RefProp refProp; + private RefProp refProp; /** * Return SDC id and pw as a HTTP Basic Auth string (for example: Basic @@ -131,7 +132,7 @@ public class SdcCatalogServices { LoggingUtils.setTargetContext("SDC", "getSdcServicesInformation"); try { String url = baseUrl; - if (uuid != null) { + if (uuid != null && !uuid.isEmpty()) { url = baseUrl + "/" + uuid + SDC_METADATA_URL_PREFIX; } URL urlObj = new URL(url); @@ -142,7 +143,7 @@ public class SdcCatalogServices { conn.setRequestProperty(refProp.getStringValue(SDC_REQUESTID_PROPERTY_NAME), LoggingUtils.getRequestId()); conn.setRequestMethod("GET"); String resp = getResponse(conn); - logger.info(resp); + logger.debug("Services list received from SDC:" + resp); // metrics log LoggingUtils.setResponseContext("0", "Get sdc services success", this.getClass().getName()); return resp; @@ -333,7 +334,6 @@ public class SdcCatalogServices { } } - // upload artifact to sdc based on serviceUUID and resource name on url private String uploadArtifactToSdc(ModelProperties prop, String userid, String url, String formattedSdcReq) { // Verify whether it is triggered by Validation Test button from UI @@ -422,23 +422,11 @@ public class SdcCatalogServices { } } - public CldsDBServiceCache getCldsDbServiceCacheUsingCldsServiceData(CldsServiceData cldsServiceData) { - try { - CldsDBServiceCache cldsDbServiceCache = new CldsDBServiceCache(); - cldsDbServiceCache.setCldsDataInstream(cldsServiceData); - cldsDbServiceCache.setInvariantId(cldsServiceData.getServiceInvariantUUID()); - cldsDbServiceCache.setServiceId(cldsServiceData.getServiceUUID()); - return cldsDbServiceCache; - } catch (IOException e) { - logger.error("Exception when getting service in cache", e); - throw new SdcCommunicationException("Exception when getting service in cache", e); - } - } - /** * Check if the SDC Info in cache has expired. * * @param cldsServiceData + * The object representing the service data * @return boolean flag * @throws GeneralSecurityException * In case of issues with the decryting the encrypted password @@ -447,23 +435,25 @@ public class SdcCatalogServices { */ public boolean isCldsSdcCacheDataExpired(CldsServiceData cldsServiceData) throws GeneralSecurityException, DecoderException { - boolean expired = false; if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) { 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))) { - expired = true; + String configuredMaxAge = refProp.getStringValue("clds.service.cache.invalidate.after.seconds"); + if (configuredMaxAge == null) { + logger.warn( + "clds.service.cache.invalidate.after.seconds NOT set in clds-reference.properties file, taking 60s as default"); + configuredMaxAge = "60"; } + return (!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null + && cldsServiceData.getAgeOfRecord() > Long.parseLong(configuredMaxAge)); } else { - expired = true; + return true; } - return expired; } /** - * Get the Service Data with Alarm Conditions for a given invariantServiceUuid. + * Get the Service Data with Alarm Conditions for a given + * invariantServiceUuid. * * @param invariantServiceUuid * @return The CldsServiceData @@ -510,8 +500,7 @@ public class SdcCatalogServices { cldsServiceData.setCldsVfs(cldsVfDataList); // For each vf in the list , add all vfc's getAllVfcForVfList(cldsVfDataList, catalogUrl); - logger.info("value of cldsServiceData:" + cldsServiceData); - logger.info("value of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID()); + logger.info("Invariant Service ID of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID()); } } } @@ -606,17 +595,17 @@ public class SdcCatalogServices { private void handleVFCtypeNode(ObjectNode currVfcNode, List cldsVfcDataList) { CldsVfcData currCldsVfcData = new CldsVfcData(); - TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName"); - TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID"); - currCldsVfcData.setVfcName(vfcResourceName.textValue()); - currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue()); - cldsVfcDataList.add(currCldsVfcData); + TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName"); + TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID"); + currCldsVfcData.setVfcName(vfcResourceName.textValue()); + currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue()); + cldsVfcDataList.add(currCldsVfcData); } private void handleCVFCtypeNode(ObjectNode currVfcNode, List cldsVfcDataList) { handleVFCtypeNode(currVfcNode, cldsVfcDataList); - cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue())); - } + cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue())); + } private List getVFCfromCVFC(String resourceUUID) { String catalogUrl = refProp.getStringValue(SDC_CATALOG_URL_PROPERTY_NAME); @@ -786,7 +775,6 @@ public class SdcCatalogServices { cldsAlarmConditionList.add(cldsAlarmCondition); } - // Get the responses for the current artifact from the artifacts URL. private String getResponsesFromArtifactUrl(String artifactsUrl) { String hostUrl = refProp.getStringValue("sdc.hostUrl"); @@ -802,9 +790,9 @@ public class SdcCatalogServices { * Service to services/resources/artifacts from sdc.Pass alarmConditions as * true to get alarm conditons from artifact url and else it is false * - * @param url The URL to trigger + * @param url + * The URL to trigger * @return The String containing the payload - * */ public String getCldsServicesOrResourcesBasedOnURL(String url) { Date startTime = new Date(); @@ -832,12 +820,12 @@ public class SdcCatalogServices { logger.error("Exception occurred during query to SDC", e); return ""; } catch (DecoderException e) { - LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName()); + LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Get sdc resources error"); logger.error("Exception when attempting to decode the Hex string", e); throw new SdcCommunicationException("Exception when attempting to decode the Hex string", e); } catch (GeneralSecurityException e) { - LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName()); + LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName()); LoggingUtils.setErrorContext("900", "Get sdc resources error"); logger.error("Exception when attempting to decrypt the encrypted password", e); throw new SdcCommunicationException("Exception when attempting to decrypt the encrypted password", e); @@ -901,7 +889,7 @@ public class SdcCatalogServices { byIdObjectNode.putPOJO("byAlertDescription", alertDescObjectNodeByAlert); globalPropsJson = decodeGlobalProp(globalProps, mapper); globalPropsJson.putPOJO("shared", byIdObjectNode); - logger.info("value of objNode:" + globalPropsJson); + logger.info("Global properties JSON created with SDC info:" + globalPropsJson); } else { /** * to create json with total properties when no serviceUUID passed diff --git a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java index d4b5b086d..3fb53a3b6 100644 --- a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java +++ b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,8 +25,6 @@ package org.onap.clamp.clds.client.req.sdc; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.core.JsonParseException; -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; @@ -42,7 +40,6 @@ import java.util.List; import java.util.Map.Entry; import org.apache.commons.codec.DecoderException; -import org.camunda.bpm.engine.delegate.DelegateExecution; import org.onap.clamp.clds.client.req.tca.TcaRequestFormatter; import org.onap.clamp.clds.model.CldsSdcResource; import org.onap.clamp.clds.model.CldsSdcServiceDetail; @@ -51,15 +48,20 @@ import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.model.prop.Tca; import org.onap.clamp.clds.model.refprop.RefProp; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Construct a Sdc request given CLDS objects. */ +@Component public class SdcReq { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcReq.class); + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcReq.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); @Autowired - protected RefProp refProp; + private SdcCatalogServices sdcCatalogServices; + @Autowired + protected RefProp refProp; /** * Format the Blueprint from a Yaml @@ -68,17 +70,11 @@ public class SdcReq { * The ModelProperties describing the clds model * @param docText * The Yaml file that must be converted - * * @return A String containing the BluePrint - * @throws JsonParseException - * In case of issues - * @throws JsonMappingException - * In case of issues * @throws IOException * In case of issues */ - public String formatBlueprint(ModelProperties prop, String docText) - throws JsonParseException, JsonMappingException, IOException { + public String formatBlueprint(ModelProperties prop, String docText) throws IOException { String yamlvalue = getYamlvalue(docText); String updatedBlueprint = ""; Tca tca = prop.getType(Tca.class); @@ -96,7 +92,6 @@ public class SdcReq { * The ModelProperties describing the clds model * @param artifactName * The name of the artifact - * * @return SDC Locations request in the JSON Format */ public String formatSdcLocationsReq(ModelProperties prop, String artifactName) { @@ -127,11 +122,8 @@ public class SdcReq { * @param artifactType * The type of the artifact * @return formatted SDC Request - * @throws IOException - * In case of issues */ - public String formatSdcReq(String payloadData, String artifactName, String artifactLabel, String artifactType) - throws IOException { + public String formatSdcReq(String payloadData, String artifactName, String artifactLabel, String artifactType) { logger.info("artifact=" + payloadData); String base64Artifact = Base64.getEncoder().encodeToString(payloadData.getBytes(StandardCharsets.UTF_8)); return "{ \n" + "\"payloadData\" : \"" + base64Artifact + "\",\n" + "\"artifactLabel\" : \"" + artifactLabel @@ -144,46 +136,47 @@ public class SdcReq { * To get List of urls for all vfresources * * @param prop + * The model properties JSON describing the closed loop flow * @param baseUrl - * @param sdcCatalogServices - * @param execution - * @return + * The URL to trigger + * @return A list of Service URL * @throws GeneralSecurityException * In case of issues when decrypting the password * @throws DecoderException * In case of issues when decoding the Hex String */ - public List getSdcReqUrlsList(ModelProperties prop, String baseUrl, SdcCatalogServices sdcCatalogServices, - DelegateExecution execution) throws GeneralSecurityException, DecoderException { - // TODO : refact and regroup with very similar code + public List getSdcReqUrlsList(ModelProperties prop, String baseUrl) + throws GeneralSecurityException, DecoderException { List urlList = new ArrayList<>(); Global globalProps = prop.getGlobal(); - if (globalProps != null) { - if (globalProps.getService() != null) { - String serviceInvariantUUID = globalProps.getService(); - execution.setVariable("serviceInvariantUUID", serviceInvariantUUID); - List resourceVfList = globalProps.getResourceVf(); - String serviceUUID = sdcCatalogServices.getServiceUuidFromServiceInvariantId(serviceInvariantUUID); - String sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(serviceUUID); - CldsSdcServiceDetail cldsSdcServiceDetail = sdcCatalogServices - .getCldsSdcServiceDetailFromJson(sdcServicesInformation); - if (cldsSdcServiceDetail != null && resourceVfList != null) { - List cldsSdcResourcesList = cldsSdcServiceDetail.getResources(); - if (cldsSdcResourcesList != null && !cldsSdcResourcesList.isEmpty()) { - for (CldsSdcResource CldsSdcResource : cldsSdcResourcesList) { - if (CldsSdcResource != null && CldsSdcResource.getResoucreType() != null - && CldsSdcResource.getResoucreType().equalsIgnoreCase("VF") - && resourceVfList.contains(CldsSdcResource.getResourceInvariantUUID())) { - String normalizedResourceInstanceName = normalizeResourceInstanceName( - CldsSdcResource.getResourceInstanceName()); - String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/" - + normalizedResourceInstanceName + "/artifacts"; - urlList.add(svcUrl); - } + if (globalProps != null && globalProps.getService() != null) { + String serviceInvariantUUID = globalProps.getService(); + List resourceVfList = globalProps.getResourceVf(); + String serviceUUID = sdcCatalogServices.getServiceUuidFromServiceInvariantId(serviceInvariantUUID); + CldsSdcServiceDetail cldsSdcServiceDetail = sdcCatalogServices + .getCldsSdcServiceDetailFromJson(sdcCatalogServices.getSdcServicesInformation(serviceUUID)); + if (cldsSdcServiceDetail != null && resourceVfList != null) { + List cldsSdcResourcesList = cldsSdcServiceDetail.getResources(); + if (cldsSdcResourcesList != null && !cldsSdcResourcesList.isEmpty()) { + for (CldsSdcResource cldsSdcResource : cldsSdcResourcesList) { + if (cldsSdcResource != null && cldsSdcResource.getResoucreType() != null + && cldsSdcResource.getResoucreType().equalsIgnoreCase("VF") + && resourceVfList.contains(cldsSdcResource.getResourceInvariantUUID())) { + String normalizedResourceInstanceName = normalizeResourceInstanceName( + cldsSdcResource.getResourceInstanceName()); + String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/" + + normalizedResourceInstanceName + "/artifacts"; + urlList.add(svcUrl); + } else { + logger.warn("The VF Resource invariant UUID (" + cldsSdcResource.getResourceInvariantUUID() + + ") has not been found in the Service (Invariant ID:" + serviceInvariantUUID + + ")VF resource list"); } } } } + } else { + logger.warn("GlobalProperties json is empty, skipping getSdcReqUrlsList and returning empty list"); } return urlList; } @@ -201,16 +194,18 @@ public class SdcReq { } /** - * Method to get yaml/template properties value from json + * Method to get yaml/template properties value from json. * - * @param docText - * @return + * @param jsonGlobal + * The Json containing a Yaml file + * @return The yaml extracted from the JSON * @throws IOException + * In case of issues with the Json parser */ - public String getYamlvalue(String docText) throws IOException { + protected String getYamlvalue(String jsonGlobal) throws IOException { ObjectMapper objectMapper = new ObjectMapper(); String yamlFileValue = ""; - ObjectNode root = objectMapper.readValue(docText, ObjectNode.class); + ObjectNode root = objectMapper.readValue(jsonGlobal, ObjectNode.class); Iterator> entryItr = root.fields(); while (entryItr.hasNext()) { Entry entry = entryItr.next(); diff --git a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java deleted file mode 100644 index 3790e235f..000000000 --- a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============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.config; - -import java.security.GeneralSecurityException; - -import javax.sql.DataSource; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; - -@Configuration -public class CamundaEngineConfiguration { - /** - * Camunda Identity database DataSource configuration - * - * @return - * @throws GeneralSecurityException - * In case of issue during the decoding of the password - */ - @Primary - @Bean(name = "camundaBpmDataSource") - @ConfigurationProperties(prefix = "spring.datasource.camunda") - public DataSource dataSource() { - return new EncodedPasswordBasicDataSource(); - } -} diff --git a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java index b99d3a96c..ae9704109 100644 --- a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java @@ -26,21 +26,7 @@ package org.onap.clamp.clds.config; import javax.sql.DataSource; import javax.xml.transform.TransformerConfigurationException; -import org.onap.clamp.clds.client.CldsEventDelegate; -import org.onap.clamp.clds.client.DcaeDispatcherServices; -import org.onap.clamp.clds.client.DcaeInventoryServices; -import org.onap.clamp.clds.client.HolmesPolicyDelegate; -import org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate; -import org.onap.clamp.clds.client.OperationalPolicyDelegate; -import org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate; -import org.onap.clamp.clds.client.SdcSendReqDelegate; -import org.onap.clamp.clds.client.TcaPolicyDelegate; -import org.onap.clamp.clds.client.TcaPolicyDeleteDelegate; -import org.onap.clamp.clds.client.req.policy.PolicyClient; -import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices; -import org.onap.clamp.clds.client.req.sdc.SdcReq; import org.onap.clamp.clds.dao.CldsDao; -import org.onap.clamp.clds.model.refprop.RefProp; import org.onap.clamp.clds.transform.XslTransformer; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.config.PropertiesFactoryBean; @@ -85,74 +71,4 @@ public class CldsConfiguration { xslTransformer.setXslResourceName("xsl/clds-bpmn-transformer.xsl"); return xslTransformer; } - - @Bean - public RefProp getRefProp() { - return new RefProp(); - } - - @Bean - public SdcReq getSdcReq() { - return new SdcReq(); - } - - @Bean - public PolicyClient getPolicyClient() { - return new PolicyClient(); - } - - @Bean(name = "cldsEventDelegate") - public CldsEventDelegate getCldsEventDelegate() { - return new CldsEventDelegate(); - } - - @Bean(name = "sdcSendReqDelegate") - public SdcSendReqDelegate getSdcSendReqDelegate() { - return new SdcSendReqDelegate(); - } - - @Bean(name = "operationalPolicyDelegate") - public OperationalPolicyDelegate getOperationalPolicyDelegate() { - return new OperationalPolicyDelegate(); - } - - @Bean(name = "operationalPolicyDeleteDelegate") - public OperationalPolicyDeleteDelegate getOperationalPolicyDeleteDelegate() { - return new OperationalPolicyDeleteDelegate(); - } - - @Bean(name = "sdcCatalogServices") - public SdcCatalogServices getSdcCatalogServices() { - return new SdcCatalogServices(); - } - - @Bean(name = "dcaeDispatcherServices") - public DcaeDispatcherServices getDcaeDispatcherServices() { - return new DcaeDispatcherServices(); - } - - @Bean(name = "dcaeInventoryServices") - public DcaeInventoryServices getDcaeInventoryServices() { - return new DcaeInventoryServices(); - } - - @Bean(name = "tcaPolicyDelegate") - public TcaPolicyDelegate getTcaPolicyDelegate() { - return new TcaPolicyDelegate(); - } - - @Bean(name = "tcaPolicyDeleteDelegate") - public TcaPolicyDeleteDelegate getTcaPolicyDeleteDelegate() { - return new TcaPolicyDeleteDelegate(); - } - - @Bean(name = "holmesPolicyDelegate") - public HolmesPolicyDelegate getHolmesPolicyDelegate() { - return new HolmesPolicyDelegate(); - } - - @Bean(name = "holmesPolicyDeleteDelegate") - public HolmesPolicyDeleteDelegate getHolmesPolicyDeleteDelegate() { - return new HolmesPolicyDeleteDelegate(); - } } \ No newline at end of file diff --git a/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java b/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java new file mode 100644 index 000000000..3a6a81689 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java @@ -0,0 +1,59 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.exception; + +/** + * New exception to CldsDelegate errors. + */ +public class CldsDelegateException extends RuntimeException { + + /** + * + */ + private static final long serialVersionUID = -2705212640916671093L; + + /** + * This constructor can be used to create a new CldsDelegateException. + * + * @param message + * A string message detailing the problem + * @param e + * The exception sent by the code + */ + public CldsDelegateException(String message, Throwable e) { + super(message, e); + } + + /** + * This constructor can be used to create a new CldsDelegateException. Use + * this constructor only if you are creating a new exception stack, not if + * an exception was already raised by another code. + * + * @param message + * A string message detailing the problem + */ + public CldsDelegateException(String message) { + super(message); + } +} diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java index fae5e584c..dca93e46d 100644 --- a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java +++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,7 +25,6 @@ package org.onap.clamp.clds.model.prop; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -37,7 +36,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import org.camunda.bpm.engine.delegate.DelegateExecution; +import org.apache.camel.Exchange; import org.onap.clamp.clds.exception.ModelBpmnException; import org.onap.clamp.clds.model.CldsEvent; import org.onap.clamp.clds.model.CldsModel; @@ -47,22 +46,21 @@ import org.onap.clamp.clds.service.CldsService; * Parse model properties. */ public class ModelProperties { - protected static final EELFLogger logger = EELFManager.getInstance() - .getLogger(CldsService.class); - protected static final EELFLogger auditLogger = EELFManager.getInstance() - .getAuditLogger(); - private ModelBpmn modelBpmn; - private JsonNode modelJson; - private final String modelName; - private final String controlName; - private final String actionCd; + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsService.class); + protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); + private ModelBpmn modelBpmn; + private JsonNode modelJson; + private final String modelName; + private final String controlName; + private final String actionCd; // Flag indicate whether it is triggered by Validation Test button from UI - private final boolean testOnly; - private Global global; - private final Map modelElements = new ConcurrentHashMap<>(); - private String currentModelElementId; - private String policyUniqueId; - private static final Object lock = new Object(); + private final boolean testOnly; + private Global global; + private final Map modelElements = new ConcurrentHashMap<>(); + private String currentModelElementId; + private String policyUniqueId; + private static final Object lock = new Object(); private static Map, String> modelElementClasses = new ConcurrentHashMap<>(); static { synchronized (lock) { @@ -107,11 +105,9 @@ public class ModelProperties { /** * This method is meant to ensure that one ModelElement instance exists for - * each ModelElement class. - * - * As new ModelElement classes could have been registered after - * instantiation of this ModelProperties, we need to build the missing - * ModelElement instances. + * each ModelElement class. As new ModelElement classes could have been + * registered after instantiation of this ModelProperties, we need to build + * the missing ModelElement instances. */ private final void instantiateMissingModelElements() { if (modelElementClasses.size() != modelElements.size()) { @@ -160,20 +156,21 @@ public class ModelProperties { } /** - * Create ModelProperties for Camunda Delegate. + * Create ModelProperties extracted from a CamelExchange. * - * @param execution - * @return - * @throws JsonProcessingException - * @throws IOException + * @param camelExchange + * The camel Exchange object that contains all info provided to + * the flow + * @return A model Properties created from the parameters found in + * camelExchange object */ - public static ModelProperties create(DelegateExecution execution) { - String modelProp = new String((byte[]) execution.getVariable("modelProp")); - String modelBpmnProp = (String) execution.getVariable("modelBpmnProp"); - String modelName = (String) execution.getVariable("modelName"); - String controlName = (String) execution.getVariable("controlName"); - String actionCd = (String) execution.getVariable("actionCd"); - boolean isTest = (boolean) execution.getVariable("isTest"); + public static ModelProperties create(Exchange camelExchange) { + String modelProp = (String) camelExchange.getProperty("modelProp"); + String modelBpmnProp = (String) camelExchange.getProperty("modelBpmnProp"); + String modelName = (String) camelExchange.getProperty("modelName"); + String controlName = (String) camelExchange.getProperty("controlName"); + String actionCd = (String) camelExchange.getProperty("actionCd"); + boolean isTest = (boolean) camelExchange.getProperty("isTest"); return new ModelProperties(modelName, controlName, actionCd, isTest, modelBpmnProp, modelProp); } diff --git a/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java b/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java index 5965a417b..f0cf71c1e 100644 --- a/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java +++ b/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,18 +25,22 @@ package org.onap.clamp.clds.model.refprop; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; +import java.util.Properties; + +import javax.annotation.PostConstruct; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.core.io.Resource; - -import javax.annotation.PostConstruct; -import java.io.IOException; -import java.util.Properties; +import org.springframework.stereotype.Component; /** * Holds reference properties. */ +@Component public class RefProp { @Autowired @@ -103,5 +107,4 @@ public class RefProp { ObjectMapper objectMapper = new ObjectMapper(); return objectMapper.readValue(getStringValue(key1, key2), JsonNode.class); } - } diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java index 1238236fb..a139de115 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java @@ -56,11 +56,11 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.xml.transform.TransformerException; +import org.apache.camel.Produce; import org.apache.commons.codec.DecoderException; import org.apache.commons.lang3.StringUtils; -import org.camunda.bpm.engine.RuntimeService; -import org.camunda.bpm.engine.runtime.ProcessInstance; import org.json.simple.parser.ParseException; +import org.onap.clamp.clds.camel.CamelProxy; import org.onap.clamp.clds.client.DcaeDispatcherServices; import org.onap.clamp.clds.client.DcaeInventoryServices; import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices; @@ -101,6 +101,8 @@ import org.springframework.web.client.HttpClientErrorException; @Path("/clds") public class CldsService extends SecureServiceBase { + @Produce(uri = "direct:processSubmit") + private CamelProxy camelProxy; protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger(); @Autowired private ApplicationContext appContext; @@ -138,8 +140,6 @@ public class CldsService extends SecureServiceBase { @Autowired private CldsDao cldsDao; @Autowired - private RuntimeService runtimeService; - @Autowired private XslTransformer cldsBpmnTransformer; @Autowired private RefProp refProp; @@ -410,7 +410,7 @@ public class CldsService extends SecureServiceBase { cldsPermissionInstance, actionCd); isAuthorized(permisionManage); isAuthorizedForVf(model); - String userid = getUserId(); + String userId = getUserId(); String actionStateCd = CldsEvent.ACTION_STATE_INITIATED; String processDefinitionKey = "clds-process-action-wf"; logger.info("PUT actionCd={}", actionCd); @@ -420,7 +420,7 @@ public class CldsService extends SecureServiceBase { logger.info("PUT test={}", test); logger.info("PUT bpmnText={}", model.getBpmnText()); logger.info("PUT propText={}", model.getPropText()); - logger.info("PUT userid={}", userid); + logger.info("PUT userId={}", userId); logger.info("PUT getTypeId={}", model.getTypeId()); logger.info("PUT deploymentId={}", model.getDeploymentId()); if (model.getTemplateName() != null) { @@ -462,7 +462,7 @@ public class CldsService extends SecureServiceBase { logger.info("PUT isInsertTestEvent={}", isInsertTestEvent); // determine if requested action is permitted model.validateAction(actionCd); - // input variables to camunda process + // input variables for Camel process Map variables = new HashMap<>(); variables.put("actionCd", actionCd); variables.put("modelProp", prop.getBytes()); @@ -471,18 +471,18 @@ public class CldsService extends SecureServiceBase { variables.put("controlName", controlName); variables.put("docText", docText.getBytes()); variables.put("isTest", isTest); - variables.put("userid", userid); + variables.put("userid", userId); variables.put("isInsertTestEvent", isInsertTestEvent); logger.info("modelProp - " + prop); logger.info("docText - " + docText); + // ModelProperties modelProperties = new ModelProperties(modelName, + // controlName, actionCd, isTest, modelBpmnProp, modelProp); try { - // start camunda process - ProcessInstance pi = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables); - // log process info - logger.info("Started processDefinitionId={}, processInstanceId={}", pi.getProcessDefinitionId(), - pi.getProcessInstanceId()); + String result = camelProxy.submit(actionCd, prop, bpmnJson, modelName, controlName, docText, isTest, userId, + isInsertTestEvent); + logger.info("Starting Camel flow on request, result is: ", result); } catch (SdcCommunicationException | PolicyClientException | BadRequestException e) { - logger.error("Exception occured during invoking bpmn process", e); + logger.error("Exception occured during invoking Camel process", e); throw new CldsConfigException(e.getMessage(), e); } // refresh model info from db (get fresh event info) @@ -605,39 +605,26 @@ public class CldsService extends SecureServiceBase { * In case of issues with the decryting the encrypted password * @throws DecoderException * In case of issues with the decoding of the Hex String + * @throws IOException + * In case of issue to convert CldsServiceCache to InputStream */ @GET @Path("/properties/{serviceInvariantUUID}") @Produces(MediaType.APPLICATION_JSON) public String getSdcPropertiesByServiceUUIDForRefresh( @PathParam("serviceInvariantUUID") String serviceInvariantUUID, - @DefaultValue("false") @QueryParam("refresh") String refresh) - throws GeneralSecurityException, DecoderException { + @DefaultValue("false") @QueryParam("refresh") boolean refresh) + throws GeneralSecurityException, DecoderException, IOException { Date startTime = new Date(); LoggingUtils.setRequestContext("CldsService: GET sdc properties by uuid", getPrincipalName()); CldsServiceData cldsServiceData = new CldsServiceData(); cldsServiceData.setServiceInvariantUUID(serviceInvariantUUID); - boolean isCldsSdcDataExpired = true; - // To getcldsService information from database cache using invariantUUID - // only when refresh = false - if (refresh != null && refresh.equalsIgnoreCase("false")) { - cldsServiceData = cldsServiceData.getCldsServiceCache(cldsDao, serviceInvariantUUID); - // If cldsService is available in database Cache , verify is data - // expired or not - if (cldsServiceData != null) { - isCldsSdcDataExpired = sdcCatalogServices.isCldsSdcCacheDataExpired(cldsServiceData); - } + if (!refresh) { + cldsServiceData = cldsDao.getCldsServiceCache(serviceInvariantUUID); } - // If user Requested for refresh or database cache expired , get all - // data from sdc api. - if ((refresh != null && refresh.equalsIgnoreCase("true")) || isCldsSdcDataExpired) { + if (sdcCatalogServices.isCldsSdcCacheDataExpired(cldsServiceData)) { cldsServiceData = sdcCatalogServices.getCldsServiceDataWithAlarmConditions(serviceInvariantUUID); - CldsDBServiceCache cldsDBServiceCache = sdcCatalogServices - .getCldsDbServiceCacheUsingCldsServiceData(cldsServiceData); - if (cldsDBServiceCache != null && cldsDBServiceCache.getInvariantId() != null - && cldsDBServiceCache.getServiceId() != null) { - cldsServiceData.setCldsServiceCache(cldsDao, cldsDBServiceCache); - } + cldsDao.setCldsServiceCache(new CldsDBServiceCache(cldsServiceData)); } // filter out VFs the user is not authorized for cldsServiceData.filterVfs(this); diff --git a/src/main/java/org/onap/clamp/clds/service/CldsUser.java b/src/main/java/org/onap/clamp/clds/service/CldsUser.java index 3dfeaebdd..fa7a738dd 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsUser.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsUser.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -29,9 +29,8 @@ import java.util.Arrays; * The class represents the CldsUser that can be extracted from cldsusers.json. */ public class CldsUser { - - private String user; - private String password; + private String user; + private String password; private SecureServicePermission[] permissions; /** diff --git a/src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java b/src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java new file mode 100644 index 000000000..d6e74aef1 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java @@ -0,0 +1,34 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.service; + +import javax.ws.rs.ApplicationPath; +import javax.ws.rs.core.Application; + +import org.springframework.stereotype.Component; + +@Component +@ApplicationPath("/restservices/clds/v1") +public class JaxrsApplication extends Application { +} \ No newline at end of file diff --git a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java b/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java deleted file mode 100644 index 0ffe41037..000000000 --- a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 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.service; - -import org.glassfish.jersey.server.ResourceConfig; -import org.springframework.stereotype.Component; - -@Component -public class JerseyConfig extends ResourceConfig { - - public JerseyConfig() { - registerEndpoints(); - } - - private void registerEndpoints() { - register(CldsService.class); - register(UserService.class); - register(CldsTemplateService.class); - } -} \ No newline at end of file diff --git a/src/main/java/org/onap/clamp/clds/util/LogMessages.java b/src/main/java/org/onap/clamp/clds/util/LogMessages.java new file mode 100644 index 000000000..808878696 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/util/LogMessages.java @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2017-2018 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.util; + +import com.att.eelf.i18n.EELFResolvableErrorEnum; +import com.att.eelf.i18n.EELFResourceManager; + +public enum LogMessages implements EELFResolvableErrorEnum { + LOGSERVICE_HELLO_MESSAGE, LOGSERVICE_EMAIL_ERROR, LOGSERVICE_EMAIL_CLASS, LOGSERVICE_EMAIL_CLASS_NULL, PROCESS_INSTANCE_ID; + + static { + EELFResourceManager.loadMessageBundle("logmessages"); + } +} diff --git a/src/main/resources/META-INF/processes.xml b/src/main/resources/META-INF/processes.xml deleted file mode 100644 index 921a1029b..000000000 --- a/src/main/resources/META-INF/processes.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - default - bpmn/clds-process-action.bpmn - - true - false - - - - diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1db0875a3..dd4ea6d36 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -62,8 +62,6 @@ server.port=8080 server.contextPath=/ #Modified engine-rest applicationpath -#camel.component.servlet.mapping.context-path=/restservices/clds/v1/* -spring.jersey.application-path=/restservices/clds/v1 spring.profiles.active=clamp-default,clamp-spring-authentication #The max number of active threads in this pool @@ -78,34 +76,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and camel.springboot.consumer-template-cache-size=1000 camel.springboot.producer-template-cache-size=1000 -camel.springboot.jmx-enabled=true +camel.springboot.jmx-enabled=false camel.defaultthreadpool.poolsize=10 camel.defaultthreadpool.maxpoolsize=20 camel.defaultthreadpool.maxqueuesize=1000 camel.defaultthreadpool.keepaliveTime=60 camel.defaultthreadpool.rejectpolicy=CallerRuns - -#server.port=0 -#Camunda Process Engine DataSource connection Details -spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver -spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 -spring.datasource.camunda.username=camunda -spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e -spring.datasource.camunda.validationQuery=SELECT 1 -spring.datasource.camunda.validationQueryTimeout=20000 -spring.datasource.camunda.validationInterval=30000 -spring.datasource.camunda.testWhileIdle = true -spring.datasource.camunda.minIdle = 0 -spring.datasource.camunda.initialSize=0 -# Automatically test whether a connection provided is good or not -spring.datasource.camunda.testOnBorrow=true -spring.datasource.camunda.ignoreExceptionOnPreLoad=true - -#Camunda application properties -#Camunda history level -camunda.bpm.history-level=auto -camunda.bpm.database.type=mariadb -camunda.bpm.database.schema-update=true +#camel.springboot.xmlRoutes = false +camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml +#camel.springboot.typeConversion = false #clds datasource connection details spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver diff --git a/src/main/resources/bpmn/clds-process-action.bpmn b/src/main/resources/bpmn/clds-process-action.bpmn deleted file mode 100644 index 11edc0714..000000000 --- a/src/main/resources/bpmn/clds-process-action.bpmn +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - ExclusiveGateway_2 - EndEvent_1 - insEvent - ExclusiveGateway_3 - sendOpPolicyReqDistribute - StartEvent_1 - ServiceTask_0x8ypxf - sendTcaReqDistribute - sendHolmesReqDistribute - - - sendTcaReqDelete - sendOpPolicyReqDelete - sendHolmesReqDelete - - - sendOpPolicyReqUpdate - sendTcaReqUpdate - sendHolmesReqUpdate - - - sendOpPolicyReqStop - - - sendOpPolicyReqRestart - - - - SequenceFlow_2 - SequenceFlow_4 - SequenceFlow_27 - SequenceFlow_29 - SequenceFlow_31 - SequenceFlow_15 - SequenceFlow_1xlfq66 - - - - - - SequenceFlow_16 - - - - - SENT - - - SequenceFlow_7 - SequenceFlow_16 - - - - SequenceFlow_10 - SequenceFlow_28 - SequenceFlow_30 - SequenceFlow_32 - SequenceFlow_6 - SequenceFlow_7 - - - - SequenceFlow_1tu9g11 - SequenceFlow_10 - - - - SequenceFlow_0ejpmee - SequenceFlow_28 - - - - - - - SequenceFlow_29 - SequenceFlow_30 - - - - - - - SequenceFlow_31 - SequenceFlow_32 - - - - - - - SequenceFlow_2 - - - - - - - - - - - - SequenceFlow_4 - SequenceFlow_1xlfq66 - SequenceFlow_0w39hon - - - - - SequenceFlow_15 - SequenceFlow_0tpegxf - - - - SequenceFlow_0w39hon - SequenceFlow_1rga27p - - - - SequenceFlow_1rga27p - SequenceFlow_1tu9g11 - - - SequenceFlow_1mtizad - SequenceFlow_6 - - - SequenceFlow_0tpegxf - SequenceFlow_1mtizad - - - - SequenceFlow_27 - SequenceFlow_1kegg6u - - - SequenceFlow_1kegg6u - SequenceFlow_0ejpmee - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/clds/camel/flexible-flow.xml b/src/main/resources/clds/camel/flexible-flow.xml new file mode 100644 index 000000000..7a3ebdb0a --- /dev/null +++ b/src/main/resources/clds/camel/flexible-flow.xml @@ -0,0 +1,36 @@ + + + + + + ${exchangeProperty.actionCd} == 'SUBMIT' || ${exchangeProperty.actionCd} == 'RESUBMIT' + + + + + + + ${exchangeProperty.actionCd} == 'DELETE' + + + + + + ${exchangeProperty.actionCd} == 'UPDATE' + + + + + + ${exchangeProperty.actionCd} == 'STOP' + + + + ${exchangeProperty.actionCd} == 'RESTART' + + + + + + + \ No newline at end of file diff --git a/src/main/resources/clds/clds-reference.properties b/src/main/resources/clds/clds-reference.properties index 95ba919c8..09cb5c9ea 100644 --- a/src/main/resources/clds/clds-reference.properties +++ b/src/main/resources/clds/clds-reference.properties @@ -80,8 +80,8 @@ op.eNodeB.period=10s sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/ sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080 sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services -sdc.serviceUsername=test -sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0 +sdc.serviceUsername=clamp +sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981 sdc.artifactLabel=blueprintclampcockpit sdc.sdcX-InstanceID=CLAMP sdc.artifactType=DCAE_INVENTORY_BLUEPRINT @@ -98,7 +98,7 @@ ui.alarm.default={"Reports a transient alarm condition when an incoming CDR cann action.test.override=false # if action.insert.test.event is true, then insert event even if the action is set to test action.insert.test.event=false -CLDS_SERVICE_CACHE_MAX_SECONDS=30 +clds.service.cache.invalidate.after.seconds=120 #DCAE Inventory Url Properties DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080 diff --git a/src/main/resources/clds/clds-users.json b/src/main/resources/clds/clds-users.json index 5909e8e78..d2c06c808 100644 --- a/src/main/resources/clds/clds-users.json +++ b/src/main/resources/clds/clds-users.json @@ -7,8 +7,7 @@ "permission-type-cl|dev|update", "permission-type-cl-manage|dev|*", "permission-type-filter-vf|dev|*", - "permission-type-template|dev|read", - "permission-type-template|dev|update" + "permission-type-template|dev|read" ] }, { diff --git a/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java index b4415ed1a..626cf9576 100644 --- a/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java @@ -50,7 +50,6 @@ import org.onap.clamp.clds.util.ResourceFileUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** @@ -58,7 +57,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; */ @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class CldsTemplateServiceItCase extends AbstractItCase { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsTemplateServiceItCase.class); diff --git a/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java b/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java index 56de81d46..2bdef978a 100644 --- a/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -59,30 +59,35 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) @TestPropertySource(locations = "classpath:https/https-test.properties") public class DcaeHttpConnectionManagerItCase extends AbstractItCase { + @Value("${server.port}") private String httpsPort; @Value("${server.http-to-https-redirection.port}") private String httpPort; - private static TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { - @Override - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return null; - } + private static TrustManager[] trustAllCerts = new TrustManager[] { + new X509TrustManager() { + + @Override + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return null; + } - @Override - public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { - } + @Override + public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { + } - @Override - public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { - } - } }; + @Override + public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { + } + } + }; private void enableSslNoCheck() throws NoSuchAlgorithmException, KeyManagementException { SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HostnameVerifier allHostsValid = new HostnameVerifier() { + @Override public boolean verify(String hostname, SSLSession session) { return true; @@ -119,20 +124,20 @@ public class DcaeHttpConnectionManagerItCase extends AbstractItCase { public void testHttpsGet404() throws IOException { DcaeHttpConnectionManager.doDcaeHttpQuery("https://localhost:" + this.httpsPort + "/designer/index1.html", "GET", null, null); - fail("Should have raised an BadRequestException exception"); + fail("Should have raised an BadRequestException"); } @Test(expected = BadRequestException.class) public void testHttpsPost404() throws IOException { DcaeHttpConnectionManager.doDcaeHttpQuery("https://localhost:" + this.httpsPort + "/designer/index1.html", "POST", "", "application/json"); - fail("Should have raised an BadRequestException exception"); + fail("Should have raised an BadRequestException"); } - @Test(expected = IOException.class) + @Test(expected = BadRequestException.class) public void testHttpException() throws IOException { DcaeHttpConnectionManager.doDcaeHttpQuery("http://localhost:" + this.httpsPort + "/designer/index.html", "GET", null, null); - fail("Should have raised an IOException exception"); + fail("Should have raised an BadRequestException"); } } diff --git a/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java index 62e04ede3..6f5c24d5e 100644 --- a/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -35,7 +35,6 @@ import org.onap.clamp.clds.model.prop.Holmes; import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.util.ResourceFileUtil; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; /** @@ -43,8 +42,8 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class HolmesPolicyDelegateItCase extends AbstractItCase { + @Test public void testCreatePolicyJson() throws IOException { String modelBpmnProp = ResourceFileUtil diff --git a/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java index 300919957..9013e0c41 100644 --- a/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -45,25 +45,24 @@ import org.onap.clamp.clds.util.ResourceFileUtil; import org.onap.policy.api.AttributeType; import org.onap.policy.controlloop.policy.builder.BuilderException; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class OperationPolicyReqItCase extends AbstractItCase { + @Test public void formatAttributesTest() throws IOException, BuilderException { - String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json"); - String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json"); - ModelProperties prop = new ModelProperties("testModel", "controlNameTest", CldsEvent.ACTION_SUBMIT, true, - modelBpmnProp, modelProp); + String modelBpmnProp = ResourceFileUtil + .getResourceAsString("example/model-properties/policy/modelBpmnProperties.json"); + String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmn.json"); + ModelProperties modelProperties = new ModelProperties("testModel", "controlNameTest", CldsEvent.ACTION_SUBMIT, + true, modelBpmn, modelBpmnProp); List>> attributes = new ArrayList<>(); - if (prop.getType(Policy.class).isFound()) { - for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) { - - attributes.add(OperationalPolicyReq.formatAttributes(refProp, prop, prop.getType(Policy.class).getId(), - policyChain)); + if (modelProperties.getType(Policy.class).isFound()) { + for (PolicyChain policyChain : modelProperties.getType(Policy.class).getPolicyChains()) { + attributes.add(OperationalPolicyReq.formatAttributes(refProp, modelProperties, + modelProperties.getType(Policy.class).getId(), policyChain)); } } assertFalse(attributes.isEmpty()); @@ -77,9 +76,7 @@ public class OperationPolicyReqItCase extends AbstractItCase { // Remove this field as not always present (depends of policy api) yaml = yaml.replaceAll(" pnf: null" + System.lineSeparator(), ""); yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length()); - assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-1.yaml"), yaml); - yaml = URLDecoder.decode(attributes.get(1).get(AttributeType.RULE).get("ControlLoopYaml"), "UTF-8"); yaml = yaml.replaceAll("trigger_policy: (.*)", "trigger_policy: "); yaml = yaml.replaceAll("id: (.*)", "id: "); @@ -87,7 +84,6 @@ public class OperationPolicyReqItCase extends AbstractItCase { // Remove this field as not always present (depends of policy api) yaml = yaml.replaceAll(" pnf: null" + System.lineSeparator(), ""); yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length()); - assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-2.yaml"), yaml); } } diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java index 275737761..71bd2d521 100644 --- a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -44,7 +44,6 @@ import org.onap.clamp.clds.model.prop.Tca; import org.onap.clamp.clds.util.ResourceFileUtil; import org.onap.policy.api.AttributeType; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; /** @@ -53,8 +52,8 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class PolicyClientItCase extends AbstractItCase { + String modelProp; String modelBpmnProp; String modelName; @@ -65,8 +64,8 @@ public class PolicyClientItCase extends AbstractItCase { */ @Before public void setUp() throws IOException { - modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json"); - modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json"); + modelProp = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmnProperties.json"); + modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmn.json"); modelName = "example-model06"; controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf"; } diff --git a/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java b/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java index 7ccda5a85..8f76b1822 100644 --- a/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -34,7 +34,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.clamp.clds.AbstractItCase; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; /** @@ -42,8 +41,8 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class RefPropItCase extends AbstractItCase { + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(RefPropItCase.class); /** diff --git a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java index f2eadbe4b..548212ef8 100644 --- a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -41,7 +41,6 @@ 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.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; /** @@ -49,46 +48,38 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class SdcCatalogServicesItCase extends AbstractItCase { + @Autowired private SdcCatalogServices sdcCatalogWired = new SdcCatalogServices(); @Test public void removeDuplicateServicesTest() { - CldsSdcServiceInfo service1a = new CldsSdcServiceInfo(); service1a.setName("service1"); service1a.setVersion("1.0"); service1a.setInvariantUUID("invariantUUID1.0"); - List rawCldsSdcServiceList = new LinkedList<>(); 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); - SdcCatalogServices catalogServices = new SdcCatalogServices(); List resultList = catalogServices.removeDuplicateServices(rawCldsSdcServiceList); - assertTrue(resultList.size() == 2); - CldsSdcServiceInfo res1; CldsSdcServiceInfo res2; if ("service1".equals(resultList.get(0).getName())) { @@ -98,43 +89,33 @@ public class SdcCatalogServicesItCase extends AbstractItCase { 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() { - List rawCldsSdcResourceList = new LinkedList<>(); - 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); - SdcCatalogServices catalogServices = new SdcCatalogServices(); List resultList = catalogServices.removeDuplicateSdcResourceInstances(rawCldsSdcResourceList); - CldsSdcResource res1; CldsSdcResource res2; if ("resource1".equals(resultList.get(0).getResourceInstanceName())) { @@ -144,44 +125,34 @@ public class SdcCatalogServicesItCase extends AbstractItCase { 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() { - List rawCldsSdcResourceList = new LinkedList<>(); - 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); - SdcCatalogServices catalogServices = new SdcCatalogServices(); List resultList = catalogServices .removeDuplicateSdcResourceBasicInfo(rawCldsSdcResourceList); - CldsSdcResourceBasicInfo res1; CldsSdcResourceBasicInfo res2; if ("resource1".equals(resultList.get(0).getName())) { @@ -191,19 +162,15 @@ public class SdcCatalogServicesItCase extends AbstractItCase { 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 spy = Mockito.spy(sdcCatalogWired); - Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"), "UTF-8")).when(spy).getSdcServicesInformation(null); @@ -211,120 +178,97 @@ public class SdcCatalogServicesItCase extends AbstractItCase { // should not exist, returning empty string String resUuidVcts4Null = spy.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 = spy.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 = spy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d8c"); assertTrue("29018914-966c-442d-9d08-251b9dc45b7f".equals(resUuidVcts5)); - // try one that does not exist at all String resUuidUnknown = spy.getServiceUuidFromServiceInvariantId("testuuid"); assertTrue("".equals(resUuidUnknown)); - } @Test public void getCldsServiceDataWithAlarmConditionsTest() throws Exception { SdcCatalogServices spy = Mockito.spy(sdcCatalogWired); - Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"), "UTF-8")).when(spy).getSdcServicesInformation(null); - // This invariant uuid is the one from vcts4 v1.1 String serviceResourceDetailUrl = refProp.getStringValue("sdc.serviceUrl") + "/29018914-966c-442d-9d08-251b9dc45b8f/metadata"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServiceDetailsExample.json"), "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(serviceResourceDetailUrl); - String resourceDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/585822c7-4027-4f84-ba50-e9248606f136/metadata"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcResourceDetailsExample.json"), "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(resourceDetailUrl); - String securityRulesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/metadata"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcSecurityRules.json"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(securityRulesDetailUrl); - String cinderVolumeDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/b4288e07-597a-44a2-aa98-ad36e551a39d/metadata"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCinderVolume.json"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(cinderVolumeDetailUrl); - String vfcGenericDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/metadata"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCGenericWithAlarms.json"), "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(vfcGenericDetailUrl); - String csvAlarmsDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl); - Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl); - String csvAlarmsDetailUrl2 = refProp.getStringValue("sdc.catalog.url") + "resources/d7646638-2572-4a94-b497-c028ac15f9ca/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl2); - String allVfResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VF"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFResources.json"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfResourcesDetailUrl); - String vfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/metadata"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCVFCResourceExample.json"), "UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(vfcResourcesDetailUrl); - String allVfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VFC"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl); - String allCvfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=CVFC"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCVFCResources.json"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(allCvfcResourcesDetailUrl); - String allVfAlarms = refProp.getStringValue("sdc.catalog.url") + "resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcMeasurementsList.csv"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(allVfAlarms); - String vfcResourceExample = refProp.getStringValue("sdc.catalog.url") + "resources/d7646638-2572-4a94-b497-c028ac15f9ca/metadata"; Mockito.doReturn(IOUtils.toString( SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCResourceExample.json"), "UTF-8")) .when(spy).getCldsServicesOrResourcesBasedOnURL(vfcResourceExample); - CldsServiceData cldsServiceData = spy .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 alarmsList = spy.getAllAlarmConditionsFromCldsServiceData(cldsServiceData, "alarmCondition"); assertTrue(alarmsList.size() == 12); - } - } diff --git a/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java index 757d85b53..afff9dd7d 100644 --- a/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -23,67 +23,85 @@ package org.onap.clamp.clds.it; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import java.io.IOException; import java.security.GeneralSecurityException; -import java.util.ArrayList; import java.util.List; import org.apache.commons.codec.DecoderException; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices; +import org.onap.clamp.clds.AbstractItCase; import org.onap.clamp.clds.client.req.sdc.SdcReq; -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.CldsEvent; import org.onap.clamp.clds.model.prop.ModelProperties; +import org.onap.clamp.clds.util.ResourceFileUtil; +import org.skyscreamer.jsonassert.JSONAssert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") -public class SdcReqItCase { - String baseUrl = "AYBABTU"; - String serviceInvariantUuid = "serviceInvariantUUID"; +public class SdcReqItCase extends AbstractItCase { + @Autowired private SdcReq sdcReq; + private String modelBpmnProp; + private String modelBpmn; + private String modelName; + private String controlName; + private ModelProperties modelProperties; + private String jsonWithYamlInside; + + /** + * Initialize Test. + */ + @Before + public void setUp() throws IOException { + modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json"); + modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmn.json"); + modelName = "example-model01"; + controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf"; + modelProperties = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn, + modelBpmnProp); + jsonWithYamlInside = ResourceFileUtil.getResourceAsString("example/tca-policy-req/prop-text.json"); + } + + @Test + public void formatBlueprintTest() throws IOException { + String blueprintFormatted = sdcReq.formatBlueprint(modelProperties, jsonWithYamlInside); + assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-expected.yaml"), + blueprintFormatted); + } + + @Test + public void formatSdcLocationsReqTest() { + String blueprintFormatted = sdcReq.formatSdcLocationsReq(modelProperties, "testos"); + assertEquals( + "{\"artifactName\":\"testos\",\"locations\":[\"SNDGCA64\",\"ALPRGAED\",\"LSLEILAA\",\"MDTWNJC1\"]}", + blueprintFormatted); + } + + @Test + public void formatSdcReqTest() { + String jsonResult = sdcReq.formatSdcReq("payload", "artifactName", "artifactLabel", "artifactType"); + JSONAssert.assertEquals( + "{\"payloadData\" : \"cGF5bG9hZA==\",\"artifactLabel\" : \"artifactLabel\",\"artifactName\" :\"artifactName\",\"artifactType\" : \"artifactType\"," + + "\"artifactGroupType\" : \"DEPLOYMENT\",\"description\" : \"from CLAMP Cockpit\"}", + jsonResult, true); + } @Test - public void getSdcReqUrlsListNoGlobalPropTest() throws GeneralSecurityException, DecoderException { - ModelProperties prop = mock(ModelProperties.class); - SdcCatalogServices sdcCatalogServices = mock(SdcCatalogServices.class); - DelegateExecution delegateExecution = mock(DelegateExecution.class); - CldsSdcResource cldsSdcResource = mock(CldsSdcResource.class); - List cldsSdcResources = new ArrayList<>(); - cldsSdcResources.add(cldsSdcResource); - List resourceVf = new ArrayList<>(); - resourceVf.add(serviceInvariantUuid); - Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - Global global = mock(Global.class); - when(prop.getGlobal()).thenReturn(global); - Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - when(global.getService()).thenReturn(serviceInvariantUuid); - Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - CldsSdcServiceDetail cldsSdcServiceDetail = mock(CldsSdcServiceDetail.class); - when(sdcCatalogServices.getCldsSdcServiceDetailFromJson(null)).thenReturn(cldsSdcServiceDetail); - when(global.getResourceVf()).thenReturn(new ArrayList<>()); - Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty()); - when(cldsSdcServiceDetail.getResources()).thenReturn(cldsSdcResources); - Assert.assertTrue(sdcReq.getSdcReqUrlsList(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(cldsSdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUuid); - when(cldsSdcResource.getResourceInstanceName()).thenReturn("Resource instance name"); - List expected = new ArrayList<>(); - expected.add("AYBABTU/null/resourceInstances/resourceinstancename/artifacts"); - Assert.assertEquals(expected, sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution)); + public void getSdcReqUrlsListTest() throws GeneralSecurityException, DecoderException { + List listUrls = sdcReq.getSdcReqUrlsList(modelProperties, refProp.getStringValue("sdc.serviceUrl")); + assertNotNull(listUrls); + assertTrue(listUrls.size() == 1); + assertTrue(listUrls.get(0).contains( + "/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts")); } } diff --git a/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java b/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java index c17ec0df8..419bfde22 100644 --- a/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java @@ -39,7 +39,6 @@ import org.onap.clamp.clds.model.prop.ModelProperties; import org.onap.clamp.clds.util.ResourceFileUtil; import org.skyscreamer.jsonassert.JSONAssert; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; /** @@ -47,14 +46,14 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest -@TestPropertySource(locations = "classpath:application-no-camunda.properties") public class TcaRequestFormatterItCase extends AbstractItCase { - String modelProp; - String modelBpmn; - String modelName; - String controlName; - String yamlInput; + private String modelProp; + private String modelBpmn; + private String modelName; + private String controlName; + private String yamlInput; + private ModelProperties modelProperties; /** * Initialize Test. @@ -66,13 +65,13 @@ public class TcaRequestFormatterItCase extends AbstractItCase { yamlInput = ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-input.yaml"); modelName = "example-model01"; controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf"; + modelProperties = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn, + modelProp); } @Test public void testCreatePolicyJson() throws IOException, JSONException { - ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn, - modelProp); - String result = TcaRequestFormatter.createPolicyJson(refProp, prop); + String result = TcaRequestFormatter.createPolicyJson(refProp, modelProperties); assertNotNull(result); JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/tca-policy-expected.json"), result, true); @@ -80,9 +79,7 @@ public class TcaRequestFormatterItCase extends AbstractItCase { @Test public void testUpdatedBlueprintWithConfiguration() throws IOException { - ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn, - modelProp); - String result = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, prop, yamlInput); + String result = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, modelProperties, yamlInput); assertNotNull(result); assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-expected.yaml"), result); } diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java index 03d7d65da..138d727c0 100644 --- a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java +++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -30,6 +30,7 @@ import com.fasterxml.jackson.databind.JsonNode; */ public class CustomModelElement extends AbstractModelElement { + private String test; private static final String CUSTOM_TYPE = "customType"; /** @@ -38,10 +39,18 @@ public class CustomModelElement extends AbstractModelElement { public CustomModelElement(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) { super(CUSTOM_TYPE, modelProp, modelBpmn, modelJson); topicPublishes = getValueByName("topicPublishes"); + test = this.getValueByName("test"); } public static final String getType() { return CUSTOM_TYPE; } + public String getTest() { + return test; + } + + public void setTest(String test) { + this.test = test; + } } diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java index 89eaf51cd..46c70e55e 100644 --- a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java +++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -35,33 +35,21 @@ public class CustomModelElementTest { } @Test - public void testNewElement() { - - try { - String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json"); - String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json"); - String modName = "example-model-name"; - String controlName = "example-control-name"; - - CustomModelElement customModelElement = null; - - // Instantiate first, we should not have our CustomModelElement yet - ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp); - - Assert.assertNotNull(prop); - - customModelElement = prop.getType(CustomModelElement.class); - - Assert.assertNull(customModelElement); - - ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType()); - - customModelElement = prop.getType(CustomModelElement.class); - - Assert.assertNotNull(customModelElement); - - } catch (IOException e) { - e.printStackTrace(); - } + public void testCustomElement() throws IOException { + String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/custom/modelBpmn.json"); + String modelProp = ResourceFileUtil + .getResourceAsString("example/model-properties/custom/modelBpmnProperties.json"); + String modName = "example-model-name"; + String controlName = "example-control-name"; + CustomModelElement customModelElement = null; + // Instantiate first, we should not have our CustomModelElement yet + ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp); + Assert.assertNotNull(prop); + customModelElement = prop.getType(CustomModelElement.class); + Assert.assertNull(customModelElement); + ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType()); + customModelElement = prop.getType(CustomModelElement.class); + Assert.assertNotNull(customModelElement); + Assert.assertEquals("This is a test", customModelElement.getTest()); } } diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java index eb0214127..7bb11a9ef 100644 --- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java +++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -46,14 +46,11 @@ public class ModelPropertiesTest { @Test public void testTcaModelDecoding() throws IOException { - String modelBpmnProp = ResourceFileUtil .getResourceAsString("example/model-properties/tca/modelBpmnProperties.json"); String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmn.json"); - ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn, modelBpmnProp); - Policy policy = prop.getType(Policy.class); assertTrue(policy.isFound()); assertEquals(1, policy.getPolicyChains().size()); @@ -64,7 +61,6 @@ public class ModelPropertiesTest { assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries()); assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy()); assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions()); - Tca tca = prop.getType(Tca.class); assertNotNull(tca); assertTrue(tca.isFound()); @@ -73,14 +69,12 @@ public class ModelPropertiesTest { assertEquals("policy1", tca.getTcaItem().getPolicyId()); assertEquals("f734f031-10aa-t8fb-330f-04dde2886325", tca.getTcaItem().getTcaUuId()); assertEquals(2, tca.getTcaItem().getTcaThresholds().size()); - assertEquals("ABATED", tca.getTcaItem().getTcaThresholds().get(0).getClosedLoopEventStatus()); assertEquals( "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", tca.getTcaItem().getTcaThresholds().get(0).getFieldPath()); assertEquals("LESS_OR_EQUAL", tca.getTcaItem().getTcaThresholds().get(0).getOperator()); assertEquals(Integer.valueOf(123), tca.getTcaItem().getTcaThresholds().get(0).getThreshold()); - assertEquals("ONSET", tca.getTcaItem().getTcaThresholds().get(1).getClosedLoopEventStatus()); assertEquals("$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", tca.getTcaItem().getTcaThresholds().get(1).getFieldPath()); @@ -90,14 +84,11 @@ public class ModelPropertiesTest { @Test public void testHolmesModelDecoding() throws IOException { - String modelBpmnProp = ResourceFileUtil .getResourceAsString("example/model-properties/holmes/modelBpmnProperties.json"); String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/holmes/modelBpmn.json"); - ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn, modelBpmnProp); - Policy policy = prop.getType(Policy.class); assertTrue(policy.isFound()); assertEquals(1, policy.getPolicyChains().size()); @@ -108,7 +99,6 @@ public class ModelPropertiesTest { assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries()); assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy()); assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions()); - Holmes holmes = prop.getType(Holmes.class); assertNotNull(holmes); assertTrue(holmes.isFound()); @@ -121,6 +111,6 @@ public class ModelPropertiesTest { CldsModel cldsModel = new CldsModel(); cldsModel.setPropText( ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json")); - assertEquals("f5213e3a-9191-4362-93b5-b67f8d770e44", ModelProperties.getVf(cldsModel)); + assertEquals("023a3f0d-1161-45ff-b4cf-8918a8ccf3ad", ModelProperties.getVf(cldsModel)); } } \ No newline at end of file diff --git a/src/test/resources/application-no-camunda.properties b/src/test/resources/application-no-camunda.properties index f7b2badef..2e284b032 100644 --- a/src/test/resources/application-no-camunda.properties +++ b/src/test/resources/application-no-camunda.properties @@ -76,42 +76,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and camel.springboot.consumer-template-cache-size=1000 camel.springboot.producer-template-cache-size=1000 -camel.springboot.jmx-enabled=true +camel.springboot.jmx-enabled=false camel.defaultthreadpool.poolsize=10 camel.defaultthreadpool.maxpoolsize=20 camel.defaultthreadpool.maxqueuesize=1000 camel.defaultthreadpool.keepaliveTime=60 camel.defaultthreadpool.rejectpolicy=CallerRuns - -#server.port=0 - -#Camunda Process Engine DataSource connection Details -spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver -spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 -spring.datasource.camunda.username=camunda -spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e -spring.datasource.camunda.validationQuery=SELECT 1 -spring.datasource.camunda.validationQueryTimeout=20000 -spring.datasource.camunda.validationInterval=30000 -spring.datasource.camunda.testWhileIdle = true -spring.datasource.camunda.minIdle = 0 -spring.datasource.camunda.initialSize=0 -# Automatically test whether a connection provided is good or not -spring.datasource.camunda.testOnBorrow=true -spring.datasource.camunda.ignoreExceptionOnPreLoad=true - -#Camunda application properties -#Camunda history level -camunda.bpm.history-level=none -camunda.bpm.enabled=false -camunda.bpm.jpa.enabled=false -camunda.bpm.auto-deployment-enabled=false -camunda.bpm.job-execution.active=false -camunda.bpm.job-execution.enabled=false -camunda.bpm.management.health.camunda.enabled=false -camunda.bpm.metrics.enabled=false -camunda.bpm.management.health.camunda.enabled=false -camunda.bpm.database.schema-update=true +#camel.springboot.xmlRoutes = false +camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml +#camel.springboot.typeConversion = false #clds datasource connection details spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver diff --git a/src/test/resources/clds/clds-reference.properties b/src/test/resources/clds/clds-reference.properties index 4627269a5..d6c8bc45b 100644 --- a/src/test/resources/clds/clds-reference.properties +++ b/src/test/resources/clds/clds-reference.properties @@ -2,19 +2,19 @@ # ============LICENSE_START======================================================= # ONAP CLAMP # ================================================================================ -# Copyright (C) 2017 AT&T Intellectual Property. All rights +# Copyright (C) 2017-2018 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============================================ # =================================================================== @@ -77,11 +77,11 @@ op.eNodeB.limit=2 op.eNodeB.period=10s # # Sdc service properties -sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/ -sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080 -sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services -sdc.serviceUsername=test -sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0 +sdc.catalog.url=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/ +sdc.hostUrl=http://localhost:${docker.http-cache.port.host} +sdc.serviceUrl=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/services +sdc.serviceUsername=clamp +sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981 sdc.artifactLabel=blueprintclampcockpit sdc.sdcX-InstanceID=CLAMP sdc.artifactType=DCAE_INVENTORY_BLUEPRINT @@ -98,7 +98,7 @@ ui.alarm.default={"Reports a transient alarm condition when an incoming CDR cann action.test.override=false # if action.insert.test.event is true, then insert event even if the action is set to test action.insert.test.event=false -CLDS_SERVICE_CACHE_MAX_SECONDS=30 +clds.service.cache.invalidate.after.seconds=120 #DCAE Inventory Url Properties DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080 diff --git a/src/test/resources/example/model-properties/custom/modelBpmn.json b/src/test/resources/example/model-properties/custom/modelBpmn.json new file mode 100644 index 000000000..c8efff877 --- /dev/null +++ b/src/test/resources/example/model-properties/custom/modelBpmn.json @@ -0,0 +1,25 @@ +{ + "policy": + [ + { + "id": "Policy_", + "from": "StartEvent_1" + } + ], + + "tca": + [ + { + "id": "TCA_", + "from": "" + } + ], + + "customType": + [ + { + "id": "CustomType_", + "from": "" + } + ] +} \ No newline at end of file diff --git a/src/test/resources/example/model-properties/custom/modelBpmnProperties.json b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json new file mode 100644 index 000000000..fc2f1fd99 --- /dev/null +++ b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json @@ -0,0 +1,248 @@ +{ + "global": + [ + { + "name": "service", + "value": + [ + "0f983e18-4603-4bb4-a98c-e29691fb16a1" + ] + }, + + { + "name": "vf", + "value": + [ + "6c7aaec2-59eb-41d9-8681-b7f976ab668d" + ] + }, + + { + "name": "actionSet", + "value": + [ + "enbRecipe" + ] + }, + + { + "name": "location", + "value": + [ + "SNDGCA64" + ] + } + ], + + "Policy_": + { + "Policy1": + [ + { + "name": "pname", + "value": "Policy1" + }, + + { + "name": "pid", + "value": "1" + }, + + { + "name": "timeout", + "value": "500" + }, + + { + "policyConfigurations": + [ + [ + { + "name": "recipe", + "value": + [ + "restart" + ] + }, + + { + "name": "maxRetries", + "value": + [ + "3" + ] + }, + + { + "name": "retryTimeLimit", + "value": + [ + "180" + ] + }, + + { + "name": "_id", + "value": + [ + "n9bQ4t6" + ] + }, + + { + "name": "parentPolicy", + "value": + [ + "" + ] + }, + { + "name": "targetResourceId", + "value": + [ + "resource-id" + ] + } + ], + + [ + { + "name": "recipe", + "value": + [ + "rebuild" + ] + }, + + { + "name": "maxRetries", + "value": + [ + "3" + ] + }, + + { + "name": "retryTimeLimit", + "value": + [ + "180" + ] + }, + + { + "name": "_id", + "value": + [ + "ItE5xKT" + ] + }, + + { + "name": "parentPolicy", + "value": + [ + "n9bQ4t6" + ] + }, + + { + "name": "parentPolicyConditions", + "value": + [ + "Failure_Retries", + "Failure_Timeout", + "Failure_Exception", + "Failure" + ] + }, + { + "name": "targetResourceId", + "value": + [ + "resource-id" + ] + } + ] + ] + } + ] + }, + + "TCA_": + { + "Narra": + [ + { + "name": "tname", + "value": "Narra" + }, + + { + "name": "tuuid", + "value": "886be8da-14fe-tca1-d04b-d13b55d58df9" + }, + + { + "name": "tnfc", + "value": "ENBE" + }, + + { + "name": "tcaEnab", + "value": "on" + }, + + { + "name": "tcaPol", + "value": "Policy1" + }, + + { + "name": "tcaPolId", + "value": "1" + }, + + { + "name": "tcaInt", + "value": "2" + }, + + { + "name": "tcaSev", + "value": "Warning" + }, + + { + "name": "tcaVio", + "value": "3" + }, + + { + "serviceConfigurations": + [ + [ + "PMRRCCONNESTABFAILCELLLATENCY", + "LESS", + "4", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value" + ], + + [ + "PMRAATTCBRA", + "GREATER", + "30", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value" + ] + ] + } + ] + }, + + "CustomType_": [ + { + "name": "test", + "value": "This is a test" + } + ] +} \ No newline at end of file diff --git a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json index cd76a1289..43fecc9ea 100644 --- a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json +++ b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json @@ -68,13 +68,6 @@ "vnfRecipe" ] }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED" - ] - }, { "name": "vf", "value": [ diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json deleted file mode 100644 index 8f7b8e61a..000000000 --- a/src/test/resources/example/model-properties/modelBpmn.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "policy": [ - { - "id": "Policy_0honxgv", - "from": "TCA_1jy9to4" - } - ], - "tca": [ - { - "id": "TCA_1jy9to4", - "from": "Holmes_0i4n2mm" - } - ], - "holmes": [ - { - "id": "Holmes_0i4n2mm", - "from": "VesCollector_0orydnh" - } - ], - "vesCollector": [ - { - "id": "VesCollector_0orydnh", - "from": "StartEvent_1" - } - ] -} diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json deleted file mode 100644 index eacb12448..000000000 --- a/src/test/resources/example/model-properties/modelBpmnProp.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "Policy_0honxgv": { - "policy1": [ - { - "name": "pname", - "value": "policy1" - }, - { - "name": "pid", - "value": "0" - }, - { - "name": "timeout", - "value": "345" - }, - { - "policyConfigurations": [ - [ - { - "name": "maxRetries", - "value": [ - "3" - ] - }, - { - "name": "retryTimeLimit", - "value": [ - "180" - ] - }, - { - "name": "_id", - "value": [ - "dGLuNqg" - ] - }, - { - "name": "parentPolicy", - "value": [ - "" - ] - }, - { - "name": "targetResourceId", - "value": [ - "resourceid" - ] - } - ] - ] - } - ] - }, - "TCA_1jy9to4": { - "tca1": [ - { - "name": "tname", - "value": "tca1" - }, - { - "name": "tuuid", - "value": "f43e3499-8c9c-teed-bb41-a0cb38ebf0d3" - }, - { - "name": "tnfc", - "value": "" - }, - { - "name": "tcaEnab", - "value": "on" - }, - { - "name": "tcaPol", - "value": "policy1" - }, - { - "name": "tcaPolId", - "value": "0" - }, - { - "name": "tcaInt", - "value": "1" - }, - { - "name": "tcaSev", - "value": "NORMAL" - }, - { - "name": "tcaVio", - "value": "1" - }, - { - "serviceConfigurations": [ - ] - } - ] - }, - "Holmes_0i4n2mm": [ - { - "name": "correlationalLogic", - "value": "blabla" - }, - { - "name": "configPolicyName", - "value": "policy1" - } - ] -} diff --git a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json deleted file mode 100644 index 3030adfb3..000000000 --- a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "tca": { - "tname": "New_Set", - "tcaInt": "1", - "tcaVio": "1", - "tcaSev": { - "NORMAL": "NORMAL", - "CRITICAL": "CRITICAL", - "MAJOR": "MAJOR", - "MINOR": "MINOR", - "WARNING": "WARNING" - }, - "fieldPath": { - "FIELDPATH_test_1": "FIELDPATH_test_1", - "FIELDPATH_test_2": "FIELDPATH_test_2" - }, - "operator": { - ">": "GREATER", - "=": "EQUAL", - "<": "LESS" - }, - "opsPolicy": { - "POLICY_test_X": "POLICY_test_X", - "POLICY_test_Y": "POLICY_test_Y" - } - }, - "global": [ - { - "name": "actionSet", - "value": [ - "vnfRecipe" - ] - }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED" - ] - }, - { - "name": "vf", - "value": [ - "f5213e3a-9191-4362-93b5-b67f8d770e44" - ] - }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED", - "LSLEILAA", - "MDTWNJC1" - ] - } - ], - "policy": { - "pname": "0", - "timeout": 345, - "vnfRecipe": { - "": "", - "restart": "Restart", - "rebuild": "Rebuild", - "migrate": "Migrate", - "healthCheck": "Health Check", - "evacuate": "Evacuate" - }, - "enbRecipe": { - "": "", - "reset": "Reset" - }, - "maxRetries": "3", - "retryTimeLimit": 180, - "resource": { - "vCTS": "vCTS", - "v3CDB": "v3CDB", - "vUDR": "vUDR", - "vCOM": "vCOM", - "vRAR": "vRAR", - "vLCS": "vLCS", - "vUDR-BE": "vUDR-BE", - "vDBE": "vDBE" - }, - "parentPolicyConditions": { - "Failure_Retries": "Failure: Max Retries Exceeded", - "Failure_Timeout": "Failure: Time Limit Exceeded", - "Failure_Guard": "Failure: Guard", - "Failure_Exception": "Failure: Exception", - "Failure": "Failure: Other", - "Success": "Success" - }, - "targetResourceId": "resourceid" - }, - "shared": { - "byService": { - "": { - "vf": { - "": "" - }, - "location": { - "": "" - }, - "alarmCondition": { - "": "" - } - } - }, - "byVf": { - "": { - "vfc": { - "": "" - } - } - } - } -} diff --git a/src/test/resources/example/model-properties/policy/modelBpmn.json b/src/test/resources/example/model-properties/policy/modelBpmn.json new file mode 100644 index 000000000..de643a69a --- /dev/null +++ b/src/test/resources/example/model-properties/policy/modelBpmn.json @@ -0,0 +1,17 @@ +{ + "policy": + [ + { + "id": "Policy_", + "from": "StartEvent_1" + } + ], + + "tca": + [ + { + "id": "TCA_", + "from": "" + } + ] +} \ No newline at end of file diff --git a/src/test/resources/example/model-properties/policy/modelBpmnProperties.json b/src/test/resources/example/model-properties/policy/modelBpmnProperties.json new file mode 100644 index 000000000..99f67b62e --- /dev/null +++ b/src/test/resources/example/model-properties/policy/modelBpmnProperties.json @@ -0,0 +1,440 @@ +{ + "global": + [ + { + "name": "service", + "value": + [ + "0f983e18-4603-4bb4-a98c-e29691fb16a1" + ] + }, + + { + "name": "vf", + "value": + [ + "6c7aaec2-59eb-41d9-8681-b7f976ab668d" + ] + }, + + { + "name": "actionSet", + "value": + [ + "enbRecipe" + ] + }, + + { + "name": "location", + "value": + [ + "SNDGCA64" + ] + } + ], + + "Policy_": + { + "Policy1": + [ + { + "name": "pname", + "value": "Policy1" + }, + + { + "name": "pid", + "value": "1" + }, + + { + "name": "timeout", + "value": "500" + }, + + { + "policyConfigurations": + [ + [ + { + "name": "recipe", + "value": + [ + "restart" + ] + }, + + { + "name": "maxRetries", + "value": + [ + "3" + ] + }, + + { + "name": "retryTimeLimit", + "value": + [ + "180" + ] + }, + + { + "name": "_id", + "value": + [ + "n9bQ4t6" + ] + }, + + { + "name": "parentPolicy", + "value": + [ + "" + ] + }, + { + "name": "targetResourceId", + "value": + [ + "resource-id" + ] + } + ], + + [ + { + "name": "recipe", + "value": + [ + "rebuild" + ] + }, + + { + "name": "maxRetries", + "value": + [ + "3" + ] + }, + + { + "name": "retryTimeLimit", + "value": + [ + "180" + ] + }, + + { + "name": "_id", + "value": + [ + "ItE5xKT" + ] + }, + + { + "name": "parentPolicy", + "value": + [ + "n9bQ4t6" + ] + }, + + { + "name": "parentPolicyConditions", + "value": + [ + "Failure_Retries", + "Failure_Timeout", + "Failure_Exception", + "Failure" + ] + }, + { + "name": "targetResourceId", + "value": + [ + "resource-id" + ] + } + ] + ] + } + ], + + "Policy2": + [ + { + "name": "pname", + "value": "Policy2" + }, + + { + "name": "pid", + "value": "2" + }, + + { + "name": "timeout", + "value": "500" + }, + + { + "policyConfigurations": + [ + [ + { + "name": "recipe", + "value": + [ + "restart" + ] + }, + + { + "name": "maxRetries", + "value": + [ + "3" + ] + }, + + { + "name": "retryTimeLimit", + "value": + [ + "180" + ] + }, + + { + "name": "_id", + "value": + [ + "n9bQ4t6" + ] + }, + + { + "name": "parentPolicy", + "value": + [ + "" + ] + }, + { + "name": "targetResourceId", + "value": + [ + "resource-id" + ] + } + ], + + [ + { + "name": "recipe", + "value": + [ + "rebuild" + ] + }, + + { + "name": "maxRetries", + "value": + [ + "3" + ] + }, + + { + "name": "retryTimeLimit", + "value": + [ + "180" + ] + }, + + { + "name": "_id", + "value": + [ + "ItE5xKT" + ] + }, + + { + "name": "parentPolicy", + "value": + [ + "n9bQ4t6" + ] + }, + + { + "name": "parentPolicyConditions", + "value": + [ + "Failure_Retries", + "Failure_Timeout", + "Failure_Exception", + "Failure" + ] + }, + { + "name": "targetResourceId", + "value": + [ + "resource-id" + ] + } + ] + ] + } + ] + }, + + "TCA_": + { + "Narra": + [ + { + "name": "tname", + "value": "Narra" + }, + + { + "name": "tuuid", + "value": "886be8da-14fe-tca1-d04b-d13b55d58df9" + }, + + { + "name": "tnfc", + "value": "ENBE" + }, + + { + "name": "tcaEnab", + "value": "on" + }, + + { + "name": "tcaPol", + "value": "Policy1" + }, + + { + "name": "tcaPolId", + "value": "1" + }, + + { + "name": "tcaInt", + "value": "2" + }, + + { + "name": "tcaSev", + "value": "Warning" + }, + + { + "name": "tcaVio", + "value": "3" + }, + + { + "serviceConfigurations": + [ + [ + "PMRRCCONNESTABFAILCELLLATENCY", + "LESS", + "4", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value" + ], + + [ + "PMRAATTCBRA", + "GREATER", + "30", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value" + ] + ] + } + ], + + "Srini": + [ + { + "name": "tname", + "value": "Srini" + }, + + { + "name": "tuuid", + "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d" + }, + + { + "name": "tnfc", + "value": "ENBE" + }, + + { + "name": "tcaEnab", + "value": "on" + }, + + { + "name": "tcaPol", + "value": "Policy2" + }, + + { + "name": "tcaPolId", + "value": "2" + }, + + { + "name": "tcaInt", + "value": "10" + }, + + { + "name": "tcaSev", + "value": "Critical" + }, + + { + "name": "tcaVio", + "value": "5" + }, + + { + "serviceConfigurations": + [ + [ + "PMRRCCONNESTABFAILCELLLATENCY", + "EQUAL", + "3", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value" + ], + + [ + "PMRAATTCBRA", + "GREATER", + "30", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value" + ] + ] + } + ] + } +} \ No newline at end of file diff --git a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json index 7bb4fe0bb..8e2780cda 100644 --- a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json +++ b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json @@ -101,20 +101,13 @@ { "name": "service", "value": [ - "serviceUUID" - ] - }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED" + "4cc5b45a-1f63-4194-8100-cd8e14248c92" ] }, { "name": "vf", "value": [ - "f5213e3a-9191-4362-93b5-b67f8d770e44" + "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad" ] }, { diff --git a/src/test/resources/example/modelBpmnProp.json b/src/test/resources/example/modelBpmnProp.json deleted file mode 100644 index c8efff877..000000000 --- a/src/test/resources/example/modelBpmnProp.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "policy": - [ - { - "id": "Policy_", - "from": "StartEvent_1" - } - ], - - "tca": - [ - { - "id": "TCA_", - "from": "" - } - ], - - "customType": - [ - { - "id": "CustomType_", - "from": "" - } - ] -} \ No newline at end of file diff --git a/src/test/resources/example/modelBpmnPropForPolicy.json b/src/test/resources/example/modelBpmnPropForPolicy.json deleted file mode 100644 index de643a69a..000000000 --- a/src/test/resources/example/modelBpmnPropForPolicy.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "policy": - [ - { - "id": "Policy_", - "from": "StartEvent_1" - } - ], - - "tca": - [ - { - "id": "TCA_", - "from": "" - } - ] -} \ No newline at end of file diff --git a/src/test/resources/example/modelProp.json b/src/test/resources/example/modelProp.json deleted file mode 100644 index 99f67b62e..000000000 --- a/src/test/resources/example/modelProp.json +++ /dev/null @@ -1,440 +0,0 @@ -{ - "global": - [ - { - "name": "service", - "value": - [ - "0f983e18-4603-4bb4-a98c-e29691fb16a1" - ] - }, - - { - "name": "vf", - "value": - [ - "6c7aaec2-59eb-41d9-8681-b7f976ab668d" - ] - }, - - { - "name": "actionSet", - "value": - [ - "enbRecipe" - ] - }, - - { - "name": "location", - "value": - [ - "SNDGCA64" - ] - } - ], - - "Policy_": - { - "Policy1": - [ - { - "name": "pname", - "value": "Policy1" - }, - - { - "name": "pid", - "value": "1" - }, - - { - "name": "timeout", - "value": "500" - }, - - { - "policyConfigurations": - [ - [ - { - "name": "recipe", - "value": - [ - "restart" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ], - - [ - { - "name": "recipe", - "value": - [ - "rebuild" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "ItE5xKT" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicyConditions", - "value": - [ - "Failure_Retries", - "Failure_Timeout", - "Failure_Exception", - "Failure" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ] - ] - } - ], - - "Policy2": - [ - { - "name": "pname", - "value": "Policy2" - }, - - { - "name": "pid", - "value": "2" - }, - - { - "name": "timeout", - "value": "500" - }, - - { - "policyConfigurations": - [ - [ - { - "name": "recipe", - "value": - [ - "restart" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ], - - [ - { - "name": "recipe", - "value": - [ - "rebuild" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "ItE5xKT" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicyConditions", - "value": - [ - "Failure_Retries", - "Failure_Timeout", - "Failure_Exception", - "Failure" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ] - ] - } - ] - }, - - "TCA_": - { - "Narra": - [ - { - "name": "tname", - "value": "Narra" - }, - - { - "name": "tuuid", - "value": "886be8da-14fe-tca1-d04b-d13b55d58df9" - }, - - { - "name": "tnfc", - "value": "ENBE" - }, - - { - "name": "tcaEnab", - "value": "on" - }, - - { - "name": "tcaPol", - "value": "Policy1" - }, - - { - "name": "tcaPolId", - "value": "1" - }, - - { - "name": "tcaInt", - "value": "2" - }, - - { - "name": "tcaSev", - "value": "Warning" - }, - - { - "name": "tcaVio", - "value": "3" - }, - - { - "serviceConfigurations": - [ - [ - "PMRRCCONNESTABFAILCELLLATENCY", - "LESS", - "4", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value" - ], - - [ - "PMRAATTCBRA", - "GREATER", - "30", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value" - ] - ] - } - ], - - "Srini": - [ - { - "name": "tname", - "value": "Srini" - }, - - { - "name": "tuuid", - "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d" - }, - - { - "name": "tnfc", - "value": "ENBE" - }, - - { - "name": "tcaEnab", - "value": "on" - }, - - { - "name": "tcaPol", - "value": "Policy2" - }, - - { - "name": "tcaPolId", - "value": "2" - }, - - { - "name": "tcaInt", - "value": "10" - }, - - { - "name": "tcaSev", - "value": "Critical" - }, - - { - "name": "tcaVio", - "value": "5" - }, - - { - "serviceConfigurations": - [ - [ - "PMRRCCONNESTABFAILCELLLATENCY", - "EQUAL", - "3", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value" - ], - - [ - "PMRAATTCBRA", - "GREATER", - "30", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value" - ] - ] - } - ] - } -} \ No newline at end of file diff --git a/src/test/resources/example/modelPropForPolicy.json b/src/test/resources/example/modelPropForPolicy.json deleted file mode 100644 index bf3480924..000000000 --- a/src/test/resources/example/modelPropForPolicy.json +++ /dev/null @@ -1,432 +0,0 @@ -{ - "global": - [ - { - "name": "service", - "value": - [ - "0f983e18-4603-4bb4-a98c-e29691fb16a1" - ] - }, - - { - "name": "vf", - "value": - [ - "6c7aaec2-59eb-41d9-8681-b7f976ab668d" - ] - }, - - { - "name": "location", - "value": - [ - "SNDGCA64" - ] - } - ], - - "Policy_": - { - "Policy1": - [ - { - "name": "pname", - "value": "Policy1" - }, - - { - "name": "pid", - "value": "1" - }, - - { - "name": "timeout", - "value": "500" - }, - - { - "policyConfigurations": - [ - [ - { - "name": "recipe", - "value": - [ - "restart" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ], - - [ - { - "name": "recipe", - "value": - [ - "rebuild" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "ItE5xKT" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicyConditions", - "value": - [ - "Failure_Retries", - "Failure_Timeout", - "Failure_Exception", - "Failure" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ] - ] - } - ], - - "Policy2": - [ - { - "name": "pname", - "value": "Policy2" - }, - - { - "name": "pid", - "value": "2" - }, - - { - "name": "timeout", - "value": "500" - }, - - { - "policyConfigurations": - [ - [ - { - "name": "recipe", - "value": - [ - "restart" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ], - - [ - { - "name": "recipe", - "value": - [ - "rebuild" - ] - }, - - { - "name": "maxRetries", - "value": - [ - "3" - ] - }, - - { - "name": "retryTimeLimit", - "value": - [ - "180" - ] - }, - - { - "name": "_id", - "value": - [ - "ItE5xKT" - ] - }, - - { - "name": "parentPolicy", - "value": - [ - "n9bQ4t6" - ] - }, - - { - "name": "parentPolicyConditions", - "value": - [ - "Failure_Retries", - "Failure_Timeout", - "Failure_Exception", - "Failure" - ] - }, - { - "name": "targetResourceId", - "value": - [ - "resource-id" - ] - } - ] - ] - } - ] - }, - - "TCA_": - { - "Narra": - [ - { - "name": "tname", - "value": "Narra" - }, - - { - "name": "tuuid", - "value": "886be8da-14fe-tca1-d04b-d13b55d58df9" - }, - - { - "name": "tnfc", - "value": "ENBE" - }, - - { - "name": "tcaEnab", - "value": "on" - }, - - { - "name": "tcaPol", - "value": "Policy1" - }, - - { - "name": "tcaPolId", - "value": "1" - }, - - { - "name": "tcaInt", - "value": "2" - }, - - { - "name": "tcaSev", - "value": "Warning" - }, - - { - "name": "tcaVio", - "value": "3" - }, - - { - "serviceConfigurations": - [ - [ - "PMRRCCONNESTABFAILCELLLATENCY", - "LESS", - "4", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value" - ], - - [ - "PMRAATTCBRA", - "GREATER", - "30", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value" - ] - ] - } - ], - - "Srini": - [ - { - "name": "tname", - "value": "Srini" - }, - - { - "name": "tuuid", - "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d" - }, - - { - "name": "tnfc", - "value": "ENBE" - }, - - { - "name": "tcaEnab", - "value": "on" - }, - - { - "name": "tcaPol", - "value": "Policy2" - }, - - { - "name": "tcaPolId", - "value": "2" - }, - - { - "name": "tcaInt", - "value": "10" - }, - - { - "name": "tcaSev", - "value": "Critical" - }, - - { - "name": "tcaVio", - "value": "5" - }, - - { - "serviceConfigurations": - [ - [ - "PMRRCCONNESTABFAILCELLLATENCY", - "EQUAL", - "3", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value" - ], - - [ - "PMRAATTCBRA", - "GREATER", - "30", - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value" - ] - ] - } - ] - } -} \ No newline at end of file diff --git a/src/test/resources/example/sdc/expected-result/all-sdc-services.json b/src/test/resources/example/sdc/expected-result/all-sdc-services.json new file mode 100644 index 000000000..ea6efddb4 --- /dev/null +++ b/src/test/resources/example/sdc/expected-result/all-sdc-services.json @@ -0,0 +1,6 @@ +{ + "service": { + "4cc5b45a-1f63-4194-8100-cd8e14248c92": "vFirewall", + "c95b0e7c-c1f0-4287-9928-7964c5377a46": "vLoadBalancer" + } +} diff --git a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml index 2082e559b..8739bb22f 100644 --- a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml +++ b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml @@ -1,7 +1,7 @@ tosca_definitions_version: cloudify_dsl_1_3 -imports: ['http://www.getcloudify.org/spec/cloudify/3.4/types.yaml', 'https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml', - 'https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml', - 'http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml'] +imports: ['http://www.getcloudify.org/spec/cloudify/3.4/types.yaml', 'https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml', + 'https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml', + 'http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml'] inputs: location_id: {type: string} service_id: {type: string} @@ -10,7 +10,7 @@ node_templates: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: location_id: {get_input: location_id} - scn_override: cdap_broker.solutioning-central.dcae.att.com + scn_override: cdap_broker.solutioning-central.dcae.onap.org interfaces: cloudify.interfaces.lifecycle: {} tca_tca: @@ -21,15 +21,15 @@ node_templates: tcaVESAlertsTableName: TCAVESAlertsTable, tcaVESAlertsTableTTLSeconds: '1728000', tcaVESMessageStatusTableName: TCAVESMessageStatusTable, tcaVESMessageStatusTableTTLSeconds: '86400', thresholdCalculatorFlowletInstances: '2'} - app_preferences: {publisherContentType: application/json, publisherHostName: mrlocal-mtnjftle01.homer.att.com, + app_preferences: {publisherContentType: application/json, publisherHostName: mrlocal-mtnjftle01.onap.org, publisherHostPort: '3905', publisherMaxBatchSize: '10', publisherMaxRecoveryQueueSize: '100000', - publisherPollingInterval: '20000', publisherProtocol: https, publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub, - publisherUserName: m00502@tca.af.dcae.att.com, publisherUserPassword: Te5021abc, + publisherPollingInterval: '20000', publisherProtocol: https, publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub, + publisherUserName: m00502@tca.af.dcae.onap.org, publisherUserPassword: Te5021abc, subscriberConsumerGroup: OpenDCAE-c12, subscriberConsumerId: c12, subscriberContentType: application/json, - subscriberHostName: mrlocal-mtnjftle01.homer.att.com, subscriberHostPort: '3905', + subscriberHostName: mrlocal-mtnjftle01.onap.org, subscriberHostPort: '3905', subscriberMessageLimit: '-1', subscriberPollingInterval: '20000', subscriberProtocol: https, - subscriberTimeoutMS: '-1', subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub, - subscriberUserName: m00502@tca.af.dcae.att.com, subscriberUserPassword: Te5021abc, + subscriberTimeoutMS: '-1', subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub, + subscriberUserName: m00502@tca.af.dcae.onap.org, subscriberUserPassword: Te5021abc, tca_policy: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta","thresholdValue":123,"direction":"GREATER_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta","thresholdValue":123,"direction":"GREATER_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"}]}]}'} artifact_name: dcae-analytics-tca artifact_version: 1.0.0 diff --git a/src/test/resources/example/tca-policy-req/blueprint-input.yaml b/src/test/resources/example/tca-policy-req/blueprint-input.yaml index 95322258e..101dc2c0d 100644 --- a/src/test/resources/example/tca-policy-req/blueprint-input.yaml +++ b/src/test/resources/example/tca-policy-req/blueprint-input.yaml @@ -1,9 +1,9 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml -- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml -- http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml +- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml +- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml +- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml inputs: location_id: type: string @@ -15,9 +15,10 @@ node_templates: properties: location_id: get_input: location_id - scn_override: cdap_broker.solutioning-central.dcae.att.com + scn_override: cdap_broker.solutioning-central.dcae.onap.org interfaces: - cloudify.interfaces.lifecycle: {} + cloudify.interfaces.lifecycle: { + } tca_tca: type: dcae.nodes.MicroService.cdap properties: @@ -32,33 +33,35 @@ node_templates: thresholdCalculatorFlowletInstances: '2' app_preferences: publisherContentType: application/json - publisherHostName: mrlocal-mtnjftle01.homer.att.com + publisherHostName: mrlocal-mtnjftle01.onap.org publisherHostPort: '3905' publisherMaxBatchSize: '10' publisherMaxRecoveryQueueSize: '100000' publisherPollingInterval: '20000' publisherProtocol: https - publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub - publisherUserName: m00502@tca.af.dcae.att.com + publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub + publisherUserName: m00502@tca.af.dcae.onap.org publisherUserPassword: Te5021abc subscriberConsumerGroup: OpenDCAE-c12 subscriberConsumerId: c12 subscriberContentType: application/json - subscriberHostName: mrlocal-mtnjftle01.homer.att.com + subscriberHostName: mrlocal-mtnjftle01.onap.org subscriberHostPort: '3905' subscriberMessageLimit: '-1' subscriberPollingInterval: '20000' subscriberProtocol: https subscriberTimeoutMS: '-1' - subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub - subscriberUserName: m00502@tca.af.dcae.att.com + subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub + subscriberUserName: m00502@tca.af.dcae.onap.org subscriberUserPassword: Te5021abc - tca_policy: + tca_policy: null artifact_name: dcae-analytics-tca artifact_version: 1.0.0 connections: - streams_publishes: [] - streams_subscribes: [] + streams_publishes: [ + ] + streams_subscribes: [ + ] jar_url: http://somejar location_id: get_input: location_id @@ -76,4 +79,4 @@ node_templates: streamname: TCASubscriberOutputStream relationships: - target: cdap_host_host - type: dcae.relationships.component_contained_in + type: dcae.relationships.component_contained_in \ No newline at end of file diff --git a/src/test/resources/example/tca-policy-req/prop-text.json b/src/test/resources/example/tca-policy-req/prop-text.json new file mode 100644 index 000000000..acaa8894f --- /dev/null +++ b/src/test/resources/example/tca-policy-req/prop-text.json @@ -0,0 +1 @@ +{"global":[{"name":"service","value":["tosca_definitions_version: cloudify_dsl_1_3\r\nimports:\r\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\r\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\r\ninputs:\r\n location_id:\r\n type: string\r\n service_id:\r\n type: string\r\nnode_templates:\r\n cdap_host_host:\r\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\r\n properties:\r\n location_id:\r\n get_input: location_id\r\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\r\n interfaces:\r\n cloudify.interfaces.lifecycle: {\r\n }\r\n tca_tca:\r\n type: dcae.nodes.MicroService.cdap\r\n properties:\r\n app_config:\r\n appDescription: DCAE Analytics Threshold Crossing Alert Application\r\n appName: dcae-tca\r\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\r\n tcaVESAlertsTableName: TCAVESAlertsTable\r\n tcaVESAlertsTableTTLSeconds: '1728000'\r\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\r\n tcaVESMessageStatusTableTTLSeconds: '86400'\r\n thresholdCalculatorFlowletInstances: '2'\r\n app_preferences:\r\n publisherContentType: application/json\r\n publisherHostName: mrlocal-mtnjftle01.onap.org\r\n publisherHostPort: '3905'\r\n publisherMaxBatchSize: '10'\r\n publisherMaxRecoveryQueueSize: '100000'\r\n publisherPollingInterval: '20000'\r\n publisherProtocol: https\r\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\r\n publisherUserName: m00502@tca.af.dcae.onap.org\r\n publisherUserPassword: Te5021abc\r\n subscriberConsumerGroup: OpenDCAE-c12\r\n subscriberConsumerId: c12\r\n subscriberContentType: application/json\r\n subscriberHostName: mrlocal-mtnjftle01.onap.org\r\n subscriberHostPort: '3905'\r\n subscriberMessageLimit: '-1'\r\n subscriberPollingInterval: '20000'\r\n subscriberProtocol: https\r\n subscriberTimeoutMS: '-1'\r\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\r\n subscriberUserName: m00502@tca.af.dcae.onap.org\r\n subscriberUserPassword: Te5021abc\r\n tca_policy: '{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"}]}]}'\r\n artifact_name: dcae-analytics-tca\r\n artifact_version: 1.0.0\r\n connections:\r\n streams_publishes: [\r\n ]\r\n streams_subscribes: [\r\n ]\r\n jar_url: http://somejar\r\n location_id:\r\n get_input: location_id\r\n namespace: cdap_tca_hi_lo\r\n programs:\r\n - program_id: TCAVESCollectorFlow\r\n program_type: flows\r\n - program_id: TCADMaaPMRSubscriberWorker\r\n program_type: workers\r\n - program_id: TCADMaaPMRPublisherWorker\r\n program_type: workers\r\n service_component_type: cdap_app_tca\r\n service_id:\r\n get_input: service_id\r\n streamname: TCASubscriberOutputStream\r\n relationships:\r\n - target: cdap_host_host\r\n type: dcae.relationships.component_contained_in"]}]} \ No newline at end of file diff --git a/src/test/resources/https/https-test.properties b/src/test/resources/https/https-test.properties index 54005ef2c..82cd999c3 100644 --- a/src/test/resources/https/https-test.properties +++ b/src/test/resources/https/https-test.properties @@ -77,42 +77,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and camel.springboot.consumer-template-cache-size=1000 camel.springboot.producer-template-cache-size=1000 -camel.springboot.jmx-enabled=true +camel.springboot.jmx-enabled=false camel.defaultthreadpool.poolsize=10 camel.defaultthreadpool.maxpoolsize=20 camel.defaultthreadpool.maxqueuesize=1000 camel.defaultthreadpool.keepaliveTime=60 camel.defaultthreadpool.rejectpolicy=CallerRuns - -#server.port=0 -#Camunda Process Engine DataSource connection Details -spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver -spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647 -spring.datasource.camunda.username=camunda -spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e -spring.datasource.camunda.validationQuery=SELECT 1 -spring.datasource.camunda.validationQueryTimeout=20000 -spring.datasource.camunda.validationInterval=30000 -spring.datasource.camunda.testWhileIdle = true -spring.datasource.camunda.minIdle = 0 -spring.datasource.camunda.initialSize=0 -# Automatically test whether a connection provided is good or not -spring.datasource.camunda.testOnBorrow=true -spring.datasource.camunda.ignoreExceptionOnPreLoad=true - - -#Camunda application properties -#Camunda history level -camunda.bpm.history-level=none -camunda.bpm.enabled=false -camunda.bpm.jpa.enabled=false -camunda.bpm.auto-deployment-enabled=false -camunda.bpm.job-execution.active=false -camunda.bpm.job-execution.enabled=false -camunda.bpm.management.health.camunda.enabled=false -camunda.bpm.metrics.enabled=false -camunda.bpm.management.health.camunda.enabled=false -camunda.bpm.database.schema-update=true +#camel.springboot.xmlRoutes = false +camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml +#camel.springboot.typeConversion = false #clds datasource connection details spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver -- cgit 1.2.3-korg From 2029624f01d163a06bb6f8b6ddc87975571b088a Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Mon, 12 Mar 2018 19:37:34 +0100 Subject: Add csar Handler Add a csar handler to save the Csar downloaded from SDC Issue-ID: CLAMP-81 Change-Id: I59d33ea3754e8e6acbe107c32fdcf83c1f236171 Signed-off-by: Determe, Sebastien (sd378r) --- pom.xml | 18 +++- .../sdc/controller/CsarHandlerException.java | 55 +++++++++++ .../clds/sdc/controller/installer/CsarHandler.java | 110 +++++++++++++++++++++ src/main/resources/application.properties | 1 + .../sdc/controller/installer/CsarHandlerTest.java | 104 +++++++++++++++++++ src/test/resources/application.properties | 1 + .../example/sdc/service-Simsfoimap0112.csar | Bin 0 -> 51391 bytes 7 files changed, 288 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java create mode 100644 src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java create mode 100644 src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java create mode 100644 src/test/resources/example/sdc/service-Simsfoimap0112.csar (limited to 'src/test/resources/example/sdc') diff --git a/pom.xml b/pom.xml index 2f1a7d248..69755e47d 100644 --- a/pom.xml +++ b/pom.xml @@ -485,8 +485,15 @@ org.openecomp.sdc.sdc-distribution-client sdc-distribution-client - 1.2.3 + 1.2.2 + + + org.openecomp.sdc.sdc-tosca + sdc-tosca + 1.2.2 + + @@ -497,6 +504,7 @@ src/test/resources **/*.jks + **/*.csar true @@ -508,6 +516,14 @@ false https + + src/test/resources/example/sdc + + **.csar + + false + example/sdc + diff --git a/src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java new file mode 100644 index 000000000..16fd77984 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.exception.sdc.controller; + +/** + * Exception during Csar operations. + */ +public class CsarHandlerException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -7628640776124409155L; + + /** + * @param message + * The message to dump + * @param cause + * The Throwable cause object + */ + public CsarHandlerException(final String message) { + super(message); + } + + /** + * @param message + * The message to dump + * @param cause + * The Throwable cause object + */ + public CsarHandlerException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java new file mode 100644 index 000000000..56c8530cc --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.sdc.controller.installer; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; + +import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; +import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; +import org.onap.clamp.clds.sdc.controller.SdcSingleController; +import org.openecomp.sdc.api.notification.IArtifactInfo; +import org.openecomp.sdc.api.notification.INotificationData; +import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; +import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; +import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory; + +/** + * CsarDescriptor that will be used to deploy in CLAMP. + */ +public class CsarHandler { + + private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSingleController.class); + private IArtifactInfo artifactElement; + private String filePath; + private String controllerName; + private SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); + private ISdcCsarHelper sdcCsarHelper; + public static final String CSAR_TYPE = "TOSCA_CSAR"; + private String csarPath; + + public CsarHandler(INotificationData iNotif, String controller, String sdcCsarPath) throws CsarHandlerException { + this.csarPath = sdcCsarPath; + this.controllerName = controller; + this.artifactElement = searchForUniqueCsar(iNotif); + this.filePath = buildFilePathForCsar(artifactElement); + } + + private String buildFilePathForCsar(IArtifactInfo artifactElement) { + return csarPath + "/" + controllerName + "/" + artifactElement.getArtifactName(); + } + + private IArtifactInfo searchForUniqueCsar(INotificationData iNotif) throws CsarHandlerException { + List serviceArtifacts = iNotif.getServiceArtifacts(); + for (IArtifactInfo artifact : serviceArtifacts) { + if (artifact.getArtifactType().equals(CSAR_TYPE)) { + return artifact; + } + } + throw new CsarHandlerException("Unable to find a CSAR in the Sdc Notification"); + } + + public void save(IDistributionClientDownloadResult resultArtifact) + throws SdcArtifactInstallerException, SdcToscaParserException { + try { + logger.info("Writing CSAR file : " + artifactElement.getArtifactURL() + " UUID " + + artifactElement.getArtifactUUID() + ")"); + Path path = Paths.get(filePath); + Files.createDirectories(path.getParent()); + Files.createFile(path); + try (FileOutputStream outFile = new FileOutputStream(filePath)) { + outFile.write(resultArtifact.getArtifactPayload(), 0, resultArtifact.getArtifactPayload().length); + } + sdcCsarHelper = factory.getSdcCsarHelper(filePath); + } catch (IOException e) { + throw new SdcArtifactInstallerException( + "Exception caught when trying to write the CSAR on the file system to " + filePath, e); + } + } + + public IArtifactInfo getArtifactElement() { + return artifactElement; + } + + public String getFilePath() { + return filePath; + } + + public ISdcCsarHelper getSdcCsarHelper() { + return sdcCsarHelper; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3d56725d6..f626e1af1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -177,6 +177,7 @@ clamp.config.sdc.locationArtifactType=DCAE_INVENTORY_JSON clamp.config.sdc.InstanceID=X-ECOMP-InstanceID clamp.config.sdc.header.requestId = X-ECOMP-RequestID # +clamp.config.sdc.csarFolder = /tmp/sdc-controllers # clamp.config.ui.location.default=classpath:/clds/templates/ui-location-default.json clamp.config.ui.alarm.default=classpath:/clds/templates/ui-alarm-default.json diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java new file mode 100644 index 000000000..4c3ab86b7 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.sdc.controller.installer; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.att.aft.dme2.internal.apache.commons.io.IOUtils; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +import org.junit.AfterClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; +import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; +import org.onap.clamp.clds.util.ResourceFileUtil; +import org.openecomp.sdc.api.notification.IArtifactInfo; +import org.openecomp.sdc.api.notification.INotificationData; +import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; + +public class CsarHandlerTest { + + private static final String sdcFolder = "/tmp/csar-handler-tests"; + private static final String csarArtifactName = "testArtifact.csar"; + + @AfterClass + public static void removeAllFiles() throws IOException { + // Do some cleanup + Path path = Paths.get(sdcFolder + "/test-controller/" + csarArtifactName); + Files.deleteIfExists(path); + } + + @Test + public void testConstructor() throws CsarHandlerException { + IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class); + Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE); + Mockito.when(serviceArtifact.getArtifactName()).thenReturn(csarArtifactName); + List servicesList = new ArrayList<>(); + servicesList.add(serviceArtifact); + INotificationData iNotifData = Mockito.mock(INotificationData.class); + Mockito.when(iNotifData.getServiceArtifacts()).thenReturn(servicesList); + CsarHandler csar = new CsarHandler(iNotifData, "test-controller", sdcFolder); + assertEquals(sdcFolder + "/test-controller" + "/" + csarArtifactName, csar.getFilePath()); + } + + @Test(expected = CsarHandlerException.class) + public void testFailingConstructor() throws CsarHandlerException { + INotificationData iNotifData = Mockito.mock(INotificationData.class); + Mockito.when(iNotifData.getServiceArtifacts()).thenReturn(new ArrayList<>()); + new CsarHandler(iNotifData, "test-controller", "/tmp/csar-handler-tests"); + fail("Exception should have been raised"); + } + + @Test + public void testSave() + throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { + IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class); + Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE); + Mockito.when(serviceArtifact.getArtifactName()).thenReturn(csarArtifactName); + List servicesList = new ArrayList<>(); + servicesList.add(serviceArtifact); + INotificationData iNotifData = Mockito.mock(INotificationData.class); + Mockito.when(iNotifData.getServiceArtifacts()).thenReturn(servicesList); + CsarHandler csar = new CsarHandler(iNotifData, "test-controller", "/tmp/csar-handler-tests"); + IDistributionClientDownloadResult resultArtifact = Mockito.mock(IDistributionClientDownloadResult.class); + Mockito.when(resultArtifact.getArtifactPayload()).thenReturn( + IOUtils.toByteArray(ResourceFileUtil.getResourceAsStream("example/sdc/service-Simsfoimap0112.csar"))); + csar.save(resultArtifact); + assertTrue((new File(sdcFolder + "/test-controller/" + csarArtifactName)).exists()); + assertEquals(csarArtifactName, csar.getArtifactElement().getArtifactName()); + assertNotNull(csar.getSdcCsarHelper()); + } +} diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index adcd4d98b..413cfe7a1 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -177,6 +177,7 @@ clamp.config.sdc.locationArtifactType=DCAE_INVENTORY_JSON clamp.config.sdc.InstanceID=X-ECOMP-InstanceID clamp.config.sdc.header.requestId = X-ECOMP-RequestID # +clamp.config.sdc.csarFolder = /tmp/sdc-tests # clamp.config.ui.location.default=classpath:/clds/templates/ui-location-default.json clamp.config.ui.alarm.default=classpath:/clds/templates/ui-alarm-default.json diff --git a/src/test/resources/example/sdc/service-Simsfoimap0112.csar b/src/test/resources/example/sdc/service-Simsfoimap0112.csar new file mode 100644 index 000000000..160c8f2cc Binary files /dev/null and b/src/test/resources/example/sdc/service-Simsfoimap0112.csar differ -- cgit 1.2.3-korg From ccb7152d2619a72367ba41dadd18812122425bda Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Fri, 16 Mar 2018 19:49:13 +0100 Subject: CsarInstaller introduction This class is introduced to decode/deploy the dcae blueprint from SDC and save it to database. This is done based on json templates. Some unit tests added Issue-ID: CLAMP-81 Change-Id: I3fac5f7ef41d77aa244414407111b9cb602b50bd Signed-off-by: Determe, Sebastien (sd378r) --- .../sdc/controller/installer/CsarInstaller.java | 33 +++ .../controller/installer/CsarInstallerImpl.java | 147 ++++++++++ src/main/resources/application.properties | 1 + .../resources/clds/blueprint-parser-mapping.json | 16 ++ .../resources/clds/templates/bpmn/holmes-img.xml | 315 +++++++++++++++++++++ .../clds/templates/bpmn/holmes-template.xml | 93 ++++++ src/main/resources/clds/templates/bpmn/tca-img.xml | 309 ++++++++++++++++++++ .../resources/clds/templates/bpmn/tca-template.xml | 95 +++++++ .../controller/installer/CsarInstallerItCase.java | 102 +++++++ src/test/resources/application.properties | 1 + .../resources/clds/blueprint-parser-mapping.json | 16 ++ .../resources/clds/templates/bpmn/holmes-img.xml | 315 +++++++++++++++++++++ .../clds/templates/bpmn/holmes-template.xml | 93 ++++++ src/test/resources/clds/templates/bpmn/tca-img.xml | 309 ++++++++++++++++++++ .../resources/clds/templates/bpmn/tca-template.xml | 95 +++++++ .../example/sdc/blueprint-dcae/holmes.yaml | 167 +++++++++++ .../example/sdc/blueprint-dcae/not-recognized.yaml | 130 +++++++++ .../resources/example/sdc/blueprint-dcae/tca.yaml | 82 ++++++ 18 files changed, 2319 insertions(+) create mode 100644 src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java create mode 100644 src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java create mode 100644 src/main/resources/clds/blueprint-parser-mapping.json create mode 100644 src/main/resources/clds/templates/bpmn/holmes-img.xml create mode 100644 src/main/resources/clds/templates/bpmn/holmes-template.xml create mode 100644 src/main/resources/clds/templates/bpmn/tca-img.xml create mode 100644 src/main/resources/clds/templates/bpmn/tca-template.xml create mode 100644 src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java create mode 100644 src/test/resources/clds/blueprint-parser-mapping.json create mode 100644 src/test/resources/clds/templates/bpmn/holmes-img.xml create mode 100644 src/test/resources/clds/templates/bpmn/holmes-template.xml create mode 100644 src/test/resources/clds/templates/bpmn/tca-img.xml create mode 100644 src/test/resources/clds/templates/bpmn/tca-template.xml create mode 100644 src/test/resources/example/sdc/blueprint-dcae/holmes.yaml create mode 100644 src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml create mode 100644 src/test/resources/example/sdc/blueprint-dcae/tca.yaml (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java new file mode 100644 index 000000000..739fc06d0 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java @@ -0,0 +1,33 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.sdc.controller.installer; + +import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; + +public interface CsarInstaller { + + boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException; + + public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException; +} diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java new file mode 100644 index 000000000..c56eed517 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java @@ -0,0 +1,147 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.sdc.controller.installer; + +import com.att.aft.dme2.internal.apache.commons.io.IOUtils; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; + +import org.onap.clamp.clds.config.ClampProperties; +import org.onap.clamp.clds.config.sdc.BlueprintParserFilesConfiguration; +import org.onap.clamp.clds.config.sdc.BlueprintParserMappingConfiguration; +import org.onap.clamp.clds.dao.CldsDao; +import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; +import org.onap.clamp.clds.model.CldsModel; +import org.onap.clamp.clds.model.CldsTemplate; +import org.onap.clamp.clds.service.CldsService; +import org.onap.clamp.clds.service.CldsTemplateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; +import org.yaml.snakeyaml.Yaml; + +@Component +public class CsarInstallerImpl implements CsarInstaller { + + private static final EELFLogger logger = EELFManager.getInstance().getLogger(CsarInstallerImpl.class); + private Map bpmnMapping = new HashMap<>(); + public static final String TEMPLATE_NAME_SUFFIX = "-template-dcae-designer"; + public static final String MODEL_NAME_SUFFIX = "-model-dcae-designer"; + /** + * The file name that will be loaded by Spring. + */ + @Value("${clamp.config.sdc.blueprint.parser.mapping:'classpath:/clds/blueprint-parser-mapping.json'}") + protected String blueprintMappingFile; + @Autowired + protected ApplicationContext appContext; + @Autowired + private CldsDao cldsDao; + @Autowired + private ClampProperties refProp; + @Autowired + CldsTemplateService cldsTemplateService; + @Autowired + CldsService cldsService; + + @PostConstruct + public void loadConfiguration() throws IOException { + BlueprintParserMappingConfiguration + .createFromJson(appContext.getResource(blueprintMappingFile).getInputStream()).stream() + .forEach(e -> bpmnMapping.put(e.getBlueprintKey(), e.getFiles())); + } + + @Override + public boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException { + return false; + } + + @Override + public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException { + try { + BlueprintParserFilesConfiguration configFiles = this.searchForRightMapping(csar); + createFakeCldsModel(csar, configFiles, createFakeCldsTemplate(csar, configFiles)); + } catch (IOException e) { + throw new SdcArtifactInstallerException("Exception caught during the Csar installation in database", e); + } + } + + private BlueprintParserFilesConfiguration searchForRightMapping(CsarHandler csar) + throws SdcArtifactInstallerException { + List listConfig = new ArrayList<>(); + Yaml yaml = new Yaml(); + Map templateNodes = ((Map) ((Map) yaml + .load(csar.getDcaeBlueprint())).get("node_templates")); + bpmnMapping.entrySet().forEach(e -> { + if (templateNodes.keySet().stream().anyMatch(t -> t.contains(e.getKey()))) { + listConfig.add(e.getValue()); + } + }); + if (listConfig.size() > 1) { + throw new SdcArtifactInstallerException( + "The code does not currently support multiple MicroServices in the blueprint"); + } else if (listConfig.isEmpty()) { + throw new SdcArtifactInstallerException("There is no recognized MicroService found in the blueprint"); + } + return listConfig.get(0); + } + + private String createTemplateName(CsarHandler csar) { + return csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + TEMPLATE_NAME_SUFFIX; + } + + private String createModelName(CsarHandler csar) { + return csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + MODEL_NAME_SUFFIX; + } + + private CldsTemplate createFakeCldsTemplate(CsarHandler csar, BlueprintParserFilesConfiguration configFiles) + throws IOException, SdcArtifactInstallerException { + CldsTemplate template = new CldsTemplate(); + template.setBpmnId("Sdc-Generated"); + template.setBpmnText( + IOUtils.toString(appContext.getResource(configFiles.getBpmnXmlFilePath()).getInputStream())); + // ((ObjectNode)refProp.getJsonTemplate(CldsService.GLOBAL_PROPERTIES_KEY)); + template.setPropText(csar.getDcaeBlueprint()); + template.setImageText( + IOUtils.toString(appContext.getResource(configFiles.getSvgXmlFilePath()).getInputStream())); + return cldsTemplateService.putTemplate(createTemplateName(csar), template); + } + + private CldsModel createFakeCldsModel(CsarHandler csar, BlueprintParserFilesConfiguration configFiles, + CldsTemplate cldsTemplate) { + CldsModel cldsModel = new CldsModel(); + cldsModel.setBlueprintText(csar.getDcaeBlueprint()); + cldsModel.setTemplateName(cldsTemplate.getName()); + // cldsModel.set + return cldsService.putModel(createModelName(csar), cldsModel); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index f626e1af1..17f85817f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -178,6 +178,7 @@ clamp.config.sdc.InstanceID=X-ECOMP-InstanceID clamp.config.sdc.header.requestId = X-ECOMP-RequestID # clamp.config.sdc.csarFolder = /tmp/sdc-controllers +clamp.config.sdc.blueprint.parser.mapping = classpath:/clds/blueprint-parser-mapping.json # clamp.config.ui.location.default=classpath:/clds/templates/ui-location-default.json clamp.config.ui.alarm.default=classpath:/clds/templates/ui-alarm-default.json diff --git a/src/main/resources/clds/blueprint-parser-mapping.json b/src/main/resources/clds/blueprint-parser-mapping.json new file mode 100644 index 000000000..a16ef0cbc --- /dev/null +++ b/src/main/resources/clds/blueprint-parser-mapping.json @@ -0,0 +1,16 @@ +[ + { + "blueprintKey": "tca_", + "files": { + "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/tca-template.xml", + "svgXmlFilePath": "classpath:/clds/templates/bpmn/tca-img.xml" + } + }, + { + "blueprintKey": "holmes_", + "files": { + "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/holmes-template.xml", + "svgXmlFilePath": "classpath:/clds/templates/bpmn/holmes-img.xml" + } + } +] diff --git a/src/main/resources/clds/templates/bpmn/holmes-img.xml b/src/main/resources/clds/templates/bpmn/holmes-img.xml new file mode 100644 index 000000000..f84b6a10e --- /dev/null +++ b/src/main/resources/clds/templates/bpmn/holmes-img.xml @@ -0,0 +1,315 @@ + +\n +\n +\n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + H + + + Holmes + + + + + + + + + + + + + + V + + + E + + + S + + + VesCollector + + + + + + + + + + + + + Policy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/clds/templates/bpmn/holmes-template.xml b/src/main/resources/clds/templates/bpmn/holmes-template.xml new file mode 100644 index 000000000..0ea1587ce --- /dev/null +++ b/src/main/resources/clds/templates/bpmn/holmes-template.xml @@ -0,0 +1,93 @@ + + + + + SequenceFlow_1c9hzec + + + SequenceFlow_1ig3gix + SequenceFlow_0zwbn2r + + + SequenceFlow_1c9hzec + SequenceFlow_1ig3gix + + + SequenceFlow_0zwbn2r + SequenceFlow_0ox6r95 + + + SequenceFlow_0ox6r95 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/clds/templates/bpmn/tca-img.xml b/src/main/resources/clds/templates/bpmn/tca-img.xml new file mode 100644 index 000000000..a2ec5af23 --- /dev/null +++ b/src/main/resources/clds/templates/bpmn/tca-img.xml @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + V + + + E + + + S + + + VesCollector + + + + + + + + + + + + + TCA + + + + + + + + + + + + + Policy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/clds/templates/bpmn/tca-template.xml b/src/main/resources/clds/templates/bpmn/tca-template.xml new file mode 100644 index 000000000..cc942ef9d --- /dev/null +++ b/src/main/resources/clds/templates/bpmn/tca-template.xml @@ -0,0 +1,95 @@ + + + + + + SequenceFlow_1ahk7jg + + + SequenceFlow_1ahk7jg + SequenceFlow_18ahat1 + + + SequenceFlow_18ahat1 + SequenceFlow_1mo9gxb + + + SequenceFlow_1mo9gxb + SequenceFlow_1dgtrrq + + + SequenceFlow_1dgtrrq + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java new file mode 100644 index 000000000..94adfafa8 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -0,0 +1,102 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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.sdc.controller.installer; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import com.att.aft.dme2.internal.apache.commons.io.IOUtils; +import com.att.aft.dme2.internal.apache.commons.lang.RandomStringUtils; + +import java.io.IOException; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.onap.clamp.clds.dao.CldsDao; +import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; +import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; +import org.onap.clamp.clds.model.CldsTemplate; +import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; +import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller; +import org.onap.clamp.clds.sdc.controller.installer.CsarInstallerImpl; +import org.onap.clamp.clds.util.ResourceFileUtil; +import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; +import org.openecomp.sdc.toscaparser.api.elements.Metadata; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.util.ReflectionTestUtils; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class CsarInstallerItCase { + + private static final String sdcFolder = "/tmp/csar-handler-tests"; + private static final String csarArtifactName = "testArtifact.csar"; + @Autowired + private CsarInstaller csarInstaller; + @Autowired + private CldsDao cldsDao; + + private void loadFile(String fileName) throws IOException { + ReflectionTestUtils.setField(csarInstaller, "blueprintMappingFile", fileName); + ((CsarInstallerImpl) csarInstaller).loadConfiguration(); + } + + @Test(expected = SdcArtifactInstallerException.class) + public void testInstallTheCsarFail() + throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { + CsarHandler csarHandler = Mockito.mock(CsarHandler.class); + Mockito.when(csarHandler.getDcaeBlueprint()).thenReturn(IOUtils + .toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/not-recognized.yaml"))); + csarInstaller.installTheCsar(csarHandler); + fail("Should have raised an SdcArtifactInstallerException"); + } + + @Test() + public void testInstallTheCsarTca() + throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { + String generatedName = RandomStringUtils.randomAlphanumeric(5); + CsarHandler csarHandler = Mockito.mock(CsarHandler.class); + Mockito.when(csarHandler.getDcaeBlueprint()).thenReturn( + IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/tca.yaml"))); + ISdcCsarHelper csarHelper = Mockito.mock(ISdcCsarHelper.class); + Metadata data = Mockito.mock(Metadata.class); + Mockito.when(data.getValue("name")).thenReturn(generatedName); + Mockito.when(csarHelper.getServiceMetadata()).thenReturn(data); + Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); + csarInstaller.installTheCsar(csarHandler); + // Get it back from DB + CldsTemplate templateFromDB = CldsTemplate.retrieve(cldsDao, + generatedName + CsarInstallerImpl.TEMPLATE_NAME_SUFFIX, false); + assertNotNull(templateFromDB); + assertNotNull(templateFromDB.getBpmnText()); + assertNotNull(templateFromDB.getImageText()); + assertNotNull(templateFromDB.getPropText()); + assertEquals(templateFromDB.getName(), generatedName + CsarInstallerImpl.TEMPLATE_NAME_SUFFIX); + } +} diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 413cfe7a1..ad0355290 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -178,6 +178,7 @@ clamp.config.sdc.InstanceID=X-ECOMP-InstanceID clamp.config.sdc.header.requestId = X-ECOMP-RequestID # clamp.config.sdc.csarFolder = /tmp/sdc-tests +clamp.config.sdc.blueprint.parser.mapping = classpath:/clds/blueprint-parser-mapping.json # clamp.config.ui.location.default=classpath:/clds/templates/ui-location-default.json clamp.config.ui.alarm.default=classpath:/clds/templates/ui-alarm-default.json diff --git a/src/test/resources/clds/blueprint-parser-mapping.json b/src/test/resources/clds/blueprint-parser-mapping.json new file mode 100644 index 000000000..a16ef0cbc --- /dev/null +++ b/src/test/resources/clds/blueprint-parser-mapping.json @@ -0,0 +1,16 @@ +[ + { + "blueprintKey": "tca_", + "files": { + "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/tca-template.xml", + "svgXmlFilePath": "classpath:/clds/templates/bpmn/tca-img.xml" + } + }, + { + "blueprintKey": "holmes_", + "files": { + "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/holmes-template.xml", + "svgXmlFilePath": "classpath:/clds/templates/bpmn/holmes-img.xml" + } + } +] diff --git a/src/test/resources/clds/templates/bpmn/holmes-img.xml b/src/test/resources/clds/templates/bpmn/holmes-img.xml new file mode 100644 index 000000000..f84b6a10e --- /dev/null +++ b/src/test/resources/clds/templates/bpmn/holmes-img.xml @@ -0,0 +1,315 @@ + +\n +\n +\n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + H + + + Holmes + + + + + + + + + + + + + + V + + + E + + + S + + + VesCollector + + + + + + + + + + + + + Policy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/clds/templates/bpmn/holmes-template.xml b/src/test/resources/clds/templates/bpmn/holmes-template.xml new file mode 100644 index 000000000..0ea1587ce --- /dev/null +++ b/src/test/resources/clds/templates/bpmn/holmes-template.xml @@ -0,0 +1,93 @@ + + + + + SequenceFlow_1c9hzec + + + SequenceFlow_1ig3gix + SequenceFlow_0zwbn2r + + + SequenceFlow_1c9hzec + SequenceFlow_1ig3gix + + + SequenceFlow_0zwbn2r + SequenceFlow_0ox6r95 + + + SequenceFlow_0ox6r95 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/clds/templates/bpmn/tca-img.xml b/src/test/resources/clds/templates/bpmn/tca-img.xml new file mode 100644 index 000000000..a2ec5af23 --- /dev/null +++ b/src/test/resources/clds/templates/bpmn/tca-img.xml @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + V + + + E + + + S + + + VesCollector + + + + + + + + + + + + + TCA + + + + + + + + + + + + + Policy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/clds/templates/bpmn/tca-template.xml b/src/test/resources/clds/templates/bpmn/tca-template.xml new file mode 100644 index 000000000..cc942ef9d --- /dev/null +++ b/src/test/resources/clds/templates/bpmn/tca-template.xml @@ -0,0 +1,95 @@ + + + + + + SequenceFlow_1ahk7jg + + + SequenceFlow_1ahk7jg + SequenceFlow_18ahat1 + + + SequenceFlow_18ahat1 + SequenceFlow_1mo9gxb + + + SequenceFlow_1mo9gxb + SequenceFlow_1dgtrrq + + + SequenceFlow_1dgtrrq + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml b/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml new file mode 100644 index 000000000..1277a0243 --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml @@ -0,0 +1,167 @@ +tosca_definitions_version: cloudify_dsl_1_3 +imports: +- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml +- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.3.0+t.0.4/node-type.yaml +- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml +- http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/1.2.0/dmaap.yaml +inputs: + dcae_service_location: + type: string + docker_host_override: + type: string + topic0_aaf_password: + type: string + topic0_aaf_username: + type: string + topic0_client_role: + type: string + topic1_aaf_password: + type: string + topic1_aaf_username: + type: string + topic1_client_role: + type: string +node_templates: + docker_host_host: + type: dcae.nodes.SelectedDockerHost + properties: + docker_host_override: + get_input: docker_host_override + location_id: + get_input: dcae_service_location + holmes-rule_homes-rule: + type: dcae.nodes.DockerContainerForComponentsUsingDmaap + properties: + application_config: + holmes.default.rule.volte.scenario1: 'package dcae.ves.test + + import org.onap.some.related.packages; + + rule"SameVNF_Relation_Rule" + + salience 120 + + no-loop true + + when + + $root : VesAlarm( + + $sourceId: sourceId, sourceId != null && !sourceId.equals(""), + + specificProblem in ( "LSS_cpiPCSCFFailReg(121297)", "LSS_cpiSIPRetransmitInvite(120267)" ), + + $eventId: eventId) + + $child : VesAlarm( eventId != $eventId, + + CorrelationUtil.getInstance().isTopologicallyRelated(sourceId, $sourceId), + + specificProblem in ("LSS_externalLinkDown(4271)","LSS_failedAttachReqsRateExceeded(4272)"), + + this after [-60s, 60s] $root) + + then + + DmaapService.publishResult(...); + + end' + holmes.default.rule.volte.scenario2: 'package dcae.ves.test + + import org.onap.some.related.packages; + + rule"SameVNF_Relation_Rule_1" + + salience 120 + + no-loop true + + when + + $root : VesAlarm( + + $sourceId: sourceId, sourceId != null && !sourceId.equals(""), + + specificProblem in ( "LSS_cpiPCSCFFailReg(121297)", "LSS_cpiSIPRetransmitInvite(120267)" ), + + $eventId: eventId) + + $child : VesAlarm( eventId != $eventId, + + CorrelationUtil.getInstance().isTopologicallyRelated(sourceId, $sourceId), + + specificProblem in ("LSS_externalLinkDown(4271)","LSS_failedAttachReqsRateExceeded(4272)"), + + this after [-60s, 60s] $root) + + then + + DmaapService.publishResult(...); + + end' + services_calls: + - msb_config: + concat: + - '{{' + - get_property: + - SELF + - msb_config + - node_name + - '}}' + streams_publishes: [] + streams_subscribes: + - sec_measurement_unsecure: + aaf_password: + get_input: topic0_aaf_password + aaf_username: + get_input: topic0_aaf_username + dmaap_info: <> + type: message_router + - sec_measurement: + aaf_password: + get_input: topic1_aaf_password + aaf_username: + get_input: topic1_aaf_username + dmaap_info: <> + type: message_router + docker_config: + healthcheck: + endpoint: api/holmes-rule-mgmt/v1/healthcheck + interval: 15s + timeout: 1s + type: http + ports: + - 9101:9101 + image: nexus3.onap.org:10001/onap/holmes/rule-manamgement:latest + location_id: + get_input: dcae_service_location + service_component_type: dcae-analytics-holmes-rule-manamgement + streams_publishes: [] + streams_subscribes: + - client_role: + get_input: topic0_client_role + location: + get_input: dcae_service_location + name: topic0 + type: message_router + - client_role: + get_input: topic1_client_role + location: + get_input: dcae_service_location + name: topic1 + type: message_router + relationships: + - target: docker_host_host + type: dcae.relationships.component_contained_in + - target: topic0 + type: dcae.relationships.subscribe_to_events + - target: topic1 + type: dcae.relationships.subscribe_to_events + topic0: + type: dcae.nodes.Topic + properties: + topic_name: '' + topic1: + type: dcae.nodes.Topic + properties: + topic_name: '' diff --git a/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml b/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml new file mode 100644 index 000000000..6522885ff --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml @@ -0,0 +1,130 @@ +tosca_definitions_version: cloudify_dsl_1_3 +imports: +- http://dockercentral.it.att.com:8093/nexus/repository/rawcentral/com.att.dcae.controller/type_files/dockerplugin/2.4.0+t.0.8/node-type.yaml +- http://dockercentral.it.att.com:8093/nexus/repository/rawcentral/com.att.dcae.controller/type_files/dmaap/1.2.0+t.0.9/dmaap.yaml +- http://dockercentral.it.att.com:8093/nexus/repository/rawcentral/com.att.dcae.controller/type_files/relationship/1.0.0+t.0.1/relationship-types.yaml +inputs: + commonEventHeader.domain: + type: string + commonEventHeader.version: + type: string + dcae_service_location: + type: string + docker_host_override: + type: string + default: '' + elementType: + type: string + feed_id: + type: string + mappingType: + type: string + measurementsForVfScalingFields.measurementsForVfScalingVersion: + type: string + phases.docker_map.phaseName: + type: string + topic1_aaf_password: + type: string + topic1_aaf_username: + type: string + topic1_client_role: + type: string +node_templates: + DockerMap_n.1519416493392.3_DockerMap: + type: dcae.nodes.DockerContainerForComponentsUsingDmaap + properties: + application_config: + commonEventHeader.domain: + get_input: commonEventHeader.domain + commonEventHeader.version: + get_input: commonEventHeader.version + csvToVesJson: '{"processing":[{"phase":"pmossFoiPhase","filter":{"class":"Contains","string":"${file}","value":"NOKvMRF"},"processors":[{"class":"LogEvent","title":"PM-FOIEvent-Received","logName":"com.att.gfp.dcae.eventProcessor.input","logLevel":"DEBUG"},{"class":"RunPhase","phase":"vFoiNokRunPhase"}]},{"phase":"vFoiNokRunPhase","comments":"generic parsing","processors":[{"replace":",","field":"data","class":"ReplaceText","find":";"},{"replace":",","field":"file","class":"ReplaceText","find":"_"}]},{"phase":"vFoiNokRunPhase","filter":{"class":"Contains","string":"${data[1]}","value":"Begin date"},"processors":[{"class":"ExtractText","field":"event.commonEventHeader.startEpochMicrosec","value":"${data[1]}","regex":".*Begin date,([^,]*),.*"},{"class":"DateFormatter","value":"${event.commonEventHeader.startEpochMicrosec}","fromFormat":"MM/dd/yy HH:mm:ss a","fromTz":"GMT","toField":"event.commonEventHeader.startEpochMicrosec","toFormat":"#ms","toTz":"#ms"}]},{"phase":"vFoiNokRunPhase","filter":{"class":"Contains","string":"${data[2]}","value":"End date"},"processors":[{"class":"ExtractText","field":"event.commonEventHeader.lastEpochMicrosec","value":"${data[2]}","regex":".*End date,([^,]*),.*"},{"class":"DateFormatter","value":"${event.commonEventHeader.lastEpochMicrosec}","fromFormat":"MM/dd/yy HH:mm:ss a","fromTz":"GMT","toField":"event.commonEventHeader.lastEpochMicrosec","toFormat":"#ms","toTz":"#ms"},{"class":"DateFormatter","value":"${event.commonEventHeader.lastEpochMicrosec}","fromFormat":"#ms","fromTz":"#ms","toField":"event.commonEventHeader.internalHeaderFields.DATETIMEUTC","toFormat":"yyyyMMddHHmmss","toTz":"GMT"}]},{"phase":"vFoiNokRunPhase","processors":[{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[0].value","value":"${data[7]}","regex":".*CpuSys,+(\\d+,){3}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[0].value","find":","},{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[1].value","value":"${data[5]}","regex":".*CpuUsage,+(\\d+,){3}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[1].value","find":","},{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[2].value","value":"${data[7]}","regex":".*CpuSys,+(\\d+,){2}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[2].value","find":","},{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[3].value","value":"${data[5]}","regex":".*CpuUsage,+(\\d+,){2}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[3].value","find":","}]},{"phase":"vFoiNokRunPhase","processors":[{"class":"ExtractText","field":"event.commonEventHeader.eventName","value":"${file}","regex":"([^,]*),.*"},{"class":"ExtractText","field":"event.commonEventHeader.reportingEntityName","value":"${file}","regex":".*,([^,]*)\\..*"}]},{"phase":"vFoiNokRunPhase","comments":"generic parsing","processors":[{"class":"Set","updates":{"event.commonEventHeader.lastEpochMicrosec":"${event.commonEventHeader.lastEpochMicrosec}000","event.commonEventHeader.startEpochMicrosec":"${event.commonEventHeader.startEpochMicrosec}000","event.commonEventHeader.domain":"measurementsForVfScaling","event.commonEventHeader.eventName":"Mfvs_${event.commonEventHeader.eventName}","event.commonEventHeader.eventType":"csv2ves","event.commonEventHeader.priority":"Normal","event.commonEventHeader.sequence":0,"event.commonEventHeader.sourceName":"${event.commonEventHeader.reportingEntityName}","event.commonEventHeader.version":3.0,"event.commonEventHeader.eventId":"%{now.ms}","event.commonEventHeader.internalHeaderFields.dbTableSuffix":"","event.measurementsForVfScalingFields.measurementInterval":900,"event.measurementsForVfScalingFields.measurementsForVfScalingVersion":2.0,"event.measurementsForVfScalingFields.additionalMeasurements.name":"csv2ves","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[0].name":"CpuSysMax","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[1].name":"CpuUsageMax","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[2].name":"CpuSysAverage","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[3].name":"CpuUsageAverage"}},{"class":"DateFormatter","value":"${event.commonEventHeader.eventId}","fromFormat":"#ms","fromTz":"#ms","toField":"event.commonEventHeader.eventId","toFormat":"yyyyMMddHHmmssSSS","toTz":"GMT"}]},{"phase":"vFoiNokRunPhase","processors":[{"class":"Clear","fields":["data","file"]},{"class":"LogText","logLevel":"INFO","logText":"Finished-PM-FOIEvent-parsing"},{"class":"LogEvent","title":"PM-FOIEvent-Received-Output"},{"class":"RunPhase","phase":"foiEventToDmaapPhase"}]}]}' + elementType: + get_input: elementType + isSelfServeComponent: 'True' + mappingType: + get_input: mappingType + measurementsForVfScalingFields.measurementsForVfScalingVersion: + get_input: measurementsForVfScalingFields.measurementsForVfScalingVersion + phases.docker_map.phaseName: + get_input: phases.docker_map.phaseName + services_calls: {} + streams_publishes: + DCAE-VES-PM-EVENT: + aaf_password: + get_input: topic1_aaf_password + aaf_username: + get_input: topic1_aaf_username + dmaap_info: <> + type: message_router + streams_subscribes: + DCAE_PM_DATA_C_M: + dmaap_info: <> + type: data_router + useDtiConfig: 'False' + docker_config: + healthcheck: + interval: 300s + script: /opt/app/vec/bin/common/HealthCheck_DockerMap.sh + timeout: 15s + type: docker + volumes: + - container: + bind: /opt/app/dcae-certificate + host: + path: /opt/app/dcae-certificate + - container: + bind: /opt/app/dmd/log/AGENT + host: + path: /opt/logs/DCAE/dockermap/dmd/AGENT + - container: + bind: /opt/app/dmd/log/WATCHER + host: + path: /opt/logs/DCAE/dockermap/dmd/WATCHER + - container: + bind: /opt/app/vec/logs/DCAE + host: + path: /opt/logs/DCAE/dockermap/dockermap-logs + - container: + bind: /opt/app/vec/archive/data + host: + path: /opt/data/DCAE/dockermap/dockermap-archive + image: dockercentral.it.att.com:5100/com.att.dcae.controller/dcae-controller-dockermap:18.02-004 + location_id: + get_input: dcae_service_location + service_component_type: dcae.collectors.docker.map.pm + streams_publishes: + - client_role: + get_input: topic1_client_role + location: + get_input: dcae_service_location + name: topic1_n.1519416493404.5 + type: message_router + streams_subscribes: + - location: + get_input: dcae_service_location + name: feed_n.1519416394214.2 + type: data_router + relationships: + - target: docker_host_host + type: dcae.relationships.component_contained_in + - target: feed_n.1519416394214.2 + type: dcae.relationships.subscribe_to_files + - target: topic1_n.1519416493404.5 + type: dcae.relationships.publish_events + docker_host_host: + type: dcae.nodes.SelectedDockerHost + properties: + docker_host_override: + get_input: docker_host_override + location_id: + get_input: dcae_service_location + feed_n.1519416394214.2: + type: dcae.nodes.ExistingFeed + properties: + feed_id: + get_input: feed_id + topic1_n.1519416493404.5: + type: dcae.nodes.Topic + properties: + topic_name: DCAE-VES-PM-EVENT-v1 diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml new file mode 100644 index 000000000..101dc2c0d --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -0,0 +1,82 @@ +tosca_definitions_version: cloudify_dsl_1_3 +imports: +- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml +- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml +- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml +- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml +inputs: + location_id: + type: string + service_id: + type: string +node_templates: + cdap_host_host: + type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure + properties: + location_id: + get_input: location_id + scn_override: cdap_broker.solutioning-central.dcae.onap.org + interfaces: + cloudify.interfaces.lifecycle: { + } + tca_tca: + type: dcae.nodes.MicroService.cdap + properties: + app_config: + appDescription: DCAE Analytics Threshold Crossing Alert Application + appName: dcae-tca + tcaSubscriberOutputStreamName: TCASubscriberOutputStream + tcaVESAlertsTableName: TCAVESAlertsTable + tcaVESAlertsTableTTLSeconds: '1728000' + tcaVESMessageStatusTableName: TCAVESMessageStatusTable + tcaVESMessageStatusTableTTLSeconds: '86400' + thresholdCalculatorFlowletInstances: '2' + app_preferences: + publisherContentType: application/json + publisherHostName: mrlocal-mtnjftle01.onap.org + publisherHostPort: '3905' + publisherMaxBatchSize: '10' + publisherMaxRecoveryQueueSize: '100000' + publisherPollingInterval: '20000' + publisherProtocol: https + publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub + publisherUserName: m00502@tca.af.dcae.onap.org + publisherUserPassword: Te5021abc + subscriberConsumerGroup: OpenDCAE-c12 + subscriberConsumerId: c12 + subscriberContentType: application/json + subscriberHostName: mrlocal-mtnjftle01.onap.org + subscriberHostPort: '3905' + subscriberMessageLimit: '-1' + subscriberPollingInterval: '20000' + subscriberProtocol: https + subscriberTimeoutMS: '-1' + subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub + subscriberUserName: m00502@tca.af.dcae.onap.org + subscriberUserPassword: Te5021abc + tca_policy: null + artifact_name: dcae-analytics-tca + artifact_version: 1.0.0 + connections: + streams_publishes: [ + ] + streams_subscribes: [ + ] + jar_url: http://somejar + location_id: + get_input: location_id + namespace: cdap_tca_hi_lo + programs: + - program_id: TCAVESCollectorFlow + program_type: flows + - program_id: TCADMaaPMRSubscriberWorker + program_type: workers + - program_id: TCADMaaPMRPublisherWorker + program_type: workers + service_component_type: cdap_app_tca + service_id: + get_input: service_id + streamname: TCASubscriberOutputStream + relationships: + - target: cdap_host_host + type: dcae.relationships.component_contained_in \ No newline at end of file -- cgit 1.2.3-korg From 350b41105138242190f0dd42396721a0195e04d2 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Wed, 21 Mar 2018 18:27:38 +0100 Subject: Rework of the csarinstaller Csarinstaller rework to save Template and Model to database Issue-ID: CLAMP-81 Change-Id: I5edf9716146975ed3751a93b78f5c9b0b9ff2af9 Signed-off-by: Determe, Sebastien (sd378r) --- .../sdc/BlueprintParserMappingConfiguration.java | 5 ++ .../java/org/onap/clamp/clds/model/CldsModel.java | 59 +++++++++-------- .../clds/sdc/controller/installer/CsarHandler.java | 37 +++++++++++ .../controller/installer/CsarInstallerImpl.java | 73 +++++++++++++++++----- src/main/resources/clds/camel/flexible-flow.xml | 1 - .../controller/installer/CsarInstallerItCase.java | 10 ++- .../resources/clds/blueprint-parser-mapping.json | 2 + .../example/sdc/blueprint-dcae/holmes.yaml | 7 +++ .../resources/example/sdc/blueprint-dcae/tca.yaml | 24 ++++++- 9 files changed, 168 insertions(+), 50 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/config/sdc/BlueprintParserMappingConfiguration.java b/src/main/java/org/onap/clamp/clds/config/sdc/BlueprintParserMappingConfiguration.java index b26310400..a78e895f7 100644 --- a/src/main/java/org/onap/clamp/clds/config/sdc/BlueprintParserMappingConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/sdc/BlueprintParserMappingConfiguration.java @@ -39,6 +39,7 @@ import java.util.List; public class BlueprintParserMappingConfiguration { private String blueprintKey; + private boolean dcaeDeployable; private BlueprintParserFilesConfiguration files; public String getBlueprintKey() { @@ -57,6 +58,10 @@ public class BlueprintParserMappingConfiguration { this.files = filesConfig; } + public boolean isDcaeDeployable() { + return dcaeDeployable; + } + public static List createFromJson(InputStream json) throws IOException { TypeReference> mapType = new TypeReference>() { }; diff --git a/src/main/java/org/onap/clamp/clds/model/CldsModel.java b/src/main/java/org/onap/clamp/clds/model/CldsModel.java index 02c70cae0..34876bbc0 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsModel.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsModel.java @@ -43,33 +43,36 @@ import org.onap.clamp.clds.dao.CldsDao; */ public class CldsModel { - private static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsModel.class); - private static final int UUID_LENGTH = 36; - private static final String STATUS_DESIGN = "DESIGN"; - private static final String STATUS_DISTRIBUTED = "DISTRIBUTED"; - private static final String STATUS_ACTIVE = "ACTIVE"; - private static final String STATUS_STOPPED = "STOPPED"; - private static final String STATUS_DELETING = "DELETING"; - private static final String STATUS_ERROR = "ERROR"; - private static final String STATUS_UNKNOWN = "UNKNOWN"; - private String id; - private String templateId; - private String templateName; - private String name; - private String controlNamePrefix; - private String controlNameUuid; - private String bpmnText; - private String propText; - private String imageText; - private String docText; - private String blueprintText; - private CldsEvent event; - private String status; - private List permittedActionCd; + private static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsModel.class); + private static final int UUID_LENGTH = 36; + private static final String STATUS_DESIGN = "DESIGN"; + private static final String STATUS_DISTRIBUTED = "DISTRIBUTED"; + private static final String STATUS_ACTIVE = "ACTIVE"; + private static final String STATUS_STOPPED = "STOPPED"; + private static final String STATUS_DELETING = "DELETING"; + private static final String STATUS_ERROR = "ERROR"; + private static final String STATUS_UNKNOWN = "UNKNOWN"; + private String id; + private String templateId; + private String templateName; + private String name; + private String controlNamePrefix; + private String controlNameUuid; + private String bpmnText; + private String propText; + private String imageText; + private String docText; + private String blueprintText; + private CldsEvent event; + private String status; + private List permittedActionCd; private List cldsModelInstanceList; - private String typeId; - private String typeName; - private String deploymentId; + /** + * The service type Id received from DCAE by querying it + */ + private String typeId; + private String typeName; + private String deploymentId; /** * Construct empty model. @@ -95,7 +98,6 @@ public class CldsModel { public boolean canInventoryCall() { boolean canCall = false; /* Below checks the clds event is submit/resubmit */ - if ((event.isActionCd(CldsEvent.ACTION_SUBMIT) || event.isActionCd(CldsEvent.ACTION_RESUBMIT) || event.isActionCd(CldsEvent.ACTION_SUBMITDCAE))) { canCall = true; @@ -116,7 +118,6 @@ public class CldsModel { * set the status in the model */ private void determineStatus() { - status = STATUS_UNKNOWN; if (event == null || event.getActionCd() == null) { status = STATUS_DESIGN; @@ -141,7 +142,6 @@ public class CldsModel { } else if (event.isActionAndStateCd(CldsEvent.ACTION_STOP, CldsEvent.ACTION_STATE_ANY)) { status = STATUS_STOPPED; } - } /** @@ -491,5 +491,4 @@ public class CldsModel { public List getPermittedActionCd() { return permittedActionCd; } - } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java index 940b7cfaf..b11385239 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -43,6 +43,7 @@ import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.openecomp.sdc.api.notification.IArtifactInfo; import org.openecomp.sdc.api.notification.INotificationData; +import org.openecomp.sdc.api.notification.IResourceInstance; import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; @@ -61,9 +62,14 @@ public class CsarHandler { private SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); private ISdcCsarHelper sdcCsarHelper; private String dcaeBlueprint; + private String blueprintArtifactName; + private String blueprintInvariantResourceUuid; + private String blueprintInvariantServiceUuid; public static final String CSAR_TYPE = "TOSCA_CSAR"; + private INotificationData sdcNotification; public CsarHandler(INotificationData iNotif, String controller, String clampCsarPath) throws CsarHandlerException { + this.sdcNotification = iNotif; this.controllerName = controller; this.artifactElement = searchForUniqueCsar(iNotif); this.csarFilePath = buildFilePathForCsar(artifactElement, clampCsarPath); @@ -96,12 +102,27 @@ public class CsarHandler { } sdcCsarHelper = factory.getSdcCsarHelper(csarFilePath); this.loadDcaeBlueprint(); + this.loadBlueprintArtifactDetails(); } catch (IOException e) { throw new SdcArtifactInstallerException( "Exception caught when trying to write the CSAR on the file system to " + csarFilePath, e); } } + private void loadBlueprintArtifactDetails() { + blueprintInvariantServiceUuid = this.getSdcNotification().getServiceInvariantUUID(); + for (IResourceInstance resource : this.getSdcNotification().getResources()) { + if ("VF".equals(resource.getResourceType())) { + for (IArtifactInfo artifact : resource.getArtifacts()) { + if ("DCAE_INVENTORY_BLUEPRINT".equals(artifact.getArtifactType())) { + blueprintArtifactName = artifact.getArtifactName(); + blueprintInvariantResourceUuid = resource.getResourceInvariantUUID(); + } + } + } + } + } + private void loadDcaeBlueprint() throws IOException, SdcArtifactInstallerException { List listEntries = new ArrayList<>(); try (ZipFile zipFile = new ZipFile(csarFilePath)) { @@ -136,4 +157,20 @@ public class CsarHandler { public synchronized String getDcaeBlueprint() { return dcaeBlueprint; } + + public INotificationData getSdcNotification() { + return sdcNotification; + } + + public String getBlueprintArtifactName() { + return blueprintArtifactName; + } + + public String getBlueprintInvariantResourceUuid() { + return blueprintInvariantResourceUuid; + } + + public String getBlueprintInvariantServiceUuid() { + return blueprintInvariantServiceUuid; + } } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java index c56eed517..3a6bef8d8 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java @@ -35,7 +35,8 @@ import java.util.Map; import javax.annotation.PostConstruct; -import org.onap.clamp.clds.config.ClampProperties; +import org.json.simple.parser.ParseException; +import org.onap.clamp.clds.client.DcaeInventoryServices; import org.onap.clamp.clds.config.sdc.BlueprintParserFilesConfiguration; import org.onap.clamp.clds.config.sdc.BlueprintParserMappingConfiguration; import org.onap.clamp.clds.dao.CldsDao; @@ -55,8 +56,8 @@ public class CsarInstallerImpl implements CsarInstaller { private static final EELFLogger logger = EELFManager.getInstance().getLogger(CsarInstallerImpl.class); private Map bpmnMapping = new HashMap<>(); - public static final String TEMPLATE_NAME_SUFFIX = "-template-dcae-designer"; - public static final String MODEL_NAME_SUFFIX = "-model-dcae-designer"; + public static final String TEMPLATE_NAME_PREFIX = "DCAE-Designer-ClosedLoopTemplate-"; + public static final String MODEL_NAME_PREFIX = "DCAE-Designer-ClosedLoopInstance-"; /** * The file name that will be loaded by Spring. */ @@ -67,11 +68,11 @@ public class CsarInstallerImpl implements CsarInstaller { @Autowired private CldsDao cldsDao; @Autowired - private ClampProperties refProp; - @Autowired CldsTemplateService cldsTemplateService; @Autowired CldsService cldsService; + @Autowired + DcaeInventoryServices dcaeInventoryService; @PostConstruct public void loadConfiguration() throws IOException { @@ -88,10 +89,15 @@ public class CsarInstallerImpl implements CsarInstaller { @Override public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException { try { - BlueprintParserFilesConfiguration configFiles = this.searchForRightMapping(csar); - createFakeCldsModel(csar, configFiles, createFakeCldsTemplate(csar, configFiles)); + String serviceTypeId = queryDcaeToGetServiceTypeId(csar); + String policyName = searchForPolicyName(csar); + if (policyName.contains("*")) { + } + createFakeCldsModel(csar, createFakeCldsTemplate(csar, this.searchForRightMapping(csar)), serviceTypeId); } catch (IOException e) { throw new SdcArtifactInstallerException("Exception caught during the Csar installation in database", e); + } catch (ParseException e) { + throw new SdcArtifactInstallerException("Exception caught during the Dcae query to get ServiceTypeId", e); } } @@ -115,12 +121,38 @@ public class CsarInstallerImpl implements CsarInstaller { return listConfig.get(0); } - private String createTemplateName(CsarHandler csar) { - return csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + TEMPLATE_NAME_SUFFIX; + private String searchForPolicyName(CsarHandler csar) throws SdcArtifactInstallerException { + String policyName = null; + Yaml yaml = new Yaml(); + List policyNameList = new ArrayList<>(); + Map templateNodes = ((Map) ((Map) yaml + .load(csar.getDcaeBlueprint())).get("node_templates")); + templateNodes.entrySet().stream().filter(e -> e.getKey().contains("policy_")).forEach(ef -> { + String filteredPolicyName = (String) ((Map) ((Map) ef.getValue()) + .get("properties")).get("policy_filter"); + if (policyName != null) { + policyNameList.add(filteredPolicyName); + } else { + String inputPolicyName = (String) ((Map) ((Map) ((Map) ef + .getValue()).get("properties")).get("policy_id")).get("get_input"); + if (inputPolicyName != null) { + policyNameList.add("get_input"); + } + } + }); + if (policyNameList.size() > 1) { + throw new SdcArtifactInstallerException( + "The code does not currently support multiple Policy MicroServices in the blueprint"); + } else if (policyNameList.isEmpty()) { + throw new SdcArtifactInstallerException( + "There is no recognized Policy MicroService found in the blueprint"); + } + return policyNameList.get(0); } - private String createModelName(CsarHandler csar) { - return csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + MODEL_NAME_SUFFIX; + private String queryDcaeToGetServiceTypeId(CsarHandler csar) throws IOException, ParseException { + return dcaeInventoryService.getDcaeInformation(csar.getBlueprintArtifactName(), + csar.getBlueprintInvariantServiceUuid(), csar.getBlueprintInvariantResourceUuid()); } private CldsTemplate createFakeCldsTemplate(CsarHandler csar, BlueprintParserFilesConfiguration configFiles) @@ -129,19 +161,26 @@ public class CsarInstallerImpl implements CsarInstaller { template.setBpmnId("Sdc-Generated"); template.setBpmnText( IOUtils.toString(appContext.getResource(configFiles.getBpmnXmlFilePath()).getInputStream())); - // ((ObjectNode)refProp.getJsonTemplate(CldsService.GLOBAL_PROPERTIES_KEY)); template.setPropText(csar.getDcaeBlueprint()); template.setImageText( IOUtils.toString(appContext.getResource(configFiles.getSvgXmlFilePath()).getInputStream())); - return cldsTemplateService.putTemplate(createTemplateName(csar), template); + template.setName(TEMPLATE_NAME_PREFIX + csar.getSdcCsarHelper().getServiceMetadata().getValue("name")); + template.save(cldsDao, null); + return template; } - private CldsModel createFakeCldsModel(CsarHandler csar, BlueprintParserFilesConfiguration configFiles, - CldsTemplate cldsTemplate) { + private CldsModel createFakeCldsModel(CsarHandler csar, CldsTemplate cldsTemplate, String serviceTypeId) { CldsModel cldsModel = new CldsModel(); + cldsModel.setControlNamePrefix(MODEL_NAME_PREFIX); + cldsModel.setName(csar.getSdcCsarHelper().getServiceMetadata().getValue("name")); cldsModel.setBlueprintText(csar.getDcaeBlueprint()); cldsModel.setTemplateName(cldsTemplate.getName()); - // cldsModel.set - return cldsService.putModel(createModelName(csar), cldsModel); + cldsModel.setTemplateId(cldsTemplate.getId()); + cldsModel.setDocText(cldsTemplate.getPropText()); + cldsModel.setPropText("{}"); + cldsModel.setBpmnText(cldsTemplate.getBpmnText()); + cldsModel.setTypeId(serviceTypeId); + cldsModel.save(cldsDao, null); + return cldsModel; } } diff --git a/src/main/resources/clds/camel/flexible-flow.xml b/src/main/resources/clds/camel/flexible-flow.xml index 7a3ebdb0a..b2a728d14 100644 --- a/src/main/resources/clds/camel/flexible-flow.xml +++ b/src/main/resources/clds/camel/flexible-flow.xml @@ -4,7 +4,6 @@ ${exchangeProperty.actionCd} == 'SUBMIT' || ${exchangeProperty.actionCd} == 'RESUBMIT' - diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java index 94adfafa8..6ae64ef7d 100644 --- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -38,6 +38,7 @@ import org.mockito.Mockito; import org.onap.clamp.clds.dao.CldsDao; import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; +import org.onap.clamp.clds.model.CldsModel; import org.onap.clamp.clds.model.CldsTemplate; import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller; @@ -90,7 +91,7 @@ public class CsarInstallerItCase { Mockito.when(csarHelper.getServiceMetadata()).thenReturn(data); Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); csarInstaller.installTheCsar(csarHandler); - // Get it back from DB + // Get the template back from DB CldsTemplate templateFromDB = CldsTemplate.retrieve(cldsDao, generatedName + CsarInstallerImpl.TEMPLATE_NAME_SUFFIX, false); assertNotNull(templateFromDB); @@ -98,5 +99,12 @@ public class CsarInstallerItCase { assertNotNull(templateFromDB.getImageText()); assertNotNull(templateFromDB.getPropText()); assertEquals(templateFromDB.getName(), generatedName + CsarInstallerImpl.TEMPLATE_NAME_SUFFIX); + // Get the Model back from DB + CldsModel modelFromDB = CldsModel.retrieve(cldsDao, generatedName + CsarInstallerImpl.MODEL_NAME_SUFFIX, false); + assertNotNull(modelFromDB); + assertNotNull(modelFromDB.getBpmnText()); + assertNotNull(modelFromDB.getImageText()); + assertNotNull(modelFromDB.getPropText()); + assertEquals(modelFromDB.getName(), generatedName + CsarInstallerImpl.MODEL_NAME_SUFFIX); } } diff --git a/src/test/resources/clds/blueprint-parser-mapping.json b/src/test/resources/clds/blueprint-parser-mapping.json index a16ef0cbc..a22e9fcf1 100644 --- a/src/test/resources/clds/blueprint-parser-mapping.json +++ b/src/test/resources/clds/blueprint-parser-mapping.json @@ -1,6 +1,7 @@ [ { "blueprintKey": "tca_", + "dcaeDeployable":"true", "files": { "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/tca-template.xml", "svgXmlFilePath": "classpath:/clds/templates/bpmn/tca-img.xml" @@ -8,6 +9,7 @@ }, { "blueprintKey": "holmes_", + "dcaeDeployable":"false", "files": { "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/holmes-template.xml", "svgXmlFilePath": "classpath:/clds/templates/bpmn/holmes-img.xml" diff --git a/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml b/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml index 1277a0243..f180a7df6 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml @@ -22,6 +22,11 @@ inputs: topic1_client_role: type: string node_templates: + policy_0: + type: dcae.nodes.policy + properties: + policy_model: policy.nodes.holmes + policy_filter: "DCAE.Config_Holmes.*" docker_host_host: type: dcae.nodes.SelectedDockerHost properties: @@ -157,6 +162,8 @@ node_templates: type: dcae.relationships.subscribe_to_events - target: topic1 type: dcae.relationships.subscribe_to_events + - target: policy_0 + type: dcae.relationships.depends_on topic0: type: dcae.nodes.Topic properties: diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml index 101dc2c0d..1a756eea9 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -9,7 +9,14 @@ inputs: type: string service_id: type: string + policy_id: + type: string node_templates: + policy_0: + type: dcae.nodes.policy + properties: + policy_id: + get_input: policy_id cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: @@ -78,5 +85,20 @@ node_templates: get_input: service_id streamname: TCASubscriberOutputStream relationships: + - target: topic0 + type: dcae.relationships.subscribe_to_events + - target: topic1 + type: dcae.relationships.publish_events - target: cdap_host_host - type: dcae.relationships.component_contained_in \ No newline at end of file + type: dcae.relationships.component_contained_in + - target: policy_0 + type: dcae.relationships.depends_on + topic0: + type: dcae.nodes.Topic + properties: + topic_name: '' + topic1: + type: dcae.nodes.Topic + properties: + topic_name: '' + \ No newline at end of file -- cgit 1.2.3-korg From 1c6610921488ad9e8ddf69708949f27bd8736bc0 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Thu, 29 Mar 2018 17:55:09 +0200 Subject: Remove useles file in CSAR Remove the file in CSAR that was useless Issue-ID: CLAMP-146 Change-Id: Ia945af65bb8bfd39cdaf6631825b0480f1e6ad53 Signed-off-by: Determe, Sebastien (sd378r) --- .../example/sdc/service-Simsfoimap0112.csar | Bin 51391 -> 49933 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/test/resources/example/sdc/service-Simsfoimap0112.csar b/src/test/resources/example/sdc/service-Simsfoimap0112.csar index 160c8f2cc..fac487cec 100644 Binary files a/src/test/resources/example/sdc/service-Simsfoimap0112.csar and b/src/test/resources/example/sdc/service-Simsfoimap0112.csar differ -- cgit 1.2.3-korg From bf74fbfd181970d880803e4f8bc4f34a7a498f6e Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Tue, 24 Apr 2018 17:20:31 +0200 Subject: Remove eNodeB Remove eNodeB in the config files for UI and tests Issue-ID: CLAMP-153 Change-Id: I090449869e83220777387d58b37ebcd3d7dec101 Signed-off-by: Determe, Sebastien (sd378r) --- .../portfolios/PolicyWindow_properties.html | 9 ----- .../resources/clds/templates/globalProperties.json | 7 +--- .../resources/clds/templates/globalProperties.json | 7 +--- .../resources/clds/templates/op-eNodeB-recipe.json | 44 ---------------------- .../custom/modelBpmnProperties.json | 2 +- .../policy/modelBpmnProperties.json | 2 +- .../expected-result/sdc-properties-4cc5b45a.json | 7 +--- .../example/sdc/sdcResourceDetailsExample.json | 11 ------ src/test/resources/example/sdc/sdcVFResources.json | 28 +------------- 9 files changed, 6 insertions(+), 111 deletions(-) delete mode 100644 src/test/resources/clds/templates/op-eNodeB-recipe.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/resources/META-INF/resources/designer/partials/portfolios/PolicyWindow_properties.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/PolicyWindow_properties.html index a0b8f4e7d..c905be3a2 100644 --- a/src/main/resources/META-INF/resources/designer/partials/portfolios/PolicyWindow_properties.html +++ b/src/main/resources/META-INF/resources/designer/partials/portfolios/PolicyWindow_properties.html @@ -837,15 +837,6 @@ label { }); } break; - } else if (asSel == "enbRecipe"){ - if (vf_Services["policy"][asSel]){ - $.each((vf_Services["policy"][asSel]), function(val, text) { - $('#recipe').append( - $('').val(val).html(text) - ); - }); - } - break; } }; }; diff --git a/src/main/resources/clds/templates/globalProperties.json b/src/main/resources/clds/templates/globalProperties.json index 9ac9d9443..c9bbbf72b 100644 --- a/src/main/resources/clds/templates/globalProperties.json +++ b/src/main/resources/clds/templates/globalProperties.json @@ -36,8 +36,7 @@ }, "global": { "actionSet": { - "vnfRecipe": "VNF", - "enbRecipe": "eNodeB" + "vnfRecipe": "VNF" }, "location": { "DC1": "Data Center 1", @@ -55,10 +54,6 @@ "migrate": "Migrate", "healthCheck": "Health Check" }, - "enbRecipe": { - "": "", - "reset": "Reset" - }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { diff --git a/src/test/resources/clds/templates/globalProperties.json b/src/test/resources/clds/templates/globalProperties.json index 9ac9d9443..c9bbbf72b 100644 --- a/src/test/resources/clds/templates/globalProperties.json +++ b/src/test/resources/clds/templates/globalProperties.json @@ -36,8 +36,7 @@ }, "global": { "actionSet": { - "vnfRecipe": "VNF", - "enbRecipe": "eNodeB" + "vnfRecipe": "VNF" }, "location": { "DC1": "Data Center 1", @@ -55,10 +54,6 @@ "migrate": "Migrate", "healthCheck": "Health Check" }, - "enbRecipe": { - "": "", - "reset": "Reset" - }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { diff --git a/src/test/resources/clds/templates/op-eNodeB-recipe.json b/src/test/resources/clds/templates/op-eNodeB-recipe.json deleted file mode 100644 index 7098987a2..000000000 --- a/src/test/resources/clds/templates/op-eNodeB-recipe.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "eNodeBRecipes": [ - { - "Actor": "AOTS", - "Recipe": "checkENodeBTicketHours", - "ParentPolicy": "", - "PPConditions": "", - "Retry": "0", - "TimeLimit": "120" - }, - { - "Actor": "AOTS", - "Recipe": "checkEquipmentStatus", - "ParentPolicy": "checkENodeBTicketHours", - "PPConditions": "Success", - "Retry": "0", - "TimeLimit": "120" - }, - { - "Actor": "AOTS", - "Recipe": "checkEimStatus", - "ParentPolicy": "checkEquipmentStatus", - "PPConditions": "Success", - "Retry": "0", - "TimeLimit": "120" - }, - { - "Actor": "AOTS", - "Recipe": "checkMaintenanceWindow", - "ParentPolicy": "checkEimStatus", - "PPConditions": "Success", - "Retry": "0", - "TimeLimit": "120" - }, - { - "Actor": "SDNR", - "Recipe": "Reset", - "ParentPolicy": "checkMaintenanceWindow", - "PPConditions": "Success", - "Retry": "", - "TimeLimit": "" - } - ] -} diff --git a/src/test/resources/example/model-properties/custom/modelBpmnProperties.json b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json index fc2f1fd99..740edeeab 100644 --- a/src/test/resources/example/model-properties/custom/modelBpmnProperties.json +++ b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json @@ -21,7 +21,7 @@ "name": "actionSet", "value": [ - "enbRecipe" + "vnfRecipe" ] }, diff --git a/src/test/resources/example/model-properties/policy/modelBpmnProperties.json b/src/test/resources/example/model-properties/policy/modelBpmnProperties.json index 99f67b62e..5c2214e84 100644 --- a/src/test/resources/example/model-properties/policy/modelBpmnProperties.json +++ b/src/test/resources/example/model-properties/policy/modelBpmnProperties.json @@ -21,7 +21,7 @@ "name": "actionSet", "value": [ - "enbRecipe" + "vnfRecipe" ] }, diff --git a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json index 8c5f39d8d..5e0ba72ab 100644 --- a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json +++ b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json @@ -36,8 +36,7 @@ }, "global": { "actionSet": { - "vnfRecipe": "VNF", - "enbRecipe": "eNodeB" + "vnfRecipe": "VNF" }, "location": { "DC1": "Data Center 1", @@ -55,10 +54,6 @@ "migrate": "Migrate", "healthCheck": "Health Check" }, - "enbRecipe": { - "": "", - "reset": "Reset" - }, "maxRetries": "3", "retryTimeLimit": 180, "resource": { diff --git a/src/test/resources/example/sdc/sdcResourceDetailsExample.json b/src/test/resources/example/sdc/sdcResourceDetailsExample.json index 6087d020f..3e904b107 100644 --- a/src/test/resources/example/sdc/sdcResourceDetailsExample.json +++ b/src/test/resources/example/sdc/sdcResourceDetailsExample.json @@ -108,17 +108,6 @@ "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" } ], diff --git a/src/test/resources/example/sdc/sdcVFResources.json b/src/test/resources/example/sdc/sdcVFResources.json index 62c58bee6..7bf99bb45 100644 --- a/src/test/resources/example/sdc/sdcVFResources.json +++ b/src/test/resources/example/sdc/sdcVFResources.json @@ -622,20 +622,7 @@ "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", @@ -1481,19 +1468,6 @@ "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", -- cgit 1.2.3-korg From 7b815eca4fb6a92d3b36418029d3191e768431f1 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Thu, 26 Apr 2018 14:45:49 +0200 Subject: Fix sdc controller Support multiple closed loop deployment in the same service and add test for mutliple closed loops Issue-ID: CLAMP-151 Change-Id: Ied352ecb10fee4b807fa4bbfebc5934fd62cba3e Signed-off-by: Determe, Sebastien (sd378r) --- .../controller/installer/CsarInstallerImpl.java | 18 ++- .../controller/installer/CsarInstallerItCase.java | 58 ++++--- .../example/sdc/blueprint-dcae/tca_2.yaml | 169 +++++++++++++++++++++ 3 files changed, 219 insertions(+), 26 deletions(-) create mode 100644 src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java index e28e8ab70..17312442b 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java @@ -99,12 +99,19 @@ public class CsarInstallerImpl implements CsarInstaller { @Override public boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException { - return (CldsModel.retrieve(cldsDao, buildModelName(csar), true).getId() != null) ? true : false; + boolean alreadyInstalled = true; + for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) { + alreadyInstalled = alreadyInstalled + && (CldsModel.retrieve(cldsDao, buildModelName(csar, blueprint.getKey()), true).getId() != null) + ? true + : false; + } + return alreadyInstalled; } - public static String buildModelName(CsarHandler csar) { + public static String buildModelName(CsarHandler csar, String resourceInstanceName) { return MODEL_NAME_PREFIX + csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + "_v" - + csar.getSdcNotification().getServiceVersion().replace('.', '_'); + + csar.getSdcNotification().getServiceVersion().replace('.', '_') + "_" + resourceInstanceName; } @Override @@ -196,7 +203,8 @@ public class CsarInstallerImpl implements CsarInstaller { "{\"global\":[{\"name\":\"service\",\"value\":[\"" + blueprintArtifact.getDcaeBlueprint() + "\"]}]}"); template.setImageText( IOUtils.toString(appContext.getResource(configFiles.getSvgXmlFilePath()).getInputStream())); - template.setName(TEMPLATE_NAME_PREFIX + buildModelName(csar)); + template.setName(TEMPLATE_NAME_PREFIX + + buildModelName(csar, blueprintArtifact.getResourceAttached().getResourceInstanceName())); template.save(cldsDao, null); logger.info("Fake Clds Template created for blueprint " + blueprintArtifact.getBlueprintArtifactName() + " with name " + template.getName()); @@ -207,7 +215,7 @@ public class CsarInstallerImpl implements CsarInstaller { CldsTemplate cldsTemplate, String serviceTypeId) throws SdcArtifactInstallerException { try { CldsModel cldsModel = new CldsModel(); - cldsModel.setName(buildModelName(csar)); + cldsModel.setName(buildModelName(csar, blueprintArtifact.getResourceAttached().getResourceInstanceName())); cldsModel.setBlueprintText(blueprintArtifact.getDcaeBlueprint()); cldsModel.setTemplateName(cldsTemplate.getName()); cldsModel.setTemplateId(cldsTemplate.getId()); diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java index 9395df4d9..f2b95932e 100644 --- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -67,7 +67,9 @@ public class CsarInstallerItCase { private static final String CSAR_ARTIFACT_NAME = "testArtifact.csar"; private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec"; - private static final String INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName"; + private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"; + private static final String INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName1"; + private static final String INSTANCE_NAME_RESOURCE2 = "ResourceInstanceName2"; @Autowired private CsarInstaller csarInstaller; @Autowired @@ -88,30 +90,43 @@ public class CsarInstallerItCase { fail("Should have raised an SdcArtifactInstallerException"); } + private BlueprintArtifact buildFakeBuildprintArtifact(String instanceName, String invariantResourceUuid, + String blueprintFilePath, String csarArtifactName, String invariantServiceUuid) throws IOException { + IResourceInstance resource = Mockito.mock(IResourceInstance.class); + Mockito.when(resource.getResourceInstanceName()).thenReturn(instanceName); + Mockito.when(resource.getResourceInvariantUUID()).thenReturn(invariantResourceUuid); + BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class); + Mockito.when(blueprintArtifact.getDcaeBlueprint()) + .thenReturn(ResourceFileUtil.getResourceAsString(blueprintFilePath)); + Mockito.when(blueprintArtifact.getBlueprintArtifactName()).thenReturn(csarArtifactName); + Mockito.when(blueprintArtifact.getBlueprintInvariantServiceUuid()).thenReturn(invariantServiceUuid); + Mockito.when(blueprintArtifact.getResourceAttached()).thenReturn(resource); + return blueprintArtifact; + } + private CsarHandler buildFakeCsarHandler(String generatedName) throws IOException { // Create fake notification INotificationData notificationData = Mockito.mock(INotificationData.class); Mockito.when(notificationData.getServiceVersion()).thenReturn("1.0"); // Create fake resource in notification + CsarHandler csarHandler = Mockito.mock(CsarHandler.class); List listResources = new ArrayList<>(); - IResourceInstance resource = Mockito.mock(IResourceInstance.class); - Mockito.when(resource.getResourceInstanceName()).thenReturn(INSTANCE_NAME_RESOURCE1); - Mockito.when(resource.getResourceInvariantUUID()).thenReturn(INVARIANT_RESOURCE1_UUID); - listResources.add(resource); Mockito.when(notificationData.getResources()).thenReturn(listResources); - // Create fake blueprint artifact - BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class); - Mockito.when(blueprintArtifact.getDcaeBlueprint()) - .thenReturn(ResourceFileUtil.getResourceAsString("example/sdc/blueprint-dcae/tca.yaml")); - Mockito.when(blueprintArtifact.getBlueprintArtifactName()).thenReturn(CSAR_ARTIFACT_NAME); - Mockito.when(blueprintArtifact.getBlueprintInvariantServiceUuid()).thenReturn(INVARIANT_SERVICE_UUID); - Mockito.when(blueprintArtifact.getResourceAttached()).thenReturn(resource); Map blueprintMap = new HashMap<>(); - blueprintMap.put("resourceid", blueprintArtifact); + Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap); + // Create fake blueprint artifact 1 + BlueprintArtifact blueprintArtifact = buildFakeBuildprintArtifact(INSTANCE_NAME_RESOURCE1, + INVARIANT_RESOURCE1_UUID, "example/sdc/blueprint-dcae/tca.yaml", CSAR_ARTIFACT_NAME, + INVARIANT_SERVICE_UUID); + listResources.add(blueprintArtifact.getResourceAttached()); + blueprintMap.put(blueprintArtifact.getResourceAttached().getResourceInstanceName(), blueprintArtifact); + // Create fake blueprint artifact 2 + blueprintArtifact = buildFakeBuildprintArtifact(INSTANCE_NAME_RESOURCE2, INVARIANT_RESOURCE2_UUID, + "example/sdc/blueprint-dcae/tca_2.yaml", CSAR_ARTIFACT_NAME, INVARIANT_SERVICE_UUID); + listResources.add(blueprintArtifact.getResourceAttached()); + blueprintMap.put(blueprintArtifact.getResourceAttached().getResourceInstanceName(), blueprintArtifact); // Build fake csarhandler - CsarHandler csarHandler = Mockito.mock(CsarHandler.class); Mockito.when(csarHandler.getSdcNotification()).thenReturn(notificationData); - Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap); // Build fake csar Helper ISdcCsarHelper csarHelper = Mockito.mock(ISdcCsarHelper.class); Metadata data = Mockito.mock(Metadata.class); @@ -138,23 +153,24 @@ public class CsarInstallerItCase { CsarHandler csar = buildFakeCsarHandler(generatedName); csarInstaller.installTheCsar(csar); // Get the template back from DB - CldsTemplate templateFromDb = CldsTemplate.retrieve(cldsDao, - CsarInstallerImpl.TEMPLATE_NAME_PREFIX + CsarInstallerImpl.buildModelName(csar), false); + CldsTemplate templateFromDb = CldsTemplate.retrieve(cldsDao, CsarInstallerImpl.TEMPLATE_NAME_PREFIX + + CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE1), false); assertNotNull(templateFromDb); assertNotNull(templateFromDb.getBpmnText()); assertNotNull(templateFromDb.getImageText()); assertNotNull(templateFromDb.getPropText()); assertTrue(templateFromDb.getPropText().contains("global") && templateFromDb.getPropText().contains("node_templates:")); - assertEquals(templateFromDb.getName(), - CsarInstallerImpl.TEMPLATE_NAME_PREFIX + CsarInstallerImpl.buildModelName(csar)); + assertEquals(templateFromDb.getName(), CsarInstallerImpl.TEMPLATE_NAME_PREFIX + + CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE1)); // Get the Model back from DB - CldsModel modelFromDb = CldsModel.retrieve(cldsDao, CsarInstallerImpl.buildModelName(csar), true); + CldsModel modelFromDb = CldsModel.retrieve(cldsDao, + CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE2), true); assertNotNull(modelFromDb); assertNotNull(modelFromDb.getBpmnText()); assertNotNull(modelFromDb.getImageText()); assertNotNull(modelFromDb.getPropText()); - assertEquals(CsarInstallerImpl.buildModelName(csar), modelFromDb.getName()); + assertEquals(CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE2), modelFromDb.getName()); assertEquals(CsarInstallerImpl.CONTROL_NAME_PREFIX, modelFromDb.getControlNamePrefix()); } } diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml new file mode 100644 index 000000000..f73119fb6 --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml @@ -0,0 +1,169 @@ +tosca_definitions_version: cloudify_dsl_1_3 +imports: + - "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml" + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/dockerplugin/3.2.0/dockerplugin_types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/relationshipplugin/1.0.0/relationshipplugin_types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml + +inputs: + dh_override: + type: string + default: "component_dockerhost" + dh_location_id: + type: string + default: "zone1" + aaiEnrichmentHost: + type: string + default: "none" + aaiEnrichmentPort: + type: string + default: 8443 + enableAAIEnrichment: + type: string + default: false + dmaap_host: + type: string + default: dmaap.onap-message-router + dmaap_port: + type: string + default: 3904 + enableRedisCaching: + type: string + default: false + redisHosts: + type: string + tag_version: + type: string + default: "nexus3.onap.org:10001/onap//onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.0.0" + consul_host: + type: string + default: consul-server.onap-consul + consul_port: + type: string + default: "8500" + cbs_host: + type: string + default: "config-binding-service.dcae" + cbs_port: + type: string + default: "10000" + policy_id: + type: string + default: "none" + external_port: + type: string + description: "Port for CDAPgui to be exposed" + default: "32010" + +node_templates: + docker_service_host: + properties: + docker_host_override: + get_input: dh_override + location_id: + get_input: dh_location_id + type: dcae.nodes.SelectedDockerHost + tca_docker: + relationships: + - type: dcae.relationships.component_contained_in + target: docker_service_host + - target: tca_policy + type: cloudify.relationships.depends_on + type: dcae.nodes.DockerContainerForComponentsUsingDmaap + properties: + application_config: + app_config: + appDescription: DCAE Analytics Threshold Crossing Alert Application + appName: dcae-tca + tcaAlertsAbatementTableName: TCAAlertsAbatementTable + tcaAlertsAbatementTableTTLSeconds: '1728000' + tcaSubscriberOutputStreamName: TCASubscriberOutputStream + tcaVESAlertsTableName: TCAVESAlertsTable + tcaVESAlertsTableTTLSeconds: '1728000' + tcaVESMessageStatusTableName: TCAVESMessageStatusTable + tcaVESMessageStatusTableTTLSeconds: '86400' + thresholdCalculatorFlowletInstances: '2' + app_preferences: + aaiEnrichmentHost: + get_input: aaiEnrichmentHost + aaiEnrichmentIgnoreSSLCertificateErrors: 'true' + aaiEnrichmentPortNumber: '8443' + aaiEnrichmentProtocol: https + aaiEnrichmentUserName: DCAE + aaiEnrichmentUserPassword: DCAE + aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query + aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf + enableAAIEnrichment: + get_input: enableAAIEnrichment + enableRedisCaching: + get_input: enableRedisCaching + redisHosts: + get_input: redisHosts + enableAlertCEFFormat: 'false' + publisherContentType: application/json + publisherHostName: + get_input: dmaap_host + publisherHostPort: + get_input: dmaap_port + publisherMaxBatchSize: '1' + publisherMaxRecoveryQueueSize: '100000' + publisherPollingInterval: '20000' + publisherProtocol: http + publisherTopicName: unauthenticated.DCAE_CL_OUTPUT + subscriberConsumerGroup: OpenDCAE-c12 + subscriberConsumerId: c12 + subscriberContentType: application/json + subscriberHostName: + get_input: dmaap_host + subscriberHostPort: + get_input: dmaap_port + subscriberMessageLimit: '-1' + subscriberPollingInterval: '30000' + subscriberProtocol: http + subscriberTimeoutMS: '-1' + subscriberTopicName: unauthenticated.SEC_MEASUREMENT_OUTPUT + tca_policy_default: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"LESS_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":700,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VM","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"Measurement_vGMUX","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"EQUAL","severity":"MAJOR","closedLoopEventStatus":"ABATED"},{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"GREATER","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]}]}' + service_component_type: dcaegen2-analytics_tca + docker_config: + healthcheck: + endpoint: /healthcheck + interval: 15s + timeout: 1s + type: http + image: + get_input: tag_version + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + DMAAPHOST: + { get_input: dmaap_host } + DMAAPPORT: + { get_input: dmaap_port } + DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT" + DMAAPSUBTOPIC: "unauthenticated.SEC_MEASUREMENT_OUTPUT" + AAIHOST: + { get_input: aaiEnrichmentHost } + AAIPORT: + { get_input: aaiEnrichmentPort } + CONSUL_HOST: + { get_input: consul_host } + CONSUL_PORT: + { get_input: consul_port } + CBS_HOST: + { get_input: cbs_host } + CBS_PORT: + { get_input: cbs_port } + CONFIG_BINDING_SERVICE: "config_binding_service" + ports: + - concat: ["11011:", { get_input: external_port }] + stop: + inputs: + cleanup_image: true + tca_policy: + type: dcae.nodes.policy + properties: + policy_id: + get_input: policy_id + -- cgit 1.2.3-korg From f92b38ddcb8b5eb80db55fa1ca6ebdb5af40d115 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Fri, 11 May 2018 18:29:37 +0200 Subject: Fix Sdc Controller Add support to decode the entire input parameters provided in the blueprints so that user see them in the Clamp UI + Unit tests Issue-ID: CLAMP-151 Change-Id: I838e03375cb544fd91b0a1f86905d96239ffece2 Signed-off-by: Determe, Sebastien (sd378r) --- .../controller/installer/CsarInstallerImpl.java | 25 ++++++++++- .../controller/installer/CsarInstallerItCase.java | 29 ++++++++++--- .../sdc/blueprint-dcae/prop-text-for-tca-2.json | 49 ++++++++++++++++++++++ .../sdc/blueprint-dcae/prop-text-for-tca.json | 36 ++++++++++++++++ 4 files changed, 131 insertions(+), 8 deletions(-) create mode 100644 src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json create mode 100644 src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java index 13af04399..d24b6dba9 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java @@ -26,6 +26,7 @@ package org.onap.clamp.clds.sdc.controller.installer; import com.att.aft.dme2.internal.apache.commons.io.IOUtils; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; +import com.fasterxml.jackson.databind.node.ObjectNode; import java.io.IOException; import java.util.ArrayList; @@ -50,6 +51,7 @@ import org.onap.clamp.clds.model.properties.ModelProperties; import org.onap.clamp.clds.service.CldsService; import org.onap.clamp.clds.service.CldsTemplateService; import org.onap.clamp.clds.transform.XslTransformer; +import org.onap.clamp.clds.util.JacksonUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; @@ -164,6 +166,25 @@ public class CsarInstallerImpl implements CsarInstaller { return listConfig.get(0); } + private static String getAllBlueprintParametersInJson(BlueprintArtifact blueprintArtifact) { + ObjectNode node = JacksonUtils.getObjectMapperInstance().createObjectNode(); + Yaml yaml = new Yaml(); + Map inputsNodes = ((Map) ((Map) yaml + .load(blueprintArtifact.getDcaeBlueprint())).get("inputs")); + inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> { + Object defaultNode = ((Map) elem.getValue()).get("default"); + if (defaultNode != null && defaultNode instanceof String) { + node.put(elem.getKey(), (String) defaultNode); + } else if (defaultNode != null) { + node.putPOJO(elem.getKey(), defaultNode); + } else { + node.put(elem.getKey(), ""); + } + }); + node.put("policy_id", "AUTO_GENERATED_POLICY_ID_AT_SUBMIT"); + return node.toString(); + } + private static String searchForPolicyScopePrefix(BlueprintArtifact blueprintArtifact) throws SdcArtifactInstallerException { String policyName = null; @@ -265,8 +286,8 @@ public class CsarInstallerImpl implements CsarInstaller { // Do a test to validate the BPMN new ModelProperties(cldsModel.getName(), cldsModel.getControlName(), "PUT", false, cldsBpmnTransformer.doXslTransformToString(cldsTemplate.getBpmnText()), "{}"); - String inputParams = "{\"name\":\"deployParameters\",\"value\":{\n" + "\"policy_id\": \"" - + "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" + "\"" + "}}"; + String inputParams = "{\"name\":\"deployParameters\",\"value\":" + + getAllBlueprintParametersInJson(blueprintArtifact) + "}"; cldsModel.setPropText("{\"global\":[{\"name\":\"service\",\"value\":[\"" + blueprintArtifact.getBlueprintInvariantServiceUuid() + "\"]},{\"name\":\"vf\",\"value\":[\"" + blueprintArtifact.getResourceAttached().getResourceInvariantUUID() diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java index e0f774b0b..222f757e0 100644 --- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -56,6 +56,7 @@ import org.onap.sdc.api.notification.IResourceInstance; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.onap.sdc.toscaparser.api.elements.Metadata; +import org.skyscreamer.jsonassert.JSONAssert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @@ -152,26 +153,42 @@ public class CsarInstallerItCase { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csar = buildFakeCsarHandler(generatedName); csarInstaller.installTheCsar(csar); + CldsModel cldsModel1 = verifyClosedLoopModelLoadedInDb(csar, generatedName, INSTANCE_NAME_RESOURCE1); + JSONAssert.assertEquals( + IOUtils.toString( + ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca.json")), + cldsModel1.getPropText(), true); + CldsModel cldsModel2 = verifyClosedLoopModelLoadedInDb(csar, generatedName, INSTANCE_NAME_RESOURCE2); + JSONAssert.assertEquals( + IOUtils.toString( + ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca-2.json")), + cldsModel2.getPropText(), true); + } + + private CldsModel verifyClosedLoopModelLoadedInDb(CsarHandler csar, String generatedName, + String instanceNameResource) throws SdcArtifactInstallerException { // Get the template back from DB - CldsTemplate templateFromDb = CldsTemplate.retrieve(cldsDao, CsarInstallerImpl.TEMPLATE_NAME_PREFIX - + CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE1), false); + CldsTemplate templateFromDb = CldsTemplate.retrieve(cldsDao, + CsarInstallerImpl.TEMPLATE_NAME_PREFIX + CsarInstallerImpl.buildModelName(csar, instanceNameResource), + false); assertNotNull(templateFromDb); assertNotNull(templateFromDb.getBpmnText()); assertNotNull(templateFromDb.getImageText()); assertNotNull(templateFromDb.getPropText()); assertTrue(templateFromDb.getPropText().contains("global") && templateFromDb.getPropText().contains("node_templates:")); - assertEquals(templateFromDb.getName(), CsarInstallerImpl.TEMPLATE_NAME_PREFIX - + CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE1)); + assertEquals(templateFromDb.getName(), + CsarInstallerImpl.TEMPLATE_NAME_PREFIX + CsarInstallerImpl.buildModelName(csar, instanceNameResource)); // Get the Model back from DB CldsModel modelFromDb = CldsModel.retrieve(cldsDao, - CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE2), true); + CsarInstallerImpl.buildModelName(csar, instanceNameResource), true); assertNotNull(modelFromDb); assertNotNull(modelFromDb.getBpmnText()); assertNotNull(modelFromDb.getImageText()); assertNotNull(modelFromDb.getPropText()); assertTrue(modelFromDb.getPropText().contains("policy_id")); - assertEquals(CsarInstallerImpl.buildModelName(csar, INSTANCE_NAME_RESOURCE2), modelFromDb.getName()); + assertEquals(CsarInstallerImpl.buildModelName(csar, instanceNameResource), modelFromDb.getName()); assertEquals(CsarInstallerImpl.CONTROL_NAME_PREFIX, modelFromDb.getControlNamePrefix()); + return modelFromDb; } } diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json new file mode 100644 index 000000000..41ca2de22 --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json @@ -0,0 +1,49 @@ +{ + "global": [ + { + "name": "service", + "value": [ + "4cc5b45a-1f63-4194-8100-cd8e14248c92" + ] + }, + { + "name": "vf", + "value": [ + "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad" + ] + }, + { + "name": "actionSet", + "value": [ + "vnfRecipe" + ] + }, + { + "name": "location", + "value": [ + "DC1" + ] + }, + { + "name": "deployParameters", + "value": { + "dh_override": "component_dockerhost", + "dh_location_id": "zone1", + "aaiEnrichmentHost": "none", + "aaiEnrichmentPort": 8443, + "enableAAIEnrichment": false, + "dmaap_host": "dmaap.onap-message-router", + "dmaap_port": 3904, + "enableRedisCaching": false, + "redisHosts": "", + "tag_version": "nexus3.onap.org:10001/onap//onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.0.0", + "consul_host": "consul-server.onap-consul", + "consul_port": "8500", + "cbs_host": "config-binding-service.dcae", + "cbs_port": "10000", + "external_port": "32010", + "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" + } + } + ] +} diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json new file mode 100644 index 000000000..ce3158d93 --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json @@ -0,0 +1,36 @@ +{ + "global": [ + { + "name": "service", + "value": [ + "4cc5b45a-1f63-4194-8100-cd8e14248c92" + ] + }, + { + "name": "vf", + "value": [ + "07e266fc-49ab-4cd7-8378-ca4676f1b9ec" + ] + }, + { + "name": "actionSet", + "value": [ + "vnfRecipe" + ] + }, + { + "name": "location", + "value": [ + "DC1" + ] + }, + { + "name": "deployParameters", + "value": { + "location_id": "", + "service_id": "", + "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" + } + } + ] +} -- cgit 1.2.3-korg From aa8d13e4fb8ea099c85969de91eff2d89190c366 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Mon, 14 May 2018 17:35:42 +0200 Subject: Config Changes Changes done to the Clamp Config file globalProperties.json for the operational policies Issue-ID: CLAMP-153 Change-Id: Id512fcdab0687495cbfb741097fc19dfc5545093 Signed-off-by: Determe, Sebastien (sd378r) --- src/main/resources/clds/templates/globalProperties.json | 11 ++++++----- src/test/resources/clds/templates/globalProperties.json | 11 ++++++----- .../example/sdc/expected-result/sdc-properties-4cc5b45a.json | 11 ++++++----- 3 files changed, 18 insertions(+), 15 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/main/resources/clds/templates/globalProperties.json b/src/main/resources/clds/templates/globalProperties.json index c9bbbf72b..062304280 100644 --- a/src/main/resources/clds/templates/globalProperties.json +++ b/src/main/resources/clds/templates/globalProperties.json @@ -4,13 +4,12 @@ "tcaInt": "1", "tcaVio": "1", "eventName": { - "vCPEvGMUXPacketLoss": "vCPEvGMUXPacketLoss", "vLoadBalancer": "vLoadBalancer", - "vFirewallBroadcastPackets": "vFirewallBroadcastPackets" + "vFirewallBroadcastPackets": "vFirewallBroadcastPackets", + "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated": "receivedBroadcastPacketsAccumulated", - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta": "receivedDiscardedPacketsDelta" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate" }, "operator": { ">": "GREATER", @@ -52,7 +51,9 @@ "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate", - "healthCheck": "Health Check" + "healthCheck": "Health Check", + "modifyConfig": "ModifyConfig", + "vfModuleCreate":"VF Module Create" }, "maxRetries": "3", "retryTimeLimit": 180, diff --git a/src/test/resources/clds/templates/globalProperties.json b/src/test/resources/clds/templates/globalProperties.json index c9bbbf72b..062304280 100644 --- a/src/test/resources/clds/templates/globalProperties.json +++ b/src/test/resources/clds/templates/globalProperties.json @@ -4,13 +4,12 @@ "tcaInt": "1", "tcaVio": "1", "eventName": { - "vCPEvGMUXPacketLoss": "vCPEvGMUXPacketLoss", "vLoadBalancer": "vLoadBalancer", - "vFirewallBroadcastPackets": "vFirewallBroadcastPackets" + "vFirewallBroadcastPackets": "vFirewallBroadcastPackets", + "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated": "receivedBroadcastPacketsAccumulated", - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta": "receivedDiscardedPacketsDelta" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate" }, "operator": { ">": "GREATER", @@ -52,7 +51,9 @@ "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate", - "healthCheck": "Health Check" + "healthCheck": "Health Check", + "modifyConfig": "ModifyConfig", + "vfModuleCreate":"VF Module Create" }, "maxRetries": "3", "retryTimeLimit": 180, diff --git a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json index 5e0ba72ab..f1f67fe1b 100644 --- a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json +++ b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json @@ -4,13 +4,12 @@ "tcaInt": "1", "tcaVio": "1", "eventName": { - "vCPEvGMUXPacketLoss": "vCPEvGMUXPacketLoss", "vLoadBalancer": "vLoadBalancer", - "vFirewallBroadcastPackets": "vFirewallBroadcastPackets" + "vFirewallBroadcastPackets": "vFirewallBroadcastPackets", + "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated": "receivedBroadcastPacketsAccumulated", - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta": "receivedDiscardedPacketsDelta" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate" }, "operator": { ">": "GREATER", @@ -52,7 +51,9 @@ "restart": "Restart", "rebuild": "Rebuild", "migrate": "Migrate", - "healthCheck": "Health Check" + "healthCheck": "Health Check", + "modifyConfig": "ModifyConfig", + "vfModuleCreate":"VF Module Create" }, "maxRetries": "3", "retryTimeLimit": 180, -- cgit 1.2.3-korg From c4912070e9c004b2a6eb3753b7fae9993c057e2d Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Wed, 30 May 2018 18:07:19 +0200 Subject: Add measure Add measure for the TCA policy window Issue-ID: CLAMP-153 Change-Id: Ie035de0fbd5bc24f559696f463183bf1fe68aa02 Signed-off-by: Determe, Sebastien (sd378r) --- src/main/resources/clds/templates/globalProperties.json | 3 ++- src/test/resources/clds/templates/globalProperties.json | 3 ++- .../resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/main/resources/clds/templates/globalProperties.json b/src/main/resources/clds/templates/globalProperties.json index 062304280..e677abe9f 100644 --- a/src/main/resources/clds/templates/globalProperties.json +++ b/src/main/resources/clds/templates/globalProperties.json @@ -9,7 +9,8 @@ "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate", + "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta":"receivedTotalPacketsDelta" }, "operator": { ">": "GREATER", diff --git a/src/test/resources/clds/templates/globalProperties.json b/src/test/resources/clds/templates/globalProperties.json index 062304280..e677abe9f 100644 --- a/src/test/resources/clds/templates/globalProperties.json +++ b/src/test/resources/clds/templates/globalProperties.json @@ -9,7 +9,8 @@ "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate", + "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta":"receivedTotalPacketsDelta" }, "operator": { ">": "GREATER", diff --git a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json index f1f67fe1b..c695ae00c 100644 --- a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json +++ b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json @@ -9,7 +9,8 @@ "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate", + "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta":"receivedTotalPacketsDelta" }, "operator": { ">": "GREATER", -- cgit 1.2.3-korg From 7c71ae72fb394728b0354dbfe9cae0e5f45230bc Mon Sep 17 00:00:00 2001 From: sebdet Date: Mon, 3 Sep 2018 14:28:58 +0200 Subject: Replace dumb values Replace dumb values by test values in sampel files Issue-ID: CLAMP-198 Change-Id: I3ac4012b0369e2576459f5536a6c93e33917afe5 Signed-off-by: sebdet --- .../example/dao/template-doc-content.json | 8 +- .../resources/example/sdc/blueprint-dcae/tca.yaml | 10 +- .../example/sdc/sdcCVFCResourceExample.json | 2 +- .../resources/example/sdc/sdcCVFCResources.json | 194 ++++----- .../resources/example/sdc/sdcCinderVolume.json | 2 +- .../example/sdc/sdcResourceDetailsExample.json | 2 +- .../resources/example/sdc/sdcSecurityRules.json | 2 +- .../example/sdc/sdcServiceDetailsExample.json | 2 +- .../example/sdc/sdcServicesListExample.json | 6 +- .../example/sdc/sdcVFCGenericWithAlarms.json | 2 +- .../example/sdc/sdcVFCResourceExample.json | 2 +- .../resources/example/sdc/sdcVFCResources.json | 396 ++++++++--------- .../resources/example/sdc/sdcVFCResourcesList.json | 482 ++++++++++----------- src/test/resources/example/sdc/sdcVFResources.json | 238 +++++----- .../example/tca-policy-req/blueprint-expected.yaml | 4 +- .../example/tca-policy-req/blueprint-input.yaml | 10 +- .../example/tca-policy-req/prop-text.json | 2 +- .../catalog/resources?resourceType=VFC/.file | 2 +- src/test/resources/sql/four_templates_only.sql | 2 +- 19 files changed, 684 insertions(+), 684 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/test/resources/example/dao/template-doc-content.json b/src/test/resources/example/dao/template-doc-content.json index 0ee712204..96f96756d 100644 --- a/src/test/resources/example/dao/template-doc-content.json +++ b/src/test/resources/example/dao/template-doc-content.json @@ -47,8 +47,8 @@ node_templates: publisherPollingInterval: '20000' publisherProtocol: https publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub - publisherUserName: m00502@tca.af.dcae.onap.org - publisherUserPassword: Te5021abc + publisherUserName: test@tca.af.dcae.onap.org + publisherUserPassword: password subscriberConsumerGroup: OpenDCAE-c12 subscriberConsumerId: c12 subscriberContentType: application/json @@ -59,8 +59,8 @@ node_templates: subscriberProtocol: https subscriberTimeoutMS: '-1' subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub - subscriberUserName: m00502@tca.af.dcae.onap.org - subscriberUserPassword: Te5021abc + subscriberUserName: test@tca.af.dcae.onap.org + subscriberUserPassword: password tca_policy: null artifact_name: dcae-analytics-tca artifact_version: 1.0.0 diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml index 1a756eea9..0ab831712 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -47,8 +47,8 @@ node_templates: publisherPollingInterval: '20000' publisherProtocol: https publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub - publisherUserName: m00502@tca.af.dcae.onap.org - publisherUserPassword: Te5021abc + publisherUserName: test@tca.af.dcae.onap.org + publisherUserPassword: password subscriberConsumerGroup: OpenDCAE-c12 subscriberConsumerId: c12 subscriberContentType: application/json @@ -59,8 +59,8 @@ node_templates: subscriberProtocol: https subscriberTimeoutMS: '-1' subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub - subscriberUserName: m00502@tca.af.dcae.onap.org - subscriberUserPassword: Te5021abc + subscriberUserName: test@tca.af.dcae.onap.org + subscriberUserPassword: password tca_policy: null artifact_name: dcae-analytics-tca artifact_version: 1.0.0 @@ -101,4 +101,4 @@ node_templates: type: dcae.nodes.Topic properties: topic_name: '' - \ No newline at end of file + diff --git a/src/test/resources/example/sdc/sdcCVFCResourceExample.json b/src/test/resources/example/sdc/sdcCVFCResourceExample.json index d31b66b11..01998dcbc 100644 --- a/src/test/resources/example/sdc/sdcCVFCResourceExample.json +++ b/src/test/resources/example/sdc/sdcCVFCResourceExample.json @@ -8,7 +8,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740", + "lastUpdaterUserId": "user", "lastUpdaterFullName": "Zero ASDCMech", "toscaResourceName": "org.openecomp.resource.vfc.ClampDev.abstract.nodes.virc_fe_be_0", "resources": [ diff --git a/src/test/resources/example/sdc/sdcCVFCResources.json b/src/test/resources/example/sdc/sdcCVFCResources.json index 790b2d53d..54003a642 100644 --- a/src/test/resources/example/sdc/sdcCVFCResources.json +++ b/src/test/resources/example/sdc/sdcCVFCResources.json @@ -9,7 +9,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "22db11dd-8f1b-4687-93c1-68d9699cc8dd", @@ -21,7 +21,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "a40da782-3ec4-4138-849f-f9dd4013744e", @@ -33,7 +33,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "d5711e0f-1e01-4f0f-8bb7-e3805607ddc8", @@ -45,7 +45,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "c4736acb-5f9b-4918-a188-f166c948f21d", @@ -57,7 +57,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "49c45990-9aca-437a-aeea-cd5d97f4db2d", @@ -69,7 +69,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "37ee791a-cf0b-4968-8003-9f0b93e4e5e0", @@ -81,7 +81,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "59db0e7d-8800-4b73-8236-42d95e28c865", @@ -93,7 +93,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "26b7ac12-5cf0-456c-adb4-fb7b5d0d7162", @@ -105,7 +105,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "a056a4ab-4e72-4631-8539-0f4327b5beb0", @@ -117,7 +117,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "9d81d5e5-72aa-4ec7-b10e-f55f0369f5b5", @@ -129,7 +129,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "ad90ed2d-5266-41f3-af43-db9b9f6765c3", @@ -141,7 +141,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "a790f10d-6915-42a4-ae60-f3525d7dfef2", @@ -153,7 +153,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "8b774c12-26bd-4dff-a9f8-3e4c46d9d5a0", @@ -165,7 +165,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "c2740411-a801-416a-8d71-d10d5a3d3794", @@ -177,7 +177,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "7918ba80-97a2-4ead-87f0-dfc61da405c9", @@ -189,7 +189,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "bdbe08db-0471-443e-967a-eb7b619be46b", @@ -201,7 +201,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "0e997760-1d6d-4afc-b9ab-6c2a94807463", @@ -213,7 +213,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "e47dccd6-a23c-4685-a21b-b57d7c5a7007", @@ -225,7 +225,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "2c8f1219-8000-4001-aa13-496a0396d40f", @@ -237,7 +237,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "c01cc6f1-4109-4498-b6c1-2cba7140a8b0", @@ -249,7 +249,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "0457dd05-f754-48f8-8997-3819c1abbdac", @@ -261,7 +261,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "cba89050-752c-4aac-8cec-6f0463eb8a23", @@ -273,7 +273,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "93a60704-ce74-4f1e-b845-ddb3acfe8819", @@ -285,7 +285,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "5ac81105-ff5a-41fd-a84b-2aff8a694d14", @@ -297,7 +297,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "ba85242a-7910-4501-b8d7-fc47fa9ed902", @@ -309,7 +309,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "dc32e966-81d2-4048-b123-8e91e930b61e", @@ -321,7 +321,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "fd7fa970-c758-4daa-8cd8-77cbc1dc2604", @@ -333,7 +333,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "9b1b82c1-308c-42b8-8ca3-00e744be4cbf", @@ -345,7 +345,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "c771d2d4-b5e0-43ce-baa6-020389238484", @@ -357,7 +357,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "50b5240c-fc4f-4f1e-bd9e-a89f48912b50", @@ -369,7 +369,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "cce30e84-4f25-4712-ae16-6223b81ebe30", @@ -381,7 +381,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "128b71d0-616c-4ddc-bfc6-831fd07d2b23", @@ -393,7 +393,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "2ac67cfc-abc8-4e7a-882f-8594af8a142b", @@ -405,7 +405,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "f3264aab-8f59-4942-a118-2663e445e055", @@ -417,7 +417,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "0d094452-1b7d-4b5a-86ff-bce315102473", @@ -429,7 +429,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "dec15871-f6f6-4e44-8a8d-1e30f69ac0d3", @@ -441,7 +441,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "9150f327-801e-4963-b25b-b4583ec55c79", @@ -453,7 +453,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "6b143e5e-dfcc-4572-b101-7fcb98c0bdde", @@ -465,7 +465,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss1245" + "lastUpdaterUserId": "user" }, { "uuid": "fc93fad1-0133-43c8-8355-9e0797665774", @@ -477,7 +477,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss1245" + "lastUpdaterUserId": "user" }, { "uuid": "24101cfd-f824-4340-916f-a881a203062b", @@ -489,7 +489,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "844453e6-46b2-4673-aee7-f0dba8a90218", @@ -501,7 +501,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "6e19c4fc-fe71-4fd1-951a-37cdb76016b5", @@ -513,7 +513,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "8d5cce48-c3cb-4a7d-b94c-f4a40ea13cf6", @@ -525,7 +525,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "2cb64483-fa56-4599-8752-da98434bfaa0", @@ -537,7 +537,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "ca9d0619-51fc-4c62-a653-c22297a7da0d", @@ -549,7 +549,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "183ca9a3-5e5d-4180-9e16-b89cb19050d6", @@ -561,7 +561,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "a4a0faf3-ec92-425c-8720-2cbd43748348", @@ -573,7 +573,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "140b8590-3d21-474c-9cd2-72d71eae93ac", @@ -585,7 +585,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "2aa34c35-e0b6-4974-89d7-68b0595a67a9", @@ -597,7 +597,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "7fdf044e-7e8b-4a78-b560-1de3709a5748", @@ -609,7 +609,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "49632b9c-cb8e-43a3-8aaf-824418e57056", @@ -621,7 +621,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "07d4e7a0-b849-400d-8c9a-3cb77e7dd8b0", @@ -633,7 +633,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "77752274-77c0-430b-a99c-1b4f324fbbe0", @@ -645,7 +645,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "34236492-9bdf-4014-804d-6067f52bc62d", @@ -657,7 +657,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "3cc412d3-a6ee-4d3c-acc8-2a1ff7810377", @@ -669,7 +669,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "1e55adcd-dabf-432e-b872-f8ba02931b15", @@ -681,7 +681,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "62e449b8-0539-450c-a929-e78af95decef", @@ -693,7 +693,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "72333ee0-007b-4e98-a097-4bc1da668fc6", @@ -705,7 +705,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "4de24e5d-9608-45fc-8803-980f93841f89", @@ -717,7 +717,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "a5e5d12f-7cc8-4b6a-b1b1-f344a7653b76", @@ -729,7 +729,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "be58ec10-fdda-4436-95db-1f059508e63c", @@ -741,7 +741,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "fb0a4dae-87f6-4c72-897c-aa0c7733bb1d", @@ -753,7 +753,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "eff16637-cc77-4b5e-bb18-e59f4901406b", @@ -765,7 +765,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "a4d9c48f-177b-498d-a4f2-f727359d930c", @@ -777,7 +777,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "a12837b0-336a-473f-b19c-9f711eac89bb", @@ -789,7 +789,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "ba665cad-c3fa-4b7b-b49c-e9151e314fff", @@ -801,7 +801,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "f577a370-980c-4d28-93d7-6db297260bf6", @@ -813,7 +813,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "67fc9bfe-5f35-406e-892b-bcd6635d8503", @@ -825,7 +825,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "1ca8c4da-0609-4fe4-86d5-a3e95b326f6d", @@ -837,7 +837,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "f09d1939-490e-456d-a17c-9e3fe75017aa", @@ -849,7 +849,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "f502cd24-ee81-446f-87dc-cd4d1924b3d0", @@ -861,7 +861,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "22357844-f903-4252-b9b3-bb21d3190e88", @@ -873,7 +873,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "5443c9e4-e979-48de-9662-db5e5b0d8473", @@ -885,7 +885,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "419fd69c-9d1f-4679-9677-88cff351bc13", @@ -897,7 +897,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "02eb6606-ba4d-428a-8043-2a57acfc8180", @@ -909,7 +909,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "9f5fcf0f-013a-429c-807d-325a0ffe1f4e", @@ -921,7 +921,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "3b1050e1-ffef-4e39-9e6e-7f13a3b9c28a", @@ -933,7 +933,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "e6f1576a-6ba7-48b9-a72d-c25d6e830b7c", @@ -945,7 +945,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "c01d30f8-31ee-4e77-90a9-1e6c253e905f", @@ -957,7 +957,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "9020ebb6-0d56-4355-8308-3b3082d96565", @@ -969,7 +969,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "1d746450-e070-4c45-bb49-158537d3246b", @@ -981,7 +981,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "712d2e08-0ca2-4f48-b193-34a887a168c6", @@ -993,7 +993,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "c13f95f6-7757-4124-a5be-3a7c6ae2bd20", @@ -1005,7 +1005,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "12e60ab4-7e48-4f6b-a124-f109b50d9f4a", @@ -1017,7 +1017,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "fb57af5b-84f2-4baf-b6a8-61062f924cd2", @@ -1029,7 +1029,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "7f550ae3-1242-4468-b04a-0666946d84aa", @@ -1041,7 +1041,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "3af9b720-144d-4507-aea8-73b49bc243c4", @@ -1053,7 +1053,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "24ca039c-26e1-4f79-b2a4-660a7a21f752", @@ -1065,7 +1065,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "c0e6a2a1-3fc7-4663-8df7-b0263288f116", @@ -1077,7 +1077,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "e74db726-0ad6-4a6e-be6c-4094df81eafd", @@ -1089,7 +1089,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "e49a643b-23a0-4b50-a3c0-a5a60003a958", @@ -1101,7 +1101,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss1245" + "lastUpdaterUserId": "user" }, { "uuid": "e0941d01-8ec6-448b-80f8-007e8c88ed28", @@ -1113,7 +1113,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "98771c36-da29-4a80-85e9-72e9fbef3286", @@ -1125,7 +1125,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "7218a91c-7c13-443f-b085-a10f1593624e", @@ -1137,7 +1137,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "5a2c7097-c582-4337-918e-48b58d79dd74", @@ -1149,7 +1149,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "e70970f3-aa70-4d6b-9fd4-eb07ff42693f", @@ -1161,6 +1161,6 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" } ] \ No newline at end of file diff --git a/src/test/resources/example/sdc/sdcCinderVolume.json b/src/test/resources/example/sdc/sdcCinderVolume.json index b5ffe6465..1832a9aa5 100644 --- a/src/test/resources/example/sdc/sdcCinderVolume.json +++ b/src/test/resources/example/sdc/sdcCinderVolume.json @@ -8,7 +8,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003", + "lastUpdaterUserId": "user", "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. " diff --git a/src/test/resources/example/sdc/sdcResourceDetailsExample.json b/src/test/resources/example/sdc/sdcResourceDetailsExample.json index 3e904b107..7653b9481 100644 --- a/src/test/resources/example/sdc/sdcResourceDetailsExample.json +++ b/src/test/resources/example/sdc/sdcResourceDetailsExample.json @@ -8,7 +8,7 @@ "subCategory": "Router", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743", + "lastUpdaterUserId": "user", "lastUpdaterFullName": "Three ASDCMech", "toscaResourceName": "org.openecomp.resource.vf.ClampDev", "resources": diff --git a/src/test/resources/example/sdc/sdcSecurityRules.json b/src/test/resources/example/sdc/sdcSecurityRules.json index 07930a288..b73abb058 100644 --- a/src/test/resources/example/sdc/sdcSecurityRules.json +++ b/src/test/resources/example/sdc/sdcSecurityRules.json @@ -8,7 +8,7 @@ "subCategory": "Rules", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003", + "lastUpdaterUserId": "user", "lastUpdaterFullName": "Jimmy Hendrix", "toscaResourceName": "org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules", "description": "Configuration of policy rules to be applied on ports." diff --git a/src/test/resources/example/sdc/sdcServiceDetailsExample.json b/src/test/resources/example/sdc/sdcServiceDetailsExample.json index 820c6ca55..b344f4194 100644 --- a/src/test/resources/example/sdc/sdcServiceDetailsExample.json +++ b/src/test/resources/example/sdc/sdcServiceDetailsExample.json @@ -8,7 +8,7 @@ "subCategory": "Application Server", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535", + "lastUpdaterUserId": "user", "lastUpdaterFullName": "MONICA LAZER", "toscaResourceName": "org.openecomp.resource.vf.Vcts3", "resources": diff --git a/src/test/resources/example/sdc/sdcServicesListExample.json b/src/test/resources/example/sdc/sdcServicesListExample.json index 3c1277a47..d4f154f79 100644 --- a/src/test/resources/example/sdc/sdcServicesListExample.json +++ b/src/test/resources/example/sdc/sdcServicesListExample.json @@ -7,7 +7,7 @@ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8e/toscaModel", "category": "Application L4+", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535", + "lastUpdaterUserId": "user", "distributionStatus":"DISTRIBUTED" }, { @@ -18,7 +18,7 @@ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8e/toscaModel", "category": "Application L4+", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535", + "lastUpdaterUserId": "user", "distributionStatus":"DISTRIBUTED" }, { @@ -29,7 +29,7 @@ "toscaModelURL": "/sdc/v1/catalog/resources/29018914-966c-442d-9d08-251b9dc45b8e/toscaModel", "category": "Application L4+", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535", + "lastUpdaterUserId": "user", "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 index 0f9cf637b..952650af4 100644 --- a/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json +++ b/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json @@ -8,7 +8,7 @@ "subCategory": "Abstract", "resourceType": "CVFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740", + "lastUpdaterUserId": "user", "lastUpdaterFullName": "Zero ASDCMech", "toscaResourceName": "org.openecomp.resource.vfc.ClampDev.abstract.nodes.virc_fe_be_1", "resources": diff --git a/src/test/resources/example/sdc/sdcVFCResourceExample.json b/src/test/resources/example/sdc/sdcVFCResourceExample.json index 0fb2f5dff..5f523e6bd 100644 --- a/src/test/resources/example/sdc/sdcVFCResourceExample.json +++ b/src/test/resources/example/sdc/sdcVFCResourceExample.json @@ -8,7 +8,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740", + "lastUpdaterUserId": "user", "lastUpdaterFullName": "Zero ASDCMech", "toscaResourceName": "org.openecomp.resource.vfc.Clampdev.abstract.nodes.heat.virc_fe_be", "artifacts": [ diff --git a/src/test/resources/example/sdc/sdcVFCResources.json b/src/test/resources/example/sdc/sdcVFCResources.json index be2ee46d4..aa20afc56 100644 --- a/src/test/resources/example/sdc/sdcVFCResources.json +++ b/src/test/resources/example/sdc/sdcVFCResources.json @@ -9,7 +9,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -22,7 +22,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -35,7 +35,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -48,7 +48,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -61,7 +61,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -74,7 +74,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -87,7 +87,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -100,7 +100,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -113,7 +113,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -126,7 +126,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -139,7 +139,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -152,7 +152,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -165,7 +165,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -178,7 +178,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -191,7 +191,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -204,7 +204,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -217,7 +217,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -230,7 +230,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -243,7 +243,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -256,7 +256,7 @@ "subCategory": "Network Elements", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -269,7 +269,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -282,7 +282,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -295,7 +295,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -308,7 +308,7 @@ "subCategory": "Allotted Resource", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -321,7 +321,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -334,7 +334,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -347,7 +347,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -360,7 +360,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -373,7 +373,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -386,7 +386,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -399,7 +399,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -412,7 +412,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -425,7 +425,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -438,7 +438,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -451,7 +451,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -464,7 +464,7 @@ "subCategory": "Database", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -477,7 +477,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -490,7 +490,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -503,7 +503,7 @@ "subCategory": "Rules", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -516,7 +516,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -529,7 +529,7 @@ "subCategory": "Allotted Resource", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { @@ -542,7 +542,7 @@ "subCategory": "Allotted Resource", "resourceType": "VFC", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -555,7 +555,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -568,7 +568,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -581,7 +581,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -594,7 +594,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -607,7 +607,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -620,7 +620,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -633,7 +633,7 @@ "subCategory": "Rules", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -646,7 +646,7 @@ "subCategory": "Rules", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -659,7 +659,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -672,7 +672,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -685,7 +685,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -698,7 +698,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -711,7 +711,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -724,7 +724,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { @@ -737,7 +737,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { @@ -750,7 +750,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "az2497" + "lastUpdaterUserId": "user" }, { @@ -763,7 +763,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -776,7 +776,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -789,33 +789,33 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "3c9b6ec9-2b6a-4c81-96cd-f3e5c0264ae6", "invariantUUID": "cdc19c35-bcac-4f78-a7a6-c216b374f5a3", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.nems_fe", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { "uuid": "612317df-67b5-487f-b592-44f5e682b0a9", "invariantUUID": "3bae7612-b50d-48ed-8ae7-b6f17521395b", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.nems_be", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { @@ -828,7 +828,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -841,7 +841,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -854,7 +854,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -867,7 +867,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -880,7 +880,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -893,7 +893,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -906,7 +906,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -919,7 +919,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -932,7 +932,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -945,7 +945,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -958,7 +958,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -971,7 +971,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -984,7 +984,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -997,7 +997,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1010,7 +1010,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1023,7 +1023,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1036,7 +1036,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1049,7 +1049,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -1062,7 +1062,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1075,7 +1075,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1088,7 +1088,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1101,7 +1101,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1114,7 +1114,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1127,7 +1127,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -1140,7 +1140,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -1153,7 +1153,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1166,7 +1166,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1179,7 +1179,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1192,7 +1192,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1205,7 +1205,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1218,7 +1218,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1231,7 +1231,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "az2497" + "lastUpdaterUserId": "user" }, { @@ -1244,7 +1244,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1257,7 +1257,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1270,7 +1270,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1283,7 +1283,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1296,7 +1296,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -1309,7 +1309,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1322,7 +1322,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { @@ -1335,7 +1335,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1348,7 +1348,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1361,7 +1361,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1374,7 +1374,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1387,7 +1387,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1400,7 +1400,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1413,7 +1413,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1426,7 +1426,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1439,7 +1439,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1452,7 +1452,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -1465,7 +1465,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1478,7 +1478,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -1491,7 +1491,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -1504,7 +1504,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -1517,7 +1517,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -1530,7 +1530,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1543,7 +1543,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1556,7 +1556,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1569,7 +1569,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "az2497" + "lastUpdaterUserId": "user" }, { @@ -1582,7 +1582,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1595,7 +1595,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1608,7 +1608,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1621,7 +1621,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -1634,7 +1634,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1647,7 +1647,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1660,33 +1660,33 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "bc40b750-56ab-4c6b-8e15-412f9be0178f", "invariantUUID": "ab769637-063f-41fd-927d-771a1913235b", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.mmsc", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { "uuid": "3ff3d87f-c55f-4b4c-a8ae-29931d910359", "invariantUUID": "5af2c63a-1b3e-42a5-ab4b-07e97d1dcbd2", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.nems_be", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { @@ -1699,7 +1699,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -1712,20 +1712,20 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "d544d6a6-4fcc-42db-97f6-e8cccc69c5ee", "invariantUUID": "cd4a433e-cf76-4652-a6b8-59e657e0c5a0", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.lb", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { @@ -1738,7 +1738,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1751,7 +1751,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1764,7 +1764,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1777,7 +1777,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1790,20 +1790,20 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "de861add-3f4a-4526-9754-8bcb69d0fd0e", "invariantUUID": "67560771-ffcb-46fb-a40c-0e1dee74f43a", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.mmsc", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { @@ -1816,7 +1816,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1829,7 +1829,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1842,7 +1842,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1855,7 +1855,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1868,7 +1868,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -1881,7 +1881,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1894,20 +1894,20 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "897dcb54-bb55-4311-8c0e-b663781d7e4f", "invariantUUID": "c223adda-e48d-487d-98e8-654bbb8268af", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.lb", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { @@ -1920,20 +1920,20 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "173c32b5-44c8-4404-ba18-32d9de49afae", "invariantUUID": "c247493b-15a4-47af-bb6b-c664cb5a4d37", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.eca_trx", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { @@ -1946,20 +1946,20 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "0e6509c9-7d35-4daf-9086-9fe30fdd1275", "invariantUUID": "9516ad03-b122-4738-ad6d-d9c2166cd75a", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.nems_fe", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { @@ -1972,7 +1972,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1985,7 +1985,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1998,20 +1998,20 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "8678abfe-8cbd-42f2-aa78-ca47a1beaa14", "invariantUUID": "4d02c8a5-e141-4d01-94ec-7a3b94afda97", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.eca_trx", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { @@ -2024,7 +2024,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -2037,7 +2037,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -2050,7 +2050,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2063,7 +2063,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2076,7 +2076,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2089,7 +2089,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -2102,7 +2102,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -2115,7 +2115,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2128,7 +2128,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2141,7 +2141,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -2154,7 +2154,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { @@ -2167,7 +2167,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2180,7 +2180,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -2193,7 +2193,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -2206,7 +2206,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -2219,7 +2219,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -2232,7 +2232,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { @@ -2245,7 +2245,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss8214" + "lastUpdaterUserId": "user" }, { @@ -2258,7 +2258,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -2271,7 +2271,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -2284,7 +2284,7 @@ "subCategory": "Call Control", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -2297,7 +2297,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -2310,7 +2310,7 @@ "subCategory": "Call Control", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -2323,7 +2323,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2336,7 +2336,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -2349,7 +2349,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -2362,7 +2362,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -2375,7 +2375,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2388,7 +2388,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2401,7 +2401,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -2414,7 +2414,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2427,7 +2427,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -2440,6 +2440,6 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" } ] \ No newline at end of file diff --git a/src/test/resources/example/sdc/sdcVFCResourcesList.json b/src/test/resources/example/sdc/sdcVFCResourcesList.json index c6ca26dac..7d81afa92 100644 --- a/src/test/resources/example/sdc/sdcVFCResourcesList.json +++ b/src/test/resources/example/sdc/sdcVFCResourcesList.json @@ -9,7 +9,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "da3c740a-e8af-4b85-a487-b4961b040fa3", @@ -21,7 +21,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "b31696d9-ad41-4cb5-bbdd-3e67845204f3", @@ -33,7 +33,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "25b74ab6-565b-424f-bb57-b434bb2944a0", @@ -45,7 +45,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "c13dc4c4-f4cb-4a54-9198-5bce42c5df02", @@ -57,7 +57,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "08e94ce5-79e8-4873-9221-eb9e869ac679", @@ -69,7 +69,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "0d8f93f5-780e-47de-9b03-52ab31cb83d1", @@ -81,7 +81,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "9140709a-d6a9-4690-b102-6fa96a696ce9", @@ -93,7 +93,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "6607c9fc-dc1d-4a89-ac57-b6b18fc79b69", @@ -105,7 +105,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "3cb0c46c-af73-4420-ae5c-d4816b314980", @@ -117,7 +117,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "b4288e07-597a-44a2-aa98-ad36e551a39d", @@ -129,7 +129,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "156d628f-f515-4f58-bfb0-210632717ce3", @@ -141,7 +141,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "28eeb6ce-2349-4c07-80ad-f0aacbf67028", @@ -153,7 +153,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "f89e37a8-c5c0-4c0c-a034-f6c0ad8dd83f", @@ -165,7 +165,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "8263c4c5-555e-4b73-9210-ddc8dd7e42f8", @@ -177,7 +177,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "dd7218d7-5760-4834-b78a-33edf5eb22e7", @@ -189,7 +189,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "10906cdf-dbec-405a-a513-7ed2090a5adb", @@ -201,7 +201,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "e0ee89f0-175b-47d8-8258-1ac6ea6d52a8", @@ -213,7 +213,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "e45c5438-0528-4a3d-bfa4-644b2343537c", @@ -225,7 +225,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "ba541b5b-7d06-4198-adf9-c035b374cdb3", @@ -237,7 +237,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "e84b8370-ffb7-4f6c-a242-ab3f340617fa", @@ -249,7 +249,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "512ea41b-b9ac-412a-95ee-ac7410c2b6b2", @@ -261,7 +261,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "b4897fd9-7a50-492a-9e0c-054d044c1dcf", @@ -273,7 +273,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "24413de0-35fd-4e1b-8052-51a1c798b24d", @@ -285,7 +285,7 @@ "subCategory": "Call Control", "resourceType": "VFC", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "d3543795-31cd-4bb9-acd7-09249fdf0c5b", @@ -297,7 +297,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "2b4c437e-9034-4ec3-b6f9-9309022673cf", @@ -309,7 +309,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "56cef7d0-af8c-4f18-80a2-e9aaf4366838", @@ -321,7 +321,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "d7646638-2572-4a94-b497-c028ac15f9ca", @@ -333,7 +333,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "39300382-8d78-4598-afa0-042613d6d8f7", @@ -345,7 +345,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "1d614214-2bc7-45bd-ab85-801ed72888c0", @@ -357,7 +357,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "880e5d06-8c62-43f2-ac4a-befff414e63c", @@ -369,7 +369,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "b58f9c1a-ad21-459d-9efa-a8924147cb90", @@ -381,7 +381,7 @@ "subCategory": "Allotted Resource", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "27307a62-8512-4aeb-a0ad-e8e88643c2ba", @@ -393,7 +393,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "c0cfa0b8-1214-4abc-bf4b-f71aed72f03b", @@ -405,7 +405,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "fd0e3baa-fef7-4096-be2f-a73fea2f1360", @@ -417,7 +417,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "efc0c5f9-b900-4d6e-a8d9-746bfb400c6d", @@ -429,7 +429,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "c003a901-a27e-49a4-bf3f-d9d8ca838f0a", @@ -453,7 +453,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "d555e4fc-5c42-4990-9a53-3cc998496595", @@ -465,7 +465,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss1245" + "lastUpdaterUserId": "user" }, { "uuid": "73c3f25a-88a2-4ac3-89a4-9c0ecf5a9b31", @@ -477,7 +477,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss1245" + "lastUpdaterUserId": "user" }, { "uuid": "a12dad87-6120-412f-8a53-c5bb88be89a3", @@ -489,7 +489,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "eabf4617-19da-4df2-b195-579309638c51", @@ -501,7 +501,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "a14e3bbd-b04b-4924-817c-b4d13bfd8fe2", @@ -513,7 +513,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "fa5a2fa8-ae63-49c0-9f6c-5e5e2b7f9faa", @@ -525,7 +525,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "41dea130-9195-4d0b-97ba-8d86c0b00684", @@ -537,7 +537,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "b8334449-de6b-4133-9c5d-1eb6c2736614", @@ -549,7 +549,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "97b6b724-1d91-406f-90c7-4d4643b34630", @@ -561,7 +561,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "a902ec74-9415-4d5c-a14e-f0861a272407", @@ -573,7 +573,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "3127c05d-fe28-4d7f-9866-33d87943e082", @@ -585,7 +585,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "c17fc945-c327-469b-9912-f6d628cd6e4e", @@ -597,7 +597,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "82646e24-0e94-416a-aae2-9df4b2aa6217", @@ -609,7 +609,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "f059ce03-14f3-46c3-a9b3-246404b2f9d0", @@ -621,7 +621,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "8dfca155-2ff7-49b3-b563-cc9c80bc951d", @@ -633,7 +633,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "b36dd1f0-f6aa-464d-b579-b5b75585ed44", @@ -645,7 +645,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "b425c959-77e2-49bd-8865-dbdb59348b1a", @@ -657,7 +657,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "3f631e5f-5a89-48e1-9a22-ef4bff70041e", @@ -669,7 +669,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "a6c14d60-4705-4c73-a5a6-0210c9f0d8b7", @@ -681,7 +681,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "f6b85fc7-0be4-408a-8682-66227e9a9788", @@ -693,7 +693,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "35014ae6-b3dd-4a06-9046-df1b54354d40", @@ -705,7 +705,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "5fe71b5f-c733-4500-b129-a2f5822ba6f2", @@ -717,7 +717,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "1b81e5d3-4a08-4db5-84a9-09096ff0f5ad", @@ -729,7 +729,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "65624d26-fca6-4af0-bbdb-f3cc33b81417", @@ -741,7 +741,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "3445e9cf-056a-4f0f-b0c3-a151cf9f3c5c", @@ -753,7 +753,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "78ff76c9-23d2-44c4-b0da-2492d93490b9", @@ -765,7 +765,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "3ce98526-e5b6-4b40-99a1-916cca22b652", @@ -777,7 +777,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { "uuid": "aae2edf9-690a-4633-a6ff-d7556ab9ce58", @@ -789,7 +789,7 @@ "subCategory": "Network Elements", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "5a8831a3-d481-49ce-b029-754e37e4bc07", @@ -801,7 +801,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "5c94528b-c068-4ece-9903-2a206e7b653b", @@ -813,7 +813,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "0b62cd13-b416-40fc-904b-b071f22134cd", @@ -825,7 +825,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "ee55b9c4-6ea2-4351-bf6e-f88f38130fd8", @@ -837,7 +837,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "c01c047d-395f-44fa-a34f-dc3f9c51c92c", @@ -849,7 +849,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "143166ba-bb54-4a38-b3c5-24850a16a283", @@ -861,7 +861,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "d6554a01-a3db-4dfe-8f41-af3866e18fa0", @@ -873,7 +873,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "5fc1e5d4-1015-4614-b486-8727eb5e388b", @@ -885,7 +885,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "90024548-1f2c-4267-b3f7-b64b2b7174d5", @@ -897,7 +897,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "592fb9b5-aace-4c14-8e10-f1214cc532f0", @@ -909,7 +909,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "73b40185-4478-402c-8951-2dd03b3e0e3c", @@ -921,7 +921,7 @@ "subCategory": "Contrail Route", "resourceType": "VFC", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "ml636r" + "lastUpdaterUserId": "user" }, { "uuid": "61214be3-e560-44cc-877b-d484bcc2ee79", @@ -933,7 +933,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "efb54bab-a842-48b3-842a-dffb000acf1f", @@ -945,7 +945,7 @@ "subCategory": "Database", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "42315f4b-660e-44a5-b4bb-7fb80087de69", @@ -957,7 +957,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "4066e7da-0dba-4d0b-b74c-c30446ed277e", @@ -969,7 +969,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "b39e436d-47b0-4509-95d6-8a63e2c722d1", @@ -981,7 +981,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "94b8f588-624c-4e61-9ead-32aaadd8cf65", @@ -993,7 +993,7 @@ "subCategory": "Rules", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "fa17c264-7f19-4919-a1d4-aab5c53b9c32", @@ -1005,7 +1005,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "76ba485f-50a3-480d-895e-5c319191bc11", @@ -1017,7 +1017,7 @@ "subCategory": "Allotted Resource", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { "uuid": "1909a305-e032-46ce-9278-c751659958cc", @@ -1029,7 +1029,7 @@ "subCategory": "Allotted Resource", "resourceType": "VFC", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "64fb42a4-7c3d-415b-afd0-1949abef550a", @@ -1041,7 +1041,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "c3ed93e4-4955-4100-8f4b-c9472cb3f28f", @@ -1053,7 +1053,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "a71b3246-b54e-4646-bd6f-d5a11d4878df", @@ -1065,7 +1065,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { "uuid": "d36283cc-7d52-4893-8f72-fbffbbe17857", @@ -1077,7 +1077,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "2ef832aa-25f1-4f5a-b6d4-a6ee90011918", @@ -1089,7 +1089,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "31060494-0c59-4c15-b4f4-34900d73b803", @@ -1101,7 +1101,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "d57e57d2-e3c6-470d-8d16-e6ea05f536c5", @@ -1113,7 +1113,7 @@ "subCategory": "Rules", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "db9360b9-0edb-43e1-8cf0-00bb90b7c2be", @@ -1125,7 +1125,7 @@ "subCategory": "Rules", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "503948a9-03bb-4738-8464-c6e21da10792", @@ -1137,7 +1137,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "e4514d83-9708-427f-a62b-f996e426ba58", @@ -1149,7 +1149,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "3ab24991-cf93-4d40-9468-52d233d36ad6", @@ -1161,7 +1161,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "930aab76-fc52-43dd-8f19-e2ce11503bb5", @@ -1173,7 +1173,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "fca030db-0a4b-4873-94d2-20ea6b8f259f", @@ -1185,7 +1185,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "bc74b1ae-11f7-4550-8c25-e528e749d2ea", @@ -1197,7 +1197,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { "uuid": "624a7da1-68ce-4b95-9d50-6a07d645e421", @@ -1209,7 +1209,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { "uuid": "0c19272a-b2a2-4ffe-a6e7-ce3a683f23fc", @@ -1221,7 +1221,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "az2497" + "lastUpdaterUserId": "user" }, { "uuid": "46887197-fec9-4cf5-9207-e6e7f4a6cf3a", @@ -1233,7 +1233,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "563ca30e-8e6f-4456-b1c0-d1a5b6b052aa", @@ -1245,7 +1245,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "2437819c-3f2e-4ae8-9427-b41463a63a21", @@ -1257,31 +1257,31 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "3c9b6ec9-2b6a-4c81-96cd-f3e5c0264ae6", "invariantUUID": "cdc19c35-bcac-4f78-a7a6-c216b374f5a3", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.nems_fe", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { "uuid": "612317df-67b5-487f-b592-44f5e682b0a9", "invariantUUID": "3bae7612-b50d-48ed-8ae7-b6f17521395b", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.nems_be", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { "uuid": "77b6934c-353e-407e-aa1e-6f1288cb3969", @@ -1293,7 +1293,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "48a5a370-d91d-4bdd-a1a0-8d82eedcced8", @@ -1305,7 +1305,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "1450f9c2-b491-4ac6-a388-db4e0752a58f", @@ -1317,7 +1317,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "311a159d-ea0b-494c-97dd-52683df85faf", @@ -1329,7 +1329,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "4902fae4-7f42-43c5-9472-fe12eca3f510", @@ -1341,7 +1341,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "a82e5a26-463c-4b17-9d6e-16ea1f8c0dde", @@ -1353,7 +1353,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "d852ce5c-c883-41a1-88f9-167b8b4ff197", @@ -1365,7 +1365,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "b299bd46-66c1-4954-af45-2fe3188f5c5e", @@ -1377,7 +1377,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "f80f5252-2ecb-41e3-84d5-936586ae0a3a", @@ -1389,7 +1389,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "9e4b96d7-5701-413e-8461-4cac258365ca", @@ -1401,7 +1401,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "4d2bfb6f-9276-447b-b145-7f7856af9a6c", @@ -1413,7 +1413,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "a614b20e-9c45-4163-b673-38f0068c5365", @@ -1425,7 +1425,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "fbad0868-45e9-433b-ada7-070e88c09672", @@ -1437,7 +1437,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "e50cbfd4-a860-441b-b1ff-c654c3222ad6", @@ -1449,7 +1449,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "21aaf7bf-5af9-4b1a-9850-f4a5e95f185e", @@ -1461,7 +1461,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "9d4a37d7-3c9b-4dad-abb6-26b50b15da8b", @@ -1473,7 +1473,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "bb8fddbf-e011-4fed-9f36-181478f4e56c", @@ -1485,7 +1485,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "2bb496fb-6ede-42e0-957e-bd80fa2e8aa1", @@ -1497,7 +1497,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "a5226541-363b-4d78-8f52-06d421795457", @@ -1509,7 +1509,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "f58b4bcf-baec-4c11-a6d0-0e92d4629fd2", @@ -1521,7 +1521,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "30db70cc-17b8-4c39-a848-5f629e9a929e", @@ -1533,7 +1533,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "52398d14-90d0-4d3a-ac84-10b525e79e3c", @@ -1545,7 +1545,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "d0deff85-ca52-4c86-8ca7-a02deddba983", @@ -1557,7 +1557,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "25f77df9-f94a-4458-9699-5f483167f700", @@ -1569,7 +1569,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "1ce8b11c-589c-4359-9caa-590a43fb53ec", @@ -1581,7 +1581,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "f27b3a9c-b815-42fe-83c6-da86c18a63a6", @@ -1593,7 +1593,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "c63814fe-9d50-4283-8229-ede6a5961de9", @@ -1605,7 +1605,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "23f4bcc5-c6e1-4fdd-b45b-29eb3f82af2f", @@ -1617,7 +1617,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "e63ef8ed-d40d-4b5f-99da-898fbe4b051b", @@ -1629,7 +1629,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "292d2d83-c33b-4c22-8341-4401194a6499", @@ -1641,7 +1641,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "af51c072-1754-4db3-97be-179ab7433295", @@ -1653,7 +1653,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "5ec9fb9f-fa32-48e8-a317-8be839e15d30", @@ -1665,7 +1665,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "az2497" + "lastUpdaterUserId": "user" }, { "uuid": "3a8230f1-dd86-42f8-9d73-c239bc5c74e8", @@ -1677,7 +1677,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "5658235d-6a1e-47fe-8e5f-9e081a11b713", @@ -1689,7 +1689,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "d4979513-3719-4076-bbc1-5a4fe040ddc6", @@ -1701,7 +1701,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "a450b1ba-2d69-44e7-8934-1d21952ba6c9", @@ -1713,7 +1713,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "c0bd2a8b-9dc3-4819-8ab1-11175ae06ef1", @@ -1725,7 +1725,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "5f6ccc29-6f6c-41cf-b995-73c58e7278d2", @@ -1737,7 +1737,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "5d6fdb58-1166-41b6-aab7-260e494ccc58", @@ -1749,7 +1749,7 @@ "subCategory": "Infrastructure", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "jh0003" + "lastUpdaterUserId": "user" }, { "uuid": "57d4264b-3175-4a31-9515-f23c0318930f", @@ -1761,7 +1761,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "dcd62b53-a045-4864-9ed3-aaf722fec10a", @@ -1773,7 +1773,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "aa00977d-ff67-473a-acb8-bb24db037a0b", @@ -1785,7 +1785,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "cb08bf67-6fc9-44ae-ae31-ab619cfd94af", @@ -1797,7 +1797,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "cc3a0064-e9d4-421e-ba14-ce340adb7ed9", @@ -1809,7 +1809,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "1f927980-bd8d-4a0c-8002-8f550e52efbe", @@ -1821,7 +1821,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "6d1669d1-be78-47e7-aed4-d5a2267c81d4", @@ -1833,7 +1833,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "bd9e5061-40dc-42ca-8d77-c606a24c8bfd", @@ -1845,7 +1845,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "68ea026e-c604-47b5-9cd1-524a58714a14", @@ -1857,7 +1857,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "bc3a8aae-7f94-4dac-b819-d37a077a08fc", @@ -1869,7 +1869,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "8ba3f710-58d4-4d60-9384-1dad449d381a", @@ -1881,7 +1881,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "0a09e932-9fde-4e52-b7e3-2e542b61faa0", @@ -1893,7 +1893,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "fa6ca25b-4578-4093-b8a2-031cb8f1f481", @@ -1905,7 +1905,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "f11a8681-ab58-4f0d-8387-76ecdfa31073", @@ -1917,7 +1917,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "4b1cca9b-23a0-4037-aaf3-ce5cd7c91851", @@ -1929,7 +1929,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "17ed7b78-1ffb-4864-a2ec-b6666a5fed16", @@ -1941,7 +1941,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "ab89b69b-b92b-4e34-b1db-a6378d709241", @@ -1953,7 +1953,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "d45694e4-ed86-4a44-a644-5a8a3ff89397", @@ -1965,7 +1965,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "5c7fd7c0-fc79-4309-bb03-85388cae45a8", @@ -1977,7 +1977,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "az2497" + "lastUpdaterUserId": "user" }, { "uuid": "f739ea35-7bd4-42ed-b9ee-1e0fd2017c72", @@ -1989,7 +1989,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "f2339431-f3ab-41c9-90c4-6c2c958e1b06", @@ -2001,7 +2001,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "15728e01-7076-4765-8002-95154ad29d5f", @@ -2013,7 +2013,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "ab168037-e654-4990-a188-e5d2f25a8768", @@ -2025,7 +2025,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { "uuid": "e1d7eb6a-646d-4906-9981-44ed892dc01c", @@ -2037,7 +2037,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "74c527c6-edb7-4bbe-a63c-d2daf5a12db0", @@ -2049,7 +2049,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "345459d0-ba42-45ba-9eb0-cc56e4f35ea9", @@ -2061,31 +2061,31 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "bc40b750-56ab-4c6b-8e15-412f9be0178f", "invariantUUID": "ab769637-063f-41fd-927d-771a1913235b", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.mmsc", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { "uuid": "3ff3d87f-c55f-4b4c-a8ae-29931d910359", "invariantUUID": "5af2c63a-1b3e-42a5-ab4b-07e97d1dcbd2", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.nems_be", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { "uuid": "fda7cb95-cbd0-46cc-8311-87ae632f75d6", @@ -2097,7 +2097,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "d8a2de8a-27d8-491c-bbb9-da779a4da7c6", @@ -2109,19 +2109,19 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "d544d6a6-4fcc-42db-97f6-e8cccc69c5ee", "invariantUUID": "cd4a433e-cf76-4652-a6b8-59e657e0c5a0", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.lb", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { "uuid": "5d6e7129-d7c8-41b8-ae2a-5f1688162c7c", @@ -2133,7 +2133,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "fcc6655e-7074-48de-89ef-ef6e4a5705e3", @@ -2145,7 +2145,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "400cab12-2d1e-4a2c-a33a-d9d7b3262dd1", @@ -2157,7 +2157,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "a068d0c0-06c6-4b58-bc99-6ac910700edb", @@ -2169,7 +2169,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "c2e88763-87a9-4d33-b598-7811ae3f87d2", @@ -2181,19 +2181,19 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "de861add-3f4a-4526-9754-8bcb69d0fd0e", "invariantUUID": "67560771-ffcb-46fb-a40c-0e1dee74f43a", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.mmsc", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { "uuid": "4514b4e5-f163-4011-87fd-445f4366e3c2", @@ -2205,7 +2205,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "3679d10e-a1a2-46a4-97b3-4056a0920e7b", @@ -2217,7 +2217,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "f905ca32-dac5-4337-a1d7-cc2bca86b407", @@ -2229,7 +2229,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "ee10af8a-c8bf-4455-808e-5550050d4ea9", @@ -2241,7 +2241,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "771ca169-bfac-4306-9748-b2ae804852f9", @@ -2253,7 +2253,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { "uuid": "72682bb7-94ca-47a7-9917-826f62e3d00d", @@ -2265,7 +2265,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "1fa641db-1d77-4242-8d0b-c0aa5f88fe2e", @@ -2277,19 +2277,19 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "897dcb54-bb55-4311-8c0e-b663781d7e4f", "invariantUUID": "c223adda-e48d-487d-98e8-654bbb8268af", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.lb", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { "uuid": "a60c5230-8201-4b50-84a8-c905128c2bc2", @@ -2301,19 +2301,19 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "173c32b5-44c8-4404-ba18-32d9de49afae", "invariantUUID": "c247493b-15a4-47af-bb6b-c664cb5a4d37", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.eca_trx", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { "uuid": "59aa2d42-db52-438c-a69c-0b97a193abcd", @@ -2325,19 +2325,19 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "0e6509c9-7d35-4daf-9086-9fe30fdd1275", "invariantUUID": "9516ad03-b122-4738-ad6d-d9c2166cd75a", - "name": "VmmscAic30MultiMembersMultiGroupsVolume.nodes.heat.nems_fe", + "name": "VmmscLab30MultiMembersMultiGroupsVolume.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" + "lastUpdaterUserId": "user" }, { "uuid": "e541a64c-9de7-4c71-b827-eb0f4d319e62", @@ -2349,7 +2349,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "5e448cd9-6dbd-4c31-98f2-caeceaf5efa7", @@ -2361,7 +2361,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "d5c6a462-9d9a-46d4-a0b2-485300f34f0c", @@ -2373,19 +2373,19 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "8678abfe-8cbd-42f2-aa78-ca47a1beaa14", "invariantUUID": "4d02c8a5-e141-4d01-94ec-7a3b94afda97", - "name": "VmmscAic30MultiMembersMultiGroupsVolumeCs.nodes.heat.eca_trx", + "name": "VmmscLab30MultiMembersMultiGroupsVolumeCs.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" + "lastUpdaterUserId": "user" }, { "uuid": "1c469da0-298f-41ea-94a2-aef82264e1e7", @@ -2397,7 +2397,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "c29e22e2-1a09-4164-a9a2-72d0e3f5df5b", @@ -2409,7 +2409,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "986b76dc-aca7-45b1-919c-398b770d5504", @@ -2421,7 +2421,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "606f6c2b-a411-4644-a183-5487e3aed612", @@ -2433,7 +2433,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "00695bbf-fa3f-47e4-96d7-973700a66f4f", @@ -2445,7 +2445,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "d94275b4-ccfa-4096-bd7b-dd45ff6e84f2", @@ -2457,7 +2457,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "8beb2fe4-672e-46c3-8650-e2065ea429ea", @@ -2469,7 +2469,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "c4b4f162-a616-45c6-b229-9833a78a46fd", @@ -2481,7 +2481,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "95e982cd-551d-49b2-9600-04f1328b9ab5", @@ -2493,7 +2493,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "8316c6e3-7791-42cb-80fb-e57ed0809be6", @@ -2505,7 +2505,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { "uuid": "49cc354b-ea2e-48a9-a6b8-d414e6991898", @@ -2517,7 +2517,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { "uuid": "cc0048fb-a464-4407-9907-5e760684bc7b", @@ -2529,7 +2529,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "bc1dea1b-5753-4d17-af6f-ac6050b3e281", @@ -2541,7 +2541,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "0b894e43-6d45-4c3d-95dd-2e80228055f3", @@ -2553,7 +2553,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "2bb1e047-fa3b-41f5-9d29-ebbdbf01857c", @@ -2565,7 +2565,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { "uuid": "05c82d0d-826b-458c-8c81-9572298522a3", @@ -2577,7 +2577,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { "uuid": "c6809100-9349-4f98-a066-55b6f0cb8650", @@ -2589,7 +2589,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { "uuid": "abe50ede-b86c-415f-9f5f-235200433b51", @@ -2601,7 +2601,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ss8214" + "lastUpdaterUserId": "user" }, { "uuid": "3ce1be04-57ad-4deb-bdba-b18447374a88", @@ -2613,7 +2613,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { "uuid": "f6406bba-b64c-4211-aaee-773cde6e7d54", @@ -2625,7 +2625,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "d48751e4-07de-4208-9307-7ecb775fe7ca", @@ -2637,7 +2637,7 @@ "subCategory": "Call Control", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "cdb99a41-e2ee-4b59-9107-13f0b2282ccc", @@ -2649,7 +2649,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { "uuid": "99b9dce6-ed85-4d76-aed9-40c020ba4607", @@ -2661,7 +2661,7 @@ "subCategory": "Call Control", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "acf4e0fa-17f9-4ac8-9fb2-2301cf942fcf", @@ -2673,7 +2673,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "fb6a8f39-84be-49a2-b551-26ce99ee6853", @@ -2685,7 +2685,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "b09ec9ff-af66-4bdc-82d4-01a918e8e3ca", @@ -2697,7 +2697,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "83256b0a-cb38-45de-b5f0-d2d4390f543d", @@ -2709,7 +2709,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { "uuid": "16ba1289-5f91-4f07-914a-d2456d11c673", @@ -2721,7 +2721,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "93fe78c8-1350-4b1f-ac5f-ede411b992a0", @@ -2733,7 +2733,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "1e5eafc0-1888-4247-9762-9ebd1383d0ae", @@ -2745,7 +2745,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { "uuid": "01faf05a-70b9-442f-be62-9884ea4cdf33", @@ -2757,7 +2757,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "4583652c-e066-4a5c-88b8-fbcdd8619d2c", @@ -2769,7 +2769,7 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { "uuid": "16f02038-00f6-4a11-ab98-2a2154e98924", @@ -2781,6 +2781,6 @@ "subCategory": "Abstract", "resourceType": "VFC", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" } ] diff --git a/src/test/resources/example/sdc/sdcVFResources.json b/src/test/resources/example/sdc/sdcVFResources.json index 7bf99bb45..4274ba8fc 100644 --- a/src/test/resources/example/sdc/sdcVFResources.json +++ b/src/test/resources/example/sdc/sdcVFResources.json @@ -9,7 +9,7 @@ "subCategory": "Router", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -22,7 +22,7 @@ "subCategory": "Load Balancer", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ss8214" + "lastUpdaterUserId": "user" }, { @@ -35,7 +35,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sw594b" + "lastUpdaterUserId": "user" }, { @@ -48,7 +48,7 @@ "subCategory": "Database", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "ss8214" + "lastUpdaterUserId": "user" }, { @@ -61,7 +61,7 @@ "subCategory": "Contrail Route", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "el489u" + "lastUpdaterUserId": "user" }, { @@ -74,7 +74,7 @@ "subCategory": "Network Elements", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -87,7 +87,7 @@ "subCategory": "Application Server", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -100,7 +100,7 @@ "subCategory": "LAN Connectors", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -113,7 +113,7 @@ "subCategory": "Allotted Resource", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -126,7 +126,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -139,7 +139,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -152,7 +152,7 @@ "subCategory": "Media Servers", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -165,7 +165,7 @@ "subCategory": "Allotted Resource", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -178,7 +178,7 @@ "subCategory": "WAN Connectors", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -191,7 +191,7 @@ "subCategory": "IP Mux Demux", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ys278k" + "lastUpdaterUserId": "user" }, { @@ -204,7 +204,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -217,7 +217,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -230,7 +230,7 @@ "subCategory": "Allotted Resource", "resourceType": "VF", "lifecycleState": "CERTIFICATION_IN_PROGRESS", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -243,7 +243,7 @@ "subCategory": "IP Mux Demux", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "le056g" + "lastUpdaterUserId": "user" }, { @@ -256,7 +256,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ss8214" + "lastUpdaterUserId": "user" }, { @@ -269,7 +269,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "lr0306" + "lastUpdaterUserId": "user" }, { @@ -282,7 +282,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -295,7 +295,7 @@ "subCategory": "Router", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -308,7 +308,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -321,7 +321,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -334,7 +334,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -347,7 +347,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -360,7 +360,7 @@ "subCategory": "Infrastructure", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -373,7 +373,7 @@ "subCategory": "Abstract", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "sj2381" + "lastUpdaterUserId": "user" }, { @@ -386,7 +386,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -399,7 +399,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -412,7 +412,7 @@ "subCategory": "Allotted Resource", "resourceType": "VF", "lifecycleState": "CERTIFICATION_IN_PROGRESS", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -425,7 +425,7 @@ "subCategory": "Tunnel XConnect", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { @@ -438,7 +438,7 @@ "subCategory": "Virtual Links", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -451,7 +451,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -464,7 +464,7 @@ "subCategory": "Infrastructure", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sw594b" + "lastUpdaterUserId": "user" }, { @@ -477,7 +477,7 @@ "subCategory": "Database", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -490,7 +490,7 @@ "subCategory": "Media Servers", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -503,7 +503,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -516,7 +516,7 @@ "subCategory": "IP Mux Demux", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "yy815m" + "lastUpdaterUserId": "user" }, { @@ -529,7 +529,7 @@ "subCategory": "Router", "resourceType": "VF", "lifecycleState": "CERTIFICATION_IN_PROGRESS", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -542,7 +542,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "READY_FOR_CERTIFICATION", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -555,7 +555,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -568,7 +568,7 @@ "subCategory": "Security Zone", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "nk909r" + "lastUpdaterUserId": "user" }, { @@ -581,7 +581,7 @@ "subCategory": "Load Balancer", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -594,7 +594,7 @@ "subCategory": "Utility", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -607,7 +607,7 @@ "subCategory": "Utility", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -620,7 +620,7 @@ "subCategory": "Application Server", "resourceType": "VF", "lifecycleState": "READY_FOR_CERTIFICATION", - "lastUpdaterUserId": "rx827p" + "lastUpdaterUserId": "user" }, { @@ -633,7 +633,7 @@ "subCategory": "Tunnel XConnect", "resourceType": "VF", "lifecycleState": "READY_FOR_CERTIFICATION", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { @@ -646,7 +646,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -659,7 +659,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "mh677g" + "lastUpdaterUserId": "user" }, { @@ -672,7 +672,7 @@ "subCategory": "Web Server", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -685,7 +685,7 @@ "subCategory": "Gateway", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -698,7 +698,7 @@ "subCategory": "Application Server", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -711,7 +711,7 @@ "subCategory": "Source", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -724,7 +724,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "nk909r" + "lastUpdaterUserId": "user" }, { @@ -737,7 +737,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ym903w" + "lastUpdaterUserId": "user" }, { @@ -750,7 +750,7 @@ "subCategory": "Database", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -763,7 +763,7 @@ "subCategory": "Media Servers", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "yy815m" + "lastUpdaterUserId": "user" }, { @@ -776,7 +776,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -789,7 +789,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -802,7 +802,7 @@ "subCategory": "Service Admin", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ol664w" + "lastUpdaterUserId": "user" }, { @@ -815,7 +815,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -828,7 +828,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -841,7 +841,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -854,7 +854,7 @@ "subCategory": "Media Servers", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -867,7 +867,7 @@ "subCategory": "Application Server", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m08740" + "lastUpdaterUserId": "user" }, { @@ -880,7 +880,7 @@ "subCategory": "Allotted Resource", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ol664w" + "lastUpdaterUserId": "user" }, { @@ -893,7 +893,7 @@ "subCategory": "Infrastructure", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -906,7 +906,7 @@ "subCategory": "Allotted Resource", "resourceType": "VF", "lifecycleState": "CERTIFICATION_IN_PROGRESS", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -919,7 +919,7 @@ "subCategory": "Tunnel XConnect", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -932,7 +932,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "pa0916" + "lastUpdaterUserId": "user" }, { @@ -945,7 +945,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "az2497" + "lastUpdaterUserId": "user" }, { @@ -958,7 +958,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "nk909r" + "lastUpdaterUserId": "user" }, { @@ -971,7 +971,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "READY_FOR_CERTIFICATION", - "lastUpdaterUserId": "nk909r" + "lastUpdaterUserId": "user" }, { @@ -984,7 +984,7 @@ "subCategory": "Border Element", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -997,7 +997,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "nk909r" + "lastUpdaterUserId": "user" }, { @@ -1010,7 +1010,7 @@ "subCategory": "Database", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { @@ -1023,7 +1023,7 @@ "subCategory": "Load Balancer", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { @@ -1036,7 +1036,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "lm906x" + "lastUpdaterUserId": "user" }, { @@ -1049,7 +1049,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -1062,7 +1062,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1075,7 +1075,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -1088,7 +1088,7 @@ "subCategory": "Database", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1101,7 +1101,7 @@ "subCategory": "Border Element", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { @@ -1114,7 +1114,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -1127,7 +1127,7 @@ "subCategory": "Web Server", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { @@ -1140,7 +1140,7 @@ "subCategory": "Web Server", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1153,7 +1153,7 @@ "subCategory": "Media Servers", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1166,7 +1166,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "nk909r" + "lastUpdaterUserId": "user" }, { @@ -1179,7 +1179,7 @@ "subCategory": "Border Element", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1192,7 +1192,7 @@ "subCategory": "Contrail Route", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1205,7 +1205,7 @@ "subCategory": "Common Network Resources", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1218,7 +1218,7 @@ "subCategory": "Security Zone", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1231,7 +1231,7 @@ "subCategory": "IP Mux Demux", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { @@ -1244,7 +1244,7 @@ "subCategory": "WAN Connectors", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m99124" + "lastUpdaterUserId": "user" }, { @@ -1257,7 +1257,7 @@ "subCategory": "Gateway", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1270,7 +1270,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -1283,7 +1283,7 @@ "subCategory": "Load Balancer", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1296,7 +1296,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ed852m" + "lastUpdaterUserId": "user" }, { @@ -1309,7 +1309,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sw594b" + "lastUpdaterUserId": "user" }, { @@ -1322,7 +1322,7 @@ "subCategory": "Database", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1335,7 +1335,7 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -1348,7 +1348,7 @@ "subCategory": "Gateway", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1361,7 +1361,7 @@ "subCategory": "Source", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "ml4535" + "lastUpdaterUserId": "user" }, { @@ -1374,7 +1374,7 @@ "subCategory": "Load Balancer", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1387,7 +1387,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "lm906x" + "lastUpdaterUserId": "user" }, { @@ -1400,7 +1400,7 @@ "subCategory": "Common Network Resources", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1413,7 +1413,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "nk909r" + "lastUpdaterUserId": "user" }, { @@ -1426,7 +1426,7 @@ "subCategory": "Call Control", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "m99121" + "lastUpdaterUserId": "user" }, { @@ -1439,7 +1439,7 @@ "subCategory": "Service Admin", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "rb844h" + "lastUpdaterUserId": "user" }, { @@ -1452,7 +1452,7 @@ "subCategory": "Collector", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "af3193" + "lastUpdaterUserId": "user" }, { @@ -1465,7 +1465,7 @@ "subCategory": "Database", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -1478,7 +1478,7 @@ "subCategory": "Router", "resourceType": "VF", "lifecycleState": "CERTIFIED", - "lastUpdaterUserId": "m08743" + "lastUpdaterUserId": "user" }, { @@ -1491,7 +1491,7 @@ "subCategory": "Router", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1504,7 +1504,7 @@ "subCategory": "Load Balancer", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "ss8214" + "lastUpdaterUserId": "user" }, { @@ -1517,7 +1517,7 @@ "subCategory": "Firewall", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "lastUpdaterUserId": "sa997j" + "lastUpdaterUserId": "user" }, { @@ -1530,7 +1530,7 @@ "subCategory": "Infrastructure", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "rh176a" + "lastUpdaterUserId": "user" }, { @@ -1543,6 +1543,6 @@ "subCategory": "Microservice", "resourceType": "VF", "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "lastUpdaterUserId": "ss7286" + "lastUpdaterUserId": "user" } ] \ No newline at end of file diff --git a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml index a35557cca..07f679375 100644 --- a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml +++ b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml @@ -24,12 +24,12 @@ node_templates: app_preferences: {publisherContentType: application/json, publisherHostName: mrlocal-mtnjftle01.onap.org, publisherHostPort: '3905', publisherMaxBatchSize: '10', publisherMaxRecoveryQueueSize: '100000', publisherPollingInterval: '20000', publisherProtocol: https, publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub, - publisherUserName: m00502@tca.af.dcae.onap.org, publisherUserPassword: Te5021abc, + publisherUserName: test@tca.af.dcae.onap.org, publisherUserPassword: password, subscriberConsumerGroup: OpenDCAE-c12, subscriberConsumerId: c12, subscriberContentType: application/json, subscriberHostName: mrlocal-mtnjftle01.onap.org, subscriberHostPort: '3905', subscriberMessageLimit: '-1', subscriberPollingInterval: '20000', subscriberProtocol: https, subscriberTimeoutMS: '-1', subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub, - subscriberUserName: m00502@tca.af.dcae.onap.org, subscriberUserPassword: Te5021abc, + subscriberUserName: test@tca.af.dcae.onap.org, subscriberUserPassword: password, tca_policy: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":123,"direction":"LESS_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ABATED"},{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":123,"direction":"GREATER_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"}]}]}'} artifact_name: dcae-analytics-tca artifact_version: 1.0.0 diff --git a/src/test/resources/example/tca-policy-req/blueprint-input.yaml b/src/test/resources/example/tca-policy-req/blueprint-input.yaml index 101dc2c0d..497a7972c 100644 --- a/src/test/resources/example/tca-policy-req/blueprint-input.yaml +++ b/src/test/resources/example/tca-policy-req/blueprint-input.yaml @@ -40,8 +40,8 @@ node_templates: publisherPollingInterval: '20000' publisherProtocol: https publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub - publisherUserName: m00502@tca.af.dcae.onap.org - publisherUserPassword: Te5021abc + publisherUserName: test@tca.af.dcae.onap.org + publisherUserPassword: password subscriberConsumerGroup: OpenDCAE-c12 subscriberConsumerId: c12 subscriberContentType: application/json @@ -52,8 +52,8 @@ node_templates: subscriberProtocol: https subscriberTimeoutMS: '-1' subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub - subscriberUserName: m00502@tca.af.dcae.onap.org - subscriberUserPassword: Te5021abc + subscriberUserName: test@tca.af.dcae.onap.org + subscriberUserPassword: password tca_policy: null artifact_name: dcae-analytics-tca artifact_version: 1.0.0 @@ -79,4 +79,4 @@ node_templates: streamname: TCASubscriberOutputStream relationships: - target: cdap_host_host - type: dcae.relationships.component_contained_in \ No newline at end of file + type: dcae.relationships.component_contained_in diff --git a/src/test/resources/example/tca-policy-req/prop-text.json b/src/test/resources/example/tca-policy-req/prop-text.json index 42dd851e3..49673d25e 100644 --- a/src/test/resources/example/tca-policy-req/prop-text.json +++ b/src/test/resources/example/tca-policy-req/prop-text.json @@ -1 +1 @@ -{"global":[{"name":"service","value":["tosca_definitions_version: cloudify_dsl_1_3\r\nimports:\r\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\r\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\r\ninputs:\r\n location_id:\r\n type: string\r\n service_id:\r\n type: string\r\nnode_templates:\r\n cdap_host_host:\r\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\r\n properties:\r\n location_id:\r\n get_input: location_id\r\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\r\n interfaces:\r\n cloudify.interfaces.lifecycle: {\r\n }\r\n tca_tca:\r\n type: dcae.nodes.MicroService.cdap\r\n properties:\r\n app_config:\r\n appDescription: DCAE Analytics Threshold Crossing Alert Application\r\n appName: dcae-tca\r\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\r\n tcaVESAlertsTableName: TCAVESAlertsTable\r\n tcaVESAlertsTableTTLSeconds: '1728000'\r\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\r\n tcaVESMessageStatusTableTTLSeconds: '86400'\r\n thresholdCalculatorFlowletInstances: '2'\r\n app_preferences:\r\n publisherContentType: application/json\r\n publisherHostName: mrlocal-mtnjftle01.onap.org\r\n publisherHostPort: '3905'\r\n publisherMaxBatchSize: '10'\r\n publisherMaxRecoveryQueueSize: '100000'\r\n publisherPollingInterval: '20000'\r\n publisherProtocol: https\r\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\r\n publisherUserName: m00502@tca.af.dcae.onap.org\r\n publisherUserPassword: Te5021abc\r\n subscriberConsumerGroup: OpenDCAE-c12\r\n subscriberConsumerId: c12\r\n subscriberContentType: application/json\r\n subscriberHostName: mrlocal-mtnjftle01.onap.org\r\n subscriberHostPort: '3905'\r\n subscriberMessageLimit: '-1'\r\n subscriberPollingInterval: '20000'\r\n subscriberProtocol: https\r\n subscriberTimeoutMS: '-1'\r\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\r\n subscriberUserName: m00502@tca.af.dcae.onap.org\r\n subscriberUserPassword: Te5021abc\r\n tca_policy: '{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"}]}]}'\r\n artifact_name: dcae-analytics-tca\r\n artifact_version: 1.0.0\r\n connections:\r\n streams_publishes: [\r\n ]\r\n streams_subscribes: [\r\n ]\r\n jar_url: http://somejar\r\n location_id:\r\n get_input: location_id\r\n namespace: cdap_tca_hi_lo\r\n programs:\r\n - program_id: TCAVESCollectorFlow\r\n program_type: flows\r\n - program_id: TCADMaaPMRSubscriberWorker\r\n program_type: workers\r\n - program_id: TCADMaaPMRPublisherWorker\r\n program_type: workers\r\n service_component_type: cdap_app_tca\r\n service_id:\r\n get_input: service_id\r\n streamname: TCASubscriberOutputStream\r\n relationships:\r\n - target: cdap_host_host\r\n type: dcae.relationships.component_contained_in"]}]} \ No newline at end of file +{"global":[{"name":"service","value":["tosca_definitions_version: cloudify_dsl_1_3\r\nimports:\r\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\r\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\r\ninputs:\r\n location_id:\r\n type: string\r\n service_id:\r\n type: string\r\nnode_templates:\r\n cdap_host_host:\r\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\r\n properties:\r\n location_id:\r\n get_input: location_id\r\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\r\n interfaces:\r\n cloudify.interfaces.lifecycle: {\r\n }\r\n tca_tca:\r\n type: dcae.nodes.MicroService.cdap\r\n properties:\r\n app_config:\r\n appDescription: DCAE Analytics Threshold Crossing Alert Application\r\n appName: dcae-tca\r\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\r\n tcaVESAlertsTableName: TCAVESAlertsTable\r\n tcaVESAlertsTableTTLSeconds: '1728000'\r\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\r\n tcaVESMessageStatusTableTTLSeconds: '86400'\r\n thresholdCalculatorFlowletInstances: '2'\r\n app_preferences:\r\n publisherContentType: application/json\r\n publisherHostName: mrlocal-mtnjftle01.onap.org\r\n publisherHostPort: '3905'\r\n publisherMaxBatchSize: '10'\r\n publisherMaxRecoveryQueueSize: '100000'\r\n publisherPollingInterval: '20000'\r\n publisherProtocol: https\r\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\r\n publisherUserName: test@tca.af.dcae.onap.org\r\n publisherUserPassword: password\r\n subscriberConsumerGroup: OpenDCAE-c12\r\n subscriberConsumerId: c12\r\n subscriberContentType: application/json\r\n subscriberHostName: mrlocal-mtnjftle01.onap.org\r\n subscriberHostPort: '3905'\r\n subscriberMessageLimit: '-1'\r\n subscriberPollingInterval: '20000'\r\n subscriberProtocol: https\r\n subscriberTimeoutMS: '-1'\r\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\r\n subscriberUserName: test@tca.af.dcae.onap.org\r\n subscriberUserPassword: password\r\n tca_policy: '{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"}]}]}'\r\n artifact_name: dcae-analytics-tca\r\n artifact_version: 1.0.0\r\n connections:\r\n streams_publishes: [\r\n ]\r\n streams_subscribes: [\r\n ]\r\n jar_url: http://somejar\r\n location_id:\r\n get_input: location_id\r\n namespace: cdap_tca_hi_lo\r\n programs:\r\n - program_id: TCAVESCollectorFlow\r\n program_type: flows\r\n - program_id: TCADMaaPMRSubscriberWorker\r\n program_type: workers\r\n - program_id: TCADMaaPMRPublisherWorker\r\n program_type: workers\r\n service_component_type: cdap_app_tca\r\n service_id:\r\n get_input: service_id\r\n streamname: TCASubscriberOutputStream\r\n relationships:\r\n - target: cdap_host_host\r\n type: dcae.relationships.component_contained_in"]}]} \ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file index a99aa44d2..542fc479c 100644 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file +++ b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file @@ -1 +1 @@ -[{"uuid":"a72ab48d-2d20-4c28-936a-94f45160d126","invariantUUID":"528a9e7e-1db8-44cd-a59a-f7f2833aaeb3","name":"SoftwareComponent","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a72ab48d-2d20-4c28-936a-94f45160d126/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"2fa6c8ab-297f-4ec6-869f-893db6c84ac4","invariantUUID":"281696ab-4415-4dbb-8f4b-42ff25314466","name":"Root","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2fa6c8ab-297f-4ec6-869f-893db6c84ac4/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"ba598da2-fd47-4701-b906-c03309ce52d7","invariantUUID":"cfdfb7b0-44fe-4b03-8efd-83533b4a3e94","name":"Compute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/ba598da2-fd47-4701-b906-c03309ce52d7/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"c505b470-d39e-44f2-bb3a-26bc1b10bc84","invariantUUID":"7afee9e5-f666-4109-875c-89663f4c2676","name":"WebApplication","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c505b470-d39e-44f2-bb3a-26bc1b10bc84/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"32c7f0ad-70b1-445f-9ec4-a54fdc054081","invariantUUID":"f0c9ed72-f92d-471b-8014-b810cb9d6c53","name":"Database","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/32c7f0ad-70b1-445f-9ec4-a54fdc054081/toscaModel","category":"Generic","subCategory":"Database","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"3187eb9b-dbba-492d-9137-e12db15226e7","invariantUUID":"ec55e51b-eb97-41ce-b2bf-bd7240d773a1","name":"WebServer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/3187eb9b-dbba-492d-9137-e12db15226e7/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"59dc3d57-6609-4acd-b280-1297504b3fa3","invariantUUID":"3d5f7968-8432-47a7-9532-5833050636c9","name":"ObjectStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/59dc3d57-6609-4acd-b280-1297504b3fa3/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"6000538b-f0f0-467b-bb8c-d6514d84529f","invariantUUID":"8c5a23e8-388d-4af8-8a5e-469081b2b8cd","name":"Runtime","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6000538b-f0f0-467b-bb8c-d6514d84529f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"92cb6435-1f95-42e1-b7a4-3418fa58f99c","invariantUUID":"fc537796-7a6a-4878-ad2c-ebae0b1031eb","name":"BlockStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/92cb6435-1f95-42e1-b7a4-3418fa58f99c/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"7e41c605-b93c-4679-bc8e-83ac839e92c8","invariantUUID":"e09d62d9-c704-41be-a091-d0bf8d5c2c6b","name":"Application","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/7e41c605-b93c-4679-bc8e-83ac839e92c8/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"0dc498fd-2c4f-4e83-afbd-4404c7644234","invariantUUID":"55642129-7e02-49f3-827b-ef309ca80ff4","name":"GlobalCompute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/0dc498fd-2c4f-4e83-afbd-4404c7644234/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"8d77ceb7-14a4-44f1-9a53-d92313ed56d0","invariantUUID":"f43bb2b2-db21-4739-8a64-f7743d54db15","name":"CinderVolume","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/8d77ceb7-14a4-44f1-9a53-d92313ed56d0/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"5a14f316-0f4e-4638-a0ad-71776a5014d2","invariantUUID":"40f6daa6-e352-4047-a115-9c4931ce0334","name":"volume","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/5a14f316-0f4e-4638-a0ad-71776a5014d2/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"2220d928-d281-4ba1-b44a-21b72c8c9872","invariantUUID":"7c398180-ea60-494b-b345-678391fbe8c2","name":"NovaServer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2220d928-d281-4ba1-b44a-21b72c8c9872/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"c9ed9d61-f3a5-4210-9af7-70a4f93b836a","invariantUUID":"ca7f356c-9f1c-4672-ade1-27a7f190064c","name":"AbstractSubstitute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c9ed9d61-f3a5-4210-9af7-70a4f93b836a/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"50ada44a-dd89-4e8d-850b-113019d2175b","invariantUUID":"6bb86fb2-e7f2-4ba6-aca8-80ccea04bc0a","name":"ContrailNetworkRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/50ada44a-dd89-4e8d-850b-113019d2175b/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"bb37dd40-0e70-405f-81ca-c6ca22d3384f","invariantUUID":"3622a332-ce1c-406c-8212-966822eba394","name":"SecurityRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/bb37dd40-0e70-405f-81ca-c6ca22d3384f/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"b876d972-31bf-427c-a557-0cc0befcfbec","invariantUUID":"12d9d4a3-f695-4055-b22b-edc60e738795","name":"ContrailAbstractSubstitute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/b876d972-31bf-427c-a557-0cc0befcfbec/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"6baeb8d4-1d26-4530-a017-60d48dd38ace","invariantUUID":"015e424d-3482-4cd4-a047-1a4ca66588cc","name":"vnfConfiguration","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6baeb8d4-1d26-4530-a017-60d48dd38ace/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"9f1402d1-b8cc-4b70-a45c-54d636e50086","invariantUUID":"a47fd09d-a910-4829-bb35-38741cefd2b9","name":"DBMS","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/9f1402d1-b8cc-4b70-a45c-54d636e50086/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"467ee1a0-34dd-46da-a198-a4ebe94c31b1","invariantUUID":"35b1df1f-4f9d-4bc6-9dbb-368e26c64243","name":"ContrailV2VirtualMachineInterface","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/467ee1a0-34dd-46da-a198-a4ebe94c31b1/toscaModel","category":"Generic","subCategory":"Network Elements","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"0d26b446-bd26-44ed-95a8-7ec302dd91aa","invariantUUID":"03c4eac9-4af8-4751-94fc-ce6095930c83","name":"ContrailCompute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/0d26b446-bd26-44ed-95a8-7ec302dd91aa/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"83ccfaa3-a5e5-4567-88c4-aa5cb3a7b22e","invariantUUID":"1a67dbe6-ceca-4621-891e-3bb14f42943a","name":"multiFlavorVFC","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/83ccfaa3-a5e5-4567-88c4-aa5cb3a7b22e/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"14ddb890-fe68-4fee-a296-711d5a4b6e59","invariantUUID":"14184c8a-0c13-4873-a5c1-2586032db98c","name":"Ext Image File","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/14ddb890-fe68-4fee-a296-711d5a4b6e59/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"720552c5-e05d-4933-9882-8d7359af6e82","invariantUUID":"f43a5ef6-ddbf-4520-a6cb-9ca8b6b39ad6","name":"Ext Local Storage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/720552c5-e05d-4933-9882-8d7359af6e82/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"6ba191b3-2315-44ec-85ac-d5351e7d4b81","invariantUUID":"0e0269f9-6e04-4234-bfd1-bfae52af7f83","name":"Ext Zte VDU","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6ba191b3-2315-44ec-85ac-d5351e7d4b81/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"307cd1f4-bbc4-4675-b491-8e318231dc76","invariantUUID":"1fa025a5-c877-4221-9fbf-1b117fb66631","name":"LoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/307cd1f4-bbc4-4675-b491-8e318231dc76/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"949e82db-98ee-47d0-a5d2-21cb06c4a091","invariantUUID":"348d3957-11fd-4194-8835-1b112664b78b","name":"NSD","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/949e82db-98ee-47d0-a5d2-21cb06c4a091/toscaModel","category":"Generic","subCategory":"Network Elements","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"f54c8dde-2dc9-4f06-8bd6-1679d0b12b0c","invariantUUID":"4644b678-6680-432a-9d54-b209cc8264fe","name":"VDU","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/f54c8dde-2dc9-4f06-8bd6-1679d0b12b0c/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"cca286e8-5ac0-451c-b874-8cc307181e10","invariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","name":"Vloadbalancer.nodes.heat.vdns","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"876f7eff-46e3-4981-8717-597c01310714","invariantUUID":"7c3316b0-2090-4a2f-a21b-63e3c9dd3bf8","name":"AllottedResource","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/876f7eff-46e3-4981-8717-597c01310714/toscaModel","category":"Allotted Resource","subCategory":"Allotted Resource","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"c25db6d1-2653-45d9-8062-440f962c83ba","invariantUUID":"86aeffce-6d21-4bc0-84c5-e4fd3f7acdaa","name":"VDU VirtualStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c25db6d1-2653-45d9-8062-440f962c83ba/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"68bb176c-8d5f-4d27-8407-fd8d9e5910eb","invariantUUID":"1a12347c-6166-4d21-9861-b2c432722a23","name":"Vfirewall.nodes.heat.vfw","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d","invariantUUID":"3ff44c1d-0384-4501-8e33-dd3000799378","name":"Vloadbalancer.nodes.heat.vlb","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"8fb4db8b-1d1f-4369-8611-0375d86f0051","invariantUUID":"05e3e25f-b671-433f-8ea6-835c198c15ae","name":"Vloadbalancer.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"c8a01686-2762-483c-98ad-a66606b9947f","invariantUUID":"86769df9-139b-489f-949d-05efb7f0ed6a","name":"Vpacketgen.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"5a136c51-055f-46b7-90e3-3d99d1da3d10","invariantUUID":"a6c4eda9-c71b-4435-ad73-51f82946df1b","name":"ContrailV2NetworkRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/5a136c51-055f-46b7-90e3-3d99d1da3d10/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"163dded5-44a3-42e3-b373-c594412eeac6","invariantUUID":"1550f69b-12cb-44ad-81b3-de6ec606a566","name":"VDU Compute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/163dded5-44a3-42e3-b373-c594412eeac6/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jh0003"},{"uuid":"b339e576-e433-4be4-8a43-258f629c4e79","invariantUUID":"d66c0bce-d7e1-41ad-bdaf-468d442d0543","name":"Vfirewall.nodes.heat.vsn","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"}] \ No newline at end of file +[{"uuid":"a72ab48d-2d20-4c28-936a-94f45160d126","invariantUUID":"528a9e7e-1db8-44cd-a59a-f7f2833aaeb3","name":"SoftwareComponent","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a72ab48d-2d20-4c28-936a-94f45160d126/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"2fa6c8ab-297f-4ec6-869f-893db6c84ac4","invariantUUID":"281696ab-4415-4dbb-8f4b-42ff25314466","name":"Root","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2fa6c8ab-297f-4ec6-869f-893db6c84ac4/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"ba598da2-fd47-4701-b906-c03309ce52d7","invariantUUID":"cfdfb7b0-44fe-4b03-8efd-83533b4a3e94","name":"Compute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/ba598da2-fd47-4701-b906-c03309ce52d7/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"c505b470-d39e-44f2-bb3a-26bc1b10bc84","invariantUUID":"7afee9e5-f666-4109-875c-89663f4c2676","name":"WebApplication","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c505b470-d39e-44f2-bb3a-26bc1b10bc84/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"32c7f0ad-70b1-445f-9ec4-a54fdc054081","invariantUUID":"f0c9ed72-f92d-471b-8014-b810cb9d6c53","name":"Database","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/32c7f0ad-70b1-445f-9ec4-a54fdc054081/toscaModel","category":"Generic","subCategory":"Database","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"3187eb9b-dbba-492d-9137-e12db15226e7","invariantUUID":"ec55e51b-eb97-41ce-b2bf-bd7240d773a1","name":"WebServer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/3187eb9b-dbba-492d-9137-e12db15226e7/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"59dc3d57-6609-4acd-b280-1297504b3fa3","invariantUUID":"3d5f7968-8432-47a7-9532-5833050636c9","name":"ObjectStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/59dc3d57-6609-4acd-b280-1297504b3fa3/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"6000538b-f0f0-467b-bb8c-d6514d84529f","invariantUUID":"8c5a23e8-388d-4af8-8a5e-469081b2b8cd","name":"Runtime","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6000538b-f0f0-467b-bb8c-d6514d84529f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"92cb6435-1f95-42e1-b7a4-3418fa58f99c","invariantUUID":"fc537796-7a6a-4878-ad2c-ebae0b1031eb","name":"BlockStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/92cb6435-1f95-42e1-b7a4-3418fa58f99c/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"7e41c605-b93c-4679-bc8e-83ac839e92c8","invariantUUID":"e09d62d9-c704-41be-a091-d0bf8d5c2c6b","name":"Application","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/7e41c605-b93c-4679-bc8e-83ac839e92c8/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"0dc498fd-2c4f-4e83-afbd-4404c7644234","invariantUUID":"55642129-7e02-49f3-827b-ef309ca80ff4","name":"GlobalCompute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/0dc498fd-2c4f-4e83-afbd-4404c7644234/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"8d77ceb7-14a4-44f1-9a53-d92313ed56d0","invariantUUID":"f43bb2b2-db21-4739-8a64-f7743d54db15","name":"CinderVolume","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/8d77ceb7-14a4-44f1-9a53-d92313ed56d0/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"5a14f316-0f4e-4638-a0ad-71776a5014d2","invariantUUID":"40f6daa6-e352-4047-a115-9c4931ce0334","name":"volume","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/5a14f316-0f4e-4638-a0ad-71776a5014d2/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"2220d928-d281-4ba1-b44a-21b72c8c9872","invariantUUID":"7c398180-ea60-494b-b345-678391fbe8c2","name":"NovaServer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2220d928-d281-4ba1-b44a-21b72c8c9872/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"c9ed9d61-f3a5-4210-9af7-70a4f93b836a","invariantUUID":"ca7f356c-9f1c-4672-ade1-27a7f190064c","name":"AbstractSubstitute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c9ed9d61-f3a5-4210-9af7-70a4f93b836a/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"50ada44a-dd89-4e8d-850b-113019d2175b","invariantUUID":"6bb86fb2-e7f2-4ba6-aca8-80ccea04bc0a","name":"ContrailNetworkRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/50ada44a-dd89-4e8d-850b-113019d2175b/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"bb37dd40-0e70-405f-81ca-c6ca22d3384f","invariantUUID":"3622a332-ce1c-406c-8212-966822eba394","name":"SecurityRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/bb37dd40-0e70-405f-81ca-c6ca22d3384f/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"b876d972-31bf-427c-a557-0cc0befcfbec","invariantUUID":"12d9d4a3-f695-4055-b22b-edc60e738795","name":"ContrailAbstractSubstitute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/b876d972-31bf-427c-a557-0cc0befcfbec/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"6baeb8d4-1d26-4530-a017-60d48dd38ace","invariantUUID":"015e424d-3482-4cd4-a047-1a4ca66588cc","name":"vnfConfiguration","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6baeb8d4-1d26-4530-a017-60d48dd38ace/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"9f1402d1-b8cc-4b70-a45c-54d636e50086","invariantUUID":"a47fd09d-a910-4829-bb35-38741cefd2b9","name":"DBMS","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/9f1402d1-b8cc-4b70-a45c-54d636e50086/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"467ee1a0-34dd-46da-a198-a4ebe94c31b1","invariantUUID":"35b1df1f-4f9d-4bc6-9dbb-368e26c64243","name":"ContrailV2VirtualMachineInterface","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/467ee1a0-34dd-46da-a198-a4ebe94c31b1/toscaModel","category":"Generic","subCategory":"Network Elements","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"0d26b446-bd26-44ed-95a8-7ec302dd91aa","invariantUUID":"03c4eac9-4af8-4751-94fc-ce6095930c83","name":"ContrailCompute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/0d26b446-bd26-44ed-95a8-7ec302dd91aa/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"83ccfaa3-a5e5-4567-88c4-aa5cb3a7b22e","invariantUUID":"1a67dbe6-ceca-4621-891e-3bb14f42943a","name":"multiFlavorVFC","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/83ccfaa3-a5e5-4567-88c4-aa5cb3a7b22e/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"14ddb890-fe68-4fee-a296-711d5a4b6e59","invariantUUID":"14184c8a-0c13-4873-a5c1-2586032db98c","name":"Ext Image File","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/14ddb890-fe68-4fee-a296-711d5a4b6e59/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"720552c5-e05d-4933-9882-8d7359af6e82","invariantUUID":"f43a5ef6-ddbf-4520-a6cb-9ca8b6b39ad6","name":"Ext Local Storage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/720552c5-e05d-4933-9882-8d7359af6e82/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"6ba191b3-2315-44ec-85ac-d5351e7d4b81","invariantUUID":"0e0269f9-6e04-4234-bfd1-bfae52af7f83","name":"Ext Zte VDU","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6ba191b3-2315-44ec-85ac-d5351e7d4b81/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"307cd1f4-bbc4-4675-b491-8e318231dc76","invariantUUID":"1fa025a5-c877-4221-9fbf-1b117fb66631","name":"LoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/307cd1f4-bbc4-4675-b491-8e318231dc76/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"949e82db-98ee-47d0-a5d2-21cb06c4a091","invariantUUID":"348d3957-11fd-4194-8835-1b112664b78b","name":"NSD","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/949e82db-98ee-47d0-a5d2-21cb06c4a091/toscaModel","category":"Generic","subCategory":"Network Elements","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"f54c8dde-2dc9-4f06-8bd6-1679d0b12b0c","invariantUUID":"4644b678-6680-432a-9d54-b209cc8264fe","name":"VDU","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/f54c8dde-2dc9-4f06-8bd6-1679d0b12b0c/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"cca286e8-5ac0-451c-b874-8cc307181e10","invariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","name":"Vloadbalancer.nodes.heat.vdns","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"876f7eff-46e3-4981-8717-597c01310714","invariantUUID":"7c3316b0-2090-4a2f-a21b-63e3c9dd3bf8","name":"AllottedResource","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/876f7eff-46e3-4981-8717-597c01310714/toscaModel","category":"Allotted Resource","subCategory":"Allotted Resource","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"c25db6d1-2653-45d9-8062-440f962c83ba","invariantUUID":"86aeffce-6d21-4bc0-84c5-e4fd3f7acdaa","name":"VDU VirtualStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c25db6d1-2653-45d9-8062-440f962c83ba/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"68bb176c-8d5f-4d27-8407-fd8d9e5910eb","invariantUUID":"1a12347c-6166-4d21-9861-b2c432722a23","name":"Vfirewall.nodes.heat.vfw","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d","invariantUUID":"3ff44c1d-0384-4501-8e33-dd3000799378","name":"Vloadbalancer.nodes.heat.vlb","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"8fb4db8b-1d1f-4369-8611-0375d86f0051","invariantUUID":"05e3e25f-b671-433f-8ea6-835c198c15ae","name":"Vloadbalancer.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"c8a01686-2762-483c-98ad-a66606b9947f","invariantUUID":"86769df9-139b-489f-949d-05efb7f0ed6a","name":"Vpacketgen.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"5a136c51-055f-46b7-90e3-3d99d1da3d10","invariantUUID":"a6c4eda9-c71b-4435-ad73-51f82946df1b","name":"ContrailV2NetworkRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/5a136c51-055f-46b7-90e3-3d99d1da3d10/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"163dded5-44a3-42e3-b373-c594412eeac6","invariantUUID":"1550f69b-12cb-44ad-81b3-de6ec606a566","name":"VDU Compute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/163dded5-44a3-42e3-b373-c594412eeac6/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"b339e576-e433-4be4-8a43-258f629c4e79","invariantUUID":"d66c0bce-d7e1-41ad-bdaf-468d442d0543","name":"Vfirewall.nodes.heat.vsn","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"}] \ No newline at end of file diff --git a/src/test/resources/sql/four_templates_only.sql b/src/test/resources/sql/four_templates_only.sql index 2a333ceeb..862e3601d 100755 --- a/src/test/resources/sql/four_templates_only.sql +++ b/src/test/resources/sql/four_templates_only.sql @@ -47,7 +47,7 @@ UNLOCK TABLES; LOCK TABLES `template_doc` WRITE; /*!40000 ALTER TABLE `template_doc` DISABLE KEYS */; -INSERT INTO `template_doc` VALUES ('04ebec9b-17eb-11e8-b63b-0242ac130002','04e43cfa-17eb-11e8-b63b-0242ac130002','{}',NULL,'2018-02-22 16:11:20'),('27b1a0c9-17eb-11e8-b63b-0242ac130002','27aa4250-17eb-11e8-b63b-0242ac130002','{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_3\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\\r\\n- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\\r\\n- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\\r\\n- http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\\r\\ninputs:\\r\\n location_id:\\r\\n type: string\\r\\n service_id:\\r\\n type: string\\r\\nnode_templates:\\r\\n cdap_host_host:\\r\\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\\r\\n properties:\\r\\n location_id:\\r\\n get_input: location_id\\r\\n scn_override: cdap_broker.solutioning-central.dcae.att.com\\r\\n interfaces:\\r\\n cloudify.interfaces.lifecycle: {}\\r\\n tca_tca:\\r\\n type: dcae.nodes.MicroService.cdap\\r\\n properties:\\r\\n app_config:\\r\\n appDescription: DCAE Analytics Threshold Crossing Alert Application\\r\\n appName: dcae-tca\\r\\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\\r\\n tcaVESAlertsTableName: TCAVESAlertsTable\\r\\n tcaVESAlertsTableTTLSeconds: \'1728000\'\\r\\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\\r\\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\\r\\n thresholdCalculatorFlowletInstances: \'2\'\\r\\n app_preferences:\\r\\n publisherContentType: application/json\\r\\n publisherHostName: mrlocal-mtnjftle01.homer.att.com\\r\\n publisherHostPort: \'3905\'\\r\\n publisherMaxBatchSize: \'10\'\\r\\n publisherMaxRecoveryQueueSize: \'100000\'\\r\\n publisherPollingInterval: \'20000\'\\r\\n publisherProtocol: https\\r\\n publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub\\r\\n publisherUserName: m00502@tca.af.dcae.att.com\\r\\n publisherUserPassword: Te5021abc\\r\\n subscriberConsumerGroup: OpenDCAE-c12\\r\\n subscriberConsumerId: c12\\r\\n subscriberContentType: application/json\\r\\n subscriberHostName: mrlocal-mtnjftle01.homer.att.com\\r\\n subscriberHostPort: \'3905\'\\r\\n subscriberMessageLimit: \'-1\'\\r\\n subscriberPollingInterval: \'20000\'\\r\\n subscriberProtocol: https\\r\\n subscriberTimeoutMS: \'-1\'\\r\\n subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub\\r\\n subscriberUserName: m00502@tca.af.dcae.att.com\\r\\n subscriberUserPassword: Te5021abc\\r\\n tca_policy: \\r\\n artifact_name: dcae-analytics-tca\\r\\n artifact_version: 1.0.0\\r\\n connections:\\r\\n streams_publishes: []\\r\\n streams_subscribes: []\\r\\n jar_url: http://somejar\\r\\n location_id:\\r\\n get_input: location_id\\r\\n namespace: cdap_tca_hi_lo\\r\\n programs:\\r\\n - program_id: TCAVESCollectorFlow\\r\\n program_type: flows\\r\\n - program_id: TCADMaaPMRSubscriberWorker\\r\\n program_type: workers\\r\\n - program_id: TCADMaaPMRPublisherWorker\\r\\n program_type: workers\\r\\n service_component_type: cdap_app_tca\\r\\n service_id:\\r\\n get_input: service_id\\r\\n streamname: TCASubscriberOutputStream\\r\\n relationships:\\r\\n - target: cdap_host_host\\r\\n type: dcae.relationships.component_contained_in\\r\\n\"]}]}',NULL,'2018-02-22 16:12:18'),('3c0d7849-17eb-11e8-b63b-0242ac130002','3c02f310-17eb-11e8-b63b-0242ac130002','{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_3\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\\r\\n- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\\r\\n- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\\r\\n- http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\\r\\ninputs:\\r\\n location_id:\\r\\n type: string\\r\\n service_id:\\r\\n type: string\\r\\nnode_templates:\\r\\n cdap_host_host:\\r\\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\\r\\n properties:\\r\\n location_id:\\r\\n get_input: location_id\\r\\n scn_override: cdap_broker.solutioning-central.dcae.att.com\\r\\n interfaces:\\r\\n cloudify.interfaces.lifecycle: {}\\r\\n tca_tca:\\r\\n type: dcae.nodes.MicroService.cdap\\r\\n properties:\\r\\n app_config:\\r\\n appDescription: DCAE Analytics Threshold Crossing Alert Application\\r\\n appName: dcae-tca\\r\\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\\r\\n tcaVESAlertsTableName: TCAVESAlertsTable\\r\\n tcaVESAlertsTableTTLSeconds: \'1728000\'\\r\\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\\r\\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\\r\\n thresholdCalculatorFlowletInstances: \'2\'\\r\\n app_preferences:\\r\\n publisherContentType: application/json\\r\\n publisherHostName: mrlocal-mtnjftle01.homer.att.com\\r\\n publisherHostPort: \'3905\'\\r\\n publisherMaxBatchSize: \'10\'\\r\\n publisherMaxRecoveryQueueSize: \'100000\'\\r\\n publisherPollingInterval: \'20000\'\\r\\n publisherProtocol: https\\r\\n publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub\\r\\n publisherUserName: m00502@tca.af.dcae.att.com\\r\\n publisherUserPassword: Te5021abc\\r\\n subscriberConsumerGroup: OpenDCAE-c12\\r\\n subscriberConsumerId: c12\\r\\n subscriberContentType: application/json\\r\\n subscriberHostName: mrlocal-mtnjftle01.homer.att.com\\r\\n subscriberHostPort: \'3905\'\\r\\n subscriberMessageLimit: \'-1\'\\r\\n subscriberPollingInterval: \'20000\'\\r\\n subscriberProtocol: https\\r\\n subscriberTimeoutMS: \'-1\'\\r\\n subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub\\r\\n subscriberUserName: m00502@tca.af.dcae.att.com\\r\\n subscriberUserPassword: Te5021abc\\r\\n tca_policy: \\r\\n artifact_name: dcae-analytics-tca\\r\\n artifact_version: 1.0.0\\r\\n connections:\\r\\n streams_publishes: []\\r\\n streams_subscribes: []\\r\\n jar_url: http://somejar\\r\\n location_id:\\r\\n get_input: location_id\\r\\n namespace: cdap_tca_hi_lo\\r\\n programs:\\r\\n - program_id: TCAVESCollectorFlow\\r\\n program_type: flows\\r\\n - program_id: TCADMaaPMRSubscriberWorker\\r\\n program_type: workers\\r\\n - program_id: TCADMaaPMRPublisherWorker\\r\\n program_type: workers\\r\\n service_component_type: cdap_app_tca\\r\\n service_id:\\r\\n get_input: service_id\\r\\n streamname: TCASubscriberOutputStream\\r\\n relationships:\\r\\n - target: cdap_host_host\\r\\n type: dcae.relationships.component_contained_in\\r\\n\"]}]}',NULL,'2018-02-22 16:12:52'),('eb9f5d1c-17ea-11e8-b63b-0242ac130002','eb98db1e-17ea-11e8-b63b-0242ac130002','{}',NULL,'2018-02-22 16:10:37'); +INSERT INTO `template_doc` VALUES ('04ebec9b-17eb-11e8-b63b-0242ac130002','04e43cfa-17eb-11e8-b63b-0242ac130002','{}',NULL,'2018-02-22 16:11:20'),('27b1a0c9-17eb-11e8-b63b-0242ac130002','27aa4250-17eb-11e8-b63b-0242ac130002','{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_3\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\\r\\n- https://test.onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\\r\\n- https://test.onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\\r\\n- http://test.onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\\r\\ninputs:\\r\\n location_id:\\r\\n type: string\\r\\n service_id:\\r\\n type: string\\r\\nnode_templates:\\r\\n cdap_host_host:\\r\\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\\r\\n properties:\\r\\n location_id:\\r\\n get_input: location_id\\r\\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\\r\\n interfaces:\\r\\n cloudify.interfaces.lifecycle: {}\\r\\n tca_tca:\\r\\n type: dcae.nodes.MicroService.cdap\\r\\n properties:\\r\\n app_config:\\r\\n appDescription: DCAE Analytics Threshold Crossing Alert Application\\r\\n appName: dcae-tca\\r\\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\\r\\n tcaVESAlertsTableName: TCAVESAlertsTable\\r\\n tcaVESAlertsTableTTLSeconds: \'1728000\'\\r\\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\\r\\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\\r\\n thresholdCalculatorFlowletInstances: \'2\'\\r\\n app_preferences:\\r\\n publisherContentType: application/json\\r\\n publisherHostName: test.onap.org\\r\\n publisherHostPort: \'3905\'\\r\\n publisherMaxBatchSize: \'10\'\\r\\n publisherMaxRecoveryQueueSize: \'100000\'\\r\\n publisherPollingInterval: \'20000\'\\r\\n publisherProtocol: https\\r\\n publisherTopicName: org.onap.dcae.dmaap.DcaeTestVESPub\\r\\n publisherUserName: user@onap.org\\r\\n publisherUserPassword: password\\r\\n subscriberConsumerGroup: OpenDCAE-c12\\r\\n subscriberConsumerId: c12\\r\\n subscriberContentType: application/json\\r\\n subscriberHostName: test.onap.org\\r\\n subscriberHostPort: \'3905\'\\r\\n subscriberMessageLimit: \'-1\'\\r\\n subscriberPollingInterval: \'20000\'\\r\\n subscriberProtocol: https\\r\\n subscriberTimeoutMS: \'-1\'\\r\\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\\r\\n subscriberUserName: user@test.onap.org\\r\\n subscriberUserPasswordpasswordbc\\r\\n tca_policy: \\r\\n artifact_name: dcae-analytics-tca\\r\\n artifact_version: 1.0.0\\r\\n connections:\\r\\n streams_publishes: []\\r\\n streams_subscribes: []\\r\\n jar_url: http://somejar\\r\\n location_id:\\r\\n get_input: location_id\\r\\n namespace: cdap_tca_hi_lo\\r\\n programs:\\r\\n - program_id: TCAVESCollectorFlow\\r\\n program_type: flows\\r\\n - program_id: TCADMaaPMRSubscriberWorker\\r\\n program_type: workers\\r\\n - program_id: TCADMaaPMRPublisherWorker\\r\\n program_type: workers\\r\\n service_component_type: cdap_app_tca\\r\\n service_id:\\r\\n get_input: service_id\\r\\n streamname: TCASubscriberOutputStream\\r\\n relationships:\\r\\n - target: cdap_host_host\\r\\n type: dcae.relationships.component_contained_in\\r\\n\"]}]}',NULL,'2018-02-22 16:12:18'),('3c0d7849-17eb-11e8-b63b-0242ac130002','3c02f310-17eb-11e8-b63b-0242ac130002','{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_3\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\\r\\n- https://test.onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\\r\\n- https://test.onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\\r\\n- http://test.onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\\r\\ninputs:\\r\\n location_id:\\r\\n type: string\\r\\n service_id:\\r\\n type: string\\r\\nnode_templates:\\r\\n cdap_host_host:\\r\\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\\r\\n properties:\\r\\n location_id:\\r\\n get_input: location_id\\r\\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\\r\\n interfaces:\\r\\n cloudify.interfaces.lifecycle: {}\\r\\n tca_tca:\\r\\n type: dcae.nodes.MicroService.cdap\\r\\n properties:\\r\\n app_config:\\r\\n appDescription: DCAE Analytics Threshold Crossing Alert Application\\r\\n appName: dcae-tca\\r\\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\\r\\n tcaVESAlertsTableName: TCAVESAlertsTable\\r\\n tcaVESAlertsTableTTLSeconds: \'1728000\'\\r\\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\\r\\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\\r\\n thresholdCalculatorFlowletInstances: \'2\'\\r\\n app_preferences:\\r\\n publisherContentType: application/json\\r\\n publisherHostName: test.homer.onap.org\\r\\n publisherHostPort: \'3905\'\\r\\n publisherMaxBatchSize: \'10\'\\r\\n publisherMaxRecoveryQueueSize: \'100000\'\\r\\n publisherPollingInterval: \'20000\'\\r\\n publisherProtocol: https\\r\\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\\r\\n publisherUserName: user@tca.af.dcae.onap.org\\r\\n publisherUserPasswordpasswordbc\\r\\n subscriberConsumerGroup: OpenDCAE-c12\\r\\n subscriberConsumerId: c12\\r\\n subscriberContentType: application/json\\r\\n subscriberHostName: test.homer.onap.org\\r\\n subscriberHostPort: \'3905\'\\r\\n subscriberMessageLimit: \'-1\'\\r\\n subscriberPollingInterval: \'20000\'\\r\\n subscriberProtocol: https\\r\\n subscriberTimeoutMS: \'-1\'\\r\\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\\r\\n subscriberUserName: user@tca.af.dcae.onap.org\\r\\n subscriberUserPasswordpasswordbc\\r\\n tca_policy: \\r\\n artifact_name: dcae-analytics-tca\\r\\n artifact_version: 1.0.0\\r\\n connections:\\r\\n streams_publishes: []\\r\\n streams_subscribes: []\\r\\n jar_url: http://somejar\\r\\n location_id:\\r\\n get_input: location_id\\r\\n namespace: cdap_tca_hi_lo\\r\\n programs:\\r\\n - program_id: TCAVESCollectorFlow\\r\\n program_type: flows\\r\\n - program_id: TCADMaaPMRSubscriberWorker\\r\\n program_type: workers\\r\\n - program_id: TCADMaaPMRPublisherWorker\\r\\n program_type: workers\\r\\n service_component_type: cdap_app_tca\\r\\n service_id:\\r\\n get_input: service_id\\r\\n streamname: TCASubscriberOutputStream\\r\\n relationships:\\r\\n - target: cdap_host_host\\r\\n type: dcae.relationships.component_contained_in\\r\\n\"]}]}',NULL,'2018-02-22 16:12:52'),('eb9f5d1c-17ea-11e8-b63b-0242ac130002','eb98db1e-17ea-11e8-b63b-0242ac130002','{}',NULL,'2018-02-22 16:10:37'); /*!40000 ALTER TABLE `template_doc` ENABLE KEYS */; UNLOCK TABLES; -- cgit 1.2.3-korg From a9cdc79ba7e928b38ed132d38426b6c8b70635bf Mon Sep 17 00:00:00 2001 From: sebdet Date: Wed, 19 Sep 2018 18:35:11 +0200 Subject: Add tests Add some tests to cldsService Issue-ID: CLAMP-217 Change-Id: I95f21306f3d807a283519604c1711dfd07466d4a Signed-off-by: sebdet --- .../clamp/clds/config/SystemPropertiesLoader.java | 23 +++-- .../org/onap/clamp/clds/it/CldsServiceItCase.java | 33 ++++++- src/test/resources/application.properties | 8 +- .../sdc/expected-result/sdc-properties-global.json | 102 +++++++++++++++++++++ 4 files changed, 151 insertions(+), 15 deletions(-) create mode 100644 src/test/resources/example/sdc/expected-result/sdc-properties-global.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/config/SystemPropertiesLoader.java b/src/main/java/org/onap/clamp/clds/config/SystemPropertiesLoader.java index bb2eb3a2f..093ad48f0 100644 --- a/src/main/java/org/onap/clamp/clds/config/SystemPropertiesLoader.java +++ b/src/main/java/org/onap/clamp/clds/config/SystemPropertiesLoader.java @@ -5,24 +5,27 @@ * Copyright (C) 2018 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============================================ * =================================================================== - * + * */ package org.onap.clamp.clds.config; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + import java.util.Properties; import javax.annotation.Resource; @@ -33,12 +36,14 @@ import org.springframework.stereotype.Component; @Component public class SystemPropertiesLoader implements ApplicationListener { + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SystemPropertiesLoader.class); @Resource(name = "mapper") private Properties myTranslator; @Override public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { + logger.info("Loading additional JVM properties:"+myTranslator.toString()); System.getProperties().putAll(myTranslator); } } diff --git a/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java index 3c508bd31..695aa2d15 100644 --- a/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java @@ -50,6 +50,7 @@ import org.junit.runner.RunWith; import org.mockito.Matchers; import org.mockito.Mockito; import org.onap.clamp.clds.dao.CldsDao; +import org.onap.clamp.clds.model.CldsEvent; import org.onap.clamp.clds.model.CldsInfo; import org.onap.clamp.clds.model.CldsModel; import org.onap.clamp.clds.model.CldsServiceData; @@ -61,6 +62,8 @@ import org.skyscreamer.jsonassert.JSONAssert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; @@ -183,11 +186,37 @@ public class CldsServiceItCase { // Verify whether it has been added properly or not assertNotNull(cldsDao.getModel(randomNameModel)); + CldsModel model= cldsService.getModel(randomNameModel); // Verify with GetModel - assertEquals(cldsService.getModel(randomNameModel).getTemplateName(),randomNameTemplate); - assertEquals(cldsService.getModel(randomNameModel).getName(),randomNameModel); + assertEquals(model.getTemplateName(),randomNameTemplate); + assertEquals(model.getName(),randomNameModel); assertTrue(cldsService.getModelNames().size() >= 1); + + // Should fail + ResponseEntity responseEntity = cldsService.putModelAndProcessAction(CldsEvent.ACTION_SUBMIT, randomNameModel, "true", model); + assertTrue(responseEntity.getStatusCode().equals(HttpStatus.INTERNAL_SERVER_ERROR)); + model=(CldsModel)responseEntity.getBody(); + assertNull(model); + + responseEntity=cldsService.deployModel(randomNameModel, cldsService.getModel(randomNameModel)); + assertNotNull(responseEntity); + assertNotNull(responseEntity.getStatusCode()); + model=(CldsModel)responseEntity.getBody(); + assertNotNull(model); + + responseEntity=cldsService.unDeployModel(randomNameModel, cldsService.getModel(randomNameModel)); + assertNotNull(responseEntity); + assertNotNull(responseEntity.getStatusCode()); + model=(CldsModel)responseEntity.getBody(); + assertNotNull(model); + } + + @Test + public void testGetSdcProperties() throws IOException { + JSONAssert.assertEquals( + ResourceFileUtil.getResourceAsString("example/sdc/expected-result/sdc-properties-global.json"), cldsService.getSdcProperties(), + true); } @Test diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 4268ce389..aa43ea2e6 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -202,13 +202,13 @@ clamp.config.clds.service.cache.invalidate.after.seconds=120 #DCAE Inventory Url Properties clamp.config.dcae.inventory.url=http://localhost:${docker.http-cache.port.host} -clamp.config.dcae.intentory.retry.interval=10000 -clamp.config.dcae.intentory.retry.limit=3 +clamp.config.dcae.intentory.retry.interval=100 +clamp.config.dcae.intentory.retry.limit=1 #DCAE Dispatcher Url Properties clamp.config.dcae.dispatcher.url=http://localhost:${docker.http-cache.port.host} -clamp.config.dcae.dispatcher.retry.interval=10000 -clamp.config.dcae.dispatcher.retry.limit=10 +clamp.config.dcae.dispatcher.retry.interval=100 +clamp.config.dcae.dispatcher.retry.limit=1 clamp.config.dcae.header.requestId = X-ECOMP-RequestID #Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case ! diff --git a/src/test/resources/example/sdc/expected-result/sdc-properties-global.json b/src/test/resources/example/sdc/expected-result/sdc-properties-global.json new file mode 100644 index 000000000..f81784d77 --- /dev/null +++ b/src/test/resources/example/sdc/expected-result/sdc-properties-global.json @@ -0,0 +1,102 @@ +{ + "tca": { + "tname": "New_Set", + "tcaInt": "1", + "tcaVio": "1", + "eventName": { + "vLoadBalancer": "vLoadBalancer", + "vFirewallBroadcastPackets": "vFirewallBroadcastPackets", + "Measurement_vGMUX": "Measurement_vGMUX" + }, + "fieldPathM": { + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate", + "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta": "receivedTotalPacketsDelta" + }, + "operator": { + ">": "GREATER", + ">=": "GREATER_OR_EQUAL", + "=": "EQUAL", + "<=": "LESS_OR_EQUAL", + "<": "LESS" + }, + "opsPolicy": { + "POLICY_test_X": "POLICY_test_X", + "POLICY_test_Y": "POLICY_test_Y" + }, + "controlLoopSchemaType": { + "": "", + "VM": "VM", + "VNF": "VNF" + }, + "closedLoopEventStatus": { + "": "", + "ONSET": "ONSET", + "ABATED": "ABATED" + } + }, + "global": { + "actionSet": { + "vnfRecipe": "VNF" + }, + "location": { + "DC1": "Data Center 1", + "DC2": "Data Center 2", + "DC3": "Data Center 3" + } + }, + "policy": { + "pname": "0", + "timeout": 345, + "vnfRecipe": { + "": "", + "restart": "Restart", + "rebuild": "Rebuild", + "migrate": "Migrate", + "healthCheck": "Health Check", + "modifyConfig": "ModifyConfig", + "vfModuleCreate": "VF Module Create" + }, + "maxRetries": "3", + "retryTimeLimit": 180, + "resource": { + "vCTS": "vCTS", + "v3CDB": "v3CDB", + "vUDR": "vUDR", + "vCOM": "vCOM", + "vRAR": "vRAR", + "vLCS": "vLCS", + "vUDR-BE": "vUDR-BE", + "vDBE": "vDBE" + }, + "parentPolicyConditions": { + "Failure_Retries": "Failure: Max Retries Exceeded", + "Failure_Timeout": "Failure: Time Limit Exceeded", + "Failure_Guard": "Failure: Guard", + "Failure_Exception": "Failure: Exception", + "Failure": "Failure: Other", + "Success": "Success" + } + }, + "shared": { + "byService": { + "": { + "vf": { + "": "" + }, + "location": { + "": "" + }, + "alarmCondition": { + "": "" + } + } + }, + "byVf": { + "": { + "vfc": { + "": "" + } + } + } + } +} \ No newline at end of file -- cgit 1.2.3-korg From 7253c2b707c1ac985fee1f6ed7ab45757a67b797 Mon Sep 17 00:00:00 2001 From: sebdet Date: Thu, 1 Nov 2018 23:50:04 +0100 Subject: Fix Policy Yaml Fix Policy Yaml generation, remove service and resource section + update the actor/recipe Issue-ID: CLAMP-243 Change-Id: Ia1adad6e653e7e85576858f2971f60f7903bfae2 Signed-off-by: sebdet --- .../req/policy/OperationalPolicyYamlFormatter.java | 19 +++++++------------ .../resources/clds/templates/globalProperties.json | 19 +++++++++++-------- .../resources/clds/templates/globalProperties.json | 18 ++++++++++-------- .../operational-policy/yaml-policy-chain-1.yaml | 13 ++----------- .../operational-policy/yaml-policy-chain-2.yaml | 13 ++----------- .../sdc/expected-result/sdc-properties-4cc5b45a.json | 18 ++++++++++-------- .../sdc/expected-result/sdc-properties-global.json | 18 ++++++++++-------- 7 files changed, 52 insertions(+), 66 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/client/req/policy/OperationalPolicyYamlFormatter.java b/src/main/java/org/onap/clamp/clds/client/req/policy/OperationalPolicyYamlFormatter.java index 1fc360820..b9ed0c095 100644 --- a/src/main/java/org/onap/clamp/clds/client/req/policy/OperationalPolicyYamlFormatter.java +++ b/src/main/java/org/onap/clamp/clds/client/req/policy/OperationalPolicyYamlFormatter.java @@ -57,6 +57,7 @@ public class OperationalPolicyYamlFormatter { protected OperationalPolicyYamlFormatter() { } + /** * Format Operational OpenLoop Policy yaml. * @@ -67,8 +68,8 @@ public class OperationalPolicyYamlFormatter { * @throws BuilderException * @throws UnsupportedEncodingException */ - public static String formatOpenLoopYaml(ModelProperties prop, String modelElementId, - PolicyChain policyChain) throws BuilderException, UnsupportedEncodingException { + public static String formatOpenLoopYaml(ModelProperties prop, String modelElementId, PolicyChain policyChain) + throws BuilderException, UnsupportedEncodingException { // get property objects Global global = prop.getGlobal(); prop.setCurrentModelElementId(modelElementId); @@ -86,20 +87,15 @@ public class OperationalPolicyYamlFormatter { return URLEncoder.encode(results.getSpecification(), "UTF-8"); } - public static String formatYaml(ModelProperties prop, String modelElementId, - PolicyChain policyChain) throws BuilderException, UnsupportedEncodingException { + public static String formatYaml(ModelProperties prop, String modelElementId, PolicyChain policyChain) + throws BuilderException, UnsupportedEncodingException { // get property objects - Global global = prop.getGlobal(); prop.setCurrentModelElementId(modelElementId); prop.setPolicyUniqueId(policyChain.getPolicyId()); - // convert values to SDC objects - Service service = new Service(global.getService()); - Resource[] vfResources = convertToResources(global.getResourceVf(), ResourceType.VF); - Resource[] vfcResources = convertToResources(global.getResourceVfc(), ResourceType.VFC); + // create builder ControlLoopPolicyBuilder builder = ControlLoopPolicyBuilder.Factory.buildControlLoop(prop.getControlName(), - policyChain.getTimeout(), service, vfResources); - builder.addResource(vfcResources); + policyChain.getTimeout()); // process each policy Map policyObjMap = new HashMap<>(); List policyItemList = orderParentFirst(policyChain.getPolicyItems()); @@ -196,7 +192,6 @@ public class OperationalPolicyYamlFormatter { } } - protected static Resource[] convertToResources(List stringList, ResourceType resourceType) { if (stringList == null || stringList.isEmpty()) { return new Resource[0]; diff --git a/src/main/resources/clds/templates/globalProperties.json b/src/main/resources/clds/templates/globalProperties.json index 252b41f66..775ca1d92 100644 --- a/src/main/resources/clds/templates/globalProperties.json +++ b/src/main/resources/clds/templates/globalProperties.json @@ -50,17 +50,20 @@ "actor": { "APPC":"APPC", "SO": "SO", - "VFC": "VFC" + "VFC": "VFC", + "SDNC":"SDNC", + "SDNR":"SDNR" }, "vnfRecipe": { "": "", - "restart": "Restart", - "rebuild": "Rebuild", - "migrate": "Migrate", - "healthCheck": "Health Check", - "modifyConfig": "ModifyConfig", - "vfModuleCreate":"VF Module Create", - "scaleOut":"Scale Out" + "Restart": "Restart", + "Rebuild": "Rebuild", + "Migrate": "Migrate", + "HealthCheck": "Health Check", + "ModifyConfig": "Modify Config", + "VF Module Create":"VF Module Create", + "VF Module Delete":"VF Module Delete", + "Reroute":"Reroute" }, "maxRetries": "3", "recipeLevel": { diff --git a/src/test/resources/clds/templates/globalProperties.json b/src/test/resources/clds/templates/globalProperties.json index e677abe9f..067063ea2 100644 --- a/src/test/resources/clds/templates/globalProperties.json +++ b/src/test/resources/clds/templates/globalProperties.json @@ -9,8 +9,8 @@ "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate", - "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta":"receivedTotalPacketsDelta" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "packetLossRate", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta":"receivedTotalPacketsDelta" }, "operator": { ">": "GREATER", @@ -49,12 +49,14 @@ "timeout": 345, "vnfRecipe": { "": "", - "restart": "Restart", - "rebuild": "Rebuild", - "migrate": "Migrate", - "healthCheck": "Health Check", - "modifyConfig": "ModifyConfig", - "vfModuleCreate":"VF Module Create" + "Restart": "Restart", + "Rebuild": "Rebuild", + "Migrate": "Migrate", + "HealthCheck": "Health Check", + "ModifyConfig": "Modify Config", + "VF Module Create":"VF Module Create", + "VF Module Delete":"VF Module Delete", + "Reroute":"Reroute" }, "maxRetries": "3", "retryTimeLimit": 180, diff --git a/src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml b/src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml index 3d0252a00..19ee585b9 100644 --- a/src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml +++ b/src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml @@ -1,17 +1,8 @@ controlLoop: abatement: false controlLoopName: controlNameTest - resources: - - resourceInvariantUUID: null - resourceName: 6c7aaec2-59eb-41d9-8681-b7f976ab668d - resourceType: VF - resourceUUID: null - resourceVersion: null - services: - - serviceInvariantUUID: null - serviceName: 0f983e18-4603-4bb4-a98c-e29691fb16a1 - serviceUUID: null - serviceVersion: null + resources: null + services: null timeout: 500 trigger_policy: version: 2.0.0 diff --git a/src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml b/src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml index 3d0252a00..19ee585b9 100644 --- a/src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml +++ b/src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml @@ -1,17 +1,8 @@ controlLoop: abatement: false controlLoopName: controlNameTest - resources: - - resourceInvariantUUID: null - resourceName: 6c7aaec2-59eb-41d9-8681-b7f976ab668d - resourceType: VF - resourceUUID: null - resourceVersion: null - services: - - serviceInvariantUUID: null - serviceName: 0f983e18-4603-4bb4-a98c-e29691fb16a1 - serviceUUID: null - serviceVersion: null + resources: null + services: null timeout: 500 trigger_policy: version: 2.0.0 diff --git a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json index c695ae00c..26454c319 100644 --- a/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json +++ b/src/test/resources/example/sdc/expected-result/sdc-properties-4cc5b45a.json @@ -9,8 +9,8 @@ "Measurement_vGMUX":"Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate", - "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta":"receivedTotalPacketsDelta" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "packetLossRate", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta":"receivedTotalPacketsDelta" }, "operator": { ">": "GREATER", @@ -49,12 +49,14 @@ "timeout": 345, "vnfRecipe": { "": "", - "restart": "Restart", - "rebuild": "Rebuild", - "migrate": "Migrate", - "healthCheck": "Health Check", - "modifyConfig": "ModifyConfig", - "vfModuleCreate":"VF Module Create" + "Restart": "Restart", + "Rebuild": "Rebuild", + "Migrate": "Migrate", + "HealthCheck": "Health Check", + "ModifyConfig": "Modify Config", + "VF Module Create":"VF Module Create", + "VF Module Delete":"VF Module Delete", + "Reroute":"Reroute" }, "maxRetries": "3", "retryTimeLimit": 180, diff --git a/src/test/resources/example/sdc/expected-result/sdc-properties-global.json b/src/test/resources/example/sdc/expected-result/sdc-properties-global.json index f81784d77..be46dbca7 100644 --- a/src/test/resources/example/sdc/expected-result/sdc-properties-global.json +++ b/src/test/resources/example/sdc/expected-result/sdc-properties-global.json @@ -9,8 +9,8 @@ "Measurement_vGMUX": "Measurement_vGMUX" }, "fieldPathM": { - "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "Packet-loss-rate", - "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta": "receivedTotalPacketsDelta" + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value": "packetLossRate", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta": "receivedTotalPacketsDelta" }, "operator": { ">": "GREATER", @@ -49,12 +49,14 @@ "timeout": 345, "vnfRecipe": { "": "", - "restart": "Restart", - "rebuild": "Rebuild", - "migrate": "Migrate", - "healthCheck": "Health Check", - "modifyConfig": "ModifyConfig", - "vfModuleCreate": "VF Module Create" + "Restart": "Restart", + "Rebuild": "Rebuild", + "Migrate": "Migrate", + "HealthCheck": "Health Check", + "ModifyConfig": "Modify Config", + "VF Module Create":"VF Module Create", + "VF Module Delete":"VF Module Delete", + "Reroute":"Reroute" }, "maxRetries": "3", "retryTimeLimit": 180, -- cgit 1.2.3-korg From 13cd99b20365b23d1db641eb367456a961d89c33 Mon Sep 17 00:00:00 2001 From: sebdet Date: Fri, 30 Nov 2018 19:13:06 +0100 Subject: Replace wrong name Replace wrong names in samples Issue-ID: CLAMP-252 Change-Id: I17dc8715ac1080c7f8823dc4903f0b68b9774067 Signed-off-by: sebdet --- src/test/resources/example/sdc/sdcAlarmsList.csv | 12 ++++---- .../example/sdc/sdcCVFCResourceExample.json | 2 +- .../resources/example/sdc/sdcCVFCResources.json | 2 +- .../resources/example/sdc/sdcCinderVolume.json | 2 +- .../example/sdc/sdcResourceDetailsExample.json | 2 +- .../resources/example/sdc/sdcSecurityRules.json | 2 +- .../example/sdc/sdcServiceDetailsExample.json | 34 +++++++++++----------- .../example/sdc/sdcVFCGenericWithAlarms.json | 2 +- .../example/sdc/sdcVFCResourceExample.json | 2 +- src/test/resources/example/sdc/sdcVFResources.json | 28 +++++++++--------- 10 files changed, 44 insertions(+), 44 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/test/resources/example/sdc/sdcAlarmsList.csv b/src/test/resources/example/sdc/sdcAlarmsList.csv index 247dcd9aa..43ffdd348 100644 --- a/src/test/resources/example/sdc/sdcAlarmsList.csv +++ b/src/test/resources/example/sdc/sdcAlarmsList.csv @@ -1,13 +1,13 @@ ,EventSourceType,,AlarmCondition,Severity -eventType,VPMS,alarmCondition,SwRestart,CRITICAL +eventType,VNFNAME,alarmCondition,SwRestart,CRITICAL -eventType,VPMS,alarmCondition,SwRestart,WARNING +eventType,VNFNAME,alarmCondition,SwRestart,WARNING -eventType,VPMS,alarmCondition,SwRestart,OK +eventType,VNFNAME,alarmCondition,SwRestart,OK -eventType,VPMS,alarmCondition,IsAlive,CRITICAL +eventType,VNFNAME,alarmCondition,IsAlive,CRITICAL -eventType,VPMS,alarmCondition,IsAlive,WARNING +eventType,VNFNAME,alarmCondition,IsAlive,WARNING -eventType,VPMS,alarmCondition,IsAlive,OK +eventType,VNFNAME,alarmCondition,IsAlive,OK diff --git a/src/test/resources/example/sdc/sdcCVFCResourceExample.json b/src/test/resources/example/sdc/sdcCVFCResourceExample.json index 01998dcbc..16ebe74d2 100644 --- a/src/test/resources/example/sdc/sdcCVFCResourceExample.json +++ b/src/test/resources/example/sdc/sdcCVFCResourceExample.json @@ -10,7 +10,7 @@ "lifecycleState": "CERTIFIED", "lastUpdaterUserId": "user", "lastUpdaterFullName": "Zero ASDCMech", - "toscaResourceName": "org.openecomp.resource.vfc.ClampDev.abstract.nodes.virc_fe_be_0", + "toscaResourceName": "org.onap.resource.vfc.ClampDev.abstract.nodes.virc_fe_be_0", "resources": [ { "resourceInstanceName": "virc_fe_be_virc_fe_be_management_0_port", diff --git a/src/test/resources/example/sdc/sdcCVFCResources.json b/src/test/resources/example/sdc/sdcCVFCResources.json index 54003a642..e8743bba9 100644 --- a/src/test/resources/example/sdc/sdcCVFCResources.json +++ b/src/test/resources/example/sdc/sdcCVFCResources.json @@ -266,7 +266,7 @@ { "uuid": "cba89050-752c-4aac-8cec-6f0463eb8a23", "invariantUUID": "ac6fab25-abc6-4e0e-ba25-cc2ddd7a51ef", - "name": "LDSA-nodes.ltm", + "name": "VNF-nodes.ltm", "version": "1.0", "toscaModelURL": "/sdc/v1/catalog/resources/cba89050-752c-4aac-8cec-6f0463eb8a23/toscaModel", "category": "Generic", diff --git a/src/test/resources/example/sdc/sdcCinderVolume.json b/src/test/resources/example/sdc/sdcCinderVolume.json index 1832a9aa5..776226c8d 100644 --- a/src/test/resources/example/sdc/sdcCinderVolume.json +++ b/src/test/resources/example/sdc/sdcCinderVolume.json @@ -10,6 +10,6 @@ "lifecycleState": "CERTIFIED", "lastUpdaterUserId": "user", "lastUpdaterFullName": "Jimmy Hendrix", - "toscaResourceName": "org.openecomp.resource.vfc.nodes.heat.cinder.Volume", + "toscaResourceName": "org.onap.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/sdcResourceDetailsExample.json b/src/test/resources/example/sdc/sdcResourceDetailsExample.json index 7653b9481..16c5708f1 100644 --- a/src/test/resources/example/sdc/sdcResourceDetailsExample.json +++ b/src/test/resources/example/sdc/sdcResourceDetailsExample.json @@ -10,7 +10,7 @@ "lifecycleState": "CERTIFIED", "lastUpdaterUserId": "user", "lastUpdaterFullName": "Three ASDCMech", - "toscaResourceName": "org.openecomp.resource.vf.ClampDev", + "toscaResourceName": "org.onap.resource.vf.ClampDev", "resources": [ { diff --git a/src/test/resources/example/sdc/sdcSecurityRules.json b/src/test/resources/example/sdc/sdcSecurityRules.json index b73abb058..a7a641239 100644 --- a/src/test/resources/example/sdc/sdcSecurityRules.json +++ b/src/test/resources/example/sdc/sdcSecurityRules.json @@ -10,6 +10,6 @@ "lifecycleState": "CERTIFIED", "lastUpdaterUserId": "user", "lastUpdaterFullName": "Jimmy Hendrix", - "toscaResourceName": "org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules", + "toscaResourceName": "org.onap.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 index b344f4194..57232503d 100644 --- a/src/test/resources/example/sdc/sdcServiceDetailsExample.json +++ b/src/test/resources/example/sdc/sdcServiceDetailsExample.json @@ -10,7 +10,7 @@ "lifecycleState": "CERTIFIED", "lastUpdaterUserId": "user", "lastUpdaterFullName": "MONICA LAZER", - "toscaResourceName": "org.openecomp.resource.vf.Vcts3", + "toscaResourceName": "org.onap.resource.vf.Vcts3", "resources": [ { @@ -79,11 +79,11 @@ { "artifactChecksum": "CheckSum", - "artifactDescription": "Nimbus Heat OAM", - "artifactName": "hot-nimbus-oam_v1.0.yaml", + "artifactDescription": "Test desc", + "artifactName": "vnf_v1.0.yaml", "artifactTimeout": 100, "artifactType": "HEAT", - "artifactURL": "hot-nimbus-oam_v1.0.yaml", + "artifactURL": "vnf_v1.0.yaml", "artifactUUID": "Artifact-UUID1", "artifactVersion": "1.0", "generatedArtifact": "EnvArtifact-UUID2", @@ -96,10 +96,10 @@ { "artifactChecksum": "CheckSum", - "artifactDescription": "Nimbus Heat ENV OAM", - "artifactName": "hot-nimbus-oam_v1.0.env", + "artifactDescription": "Vnf desc", + "artifactName": "vnf_v1.0.env", "artifactType": "HEAT_ENV", - "artifactURL": "hot-nimbus-oam_v1.0.env", + "artifactURL": "vnf_v1.0.env", "artifactUUID": "EnvArtifact-UUID2", "artifactVersion": "1.0" }, @@ -128,11 +128,11 @@ { "artifactChecksum": "CheckSum", - "artifactDescription": "Script for Nimbus", - "artifactName": "cloud-nimbus.sh", + "artifactDescription": "Script for Vnf", + "artifactName": "cloud-Vnf.sh", "artifactType": "HEAT_ARTIFACT", - "artifactURL": "cloud-nimbus.sh", - "artifactUUID": "ScriptNimbusArtifact-UUID1", + "artifactURL": "cloud-Vnf.sh", + "artifactUUID": "ScriptVnfArtifact-UUID1", "artifactVersion": "1.0" }, @@ -149,10 +149,10 @@ { "artifactChecksum": "CheckSum", "artifactDescription": "Heat Vol for OAM", - "artifactName": "hot-nimbus-oam-volumes_v1.0.yaml", + "artifactName": "vnf-volumes_v1.0.yaml", "artifactTimeout": 10, "artifactType": "HEAT_VOL", - "artifactURL": "hot-nimbus-oam-volumes_v1.0.yaml", + "artifactURL": "vnf-volumes_v1.0.yaml", "artifactUUID": "VolumeArtifact-UUID1", "artifactVersion": "1.0", "generatedArtifact": "VolumeEnvArtifact-UUID1", @@ -165,9 +165,9 @@ { "artifactChecksum": "CheckSum", "artifactDescription": "Heat Env Vol for OAM", - "artifactName": "hot-nimbus-oam-volumes_v1.0.env", + "artifactName": "vnf-volumes_v1.0.env", "artifactType": "HEAT_ENV", - "artifactURL": "hot-nimbus-oam-volumes_v1.0.env", + "artifactURL": "vnf-volumes_v1.0.env", "artifactUUID": "VolumeEnvArtifact-UUID1", "artifactVersion": "1.0" }, @@ -175,10 +175,10 @@ { "artifactChecksum": "CheckSum", "artifactDescription": "Meta data for VFModule", - "artifactName": "att_nimbus_vsaegw_ht_base_v13_0728v1.yaml", + "artifactName": "vnf_1.yaml", "artifactTimeout": 100, "artifactType": "HEAT", - "artifactURL": "att_nimbus_vsaegw_ht_base_v13_0728v1.yaml", + "artifactURL": "vnf_1.yaml", "artifactUUID": "HeatArtifactE2E-UUIDTest", "artifactVersion": "1.0" } diff --git a/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json b/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json index 952650af4..5534d992c 100644 --- a/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json +++ b/src/test/resources/example/sdc/sdcVFCGenericWithAlarms.json @@ -10,7 +10,7 @@ "lifecycleState": "CERTIFIED", "lastUpdaterUserId": "user", "lastUpdaterFullName": "Zero ASDCMech", - "toscaResourceName": "org.openecomp.resource.vfc.ClampDev.abstract.nodes.virc_fe_be_1", + "toscaResourceName": "org.onap.resource.vfc.ClampDev.abstract.nodes.virc_fe_be_1", "resources": [ { diff --git a/src/test/resources/example/sdc/sdcVFCResourceExample.json b/src/test/resources/example/sdc/sdcVFCResourceExample.json index 5f523e6bd..0b0d5811a 100644 --- a/src/test/resources/example/sdc/sdcVFCResourceExample.json +++ b/src/test/resources/example/sdc/sdcVFCResourceExample.json @@ -10,7 +10,7 @@ "lifecycleState": "CERTIFIED", "lastUpdaterUserId": "user", "lastUpdaterFullName": "Zero ASDCMech", - "toscaResourceName": "org.openecomp.resource.vfc.Clampdev.abstract.nodes.heat.virc_fe_be", + "toscaResourceName": "org.onap.resource.vfc.Clampdev.abstract.nodes.heat.virc_fe_be", "artifacts": [ { "artifactName": "Fault-alarms-ASDC-vprobes-vLB.csv", diff --git a/src/test/resources/example/sdc/sdcVFResources.json b/src/test/resources/example/sdc/sdcVFResources.json index 4274ba8fc..e9d1d3b85 100644 --- a/src/test/resources/example/sdc/sdcVFResources.json +++ b/src/test/resources/example/sdc/sdcVFResources.json @@ -483,7 +483,7 @@ { "uuid": "6b934b9d-0785-4b46-8321-943a12b8031b", "invariantUUID": "785012c2-fdd8-450d-8fa2-81ff60e25f1e", - "name": "vMMSC_AIC3.0__multi_members_multi_groups_volume.cs", + "name": "VNFNAME__multi_members_multi_groups_volume.cs", "version": "0.2", "toscaModelURL": "/sdc/v1/catalog/resources/6b934b9d-0785-4b46-8321-943a12b8031b/toscaModel", "category": "Application L4+", @@ -574,7 +574,7 @@ { "uuid": "c8663b6e-bbe2-401d-9500-ec5425463655", "invariantUUID": "925243cf-e342-4d86-8558-63899fbe88da", - "name": "VF Module LDSA", + "name": "VF Module VNF", "version": "1.1", "toscaModelURL": "/sdc/v1/catalog/resources/c8663b6e-bbe2-401d-9500-ec5425463655/toscaModel", "category": "Application L4+", @@ -665,7 +665,7 @@ { "uuid": "c1c02cff-855f-438e-85f8-40c362874896", "invariantUUID": "64cb5201-90d4-4cab-a6a9-f7416eeb307f", - "name": "PXTC", + "name": "VNFName", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/c1c02cff-855f-438e-85f8-40c362874896/toscaModel", "category": "Application L4+", @@ -678,7 +678,7 @@ { "uuid": "837c2fee-c2b2-4e95-ad48-dd69772d99bd", "invariantUUID": "e48b3ea8-39bc-41eb-84bf-f5ef267d31e4", - "name": "vMOG VNF 1", + "name": "VNF 1", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/837c2fee-c2b2-4e95-ad48-dd69772d99bd/toscaModel", "category": "Network L2-3", @@ -756,7 +756,7 @@ { "uuid": "1e7f07c7-ff4c-40a6-95f6-a9b05f138027", "invariantUUID": "cfff70d2-f942-4b25-b2ca-e64f64af511d", - "name": "vMMSC_AIC3.0__multi_members_multi_groups_volume", + "name": "VNFNAME__multi_members_multi_groups_volume", "version": "2.0", "toscaModelURL": "/sdc/v1/catalog/resources/1e7f07c7-ff4c-40a6-95f6-a9b05f138027/toscaModel", "category": "Application L4+", @@ -938,7 +938,7 @@ { "uuid": "c9ea2798-f3ba-4826-ae93-0786820cb890", "invariantUUID": "5882c528-76fe-4884-90c7-71301ca52cf8", - "name": "vMMSC_ECA", + "name": "VNFNAME1", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/c9ea2798-f3ba-4826-ae93-0786820cb890/toscaModel", "category": "Application L4+", @@ -1016,7 +1016,7 @@ { "uuid": "3951e021-7595-43b1-a6fd-de077c01af54", "invariantUUID": "925243cf-e342-4d86-8558-63899fbe88da", - "name": "VF Module LDSA", + "name": "VF Module VNF", "version": "1.0", "toscaModelURL": "/sdc/v1/catalog/resources/3951e021-7595-43b1-a6fd-de077c01af54/toscaModel", "category": "Application L4+", @@ -1068,7 +1068,7 @@ { "uuid": "70974b30-6b89-41d2-8b5d-779279db3b96", "invariantUUID": "725e5fd1-2520-4669-a5f2-23f9ad2fbec4", - "name": "vSCP0502", + "name": "VnfName2", "version": "1.0", "toscaModelURL": "/sdc/v1/catalog/resources/70974b30-6b89-41d2-8b5d-779279db3b96/toscaModel", "category": "Application L4+", @@ -1081,7 +1081,7 @@ { "uuid": "c9e436c3-539f-45e2-90b4-b046af907877", "invariantUUID": "bc7fe896-e286-41cb-a11f-7081fc92876b", - "name": "vMMSC", + "name": "VNFNAME", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/c9e436c3-539f-45e2-90b4-b046af907877/toscaModel", "category": "Application L4+", @@ -1120,7 +1120,7 @@ { "uuid": "82460d6a-1cd7-4c57-bc89-625600555f80", "invariantUUID": "c67108d4-a0b0-4eee-8fbc-c881d7bb21d3", - "name": "VF modules vMMSC", + "name": "VF modules VNFNAME", "version": "1.0", "toscaModelURL": "/sdc/v1/catalog/resources/82460d6a-1cd7-4c57-bc89-625600555f80/toscaModel", "category": "Application L4+", @@ -1172,7 +1172,7 @@ { "uuid": "ac603264-cdf7-49ab-a9ae-92d341023218", "invariantUUID": "379ab526-dc81-4b31-b60d-31c1805ddf5a", - "name": "FDNT1", + "name": "VnfName1", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/ac603264-cdf7-49ab-a9ae-92d341023218/toscaModel", "category": "Application L4+", @@ -1237,7 +1237,7 @@ { "uuid": "44ff8000-e703-4538-b26a-f2bc8205d7d4", "invariantUUID": "26badc5a-d29e-4583-b773-0d42366a8bb1", - "name": "FDNT1234", + "name": "VnfName1234", "version": "1.0", "toscaModelURL": "/sdc/v1/catalog/resources/44ff8000-e703-4538-b26a-f2bc8205d7d4/toscaModel", "category": "Network L2-3", @@ -1315,7 +1315,7 @@ { "uuid": "8dec3b8a-a0fa-4634-bbb4-d7bad5a912ab", "invariantUUID": "eda652e4-6740-46bf-8d0f-92c4752070f6", - "name": "FCGI_OS", + "name": "VNFNAME", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/8dec3b8a-a0fa-4634-bbb4-d7bad5a912ab/toscaModel", "category": "Application L4+", @@ -1419,7 +1419,7 @@ { "uuid": "da3619c1-9b19-4edc-9853-a714c5034371", "invariantUUID": "b90f7990-667a-4f63-9e7f-ee02f64766f1", - "name": "FDNT", + "name": "VnfName2", "version": "0.1", "toscaModelURL": "/sdc/v1/catalog/resources/da3619c1-9b19-4edc-9853-a714c5034371/toscaModel", "category": "Application L4+", -- cgit 1.2.3-korg From 6914f938afd9cec84d6bb2b044cef74f4e997ab1 Mon Sep 17 00:00:00 2001 From: sebdet Date: Tue, 12 Feb 2019 21:34:58 +0100 Subject: support multiple CL Support multiple CL CSAR deployment per service/vnf Issue-ID: CLAMP-289 Change-Id: I6e52da07b393bffeff18e16a5afa78ef14162935 Signed-off-by: sebdet --- .../clds/sdc/controller/installer/CsarHandler.java | 3 +- .../controller/installer/CsarInstallerImpl.java | 32 +++---- .../controller/installer/CsarInstallerItCase.java | 59 +++++++----- .../sdc/controller/installer/CsarHandlerTest.java | 29 +++--- .../example/sdc/blueprint-dcae/tca_3.yaml | 104 +++++++++++++++++++++ .../example/sdc/service-Simsfoimap0112.csar | Bin 49933 -> 52391 bytes 6 files changed, 173 insertions(+), 54 deletions(-) create mode 100644 src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java index 1b7cb28c2..1a99919ee 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -138,8 +138,7 @@ public class CsarHandler { blueprintArtifact.setResourceAttached(searchForResourceByInstanceName(entry.getName().substring( entry.getName().indexOf(RESOURCE_INSTANCE_NAME_PREFIX) + RESOURCE_INSTANCE_NAME_PREFIX.length(), entry.getName().indexOf(RESOURCE_INSTANCE_NAME_SUFFIX)))); - this.mapOfBlueprints.put(blueprintArtifact.getResourceAttached().getResourceInstanceName(), - blueprintArtifact); + this.mapOfBlueprints.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); logger.info("Found a blueprint entry in the CSAR " + blueprintArtifact.getBlueprintArtifactName() + " for resource instance Name " + blueprintArtifact.getResourceAttached().getResourceInstanceName()); diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java index 50090920e..bfda6924d 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java @@ -25,8 +25,8 @@ package org.onap.clamp.clds.sdc.controller.installer; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; - import com.google.gson.JsonObject; + import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -59,8 +59,9 @@ import org.springframework.transaction.annotation.Transactional; import org.yaml.snakeyaml.Yaml; /** - * This class will be instantiated by spring config, and used by Sdc Controller. There is no state kept by the bean. - * It's used to deploy the csar/notification received from SDC in DB. + * This class will be instantiated by spring config, and used by Sdc Controller. + * There is no state kept by the bean. It's used to deploy the csar/notification + * received from SDC in DB. */ public class CsarInstallerImpl implements CsarInstaller { @@ -101,15 +102,14 @@ public class CsarInstallerImpl implements CsarInstaller { boolean alreadyInstalled = true; for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) { alreadyInstalled = alreadyInstalled - && (CldsModel.retrieve(cldsDao, buildModelName(csar, blueprint.getKey()), true).getId() != null) ? true - : false; + && CldsModel.retrieve(cldsDao, buildModelName(csar, blueprint.getValue()), true).getId() != null; } return alreadyInstalled; } - public static String buildModelName(CsarHandler csar, String resourceInstanceName) + public static String buildModelName(CsarHandler csar, BlueprintArtifact artifact) throws SdcArtifactInstallerException { - String policyScopePrefix = searchForPolicyScopePrefix(csar.getMapOfBlueprints().get(resourceInstanceName)); + String policyScopePrefix = searchForPolicyScopePrefix(artifact); if (policyScopePrefix.contains("*")) { // This is policy_filter type policyScopePrefix = policyScopePrefix.replaceAll("\\*", ""); @@ -117,9 +117,10 @@ public class CsarInstallerImpl implements CsarInstaller { // This is normally the get_input case policyScopePrefix = MODEL_NAME_PREFIX; } - return policyScopePrefix + csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + "_v" - + csar.getSdcNotification().getServiceVersion().replace('.', '_') + "_" - + resourceInstanceName.replaceAll(" ", ""); + return (policyScopePrefix + "_" + csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + "_v" + + csar.getSdcNotification().getServiceVersion() + "_" + + artifact.getResourceAttached().getResourceInstanceName().replaceAll(" ", "") + "_" + + artifact.getBlueprintArtifactName().replace(".yaml", "")).replace('.', '_'); } @Override @@ -214,8 +215,8 @@ public class CsarInstallerImpl implements CsarInstaller { } /** - * This call must be done when deploying the SDC notification as this call get the latest version of the artifact - * (version can be specified to DCAE call) + * This call must be done when deploying the SDC notification as this call get + * the latest version of the artifact (version can be specified to DCAE call) * * @return The DcaeInventoryResponse object containing the dcae values */ @@ -236,8 +237,7 @@ public class CsarInstallerImpl implements CsarInstaller { "{\"global\":[{\"name\":\"service\",\"value\":[\"" + blueprintArtifact.getDcaeBlueprint() + "\"]}]}"); template .setImageText(IOUtils.toString(appContext.getResource(configFiles.getSvgXmlFilePath()).getInputStream())); - template.setName(TEMPLATE_NAME_PREFIX - + buildModelName(csar, blueprintArtifact.getResourceAttached().getResourceInstanceName())); + template.setName(TEMPLATE_NAME_PREFIX + buildModelName(csar, blueprintArtifact)); template.save(cldsDao, null); logger.info("Fake Clds Template created for blueprint " + blueprintArtifact.getBlueprintArtifactName() + " with name " + template.getName()); @@ -246,14 +246,14 @@ public class CsarInstallerImpl implements CsarInstaller { private CldsModel createFakeCldsModel(CsarHandler csar, BlueprintArtifact blueprintArtifact, CldsTemplate cldsTemplate, DcaeInventoryResponse dcaeInventoryResponse) throws SdcArtifactInstallerException { - + if (dcaeInventoryResponse == null) { throw new SdcArtifactInstallerException( "DCAE inventory response is NULL, query to DCAE fail to be answered properly, this is required to deploy CSAR properly !!!"); } try { CldsModel cldsModel = new CldsModel(); - cldsModel.setName(buildModelName(csar, blueprintArtifact.getResourceAttached().getResourceInstanceName())); + cldsModel.setName(buildModelName(csar, blueprintArtifact)); cldsModel.setBlueprintText(blueprintArtifact.getDcaeBlueprint()); cldsModel.setTemplateName(cldsTemplate.getName()); cldsModel.setTemplateId(cldsTemplate.getId()); diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java index 276f50910..2c24dcb5c 100644 --- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -69,8 +69,8 @@ public class CsarInstallerItCase { private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec"; private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"; - private static final String INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName1"; - private static final String INSTANCE_NAME_RESOURCE2 = "ResourceInstanceName2"; + private static final String RESOURCE_INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName1"; + private static final String RESOURCE_INSTANCE_NAME_RESOURCE2 = "ResourceInstanceName2"; @Autowired private CsarInstaller csarInstaller; @Autowired @@ -92,14 +92,14 @@ public class CsarInstallerItCase { } private BlueprintArtifact buildFakeBuildprintArtifact(String instanceName, String invariantResourceUuid, - String blueprintFilePath, String csarArtifactName, String invariantServiceUuid) throws IOException { + String blueprintFilePath, String artifactName, String invariantServiceUuid) throws IOException { IResourceInstance resource = Mockito.mock(IResourceInstance.class); Mockito.when(resource.getResourceInstanceName()).thenReturn(instanceName); Mockito.when(resource.getResourceInvariantUUID()).thenReturn(invariantResourceUuid); BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class); Mockito.when(blueprintArtifact.getDcaeBlueprint()) .thenReturn(ResourceFileUtil.getResourceAsString(blueprintFilePath)); - Mockito.when(blueprintArtifact.getBlueprintArtifactName()).thenReturn(csarArtifactName); + Mockito.when(blueprintArtifact.getBlueprintArtifactName()).thenReturn(artifactName); Mockito.when(blueprintArtifact.getBlueprintInvariantServiceUuid()).thenReturn(invariantServiceUuid); Mockito.when(blueprintArtifact.getResourceAttached()).thenReturn(resource); return blueprintArtifact; @@ -115,17 +115,23 @@ public class CsarInstallerItCase { Mockito.when(notificationData.getResources()).thenReturn(listResources); Map blueprintMap = new HashMap<>(); Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap); - // Create fake blueprint artifact 1 - BlueprintArtifact blueprintArtifact = buildFakeBuildprintArtifact(INSTANCE_NAME_RESOURCE1, - INVARIANT_RESOURCE1_UUID, "example/sdc/blueprint-dcae/tca.yaml", CSAR_ARTIFACT_NAME, - INVARIANT_SERVICE_UUID); + // Create fake blueprint artifact 1 on resource1 + BlueprintArtifact blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, + INVARIANT_RESOURCE1_UUID, "example/sdc/blueprint-dcae/tca.yaml", "tca.yaml", INVARIANT_SERVICE_UUID); listResources.add(blueprintArtifact.getResourceAttached()); - blueprintMap.put(blueprintArtifact.getResourceAttached().getResourceInstanceName(), blueprintArtifact); - // Create fake blueprint artifact 2 - blueprintArtifact = buildFakeBuildprintArtifact(INSTANCE_NAME_RESOURCE2, INVARIANT_RESOURCE2_UUID, - "example/sdc/blueprint-dcae/tca_2.yaml", CSAR_ARTIFACT_NAME, INVARIANT_SERVICE_UUID); + blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); + // Create fake blueprint artifact 2 on resource2 + blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE2, INVARIANT_RESOURCE2_UUID, + "example/sdc/blueprint-dcae/tca_2.yaml", "tca_2.yaml", INVARIANT_SERVICE_UUID); listResources.add(blueprintArtifact.getResourceAttached()); - blueprintMap.put(blueprintArtifact.getResourceAttached().getResourceInstanceName(), blueprintArtifact); + blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); + + // Create fake blueprint artifact 3 on resource 1 so that it's possible to + // test multiple CL deployment per Service/vnf + blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, INVARIANT_RESOURCE1_UUID, + "example/sdc/blueprint-dcae/tca_3.yaml", "tca_3.yaml", INVARIANT_SERVICE_UUID); + blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); + // Build fake csarhandler Mockito.when(csarHandler.getSdcNotification()).thenReturn(notificationData); // Build fake csar Helper @@ -153,40 +159,45 @@ public class CsarInstallerItCase { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csar = buildFakeCsarHandler(generatedName); csarInstaller.installTheCsar(csar); - CldsModel cldsModel1 = verifyClosedLoopModelLoadedInDb(csar, generatedName, INSTANCE_NAME_RESOURCE1); + CldsModel cldsModel1 = verifyClosedLoopModelLoadedInDb(csar, "tca.yaml"); JSONAssert.assertEquals( IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca.json")), cldsModel1.getPropText(), true); - CldsModel cldsModel2 = verifyClosedLoopModelLoadedInDb(csar, generatedName, INSTANCE_NAME_RESOURCE2); + CldsModel cldsModel2 = verifyClosedLoopModelLoadedInDb(csar, "tca_2.yaml"); JSONAssert.assertEquals( IOUtils .toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca-2.json")), cldsModel2.getPropText(), true); + CldsModel cldsModel3 = verifyClosedLoopModelLoadedInDb(csar, "tca_3.yaml"); + JSONAssert.assertEquals( + IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca.json")), + cldsModel3.getPropText(), true); } - private CldsModel verifyClosedLoopModelLoadedInDb(CsarHandler csar, String generatedName, - String instanceNameResource) throws SdcArtifactInstallerException { + private CldsModel verifyClosedLoopModelLoadedInDb(CsarHandler csar, String artifactName) + throws SdcArtifactInstallerException { + // Get the template back from DB - CldsTemplate templateFromDb = CldsTemplate.retrieve(cldsDao, - CsarInstallerImpl.TEMPLATE_NAME_PREFIX + CsarInstallerImpl.buildModelName(csar, instanceNameResource), - false); + CldsTemplate templateFromDb = CldsTemplate.retrieve(cldsDao, CsarInstallerImpl.TEMPLATE_NAME_PREFIX + + CsarInstallerImpl.buildModelName(csar, csar.getMapOfBlueprints().get(artifactName)), false); assertNotNull(templateFromDb); assertNotNull(templateFromDb.getBpmnText()); assertNotNull(templateFromDb.getImageText()); assertNotNull(templateFromDb.getPropText()); assertTrue(templateFromDb.getPropText().contains("global") && templateFromDb.getPropText().contains("node_templates:")); - assertEquals(templateFromDb.getName(), - CsarInstallerImpl.TEMPLATE_NAME_PREFIX + CsarInstallerImpl.buildModelName(csar, instanceNameResource)); + assertEquals(templateFromDb.getName(), CsarInstallerImpl.TEMPLATE_NAME_PREFIX + + CsarInstallerImpl.buildModelName(csar, csar.getMapOfBlueprints().get(artifactName))); // Get the Model back from DB CldsModel modelFromDb = CldsModel.retrieve(cldsDao, - CsarInstallerImpl.buildModelName(csar, instanceNameResource), true); + CsarInstallerImpl.buildModelName(csar, csar.getMapOfBlueprints().get(artifactName)), true); assertNotNull(modelFromDb); assertNotNull(modelFromDb.getBpmnText()); assertNotNull(modelFromDb.getImageText()); assertNotNull(modelFromDb.getPropText()); assertTrue(modelFromDb.getPropText().contains("policy_id")); - assertEquals(CsarInstallerImpl.buildModelName(csar, instanceNameResource), modelFromDb.getName()); + assertEquals(CsarInstallerImpl.buildModelName(csar, csar.getMapOfBlueprints().get(artifactName)), + modelFromDb.getName()); assertEquals(CsarInstallerImpl.CONTROL_NAME_PREFIX, modelFromDb.getControlNamePrefix()); return modelFromDb; } diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java index 725b1ff1c..bb4fd01f2 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java @@ -57,6 +57,7 @@ public class CsarHandlerTest { private static final String RESOURCE1_INSTANCE_NAME = "sim-1802 0"; private static final String RESOURCE1_INSTANCE_NAME_IN_CSAR = "sim18020"; private static final String BLUEPRINT1_NAME = "FOI.Simfoimap223S0112.event_proc_bp.yaml"; + private static final String BLUEPRINT2_NAME = "FOI.Simfoimap223S0112.event_proc_bp2.yaml"; @Test public void testConstructor() throws CsarHandlerException { @@ -124,20 +125,26 @@ public class CsarHandlerTest { assertEquals(CSAR_ARTIFACT_NAME, csar.getArtifactElement().getArtifactName()); assertNotNull(csar.getSdcCsarHelper()); // Test dcaeBlueprint - String blueprint = csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getDcaeBlueprint(); + String blueprint = csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getDcaeBlueprint(); assertNotNull(blueprint); assertTrue(!blueprint.isEmpty()); assertTrue(blueprint.contains("DCAE-VES-PM-EVENT-v1")); // Test additional properties from Sdc notif - assertEquals(BLUEPRINT1_NAME, - csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintArtifactName()); + assertEquals(BLUEPRINT1_NAME, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintArtifactName()); assertEquals(RESOURCE1_UUID, - csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getResourceAttached().getResourceInvariantUUID()); - assertEquals(SERVICE_UUID, - csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintInvariantServiceUuid()); + csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getResourceAttached().getResourceInvariantUUID()); + assertEquals(SERVICE_UUID, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintInvariantServiceUuid()); + + // Just check the second one is there as well + assertEquals(BLUEPRINT2_NAME, csar.getMapOfBlueprints().get(BLUEPRINT2_NAME).getBlueprintArtifactName()); + blueprint = csar.getMapOfBlueprints().get(BLUEPRINT2_NAME).getDcaeBlueprint(); + assertNotNull(blueprint); + assertTrue(!blueprint.isEmpty()); + assertTrue(blueprint.contains("DCAE-VES-PM-EVENT-v1")); // Do some cleanup Path path = Paths.get(SDC_FOLDER + "/test-controller/" + CSAR_ARTIFACT_NAME); Files.deleteIfExists(path); + } @Test @@ -150,17 +157,15 @@ public class CsarHandlerTest { assertEquals(CSAR_ARTIFACT_NAME, csar.getArtifactElement().getArtifactName()); assertNotNull(csar.getSdcCsarHelper()); // Test dcaeBlueprint - String blueprint = csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getDcaeBlueprint(); + String blueprint = csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getDcaeBlueprint(); assertNotNull(blueprint); assertTrue(!blueprint.isEmpty()); assertTrue(blueprint.contains("DCAE-VES-PM-EVENT-v1")); // Test additional properties from Sdc notif - assertEquals(BLUEPRINT1_NAME, - csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintArtifactName()); + assertEquals(BLUEPRINT1_NAME, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintArtifactName()); assertEquals(RESOURCE1_UUID, - csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getResourceAttached().getResourceInvariantUUID()); - assertEquals(SERVICE_UUID, - csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintInvariantServiceUuid()); + csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getResourceAttached().getResourceInvariantUUID()); + assertEquals(SERVICE_UUID, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintInvariantServiceUuid()); Path path = Paths.get(SDC_FOLDER + "/test-controller/" + CSAR_ARTIFACT_NAME); // A double save should simply overwrite the existing csar.save(buildFakeSdcResut()); diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml new file mode 100644 index 000000000..0ab831712 --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml @@ -0,0 +1,104 @@ +tosca_definitions_version: cloudify_dsl_1_3 +imports: +- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml +- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml +- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml +- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml +inputs: + location_id: + type: string + service_id: + type: string + policy_id: + type: string +node_templates: + policy_0: + type: dcae.nodes.policy + properties: + policy_id: + get_input: policy_id + cdap_host_host: + type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure + properties: + location_id: + get_input: location_id + scn_override: cdap_broker.solutioning-central.dcae.onap.org + interfaces: + cloudify.interfaces.lifecycle: { + } + tca_tca: + type: dcae.nodes.MicroService.cdap + properties: + app_config: + appDescription: DCAE Analytics Threshold Crossing Alert Application + appName: dcae-tca + tcaSubscriberOutputStreamName: TCASubscriberOutputStream + tcaVESAlertsTableName: TCAVESAlertsTable + tcaVESAlertsTableTTLSeconds: '1728000' + tcaVESMessageStatusTableName: TCAVESMessageStatusTable + tcaVESMessageStatusTableTTLSeconds: '86400' + thresholdCalculatorFlowletInstances: '2' + app_preferences: + publisherContentType: application/json + publisherHostName: mrlocal-mtnjftle01.onap.org + publisherHostPort: '3905' + publisherMaxBatchSize: '10' + publisherMaxRecoveryQueueSize: '100000' + publisherPollingInterval: '20000' + publisherProtocol: https + publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub + publisherUserName: test@tca.af.dcae.onap.org + publisherUserPassword: password + subscriberConsumerGroup: OpenDCAE-c12 + subscriberConsumerId: c12 + subscriberContentType: application/json + subscriberHostName: mrlocal-mtnjftle01.onap.org + subscriberHostPort: '3905' + subscriberMessageLimit: '-1' + subscriberPollingInterval: '20000' + subscriberProtocol: https + subscriberTimeoutMS: '-1' + subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub + subscriberUserName: test@tca.af.dcae.onap.org + subscriberUserPassword: password + tca_policy: null + artifact_name: dcae-analytics-tca + artifact_version: 1.0.0 + connections: + streams_publishes: [ + ] + streams_subscribes: [ + ] + jar_url: http://somejar + location_id: + get_input: location_id + namespace: cdap_tca_hi_lo + programs: + - program_id: TCAVESCollectorFlow + program_type: flows + - program_id: TCADMaaPMRSubscriberWorker + program_type: workers + - program_id: TCADMaaPMRPublisherWorker + program_type: workers + service_component_type: cdap_app_tca + service_id: + get_input: service_id + streamname: TCASubscriberOutputStream + relationships: + - target: topic0 + type: dcae.relationships.subscribe_to_events + - target: topic1 + type: dcae.relationships.publish_events + - target: cdap_host_host + type: dcae.relationships.component_contained_in + - target: policy_0 + type: dcae.relationships.depends_on + topic0: + type: dcae.nodes.Topic + properties: + topic_name: '' + topic1: + type: dcae.nodes.Topic + properties: + topic_name: '' + diff --git a/src/test/resources/example/sdc/service-Simsfoimap0112.csar b/src/test/resources/example/sdc/service-Simsfoimap0112.csar index fac487cec..ea0e44a22 100644 Binary files a/src/test/resources/example/sdc/service-Simsfoimap0112.csar and b/src/test/resources/example/sdc/service-Simsfoimap0112.csar differ -- cgit 1.2.3-korg From 26788e7e2f25cd296efa187cb5c911843d00c9a8 Mon Sep 17 00:00:00 2001 From: Tomasz Golabek Date: Thu, 21 Feb 2019 14:05:41 +0100 Subject: Parsing CSAR to retrieve policy model Content of policies.xml taken from the CSAR file and ready to store into the db. Change-Id: I9ee0d0474fa355ae4c9db1e1ee40a3f087002e88 Issue-ID: CLAMP-261 Signed-off-by: Tomasz Golabek --- .../exception/policy/PolicyModelException.java | 31 +++++++++++++++++++++ .../clds/sdc/controller/SdcSingleController.java | 7 ++++- .../clds/sdc/controller/installer/CsarHandler.java | 15 ++++++++++ .../sdc/controller/installer/CsarInstaller.java | 4 ++- .../controller/installer/CsarInstallerImpl.java | 15 +++++++++- .../controller/installer/CsarInstallerItCase.java | 7 +++-- .../sdc/controller/installer/CsarHandlerTest.java | 25 +++++++++++++++++ .../example/sdc/service-without-policy.csar | Bin 0 -> 56126 bytes 8 files changed, 98 insertions(+), 6 deletions(-) create mode 100644 src/main/java/org/onap/clamp/clds/exception/policy/PolicyModelException.java create mode 100644 src/test/resources/example/sdc/service-without-policy.csar (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/exception/policy/PolicyModelException.java b/src/main/java/org/onap/clamp/clds/exception/policy/PolicyModelException.java new file mode 100644 index 000000000..0b64b78ea --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/exception/policy/PolicyModelException.java @@ -0,0 +1,31 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2019 Nokia 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============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.exception.policy; + +public class PolicyModelException extends Exception { + + public PolicyModelException(String msg, Throwable throwable) { + super(msg, throwable); + } +} diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java b/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java index 5959c0fb5..c9405d202 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java @@ -33,6 +33,7 @@ import java.util.concurrent.ThreadLocalRandom; import org.onap.clamp.clds.config.ClampProperties; import org.onap.clamp.clds.config.sdc.SdcSingleControllerConfiguration; +import org.onap.clamp.clds.exception.policy.PolicyModelException; import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.onap.clamp.clds.exception.sdc.controller.SdcControllerException; @@ -257,6 +258,10 @@ public class SdcSingleController { logger.error("SdcDownloadException exception caught during the notification processing", e); sendAllNotificationForCsarHandler(iNotif, csar, NotificationType.DOWNLOAD, DistributionStatusEnum.DOWNLOAD_ERROR, e.getMessage()); + } catch (PolicyModelException e) { + logger.error("PolicyModelException exception caught during the notification processing", e); + sendAllNotificationForCsarHandler(iNotif, csar, NotificationType.DEPLOY, + DistributionStatusEnum.DEPLOY_ERROR, e.getMessage()); } catch (InterruptedException e) { logger.error("Interrupt exception caught during the notification processing", e); sendAllNotificationForCsarHandler(iNotif, csar, NotificationType.DEPLOY, @@ -266,7 +271,7 @@ public class SdcSingleController { logger.error("Unexpected exception caught during the notification processing", e); sendAllNotificationForCsarHandler(iNotif, csar, NotificationType.DEPLOY, DistributionStatusEnum.DEPLOY_ERROR, e.getMessage()); - } finally { + } finally { this.changeControllerStatus(SdcSingleControllerStatus.IDLE); } } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java index 1a99919ee..f2c75ef28 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -36,6 +36,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -68,6 +69,7 @@ public class CsarHandler { private INotificationData sdcNotification; public static final String RESOURCE_INSTANCE_NAME_PREFIX = "/Artifacts/Resources/"; public static final String RESOURCE_INSTANCE_NAME_SUFFIX = "/Deployment/"; + public static final String POLICY_DEFINITION_NAME_SUFFIX = "Definitions/policies.yml"; public CsarHandler(INotificationData iNotif, String controller, String clampCsarPath) throws CsarHandlerException { this.sdcNotification = iNotif; @@ -167,4 +169,17 @@ public class CsarHandler { public Map getMapOfBlueprints() { return mapOfBlueprints; } + + Optional getPolicyModelYaml() throws IOException { + String result = null; + try (ZipFile zipFile = new ZipFile(csarFilePath)) { + ZipEntry entry = zipFile.getEntry(POLICY_DEFINITION_NAME_SUFFIX); + if (entry != null) { + result = IOUtils.toString(zipFile.getInputStream(entry)); + } else{ + logger.info("Policy model not found inside the CSAR file: " + csarFilePath); + } + return Optional.ofNullable(result); + } + } } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java index b5c025ecb..12a761dbf 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java @@ -23,11 +23,13 @@ package org.onap.clamp.clds.sdc.controller.installer; +import org.onap.clamp.clds.exception.policy.PolicyModelException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; public interface CsarInstaller { boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException; - public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException, InterruptedException; + public void installTheCsar(CsarHandler csar) + throws SdcArtifactInstallerException, InterruptedException, PolicyModelException; } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java index bfda6924d..6841b87b0 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Optional; import javax.annotation.PostConstruct; import javax.xml.transform.TransformerException; @@ -43,6 +44,7 @@ import org.onap.clamp.clds.client.DcaeInventoryServices; import org.onap.clamp.clds.config.sdc.BlueprintParserFilesConfiguration; import org.onap.clamp.clds.config.sdc.BlueprintParserMappingConfiguration; import org.onap.clamp.clds.dao.CldsDao; +import org.onap.clamp.clds.exception.policy.PolicyModelException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.onap.clamp.clds.model.CldsModel; import org.onap.clamp.clds.model.CldsTemplate; @@ -125,7 +127,8 @@ public class CsarInstallerImpl implements CsarInstaller { @Override @Transactional - public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException, InterruptedException { + public void installTheCsar(CsarHandler csar) + throws SdcArtifactInstallerException, InterruptedException, PolicyModelException { try { logger.info("Installing the CSAR " + csar.getFilePath()); for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) { @@ -135,6 +138,7 @@ public class CsarInstallerImpl implements CsarInstaller { this.searchForRightMapping(blueprint.getValue())), queryDcaeToGetServiceTypeId(blueprint.getValue())); } + createPolicyModel(csar); logger.info("Successfully installed the CSAR " + csar.getFilePath()); } catch (IOException e) { throw new SdcArtifactInstallerException("Exception caught during the Csar installation in database", e); @@ -143,6 +147,15 @@ public class CsarInstallerImpl implements CsarInstaller { } } + private void createPolicyModel(CsarHandler csar) throws PolicyModelException { + try{ + Optional policyModelYaml = csar.getPolicyModelYaml(); + // save policy model into the database + } catch (IOException e) { + throw new PolicyModelException("TransformerException when decoding the YamlText", e); + } + } + private BlueprintParserFilesConfiguration searchForRightMapping(BlueprintArtifact blueprintArtifact) throws SdcArtifactInstallerException { List listConfig = new ArrayList<>(); diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java index 2c24dcb5c..0df252388 100644 --- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -42,6 +42,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.onap.clamp.clds.dao.CldsDao; +import org.onap.clamp.clds.exception.policy.PolicyModelException; import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.onap.clamp.clds.model.CldsModel; @@ -78,7 +79,7 @@ public class CsarInstallerItCase { @Test(expected = SdcArtifactInstallerException.class) public void testInstallTheCsarFail() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, InterruptedException { + CsarHandlerException, IOException, InterruptedException, PolicyModelException { CsarHandler csarHandler = Mockito.mock(CsarHandler.class); BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class); Mockito.when(blueprintArtifact.getResourceAttached()).thenReturn(Mockito.mock(IResourceInstance.class)); @@ -145,7 +146,7 @@ public class CsarInstallerItCase { @Test public void testIsCsarAlreadyDeployedTca() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, InterruptedException { + CsarHandlerException, IOException, InterruptedException, PolicyModelException { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csarHandler = buildFakeCsarHandler(generatedName); assertFalse(csarInstaller.isCsarAlreadyDeployed(csarHandler)); @@ -155,7 +156,7 @@ public class CsarInstallerItCase { @Test public void testInstallTheCsarTca() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, JSONException, InterruptedException { + CsarHandlerException, IOException, JSONException, InterruptedException, PolicyModelException { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csar = buildFakeCsarHandler(generatedName); csarInstaller.installTheCsar(csar); diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java index bb4fd01f2..544c8ca1d 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java @@ -24,6 +24,7 @@ package org.onap.clamp.clds.sdc.controller.installer; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -115,6 +116,13 @@ public class CsarHandlerTest { return resultArtifact; } + private IDistributionClientDownloadResult buildFakeSdcResultWithoutPolicyModel() throws IOException { + IDistributionClientDownloadResult resultArtifact = Mockito.mock(IDistributionClientDownloadResult.class); + Mockito.when(resultArtifact.getArtifactPayload()).thenReturn( + IOUtils.toByteArray(ResourceFileUtil.getResourceAsStream("example/sdc/service-without-policy.csar"))); + return resultArtifact; + } + @Test public void testSave() throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { @@ -147,6 +155,23 @@ public class CsarHandlerTest { } + @Test + public void testLoadingOfPolicyModelFromCsar() + throws CsarHandlerException, IOException, SdcArtifactInstallerException, SdcToscaParserException { + CsarHandler csar = new CsarHandler(buildFakeSdcNotification(), "test-controller", "/tmp/csar-handler-tests"); + csar.save(buildFakeSdcResut()); + String policyModelYaml = csar.getPolicyModelYaml().get(); + assertTrue(policyModelYaml.contains("tosca_simple_yaml_1_1")); + } + + @Test + public void testLoadingOfNonexistentPolicyModelFromCsar() + throws CsarHandlerException, IOException, SdcArtifactInstallerException, SdcToscaParserException { + CsarHandler csar = new CsarHandler(buildFakeSdcNotification(), "test-controller", "/tmp/csar-handler-tests"); + csar.save(buildFakeSdcResultWithoutPolicyModel()); + assertFalse(csar.getPolicyModelYaml().isPresent()); + } + @Test public void testDoubleSave() throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { diff --git a/src/test/resources/example/sdc/service-without-policy.csar b/src/test/resources/example/sdc/service-without-policy.csar new file mode 100644 index 000000000..20c4eef65 Binary files /dev/null and b/src/test/resources/example/sdc/service-without-policy.csar differ -- cgit 1.2.3-korg From 92cc4185fca63ddd882be5bcd9d4a626b627164f Mon Sep 17 00:00:00 2001 From: sebdet Date: Tue, 12 Mar 2019 15:08:11 +0100 Subject: Add unit tests Add unit tests and fix code to support them, columns modified and csar installer fixed as well Issue-ID: CLAMP-306 Change-Id: I946ef1aa957ca36bbb00357308ac67a3f07dcdce Signed-off-by: sebdet --- extra/sql/bulkload/create-tables.sql | 4 +- .../clamp/clds/tosca/ToscaYamlToJsonConvertor.java | 10 ++- .../org/onap/clamp/loop/CsarInstallerImpl.java | 81 ++++++++------------- src/main/java/org/onap/clamp/loop/Loop.java | 2 +- .../policy/microservice/MicroServicePolicy.java | 15 +++- .../controller/installer/CsarInstallerItCase.java | 18 +++-- .../sdc/controller/installer/CsarHandlerTest.java | 2 +- .../org/onap/clamp/loop/CsarInstallerItCase.java | 48 +++++++++--- .../example/sdc/service-Simsfoimap0112.csar | Bin 52391 -> 52568 bytes 9 files changed, 100 insertions(+), 80 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/extra/sql/bulkload/create-tables.sql b/extra/sql/bulkload/create-tables.sql index 6d490c305..93c80cb36 100644 --- a/extra/sql/bulkload/create-tables.sql +++ b/extra/sql/bulkload/create-tables.sql @@ -16,7 +16,7 @@ create table loops ( name varchar(255) not null, - blueprint_yaml varchar(255) not null, + blueprint_yaml MEDIUMTEXT not null, dcae_blueprint_id varchar(255), dcae_deployment_id varchar(255), dcae_deployment_status_url varchar(255), @@ -36,7 +36,7 @@ create table micro_service_policies ( name varchar(255) not null, json_representation json not null, - policy_tosca varchar(255) not null, + policy_tosca MEDIUMTEXT not null, properties json, shared bit not null, primary key (name) diff --git a/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java b/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java index 784d95e94..8a172abbc 100644 --- a/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java +++ b/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java @@ -82,13 +82,15 @@ public class ToscaYamlToJsonConvertor { this.cldsDao = cldsDao; } - @SuppressWarnings("unchecked") public String parseToscaYaml(String yamlString) { Yaml yaml = new Yaml(); - LinkedHashMap loadedYaml = (LinkedHashMap) yaml.load(yamlString); - LinkedHashMap nodeTypes = new LinkedHashMap(); - LinkedHashMap dataNodes = new LinkedHashMap(); + LinkedHashMap loadedYaml = yaml.load(yamlString); + if (loadedYaml == null) { + return ""; + } + LinkedHashMap nodeTypes = new LinkedHashMap<>(); + LinkedHashMap dataNodes = new LinkedHashMap<>(); JSONObject jsonEditorObject = new JSONObject(); JSONObject jsonParentObject = new JSONObject(); JSONObject jsonTempObject = new JSONObject(); diff --git a/src/main/java/org/onap/clamp/loop/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/loop/CsarInstallerImpl.java index 9627445d6..6e12f2940 100644 --- a/src/main/java/org/onap/clamp/loop/CsarInstallerImpl.java +++ b/src/main/java/org/onap/clamp/loop/CsarInstallerImpl.java @@ -33,7 +33,6 @@ import java.util.Arrays; import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; -import java.util.Optional; import org.json.simple.parser.ParseException; import org.onap.clamp.clds.client.DcaeInventoryServices; @@ -53,6 +52,7 @@ import org.onap.clamp.policy.operational.OperationalPolicy; import org.onap.sdc.tosca.parser.enums.SdcTypes; import org.onap.sdc.toscaparser.api.NodeTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.yaml.snakeyaml.Yaml; @@ -71,63 +71,40 @@ public class CsarInstallerImpl implements CsarInstaller { public static final String MODEL_NAME_PREFIX = "Loop_"; @Autowired - protected LoopsRepository loopRepository; + LoopsRepository loopRepository; @Autowired - private BlueprintParser blueprintParser; + BlueprintParser blueprintParser; @Autowired - private ChainGenerator chainGenerator; + ChainGenerator chainGenerator; @Autowired DcaeInventoryServices dcaeInventoryService; - @Autowired - public void CsarInstallerImpl(LoopsRepository loopRepository, BlueprintParser blueprintParser, - ChainGenerator chainGenerator, DcaeInventoryServices dcaeInventoryService) { - this.loopRepository = loopRepository; - this.blueprintParser = blueprintParser; - this.chainGenerator = chainGenerator; - this.dcaeInventoryService = dcaeInventoryService; - } - @Override public boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException { boolean alreadyInstalled = true; for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) { alreadyInstalled = alreadyInstalled - && loopRepository.existsById(buildModelName(csar, blueprint.getValue())); + && loopRepository.existsById(Loop.generateLoopName(csar.getSdcNotification().getServiceName(), + csar.getSdcNotification().getServiceVersion(), + blueprint.getValue().getResourceAttached().getResourceInstanceName(), + blueprint.getValue().getBlueprintArtifactName())); } return alreadyInstalled; } - public static String buildModelName(CsarHandler csar, BlueprintArtifact artifact) { - - return (MODEL_NAME_PREFIX + "_" + csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + "_v" - + csar.getSdcNotification().getServiceVersion() + "_" - + artifact.getResourceAttached().getResourceInstanceName().replaceAll(" ", "") + "_" - + artifact.getBlueprintArtifactName().replace(".yaml", "")).replace('.', '_'); - } - - public static String buildOperationalPolicyName(CsarHandler csar, BlueprintArtifact artifact) { - - return (MODEL_NAME_PREFIX + "_" + csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + "_v" - + csar.getSdcNotification().getServiceVersion() + "_" - + artifact.getResourceAttached().getResourceInstanceName().replaceAll(" ", "") + "_" - + artifact.getBlueprintArtifactName().replace(".yaml", "")).replace('.', '_'); - } - @Override - @Transactional + @Transactional(propagation = Propagation.REQUIRED) public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException, InterruptedException, PolicyModelException { try { logger.info("Installing the CSAR " + csar.getFilePath()); for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) { logger.info("Processing blueprint " + blueprint.getValue().getBlueprintArtifactName()); - createLoopFromBlueprint(csar, blueprint.getValue()); + loopRepository.save(createLoopFromBlueprint(csar, blueprint.getValue())); } - createPolicyModel(csar); logger.info("Successfully installed the CSAR " + csar.getFilePath()); } catch (IOException e) { throw new SdcArtifactInstallerException("Exception caught during the Csar installation in database", e); @@ -136,15 +113,6 @@ public class CsarInstallerImpl implements CsarInstaller { } } - private void createPolicyModel(CsarHandler csar) throws PolicyModelException { - try { - Optional policyModelYaml = csar.getPolicyModelYaml(); - // save policy model into the database - } catch (IOException e) { - throw new PolicyModelException("TransformerException when decoding the YamlText", e); - } - } - private Loop createLoopFromBlueprint(CsarHandler csar, BlueprintArtifact blueprintArtifact) throws IOException, ParseException, InterruptedException { Loop newLoop = new Loop(); @@ -154,15 +122,8 @@ public class CsarInstallerImpl implements CsarInstaller { blueprintArtifact.getResourceAttached().getResourceInstanceName(), blueprintArtifact.getBlueprintArtifactName())); newLoop.setLastComputedState(LoopState.DESIGN); - for (MicroService microService : blueprintParser.getMicroServices(blueprintArtifact.getDcaeBlueprint())) { - newLoop.getMicroServicePolicies().add(new MicroServicePolicy(microService.getName(), - csar.getPolicyModelYaml().orElse(""), false, new JsonObject(), new HashSet<>(Arrays.asList(newLoop)))); - } - newLoop.setOperationalPolicies( - new HashSet<>(Arrays.asList(new OperationalPolicy(Policy.generatePolicyName("OPERATIONAL", - csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(), - blueprintArtifact.getResourceAttached().getResourceInstanceName(), - blueprintArtifact.getBlueprintArtifactName()), newLoop, new JsonObject())))); + newLoop.setMicroServicePolicies(createMicroServicePolicies(csar, blueprintArtifact, newLoop)); + newLoop.setOperationalPolicies(createOperationalPolicies(csar, blueprintArtifact, newLoop)); // Set SVG XML computed // newLoop.setSvgRepresentation(svgRepresentation); newLoop.setGlobalPropertiesJson(createGlobalPropertiesJson(csar, blueprintArtifact)); @@ -172,6 +133,24 @@ public class CsarInstallerImpl implements CsarInstaller { return newLoop; } + private HashSet createOperationalPolicies(CsarHandler csar, BlueprintArtifact blueprintArtifact, + Loop newLoop) { + return new HashSet<>(Arrays.asList(new OperationalPolicy(Policy.generatePolicyName("OPERATIONAL", + csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(), + blueprintArtifact.getResourceAttached().getResourceInstanceName(), + blueprintArtifact.getBlueprintArtifactName()), newLoop, new JsonObject()))); + } + + private HashSet createMicroServicePolicies(CsarHandler csar, + BlueprintArtifact blueprintArtifact, Loop newLoop) throws IOException { + HashSet newSet = new HashSet<>(); + for (MicroService microService : blueprintParser.getMicroServices(blueprintArtifact.getDcaeBlueprint())) { + newSet.add(new MicroServicePolicy(microService.getName(), csar.getPolicyModelYaml().orElse(""), false, + new HashSet<>(Arrays.asList(newLoop)))); + } + return newSet; + } + private JsonObject createGlobalPropertiesJson(CsarHandler csar, BlueprintArtifact blueprintArtifact) { JsonObject globalProperties = new JsonObject(); globalProperties.add("dcaeDeployParameters", getAllBlueprintParametersInJson(blueprintArtifact)); diff --git a/src/main/java/org/onap/clamp/loop/Loop.java b/src/main/java/org/onap/clamp/loop/Loop.java index cc7f1803c..a4cd86d07 100644 --- a/src/main/java/org/onap/clamp/loop/Loop.java +++ b/src/main/java/org/onap/clamp/loop/Loop.java @@ -91,7 +91,7 @@ public class Loop implements Serializable { @Column(columnDefinition = "json", name = "model_properties_json") private JsonObject modelPropertiesJson; - @Column(nullable = false, name = "blueprint_yaml") + @Column(columnDefinition = "MEDIUMTEXT", nullable = false, name = "blueprint_yaml") private String blueprint; @Expose diff --git a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java index 7ebe0edb2..857a3d747 100644 --- a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java +++ b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java @@ -39,6 +39,8 @@ import javax.persistence.Table; import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; import org.hibernate.annotations.TypeDefs; +import org.onap.clamp.clds.tosca.ToscaYamlToJsonConvertor; +import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.dao.model.jsontype.StringJsonUserType; import org.onap.clamp.loop.Loop; import org.onap.clamp.policy.Policy; @@ -66,7 +68,7 @@ public class MicroServicePolicy implements Serializable, Policy { @Column(name = "shared", nullable = false) private Boolean shared; - @Column(name = "policy_tosca", nullable = false) + @Column(columnDefinition = "MEDIUMTEXT", name = "policy_tosca", nullable = false) private String policyTosca; @Expose @@ -81,13 +83,22 @@ public class MicroServicePolicy implements Serializable, Policy { // serialization } + public MicroServicePolicy(String name, String policyTosca, Boolean shared, Set usedByLoops) { + this.name = name; + this.policyTosca = policyTosca; + this.shared = shared; + this.jsonRepresentation = JsonUtils.GSON_JPA_MODEL + .fromJson(new ToscaYamlToJsonConvertor(null).parseToscaYaml(policyTosca), JsonObject.class); + this.usedByLoops = usedByLoops; + } + public MicroServicePolicy(String name, String policyTosca, Boolean shared, JsonObject jsonRepresentation, Set usedByLoops) { this.name = name; this.policyTosca = policyTosca; this.shared = shared; - this.jsonRepresentation = jsonRepresentation; this.usedByLoops = usedByLoops; + this.jsonRepresentation = jsonRepresentation; } @Override diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java index ce8a493da..d3a823fbc 100644 --- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -30,6 +30,7 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -68,7 +69,6 @@ import org.springframework.test.context.junit4.SpringRunner; @ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller") public class CsarInstallerItCase { - private static final String CSAR_ARTIFACT_NAME = "testArtifact.csar"; private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec"; private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"; @@ -89,7 +89,8 @@ public class CsarInstallerItCase { blueprintMap.put("resourceid", blueprintArtifact); Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap); Mockito.when(blueprintArtifact.getDcaeBlueprint()).thenReturn( - IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/not-recognized.yaml"))); + IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/not-recognized.yaml"), + StandardCharsets.UTF_8)); csarInstaller.installTheCsar(csarHandler); fail("Should have raised an SdcArtifactInstallerException"); } @@ -164,16 +165,17 @@ public class CsarInstallerItCase { csarInstaller.installTheCsar(csar); CldsModel cldsModel1 = verifyClosedLoopModelLoadedInDb(csar, "tca.yaml"); JSONAssert.assertEquals( - IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca.json")), + IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca.json"), + StandardCharsets.UTF_8), cldsModel1.getPropText(), true); CldsModel cldsModel2 = verifyClosedLoopModelLoadedInDb(csar, "tca_2.yaml"); - JSONAssert.assertEquals( - IOUtils - .toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca-2.json")), - cldsModel2.getPropText(), true); + JSONAssert.assertEquals(IOUtils.toString( + ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca-2.json"), + StandardCharsets.UTF_8), cldsModel2.getPropText(), true); CldsModel cldsModel3 = verifyClosedLoopModelLoadedInDb(csar, "tca_3.yaml"); JSONAssert.assertEquals( - IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca.json")), + IOUtils.toString(ResourceFileUtil.getResourceAsStream("example/sdc/blueprint-dcae/prop-text-for-tca.json"), + StandardCharsets.UTF_8), cldsModel3.getPropText(), true); } diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java index 544c8ca1d..e00887478 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java @@ -161,7 +161,7 @@ public class CsarHandlerTest { CsarHandler csar = new CsarHandler(buildFakeSdcNotification(), "test-controller", "/tmp/csar-handler-tests"); csar.save(buildFakeSdcResut()); String policyModelYaml = csar.getPolicyModelYaml().get(); - assertTrue(policyModelYaml.contains("tosca_simple_yaml_1_1")); + assertTrue(policyModelYaml.contains("tosca_simple_yaml_1_0_0")); } @Test diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java index 6bfee4c41..d1a4bdc56 100644 --- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java @@ -23,8 +23,7 @@ package org.onap.clamp.loop; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.assertj.core.api.Assertions.assertThat; import java.io.IOException; import java.util.ArrayList; @@ -33,6 +32,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import javax.transaction.Transactional; + import org.apache.commons.lang3.RandomStringUtils; import org.json.JSONException; import org.junit.Test; @@ -62,13 +63,16 @@ import org.springframework.test.context.junit4.SpringRunner; @ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller-new") public class CsarInstallerItCase { - private static final String CSAR_ARTIFACT_NAME = "testArtifact.csar"; + private static final String CSAR_ARTIFACT_NAME = "example/sdc/service-Simsfoimap0112.csar"; private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec"; private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"; private static final String RESOURCE_INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName1"; private static final String RESOURCE_INSTANCE_NAME_RESOURCE2 = "ResourceInstanceName2"; + @Autowired + private LoopsRepository loopsRepo; + @Autowired private CsarInstaller csarInstaller; @@ -113,10 +117,6 @@ public class CsarInstallerItCase { "example/sdc/blueprint-dcae/tca_3.yaml", "tca_3.yaml", INVARIANT_SERVICE_UUID); blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); - SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); - ISdcCsarHelper sdcHelper = factory.getSdcCsarHelper(Thread.currentThread().getContextClassLoader() - .getResource("example/sdc/service-Simsfoimap0112.csar").getFile()); - // Build fake csarhandler Mockito.when(csarHandler.getSdcNotification()).thenReturn(notificationData); // Build fake csar Helper @@ -125,28 +125,54 @@ public class CsarInstallerItCase { Mockito.when(data.getValue("name")).thenReturn(generatedName); Mockito.when(notificationData.getServiceName()).thenReturn(generatedName); Mockito.when(csarHelper.getServiceMetadata()).thenReturn(data); + + // Create helper based on real csar to test policy yaml and global properties + // set + SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); + ISdcCsarHelper sdcHelper = factory + .getSdcCsarHelper(Thread.currentThread().getContextClassLoader().getResource(CSAR_ARTIFACT_NAME).getFile()); Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(sdcHelper); + // Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); - Mockito.when(csarHandler.getPolicyModelYaml()).thenReturn(Optional.ofNullable("")); + Mockito.when(csarHandler.getPolicyModelYaml()) + .thenReturn(Optional.ofNullable(ResourceFileUtil.getResourceAsString("tosca/tca-policy-test.yaml"))); return csarHandler; } + @Test + @Transactional public void testIsCsarAlreadyDeployedTca() throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException, InterruptedException, PolicyModelException { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csarHandler = buildFakeCsarHandler(generatedName); - assertFalse(csarInstaller.isCsarAlreadyDeployed(csarHandler)); + assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isFalse(); csarInstaller.installTheCsar(csarHandler); - assertTrue(csarInstaller.isCsarAlreadyDeployed(csarHandler)); + assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isTrue(); } @Test + @Transactional public void testInstallTheCsarTca() throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException, JSONException, InterruptedException, PolicyModelException { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csar = buildFakeCsarHandler(generatedName); csarInstaller.installTheCsar(csar); - + assertThat(loopsRepo + .existsById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca.yaml"))) + .isTrue(); + assertThat(loopsRepo + .existsById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca_3.yaml"))) + .isTrue(); + assertThat(loopsRepo + .existsById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE2, "tca_2.yaml"))) + .isTrue(); + // Verify now that policy and json representation, global properties are well + // set + Loop loop = loopsRepo + .findById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca.yaml")).get(); + + assertThat(loop.getModelPropertiesJson().get("serviceDetails")).isNotNull(); + assertThat(loop.getModelPropertiesJson().get("resourceDetails")).isNotNull(); } } diff --git a/src/test/resources/example/sdc/service-Simsfoimap0112.csar b/src/test/resources/example/sdc/service-Simsfoimap0112.csar index ea0e44a22..8c16d31ee 100644 Binary files a/src/test/resources/example/sdc/service-Simsfoimap0112.csar and b/src/test/resources/example/sdc/service-Simsfoimap0112.csar differ -- cgit 1.2.3-korg From ed8e2a71029088ecc7f29b484ef1b7a71d536604 Mon Sep 17 00:00:00 2001 From: xg353y Date: Wed, 3 Apr 2019 15:54:21 +0200 Subject: Update Csar handler Update Csar handler, return the content of policies.yaml concatenateed with data.yaml while getting the policy model yaml. Issue-ID: CLAMP-261 Change-Id: I8ef7bcb9b2daaea37f13ca9d3ad9f38b889d6041 Signed-off-by: xg353y --- .../clds/sdc/controller/installer/CsarHandler.java | 23 +- .../designer/scripts/propertyController.js | 6 +- .../org/onap/clamp/loop/CsarInstallerItCase.java | 26 +- .../example/sdc/expected-result/policy-data.yaml | 2008 ++++++++++++++++++++ .../example/sdc/service-Vloadbalancerms-csar.csar | Bin 0 -> 112273 bytes 5 files changed, 2058 insertions(+), 5 deletions(-) create mode 100644 src/test/resources/example/sdc/expected-result/policy-data.yaml create mode 100755 src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java index b65a994ac..65d5592a8 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -42,6 +42,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apache.commons.io.IOUtils; +import org.codehaus.plexus.util.StringUtils; import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.onap.sdc.api.notification.IArtifactInfo; @@ -71,6 +72,8 @@ public class CsarHandler { public static final String RESOURCE_INSTANCE_NAME_PREFIX = "/Artifacts/Resources/"; public static final String RESOURCE_INSTANCE_NAME_SUFFIX = "/Deployment/"; public static final String POLICY_DEFINITION_NAME_SUFFIX = "Definitions/policies.yml"; + public static final String DATA_DEFINITION_NAME_SUFFIX = "Definitions/data.yml"; + public static final String DATA_DEFINITION_KEY = "data_types:"; public CsarHandler(INotificationData iNotif, String controller, String clampCsarPath) throws CsarHandlerException { this.sdcNotification = iNotif; @@ -159,6 +162,10 @@ public class CsarHandler { return csarFilePath; } + public String setFilePath(String newPath) { + return csarFilePath = newPath; + } + public synchronized ISdcCsarHelper getSdcCsarHelper() { return sdcCsarHelper; } @@ -171,12 +178,26 @@ public class CsarHandler { return mapOfBlueprints; } + /** + * Get the whole policy model Yaml. It combines the content of policies.yaml and data.yaml. + * @return The whole policy model yaml + * @throws IOException The IO Exception + */ public Optional getPolicyModelYaml() throws IOException { String result = null; try (ZipFile zipFile = new ZipFile(csarFilePath)) { ZipEntry entry = zipFile.getEntry(POLICY_DEFINITION_NAME_SUFFIX); if (entry != null) { - result = IOUtils.toString(zipFile.getInputStream(entry), StandardCharsets.UTF_8); + ZipEntry data = zipFile.getEntry(DATA_DEFINITION_NAME_SUFFIX); + if (data != null) { + String dataStr = IOUtils.toString(zipFile.getInputStream(data), StandardCharsets.UTF_8); + String dataStrWithoutHeader = dataStr.substring(dataStr.indexOf(DATA_DEFINITION_KEY)); + String policyStr = IOUtils.toString(zipFile.getInputStream(entry), StandardCharsets.UTF_8); + StringUtils.chomp(policyStr); + result = policyStr.concat(dataStrWithoutHeader); + } else { + result = IOUtils.toString(zipFile.getInputStream(entry), StandardCharsets.UTF_8); + } } else { logger.info("Policy model not found inside the CSAR file: " + csarFilePath); } diff --git a/src/main/resources/META-INF/resources/designer/scripts/propertyController.js b/src/main/resources/META-INF/resources/designer/scripts/propertyController.js index 2b32f4d26..507d6bc80 100644 --- a/src/main/resources/META-INF/resources/designer/scripts/propertyController.js +++ b/src/main/resources/META-INF/resources/designer/scripts/propertyController.js @@ -72,7 +72,9 @@ function getMsProperty(type) { var msProperties = cl_props["microServicePolicies"]; for (p in msProperties) { if (msProperties[p]["name"] == type) { - return JSON.parse(JSON.stringify(msProperties[p]["properties"])); + if (msProperties[p]["properties"] !== null && msProperties[p]["properties"] !== undefined) { + return JSON.parse(JSON.stringify(msProperties[p]["properties"])); + } } } return null; @@ -82,7 +84,7 @@ function getMsUI(type) { var msProperties = cl_props["microServicePolicies"]; for (p in msProperties) { if (msProperties[p]["name"] == type) { - return JSON.parse(JSON.stringify(msProperties[p]["jsonRepresentation"])); + return JSON.parse(JSON.stringify(msProperties[p]["jsonRepresentation"])); } } return null; diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java index 2578f68ed..0cadef9ae 100644 --- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java @@ -36,6 +36,7 @@ import javax.transaction.Transactional; import org.apache.commons.lang3.RandomStringUtils; import org.json.JSONException; +import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; @@ -47,6 +48,7 @@ import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact; import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller; import org.onap.clamp.clds.util.ResourceFileUtil; +import org.onap.sdc.api.notification.IArtifactInfo; import org.onap.sdc.api.notification.INotificationData; import org.onap.sdc.api.notification.IResourceInstance; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; @@ -55,6 +57,7 @@ import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; import org.onap.sdc.toscaparser.api.elements.Metadata; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @@ -63,7 +66,7 @@ import org.springframework.test.context.junit4.SpringRunner; @ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller-new") public class CsarInstallerItCase { - private static final String CSAR_ARTIFACT_NAME = "example/sdc/service-Simsfoimap0112.csar"; + private static final String CSAR_ARTIFACT_NAME = "example/sdc/service-Vloadbalancerms-csar.csar"; private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec"; private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"; @@ -129,8 +132,9 @@ public class CsarInstallerItCase { // Create helper based on real csar to test policy yaml and global properties // set SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); + String path = Thread.currentThread().getContextClassLoader().getResource(CSAR_ARTIFACT_NAME).getFile(); ISdcCsarHelper sdcHelper = factory - .getSdcCsarHelper(Thread.currentThread().getContextClassLoader().getResource(CSAR_ARTIFACT_NAME).getFile()); + .getSdcCsarHelper(path); Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(sdcHelper); // Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); @@ -139,6 +143,24 @@ public class CsarInstallerItCase { return csarHandler; } + @Test + @Transactional + public void testGetPolicyModelYaml() throws IOException, SdcToscaParserException, CsarHandlerException { + INotificationData notificationData = Mockito.mock(INotificationData.class); + IArtifactInfo serviceArtifacts = Mockito.mock(IArtifactInfo.class); + Mockito.when(serviceArtifacts.getArtifactType()).thenReturn("TOSCA_CSAR"); + List serviceArtifactsList = new ArrayList<>(); + serviceArtifactsList.add(serviceArtifacts); + Mockito.when(notificationData.getServiceArtifacts()).thenReturn(serviceArtifactsList); + + CsarHandler csarHandler = new CsarHandler(notificationData, "", ""); + csarHandler.setFilePath(Thread.currentThread().getContextClassLoader() + .getResource(CSAR_ARTIFACT_NAME).getFile()); + Optional testyaml = csarHandler.getPolicyModelYaml(); + Assert.assertEquals(testyaml, Optional.ofNullable(ResourceFileUtil + .getResourceAsString("example/sdc/expected-result/policy-data.yaml"))); + } + @Test @Transactional public void testIsCsarAlreadyDeployedTca() throws SdcArtifactInstallerException, SdcToscaParserException, diff --git a/src/test/resources/example/sdc/expected-result/policy-data.yaml b/src/test/resources/example/sdc/expected-result/policy-data.yaml new file mode 100644 index 000000000..7f2c4847b --- /dev/null +++ b/src/test/resources/example/sdc/expected-result/policy-data.yaml @@ -0,0 +1,2008 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- data.yml +policy_types: + tosca.policies.Root: + description: The TOSCA Policy Type all other TOSCA Policy Types derive from + tosca.policies.Placement: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern placement of TOSCA nodes or groups of nodes. + tosca.policies.Scaling: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern scaling of TOSCA nodes or groups of nodes. + tosca.policies.Update: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern update of TOSCA nodes or groups of nodes. + tosca.policies.Performance: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to declare performance requirements for TOSCA nodes or groups of nodes. + org.openecomp.policies.placement.Antilocate: + derived_from: tosca.policies.Placement + description: My placement policy for separation based upon container type value + properties: + name: + type: string + description: The name of the policy + required: false + status: SUPPORTED + container_type: + type: string + description: container type + required: false + status: SUPPORTED + constraints: + - valid_values: + - host + - region + - compute + org.openecomp.policies.placement.Colocate: + derived_from: tosca.policies.Placement + description: Keep associated nodes (groups of nodes) based upon affinity value + properties: + name: + type: string + description: The name of the policy + required: false + status: SUPPORTED + affinity: + type: string + description: affinity + required: true + status: SUPPORTED + constraints: + - valid_values: + - host + - region + - compute + org.openecomp.policies.placement.valet.Diversity: + derived_from: tosca.policies.Placement + description: Valet Diversity + properties: + level: + type: string + description: diversity + required: false + default: host + status: SUPPORTED + constraints: + - valid_values: + - host + - rack + org.openecomp.policies.placement.valet.Exclusivity: + derived_from: tosca.policies.Placement + description: Valet Exclusivity + properties: + level: + type: string + description: exclusivity + required: false + default: host + status: SUPPORTED + constraints: + - valid_values: + - host + - rack + org.openecomp.policies.placement.valet.Affinity: + derived_from: tosca.policies.Placement + description: Valet Affinity + properties: + level: + type: string + description: affinity + required: false + default: host + status: SUPPORTED + constraints: + - valid_values: + - host + - rack + org.openecomp.policies.scaling.Fixed: + derived_from: tosca.policies.Scaling + properties: + quantity: + description: the exact number of instances to keep up + type: integer + required: true + org.openecomp.policies.External: + derived_from: tosca.policies.Root + description: externally managed policy (for example, type="network assignment", source="Policy Manager", name="route target") + properties: + source: + type: string + description: The name of the server that exposes the policy with predefined type and name. + required: false + type: + type: string + description: The type (category) of the policy same as it is defined in the source. + required: false + name: + type: string + description: The name of the policy, that related to specific type, same as it is defined in the source. + required: false + tosca.policies.Monitoring: + derived_from: tosca.policies.Root + description: A base policy type for all policies that governs monitoring provisioning + onap.policy.monitoring.cdap.tca.hi.lo.app: + derived_from: tosca.policies.Monitoring + version: 1.0.0 + properties: + tca_policy: + type: map + description: TCA Policy JSON + entry_schema: + type: onap.datatypes.monitoring.tca_policy +data_types: + tosca.datatypes.Root: + description: The TOSCA root Data Type all other TOSCA base Data Types derive from + integer: + derived_from: tosca.datatypes.Root + string: + derived_from: tosca.datatypes.Root + boolean: + derived_from: tosca.datatypes.Root + float: + derived_from: tosca.datatypes.Root + list: + derived_from: tosca.datatypes.Root + map: + derived_from: tosca.datatypes.Root + json: + derived_from: tosca.datatypes.Root + scalar-unit: + derived_from: tosca.datatypes.Root + scalar-unit.size: + derived_from: scalar-unit + scalar-unit.time: + derived_from: scalar-unit + scalar-unit.frequency: + derived_from: scalar-unit + tosca.datatypes.Credential: + derived_from: tosca.datatypes.Root + properties: + protocol: + type: string + required: false + token_type: + type: string + default: password + token: + type: string + keys: + type: map + required: false + entry_schema: + type: string + user: + type: string + required: false + org.openecomp.datatypes.PortMirroringConnectionPointDescription: + derived_from: tosca.datatypes.Root + properties: + nf_naming_code: + type: string + nfc_naming_code: + type: string + network_role: + type: string + pps_capacity: + type: string + nf_type: + type: string + description: deprecated + nfc_type: + type: string + description: deprecated + tosca.datatypes.TimeInterval: + derived_from: tosca.datatypes.Root + properties: + start_time: + type: timestamp + required: true + end_time: + type: timestamp + required: true + tosca.datatypes.network.NetworkInfo: + derived_from: tosca.datatypes.Root + properties: + network_name: + type: string + network_id: + type: string + addresses: + type: list + entry_schema: + type: string + tosca.datatypes.network.PortInfo: + derived_from: tosca.datatypes.Root + properties: + port_name: + type: string + port_id: + type: string + network_id: + type: string + mac_address: + type: string + addresses: + type: list + entry_schema: + type: string + tosca.datatypes.network.PortDef: + derived_from: integer + constraints: + - in_range: + - 1 + - 65535 + tosca.datatypes.network.PortSpec: + derived_from: tosca.datatypes.Root + properties: + protocol: + type: string + required: true + default: tcp + constraints: + - valid_values: + - udp + - tcp + - igmp + target: + type: tosca.datatypes.network.PortDef + target_range: + type: range + constraints: + - in_range: + - 1 + - 65535 + source: + type: tosca.datatypes.network.PortDef + source_range: + type: range + constraints: + - in_range: + - 1 + - 65535 + org.openecomp.datatypes.heat.network.AddressPair: + derived_from: tosca.datatypes.Root + description: MAC/IP address pairs + properties: + mac_address: + type: string + description: MAC address + required: false + status: SUPPORTED + ip_address: + type: string + description: IP address + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.subnet.HostRoute: + derived_from: tosca.datatypes.Root + description: Host route info for the subnet + properties: + destination: + type: string + description: The destination for static route + required: false + status: SUPPORTED + nexthop: + type: string + description: The next hop for the destination + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.AllocationPool: + derived_from: tosca.datatypes.Root + description: The start and end addresses for the allocation pool + properties: + start: + type: string + description: Start address for the allocation pool + required: false + status: SUPPORTED + end: + type: string + description: End address for the allocation pool + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.neutron.Subnet: + derived_from: tosca.datatypes.Root + description: A subnet represents an IP address block that can be used for assigning IP addresses to virtual instances + properties: + tenant_id: + type: string + description: The ID of the tenant who owns the network + required: false + status: SUPPORTED + enable_dhcp: + type: boolean + description: Set to true if DHCP is enabled and false if DHCP is disabled + required: false + default: true + status: SUPPORTED + ipv6_address_mode: + type: string + description: IPv6 address mode + required: false + status: SUPPORTED + constraints: + - valid_values: + - dhcpv6-stateful + - dhcpv6-stateless + - slaac + ipv6_ra_mode: + type: string + description: IPv6 RA (Router Advertisement) mode + required: false + status: SUPPORTED + constraints: + - valid_values: + - dhcpv6-stateful + - dhcpv6-stateless + - slaac + value_specs: + type: map + description: Extra parameters to include in the request + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + allocation_pools: + type: list + description: The start and end addresses for the allocation pools + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.AllocationPool + subnetpool: + type: string + description: The name or ID of the subnet pool + required: false + status: SUPPORTED + dns_nameservers: + type: list + description: A specified set of DNS name servers to be used + required: false + default: [] + status: SUPPORTED + entry_schema: + type: string + host_routes: + type: list + description: The gateway IP address + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.subnet.HostRoute + ip_version: + type: integer + description: The gateway IP address + required: false + default: 4 + status: SUPPORTED + constraints: + - valid_values: + - '4' + - '6' + name: + type: string + description: The name of the subnet + required: false + status: SUPPORTED + prefixlen: + type: integer + description: Prefix length for subnet allocation from subnet pool + required: false + status: SUPPORTED + constraints: + - greater_or_equal: 0 + cidr: + type: string + description: The CIDR + required: false + status: SUPPORTED + gateway_ip: + type: string + description: The gateway IP address + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.novaServer.network.PortExtraProperties: + derived_from: tosca.datatypes.Root + description: Nova server network expand properties for port + properties: + port_security_enabled: + type: boolean + description: Flag to enable/disable port security on the port + required: false + status: SUPPORTED + mac_address: + type: string + description: MAC address to give to this port + required: false + status: SUPPORTED + admin_state_up: + type: boolean + description: The administrative state of this port + required: false + default: true + status: SUPPORTED + qos_policy: + type: string + description: The name or ID of QoS policy to attach to this port + required: false + status: SUPPORTED + allowed_address_pairs: + type: list + description: Additional MAC/IP address pairs allowed to pass through the port + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.AddressPair + binding:vnic_type: + type: string + description: The vnic type to be bound on the neutron port + required: false + status: SUPPORTED + constraints: + - valid_values: + - macvtap + - direct + - normal + value_specs: + type: map + description: Extra parameters to include in the request + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + org.openecomp.datatypes.heat.novaServer.network.AddressInfo: + derived_from: tosca.datatypes.network.NetworkInfo + description: Network addresses with corresponding port id + properties: + port_id: + type: string + description: Port id + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.neutron.port.FixedIps: + derived_from: tosca.datatypes.Root + description: subnet/ip_address + properties: + subnet: + type: string + description: Subnet in which to allocate the IP address for this port + required: false + status: SUPPORTED + ip_address: + type: string + description: IP address desired in the subnet for this port + required: false + status: SUPPORTED + subnet_id: + type: string + description: Subnet in which to allocate the IP address for this port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.FileInfo: + derived_from: tosca.datatypes.Root + description: Heat File Info + properties: + file: + type: string + description: The required URI string (relative or absolute) which can be used to locate the file + required: true + status: SUPPORTED + file_type: + type: string + description: The type of the file + required: true + status: SUPPORTED + constraints: + - valid_values: + - base + - env + - volume + - network + org.openecomp.datatypes.heat.contrail.network.rule.PortPairs: + derived_from: tosca.datatypes.Root + description: source and destination port pairs + properties: + start_port: + type: string + description: Start port + required: false + status: SUPPORTED + end_port: + type: string + description: End port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrail.network.rule.Rule: + derived_from: tosca.datatypes.Root + description: policy rule + properties: + src_ports: + type: list + description: Source ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs + protocol: + type: string + description: Protocol + required: false + status: SUPPORTED + dst_addresses: + type: list + description: Destination addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork + apply_service: + type: string + description: Service to apply + required: false + status: SUPPORTED + dst_ports: + type: list + description: Destination ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs + src_addresses: + type: list + description: Source addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork + direction: + type: string + description: Direction + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrail.network.rule.RuleList: + derived_from: tosca.datatypes.Root + description: list of policy rules + properties: + policy_rule: + type: list + description: Contrail network rule + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.Rule + org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork: + derived_from: tosca.datatypes.Root + description: source and destination addresses + properties: + virtual_network: + type: string + description: Virtual network + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule: + derived_from: tosca.datatypes.Root + description: Rules Pairs + properties: + remote_group_id: + type: string + description: The remote group ID to be associated with this security group rule + required: false + status: SUPPORTED + protocol: + type: string + description: The protocol that is matched by the security group rule + required: false + status: SUPPORTED + constraints: + - valid_values: + - tcp + - udp + - icmp + ethertype: + type: string + description: Ethertype of the traffic + required: false + default: IPv4 + status: SUPPORTED + constraints: + - valid_values: + - IPv4 + - IPv6 + port_range_max: + type: integer + description: 'The maximum port number in the range that is matched by the + security group rule. ' + required: false + status: SUPPORTED + constraints: + - in_range: + - 0 + - 65535 + remote_ip_prefix: + type: string + description: The remote IP prefix (CIDR) to be associated with this security group rule + required: false + status: SUPPORTED + remote_mode: + type: string + description: Whether to specify a remote group or a remote IP prefix + required: false + default: remote_ip_prefix + status: SUPPORTED + constraints: + - valid_values: + - remote_ip_prefix + - remote_group_id + direction: + type: string + description: The direction in which the security group rule is applied + required: false + default: ingress + status: SUPPORTED + constraints: + - valid_values: + - egress + - ingress + port_range_min: + type: integer + description: The minimum port number in the range that is matched by the security group rule. + required: false + status: SUPPORTED + constraints: + - in_range: + - 0 + - 65535 + org.openecomp.datatypes.heat.substitution.SubstitutionFiltering: + derived_from: tosca.datatypes.Root + description: Substitution Filter + properties: + substitute_service_template: + type: string + description: Substitute Service Template + required: true + status: SUPPORTED + index_value: + type: integer + description: Index value of the substitution service template runtime instance + required: false + default: 0 + status: SUPPORTED + constraints: + - greater_or_equal: 0 + count: + type: string + description: Count + required: false + default: 1 + status: SUPPORTED + scaling_enabled: + type: boolean + description: Indicates whether service scaling is enabled + required: false + default: true + status: SUPPORTED + mandatory: + type: boolean + description: Mandatory + required: false + default: true + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence: + derived_from: tosca.datatypes.Root + description: network policy refs data sequence + properties: + network_policy_refs_data_sequence_major: + type: integer + description: Network Policy ref data sequence Major + required: false + status: SUPPORTED + network_policy_refs_data_sequence_minor: + type: integer + description: Network Policy ref data sequence Minor + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData: + derived_from: tosca.datatypes.Root + description: network policy refs data + properties: + network_policy_refs_data_sequence: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence + description: Network Policy ref data sequence + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet: + derived_from: tosca.datatypes.Root + description: Network Ipam Ref Data Subnet + properties: + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len: + type: string + description: Network ipam refs data ipam subnets ip prefix len + required: false + status: SUPPORTED + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix: + type: string + description: Network ipam refs data ipam subnets ip prefix + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList: + derived_from: tosca.datatypes.Root + description: Network Ipam Ref Data Subnet List + properties: + network_ipam_refs_data_ipam_subnets_subnet: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet + description: Network ipam refs data ipam subnets + required: false + status: SUPPORTED + network_ipam_refs_data_ipam_subnets_addr_from_start: + type: string + description: Network ipam refs data ipam subnets addr from start + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData: + derived_from: tosca.datatypes.Root + description: Network Ipam Ref Data + properties: + network_ipam_refs_data_ipam_subnets: + type: list + description: Network ipam refs data ipam subnets + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList + org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork: + derived_from: tosca.datatypes.Root + description: source addresses + properties: + network_policy_entries_policy_rule_src_addresses_virtual_network: + type: string + description: Source addresses Virtual network + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork: + derived_from: tosca.datatypes.Root + description: destination addresses + properties: + network_policy_entries_policy_rule_dst_addresses_virtual_network: + type: string + description: Destination addresses Virtual network + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs: + derived_from: tosca.datatypes.Root + description: destination port pairs + properties: + network_policy_entries_policy_rule_dst_ports_start_port: + type: string + description: Start port + required: false + status: SUPPORTED + network_policy_entries_policy_rule_dst_ports_end_port: + type: string + description: End port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs: + derived_from: tosca.datatypes.Root + description: source port pairs + properties: + network_policy_entries_policy_rule_src_ports_start_port: + type: string + description: Start port + required: false + status: SUPPORTED + network_policy_entries_policy_rule_src_ports_end_port: + type: string + description: End port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList: + derived_from: tosca.datatypes.Root + description: Action List + properties: + network_policy_entries_policy_rule_action_list_simple_action: + type: string + description: Simple Action + required: false + status: SUPPORTED + network_policy_entries_policy_rule_action_list_apply_service: + type: list + description: Apply Service + required: false + status: SUPPORTED + entry_schema: + type: string + org.openecomp.datatypes.heat.contrailV2.network.rule.Rule: + derived_from: tosca.datatypes.Root + description: policy rule + properties: + network_policy_entries_policy_rule_dst_addresses: + type: list + description: Destination addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork + network_policy_entries_policy_rule_dst_ports: + type: list + description: Destination ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs + network_policy_entries_policy_rule_protocol: + type: string + description: Protocol + required: false + status: SUPPORTED + network_policy_entries_policy_rule_src_addresses: + type: list + description: Source addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork + network_policy_entries_policy_rule_direction: + type: string + description: Direction + required: false + status: SUPPORTED + network_policy_entries_policy_rule_src_ports: + type: list + description: Source ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs + network_policy_entries_policy_rule_action_list: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList + description: Action list + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList: + derived_from: tosca.datatypes.Root + description: list of policy rules + properties: + network_policy_entries_policy_rule: + type: list + description: Contrail network rule + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.Rule + org.openecomp.datatypes.heat.network.contrail.port.StaticRoute: + derived_from: tosca.datatypes.Root + description: static route + properties: + prefix: + type: string + description: Route prefix + required: false + status: SUPPORTED + next_hop: + type: string + description: Next hop + required: false + status: SUPPORTED + next_hop_type: + type: string + description: Next hop type + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.contrail.AddressPair: + derived_from: tosca.datatypes.Root + description: Address Pair + properties: + address_mode: + type: string + description: Address mode active-active or active-standy + required: false + status: SUPPORTED + constraints: + - valid_values: + - active-active + - active-standby + prefix: + type: string + description: IP address prefix + required: false + status: SUPPORTED + mac_address: + type: string + description: Mac address + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.contrail.InterfaceData: + derived_from: tosca.datatypes.Root + description: Interface Data + properties: + static_routes: + type: list + description: An ordered list of static routes to be added to this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute + virtual_network: + type: string + description: Virtual Network for this interface + required: true + status: SUPPORTED + allowed_address_pairs: + type: list + description: List of allowed address pair for this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.AddressPair + ip_address: + type: string + description: IP for this interface + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties: + derived_from: tosca.datatypes.Root + description: Virtual Machine Interface Properties. + properties: + virtual_machine_interface_properties_service_interface_type: + type: string + description: Service Interface Type. + required: false + status: SUPPORTED + org.openecomp.datatypes.Root: + derived_from: tosca.datatypes.Root + description: | + The ECOMP root Data Type all other Data Types derive from + properties: + supplemental_data: + type: map + entry_schema: + description: | + A placeholder for missing properties that would be included in future ecomp model versions. fromat : + type: string + org.openecomp.datatypes.AssignmentRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + is_required: + description: | + "true" indicates that assignment is required + type: boolean + default: false + required: true + count: + description: number of assignments required + type: integer + required: false + org.openecomp.datatypes.network.SubnetAssignments: + derived_from: org.openecomp.datatypes.Root + properties: + ip_network_address_plan: + type: string + required: false + description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network + dhcp_enabled: + type: boolean + required: false + description: \"true\" indicates the network has 1 or more policies + ip_version: + type: integer + constraints: + - valid_values: + - 4 + - 6 + required: true + description: The IP version of the subnet + cidr_mask: + type: integer + required: true + description: The default subnet CIDR mask + min_subnets_count: + type: integer + default: 1 + required: true + description: Quantity of subnets that must be initially assigned + org.openecomp.datatypes.network.IPv4SubnetAssignments: + derived_from: org.openecomp.datatypes.network.SubnetAssignments + properties: + use_ipv4: + type: boolean + required: true + description: Indicates IPv4 subnet assignments + org.openecomp.datatypes.network.IPv6SubnetAssignments: + derived_from: org.openecomp.datatypes.network.SubnetAssignments + properties: + use_ipv6: + type: boolean + required: true + description: Indicates IPv6 subnet assignments + org.openecomp.datatypes.network.NetworkAssignments: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_generated_network_assignment: + type: boolean + required: true + default: false + description: | + \"true\" indicates that the network assignments will be auto-generated by ECOMP \"false\" indicates operator-supplied Network assignments file upload is required (e.g. VID will present prompt to operator to upload operator-supplied Network assignments file). + is_shared_network: + type: boolean + required: true + description: \"true\" means this network is shared by multiple Openstack tenants + is_external_network: + type: boolean + required: true + default: false + description: | + \"true\" means this Contrail external network + ipv4_subnet_default_assignment: + type: org.openecomp.datatypes.network.IPv4SubnetAssignments + required: true + description: IPv4 defualt subnet assignments + ipv6_subnet_default_assignment: + type: org.openecomp.datatypes.network.IPv6SubnetAssignments + required: true + description: IPv6 defualt subnet assignments + related_networks: + type: list + required: false + description: Related Networks List. + entry_schema: + type: org.openecomp.datatypes.network.RelatedNetworksAssignments + is_trunked: + type: boolean + required: true + description: \"true\" indicates that network is trunked + default: false + org.openecomp.datatypes.network.ProviderNetwork: + derived_from: org.openecomp.datatypes.Root + properties: + is_provider_network: + type: boolean + required: true + description: \"true\" indicates that this a Neutron provider type of network + physical_network_name: + type: string + required: false + constraints: + - valid_values: + - Physnet41 + - Physnet42 + - Physnet43 + - Physnet44 + - Physnet21 + - Physnet22 + - sriovnet1 + - sriovnet2 + - oam + description: | + Identifies the NUMA processor cluster to which this physical network interface belongs. NUMA instance correlates to the first digit of the Physical Network Name suffix (e.g. \"01\" = NUMA 0, \"11\" = NUMA 1) + numa: + type: string + required: false + constraints: + - valid_values: + - NUMA 0 + - NUMA 1 + description: | + PNIC instance within the NUMA processor cluster PNIC Instance correlates to the second digit of the Physical Network Name suffix (e.g. "01" = PNIC 1, "02" = "PNIC 2) + pnic_instance: + type: integer + required: false + description: PNIC instance within the NUMA processor cluster + org.openecomp.datatypes.network.NetworkFlows: + derived_from: org.openecomp.datatypes.Root + properties: + is_network_policy: + type: boolean + required: false + default: false + description: \"true\" indicates the network has 1 or more policies + network_policy: + type: string + required: false + description: 'Identifies the specific Cloud network policy that must be applied + to this network (source: from Policy Manager).' + is_bound_to_vpn: + type: boolean + required: false + default: false + description: \"true\" indicates the network has 1 or more vpn bindings + vpn_binding: + type: string + required: false + description: 'Identifies the specific VPN Binding entry in A&AI that must + be applied when creating this network (source: A&AI)' + org.openecomp.datatypes.network.VlanRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + vlan_range_plan: + type: string + required: true + description: reference to a vlan range plan + vlan_type: + type: string + required: true + constraints: + - valid_values: + - c-tag + - s-tag + description: identifies the vlan type (e.g., c-tag) + vlan_count: + type: integer + required: true + description: identifies the number of vlan tags to assign to the CP from the plan + org.openecomp.datatypes.network.IpRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + ip_version: + type: integer + required: true + constraints: + - valid_values: + - 4 + - 6 + ip_count: + description: identifies the number of ip address to assign to the CP from the plan + type: integer + required: false + floating_ip_count: + type: integer + required: false + subnet_role: + type: string + required: false + assingment_method: + type: string + required: true + constraints: + - valid_values: + - fixed + - dhcp + dhcp_enabled: + type: boolean + required: false + ip_count_required: + description: identifies the number of ip address to assign to the CP from the plan + type: org.openecomp.datatypes.AssignmentRequirements + required: false + floating_ip_count_required: + type: org.openecomp.datatypes.AssignmentRequirements + required: false + ip_address_plan_name: + type: string + required: false + vrf_name: + type: string + required: false + org.openecomp.datatypes.network.MacAssignments: + derived_from: org.openecomp.datatypes.Root + properties: + mac_range_plan: + type: string + required: true + description: reference to a MAC address range plan + mac_count: + type: integer + required: true + description: identifies the number of MAC addresses to assign to the CP from the plan + org.openecomp.datatypes.EcompHoming: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_selected_instance_node_target: + type: boolean + required: true + default: false + description: | + \"true\" indicates that the target deployment node for this instance will be auto-selected by ECOMP \"false\" indicates operator-supplied instance target deployment node required (e.g. VID will present a prompt to operator and collect the operator-selected target node for the deployment of this Network instance). + homing_policy: + type: string + required: false + description: Referenc to a service level homing policy that ECOMP will use for instance deployment target node + instance_node_target: + type: string + required: false + description: Instance target deployment node + org.openecomp.datatypes.EcompNaming: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_generated_naming: + type: boolean + required: true + default: true + description: | + \"true\" indicates that the name for the instance will be auto-generated by ECOMP. \"false\" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). + naming_policy: + type: string + required: false + description: Referenc to naming policy that ECOMP will use when the name is auto-generated + org.openecomp.datatypes.network.MacRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + mac_range_plan: + description: reference to a MAC address range plan + type: string + required: false + mac_count: + description: identifies the number of MAC addresses to assign to the CP from the plan + type: integer + required: false + mac_count_required: + description: identifies the number of MAC addresses to assign to the CP from the plan + type: org.openecomp.datatypes.AssignmentRequirements + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Address Pair IP. + properties: + ip_prefix: + type: string + description: IP Prefix. + required: false + status: SUPPORTED + ip_prefix_len: + type: integer + description: IP Prefix Len. + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Mac Address. + properties: + mac_address: + type: list + description: Mac Addresses List. + required: false + status: SUPPORTED + entry_schema: + type: string + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface VLAN Properties. + properties: + sub_interface_vlan_tag: + type: string + description: Sub Interface VLAN Tag. + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Address Pair. + properties: + address_mode: + type: string + description: Address Mode. + required: false + status: SUPPORTED + ip: + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp + description: IP. + required: false + status: SUPPORTED + mac: + type: string + description: Mac. + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Address Pairs. + properties: + allowed_address_pair: + type: list + description: Addresses pair List. + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair + org.openecomp.datatypes.Naming: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_generated_naming: + description: | + "true" indicates that the name for the instance will be auto-generated by ECOMP. "false" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). + type: boolean + default: true + required: true + naming_policy: + description: Reference to naming policy that ECOMP will use when the name is auto-generated + type: string + required: false + instance_name: + description: indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). + type: string + required: false + org.openecomp.datatypes.flavors.ComputeFlavor: + derived_from: tosca.datatypes.Root + properties: + num_cpus: + type: integer + disk_size: + type: scalar-unit.size + mem_size: + type: scalar-unit.size + org.openecomp.datatypes.flavors.LicenseFlavor: + derived_from: tosca.datatypes.Root + properties: + feature_group_uuid: + type: string + org.openecomp.datatypes.flavors.VendorInfo: + derived_from: tosca.datatypes.Root + properties: + manufacturer_reference_number: + type: string + vendor_model: + type: string + org.openecomp.datatypes.flavors.DeploymentFlavor: + derived_from: tosca.datatypes.Root + properties: + sp_part_number: + type: string + vendor_info: + type: org.openecomp.datatypes.flavors.VendorInfo + compute_flavor: + type: org.openecomp.datatypes.flavors.ComputeFlavor + license_flavor: + type: org.openecomp.datatypes.flavors.LicenseFlavor + required: false + org.openecomp.datatypes.ImageInfo: + derived_from: tosca.datatypes.Root + properties: + software_version: + type: string + file_name: + type: string + file_hash: + type: string + description: checksum/signature + file_hash_type: + type: string + required: false + default: md5 + org.openecomp.datatypes.network.RelatedNetworksAssignments: + derived_from: org.openecomp.datatypes.Root + properties: + related_network_role: + type: string + description: The network role of the related network, sharing provider network. + required: false + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string + constraints: + - valid_values: + - static + - dynamic + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + logical_node_requirements: + type: map + entry_schema: + type: string + required: false + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + requirement: + type: string + required: false + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + address: + type: string + required: false + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: + - ipv4 + - ipv6 + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + tosca.datatypes.nfv.AddressData: + properties: + address_type: + constraints: + - valid_values: + - mac_address + - ip_address + type: string + required: true + l2_address_data: + required: false + type: tosca.datatypes.nfv.L2AddressData + l3_address_data: + required: false + type: tosca.datatypes.nfv.L3AddressData + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: + - ethernet + - mpls + - odu2 + - ipv4 + - ipv6 + - pseudo_wire + flow_pattern: + type: string + required: false + constraints: + - valid_values: + - Line + - Tree + - Mesh + tosca.datatypes.nfv.VlFlavour: + derived_from: tosca.datatypes.Root + properties: + flavourId: + type: string + tosca.datatypes.nfv.ext.AddressPairs: + properties: + ip: + type: string + required: false + mac: + type: string + required: false + tosca.datatypes.nfv.ext.FloatingIP: + properties: + external_network: + type: string + required: false + ip_address: + type: string + required: false + tosca.datatypes.nfv.ext.LocationInfo: + properties: + availability_zone: + type: string + required: false + vimid: + type: integer + required: false + tenant: + type: string + required: false + tosca.datatypes.nfv.ext.HostRouteInfo: + properties: + destination: + type: string + required: false + nexthop: + type: string + required: false + tosca.datatypes.nfv.ext.InjectData: + properties: + file_name: + type: string + required: false + file_data: + type: string + required: false + tosca.datatypes.nfv.ext.zte.WatchDog: + properties: + enable_delay: + type: integer + required: false + action: + type: string + required: false + tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule: + properties: + scope: + type: string + required: false + affinity_antiaffinity: + type: string + required: false + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + watchdog: + type: string + required: true + vmBootUpTimeOut: + type: integer + required: false + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer + required: true + packet_delay_variation: + type: integer + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: + - 0.0 + - 1.0 + required: false + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: + type: map + entry_schema: + type: string + required: false + cidr: + type: string + required: false + networkName: + type: string + required: false + startIp: + type: string + required: false + endIp: + type: string + required: false + gatewayIp: + type: string + required: false + segmentationId: + type: integer + required: false + physicalNetwork: + type: string + required: false + networkType: + type: string + required: false + constraints: + - valid_values: + - VLAN + - VXLAN + dhcpEnabled: + type: boolean + required: false + vlanTransparent: + type: boolean + required: false + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string + required: false + max_scale_level: + type: integer + required: true + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + scaling_by_more_than_one_step_supported: + type: boolean + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + arbitrary_target_levels_supported: + type: boolean + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + causes: + type: list + entry_schema: + type: string + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: + - ethernet + - mpls + - odu2 + - ipv4 + - ipv6 + - pseudo-wire + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + onap.datatypes.monitoring.metricsPerEventName: + derived_from: tosca.datatypes.Root + properties: + controlLoopSchemaType: + constraints: + - valid_values: + - VM + - VNF + description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM + required: true + type: string + eventName: + description: Event name to which thresholds need to be applied + required: true + type: string + policyName: + description: TCA Policy Scope Name + required: true + type: string + policyScope: + description: TCA Policy Scope + required: true + type: string + policyVersion: + description: TCA Policy Scope Version + required: true + type: string + thresholds: + description: Thresholds associated with eventName + entry_schema: + type: onap.datatypes.monitoring.thresholds + required: true + type: list + onap.datatypes.monitoring.tca_policy: + derived_from: tosca.datatypes.Root + properties: + domain: + constraints: + - equal: measurementsForVfScaling + default: measurementsForVfScaling + description: Domain name to which TCA needs to be applied + required: true + type: string + metricsPerEventName: + description: Contains eventName and threshold details that need to be applied to given eventName + entry_schema: + type: onap.datatypes.monitoring.metricsPerEventName + required: true + type: list + onap.datatypes.monitoring.thresholds: + derived_from: tosca.datatypes.Root + properties: + closedLoopControlName: + description: Closed Loop Control Name associated with the threshold + required: true + type: string + closedLoopEventStatus: + constraints: + - valid_values: + - ONSET + - ABATED + description: Closed Loop Event Status of the threshold + required: true + type: string + direction: + constraints: + - valid_values: + - LESS + - LESS_OR_EQUAL + - GREATER + - GREATER_OR_EQUAL + - EQUAL + description: Direction of the threshold + required: true + type: string + fieldPath: + constraints: + - valid_values: + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage + - $.event.measurementsForVfScalingFields.meanRequestLatency + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed + - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value + description: Json field Path as per CEF message which needs to be analyzed for TCA + required: true + type: string + severity: + constraints: + - valid_values: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - NORMAL + description: Threshold Event Severity + required: true + type: string + thresholdValue: + description: Threshold value for the field Path inside CEF message + required: true + type: integer + version: + description: Version number associated with the threshold + required: true + type: string diff --git a/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar b/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar new file mode 100755 index 000000000..b3479ba96 Binary files /dev/null and b/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar differ -- cgit 1.2.3-korg From a6d476bfa4ae4350f979cc85d71ba98a6b6410b5 Mon Sep 17 00:00:00 2001 From: sebdet Date: Fri, 5 Apr 2019 18:00:51 +0200 Subject: Fix config policy Fix saving of config policy due to refactoring + fix missing model type in config policy Issue-ID: CLAMP-303 Change-Id: I863f3bb6b2acef8ed7bf534e142c1730b1493b67 Signed-off-by: sebdet --- .../onap/clamp/clds/sdc/controller/installer/BlueprintParser.java | 3 ++- .../onap/clamp/policy/microservice/MicroservicePolicyService.java | 7 ++++--- .../clamp/clds/sdc/controller/installer/BlueprintParserTest.java | 6 ++++-- src/test/resources/example/sdc/blueprint-dcae/tca.yaml | 1 + src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml | 1 + src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml | 1 + 6 files changed, 13 insertions(+), 6 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index f3654596c..93374fe11 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -87,7 +87,8 @@ public class BlueprintParser { } } String msName = theBiggestMicroServiceKey.toLowerCase().contains(HOLMES_PREFIX) ? HOLMES : TCA; - return Collections.singletonList(new MicroService(msName, "", "", "", "")); + return Collections + .singletonList(new MicroService(msName, "onap.policy.monitoring.cdap.tca.hi.lo.ap", "", "", "")); } String getName(Entry entry) { diff --git a/src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java b/src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java index b14e14503..59ddaa009 100644 --- a/src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java +++ b/src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java @@ -65,9 +65,10 @@ public class MicroservicePolicyService implements PolicyService updateMicroservicePolicyProperties(p, policy, loop)) - .orElse(new MicroServicePolicy(policy.getName(), policy.getModelType(), policy.getPolicyTosca(), - policy.getShared(), policy.getJsonRepresentation(), Sets.newHashSet(loop))); + return repository + .save(repository.findById(policy.getName()).map(p -> updateMicroservicePolicyProperties(p, policy, loop)) + .orElse(new MicroServicePolicy(policy.getName(), policy.getModelType(), policy.getPolicyTosca(), + policy.getShared(), policy.getJsonRepresentation(), Sets.newHashSet(loop)))); } private MicroServicePolicy updateMicroservicePolicyProperties(MicroServicePolicy oldPolicy, diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java index fbe6e63ca..93d71663e 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java @@ -163,7 +163,8 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceTCATest() { - MicroService tcaMS = new MicroService(BlueprintParser.TCA, "", "", "", ""); + MicroService tcaMS = new MicroService(BlueprintParser.TCA, "onap.policy.monitoring.cdap.tca.hi.lo.ap", "", "", + ""); List expected = Collections.singletonList(tcaMS); List actual = new BlueprintParser().fallbackToOneMicroService(microServiceBlueprintOldStyleTCA); @@ -173,7 +174,8 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceHolmesTest() { - MicroService holmesMS = new MicroService(BlueprintParser.HOLMES, "", "", "", ""); + MicroService holmesMS = new MicroService(BlueprintParser.HOLMES, "onap.policy.monitoring.cdap.tca.hi.lo.ap", "", + "", ""); List expected = Collections.singletonList(holmesMS); List actual = new BlueprintParser() diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml index 0ab831712..b1659073a 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -17,6 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id + policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.ap cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml index f73119fb6..55901368b 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml @@ -166,4 +166,5 @@ node_templates: properties: policy_id: get_input: policy_id + policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.ap diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml index 0ab831712..b1659073a 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml @@ -17,6 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id + policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.ap cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: -- cgit 1.2.3-korg From 919ef9dc0a2f392868533e498897b12fe0faa321 Mon Sep 17 00:00:00 2001 From: sebdet Date: Mon, 8 Apr 2019 18:32:26 +0200 Subject: Create submit route Create required components for Submit route in camel + unit tests + Policy payload generation + emulator feature for new policy api Issue-ID: CLAMP-303 Change-Id: If9033cfa3f4e346e2cbd7f891baff1f2c04a40a2 Signed-off-by: sebdet --- .../onap/clamp/clds/config/CamelConfiguration.java | 6 + .../sdc/controller/installer/BlueprintParser.java | 2 +- .../policy/operational/OperationalPolicy.java | 14 +- .../resources/clds/camel/rest/clamp-api-v2.xml | 81 ++++++++--- .../resources/clds/camel/routes/flexible-flow.xml | 149 +++++++++++++++++++-- .../controller/installer/BlueprintParserTest.java | 6 +- .../microservice/OperationalPolicyPayloadTest.java | 8 +- .../resources/example/sdc/blueprint-dcae/tca.yaml | 2 +- .../example/sdc/blueprint-dcae/tca_2.yaml | 2 +- .../example/sdc/blueprint-dcae/tca_3.yaml | 2 +- src/test/resources/http-cache/third_party_proxy.py | 26 +++- 11 files changed, 251 insertions(+), 47 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/config/CamelConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CamelConfiguration.java index f10565049..c3b24bc81 100644 --- a/src/main/java/org/onap/clamp/clds/config/CamelConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/CamelConfiguration.java @@ -21,14 +21,19 @@ */ package org.onap.clamp.clds.config; +import org.apache.camel.CamelContext; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.rest.RestBindingMode; import org.onap.clamp.clds.util.ClampVersioning; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class CamelConfiguration extends RouteBuilder { + @Autowired + CamelContext camelContext; + @Override public void configure() { restConfiguration().component("servlet").bindingMode(RestBindingMode.json).jsonDataFormat("json-gson") @@ -38,5 +43,6 @@ public class CamelConfiguration extends RouteBuilder { .apiProperty("api.version", ClampVersioning.getCldsVersionFromProps()) .apiProperty("base.path", "/restservices/clds/"); // .apiProperty("cors", "true"); + camelContext.setTracing(true); } } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index 93374fe11..5a8ccca91 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -88,7 +88,7 @@ public class BlueprintParser { } String msName = theBiggestMicroServiceKey.toLowerCase().contains(HOLMES_PREFIX) ? HOLMES : TCA; return Collections - .singletonList(new MicroService(msName, "onap.policy.monitoring.cdap.tca.hi.lo.ap", "", "", "")); + .singletonList(new MicroService(msName, "onap.policy.monitoring.cdap.tca.hi.lo.app", "", "", "")); } String getName(Entry entry) { diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java index b6b591db2..1859a4d6e 100644 --- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java +++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java @@ -31,8 +31,7 @@ import com.google.gson.JsonObject; import com.google.gson.annotations.Expose; import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; +import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -182,15 +181,20 @@ public class OperationalPolicy implements Serializable, Policy { return (new Yaml()).dump(jsonMap); } - public List createGuardPolicyPayloads() { - List result = new ArrayList<>(); + /** + * Return a map containing all Guard policies indexed by Guard policy Name. + * + * @return The Guards map + */ + public Map createGuardPolicyPayloads() { + Map result = new HashMap<>(); JsonObject guard = new JsonObject(); JsonElement guardsList = this.getConfigurationsJson().get("guard_policies"); for (Entry guardElem : guardsList.getAsJsonObject().entrySet()) { guard.addProperty("policy-id", guardElem.getKey()); guard.add("contents", guardElem.getValue()); - result.add(new GsonBuilder().create().toJson(guard)); + result.put(guardElem.getKey(), new GsonBuilder().create().toJson(guard)); } return result; } diff --git a/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/src/main/resources/clds/camel/rest/clamp-api-v2.xml index c17595e18..76f45881a 100644 --- a/src/main/resources/clds/camel/rest/clamp-api-v2.xml +++ b/src/main/resources/clds/camel/rest/clamp-api-v2.xml @@ -102,35 +102,82 @@ + message="Receive SUBMIT request for loop: ${body}" /> - - - - + + + ${header.LoopObject.getMicroServicePolicies()} - + + ${body} + + + + false + + + + + true + + + + + + + ${header.LoopObject.getOperationalPolicies()} + + + ${body} + + + false - - - + + + true - - ${body.createPolicyPayload()} - - + + + + ${header.operationalPolicy.createGuardPolicyPayloads().entrySet()} + + + ${body} + + + + + false + + + + + true + + + - + diff --git a/src/main/resources/clds/camel/routes/flexible-flow.xml b/src/main/resources/clds/camel/routes/flexible-flow.xml index b8244990b..15a247b5d 100644 --- a/src/main/resources/clds/camel/routes/flexible-flow.xml +++ b/src/main/resources/clds/camel/routes/flexible-flow.xml @@ -75,43 +75,168 @@ - - + + + + + + + + ${header.LoopObject} == null + + 404 + + + + + + + + + + + + ${header.microServicePolicy.createPolicyPayload()} + + - DELETE + POST + + + application/json - {{clamp.config.policy.url}}/policyTypes/${body.getModelType()}/versions/1.0.0/policies/${body.getName()} + {{clamp.config.policy.url}}/policyTypes/${header.microServicePolicy.getModelType()}/versions/1.0.0/policies + + + + + + null - + + DELETE + + + {{clamp.config.policy.url}}/policyTypes/${header.microServicePolicy.getModelType()}/versions/1.0.0/policies/${header.microServicePolicy.getName()} + + + uri="http4://policyhost:8085?throwExceptionOnFailure=${header.HttpQueryExceptionFlag}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false" /> + + + + + + + ${header.operationalPolicy.createPolicyPayload()} + + + + POST + + + application/json + + + {{clamp.config.policy.url}}/policyTypes/onap.policies.controloop.operational/versions/1.0.0/policies + + + + + + + + + + null + + + DELETE + + + {{clamp.config.policy.url}}/policyTypes/onap.policies.controloop.operational/versions/1.0.0/policies/${header.operationalPolicy.getName()} + + + + - - + + + + + ${header.guardPolicy.getValue()} + + POST + + application/json + - {{clamp.config.policy.url}}/policyTypes/${body.getModelType()}/versions/1.0.0/policies + {{clamp.config.policy.url}}/policyTypes/onap.policies.controlloop.Guard/versions/1.0.0/policies - + message="Policy Endpoint for operational ${header.CamelHttpMethod} ${header.CamelHttpUri}"> + + + + + + + null + + + DELETE + + + {{clamp.config.policy.url}}/policyTypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${header.guardPolicy.getKey()} + + + + uri="http4://policyhost:8085?throwExceptionOnFailure=${header.HttpQueryExceptionFlag}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false" /> \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java index 93d71663e..e86fb27d0 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java @@ -163,7 +163,7 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceTCATest() { - MicroService tcaMS = new MicroService(BlueprintParser.TCA, "onap.policy.monitoring.cdap.tca.hi.lo.ap", "", "", + MicroService tcaMS = new MicroService(BlueprintParser.TCA, "onap.policy.monitoring.cdap.tca.hi.lo.app", "", "", ""); List expected = Collections.singletonList(tcaMS); @@ -174,8 +174,8 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceHolmesTest() { - MicroService holmesMS = new MicroService(BlueprintParser.HOLMES, "onap.policy.monitoring.cdap.tca.hi.lo.ap", "", - "", ""); + MicroService holmesMS = new MicroService(BlueprintParser.HOLMES, "onap.policy.monitoring.cdap.tca.hi.lo.app", + "", "", ""); List expected = Collections.singletonList(holmesMS); List actual = new BlueprintParser() diff --git a/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java index 1f57422c5..739708ca7 100644 --- a/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java +++ b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java @@ -29,7 +29,7 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import java.io.IOException; -import java.util.List; +import java.util.Map; import org.junit.Test; import org.onap.clamp.clds.util.ResourceFileUtil; @@ -53,12 +53,12 @@ public class OperationalPolicyPayloadTest { ResourceFileUtil.getResourceAsString("tosca/operational-policy-properties.json"), JsonObject.class); OperationalPolicy policy = new OperationalPolicy("testPolicy", null, jsonConfig); - List guardsList = policy.createGuardPolicyPayloads(); + Map guardsList = policy.createGuardPolicyPayloads(); JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/guard1-policy-payload.json"), - guardsList.get(0), false); + guardsList.get("guard1"), false); JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/guard2-policy-payload.json"), - guardsList.get(1), false); + guardsList.get("guard2"), false); } } diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml index b1659073a..b2bf8bb96 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -17,7 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.ap + policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.app cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml index 55901368b..fb042575b 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml @@ -166,5 +166,5 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.ap + policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.app diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml index b1659073a..b2bf8bb96 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml @@ -17,7 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.ap + policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.app cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: diff --git a/src/test/resources/http-cache/third_party_proxy.py b/src/test/resources/http-cache/third_party_proxy.py index 30f510752..f19aa0da4 100755 --- a/src/test/resources/http-cache/third_party_proxy.py +++ b/src/test/resources/http-cache/third_party_proxy.py @@ -171,7 +171,7 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): with open(cached_file_content, 'w') as f: f.write(jsonGenerated) return True - elif (self.path.startswith("/pdp/api/") and http_type == "PUT" or http_type == "DELETE") or (self.path.startswith("/pdp/api/policyEngineImport") and http_type == "POST"): + elif (self.path.startswith("/pdp/api/") and (http_type == "PUT" or http_type == "DELETE")) or (self.path.startswith("/pdp/api/policyEngineImport") and http_type == "POST"): print "self.path start with /pdp/api/, copying body to response ..." if not os.path.exists(cached_file_folder): os.makedirs(cached_file_folder, 0777) @@ -180,6 +180,25 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): with open(cached_file_content, 'w+') as f: f.write(self.data_string) return True + elif self.path.startswith("/policy/api/v1/policyTypes/") and http_type == "POST": + print "self.path start with POST new policy API /pdp/api/, copying body to response ..." + if not os.path.exists(cached_file_folder): + os.makedirs(cached_file_folder, 0777) + with open(cached_file_header, 'w+') as f: + f.write("{\"Content-Length\": \"" + str(len(self.data_string)) + "\", \"Content-Type\": \""+str(self.headers['Content-Type'])+"\"}") + with open(cached_file_content, 'w+') as f: + f.write(self.data_string) + return True + elif self.path.startswith("/policy/api/v1/policyTypes/") and http_type == "DELETE": + print "self.path start with DELETE new policy API /policy/api/v1/policyTypes/ ..." + if not os.path.exists(cached_file_folder): + os.makedirs(cached_file_folder, 0777) + + with open(cached_file_header, 'w+') as f: + f.write("{\"Content-Length\": \"" + str(len("")) + "\", \"Content-Type\": \""+str("")+"\"}") + with open(cached_file_content, 'w+') as f: + f.write(self.data_string) + return True else: return False @@ -337,7 +356,10 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): cached_file_header="" print("\n\n\nGot a DELETE for %s " % self.path) self.check_credentials() - self.data_string = self.rfile.read(int(self.headers['Content-Length'])) + if self.headers.get('Content-Length') is not None: + self.data_string = self.rfile.read(int(self.headers['Content-Length'])) + else: + self.data_string = "empty generated" print("self.headers:\n %s" % self.headers) is_special = self._execute_content_generated_cases("DELETE") -- cgit 1.2.3-korg From c6917dc3b68748ac0f201a56a9f5b83231e151c1 Mon Sep 17 00:00:00 2001 From: sebdet Date: Tue, 9 Apr 2019 11:16:42 +0200 Subject: Remove the license issue Remove license issue in csar that was generated by SDC Issue-ID: CLAMP-338 Change-Id: Iad23cd23b7c5ad79d2443188f461614b169f8d85 Signed-off-by: sebdet --- .../example/sdc/service-Vloadbalancerms-csar.csar | Bin 112273 -> 110668 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar b/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar index b3479ba96..b5fe39d31 100755 Binary files a/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar and b/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar differ -- cgit 1.2.3-korg From 12700b07bf4850f7de97b69e9b2fcc96e0540b21 Mon Sep 17 00:00:00 2001 From: sebdet Date: Thu, 25 Apr 2019 12:24:45 +0200 Subject: Rework code for policy type Rework unit tests + test resources and code for policy type renaming Issue-ID: CLAMP-356 Change-Id: Id64c620b42347d6f5535523f33a0a04a54a60fa2 Signed-off-by: sebdet --- .../sdc/controller/installer/BlueprintParser.java | 2 +- .../clamp/clds/tosca/ToscaSchemaConstants.java | 2 +- .../controller/installer/BlueprintParserTest.java | 6 +++--- .../microservice/MicroServicePayloadTest.java | 2 +- .../resources/example/sdc/blueprint-dcae/tca.yaml | 2 +- .../example/sdc/blueprint-dcae/tca_2.yaml | 2 +- .../example/sdc/blueprint-dcae/tca_3.yaml | 2 +- .../example/sdc/expected-result/policy-data.yaml | 2 +- .../example/sdc/service-Vloadbalancerms-csar.csar | Bin 110668 -> 110734 bytes .../tosca/micro-service-policy-payload.json | 2 +- src/test/resources/tosca/tosca_example.yaml | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index 5dcffd61c..809904f22 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -89,7 +89,7 @@ public class BlueprintParser { } String msName = theBiggestMicroServiceKey.toLowerCase().contains(HOLMES_PREFIX) ? HOLMES : TCA; return Collections - .singletonList(new MicroService(msName, "onap.policy.monitoring.cdap.tca.hi.lo.app", "", "", "")); + .singletonList(new MicroService(msName, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", "", "")); } String getName(Entry entry) { diff --git a/src/main/java/org/onap/clamp/clds/tosca/ToscaSchemaConstants.java b/src/main/java/org/onap/clamp/clds/tosca/ToscaSchemaConstants.java index f1344723e..595b1805e 100644 --- a/src/main/java/org/onap/clamp/clds/tosca/ToscaSchemaConstants.java +++ b/src/main/java/org/onap/clamp/clds/tosca/ToscaSchemaConstants.java @@ -58,7 +58,7 @@ public class ToscaSchemaConstants { public static final String PATTERN = "pattern"; // Prefix for policy nodes - public static final String POLICY_NODE = "onap.policy."; + public static final String POLICY_NODE = "onap.policies."; // Prefix for data nodes public static final String POLICY_DATA = "onap.datatypes."; diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java index e86fb27d0..211bb3906 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java @@ -163,8 +163,8 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceTCATest() { - MicroService tcaMS = new MicroService(BlueprintParser.TCA, "onap.policy.monitoring.cdap.tca.hi.lo.app", "", "", - ""); + MicroService tcaMS = new MicroService(BlueprintParser.TCA, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", + "", ""); List expected = Collections.singletonList(tcaMS); List actual = new BlueprintParser().fallbackToOneMicroService(microServiceBlueprintOldStyleTCA); @@ -174,7 +174,7 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceHolmesTest() { - MicroService holmesMS = new MicroService(BlueprintParser.HOLMES, "onap.policy.monitoring.cdap.tca.hi.lo.app", + MicroService holmesMS = new MicroService(BlueprintParser.HOLMES, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", "", ""); List expected = Collections.singletonList(holmesMS); diff --git a/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java b/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java index c511f3415..68925a913 100644 --- a/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java +++ b/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java @@ -37,7 +37,7 @@ public class MicroServicePayloadTest { @Test public void testPayloadConstruction() throws IOException { - MicroServicePolicy policy = new MicroServicePolicy("testPolicy", "onap.policy.monitoring.cdap.tca.hi.lo.app", + MicroServicePolicy policy = new MicroServicePolicy("testPolicy", "onap.policies.monitoring.cdap.tca.hi.lo.app", ResourceFileUtil.getResourceAsString("tosca/tosca_example.yaml"), false, new HashSet<>()); policy.setProperties(JsonUtils.GSON.fromJson( ResourceFileUtil.getResourceAsString("tosca/micro-service-policy-properties.json"), JsonObject.class)); diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml index b2bf8bb96..edaa0be28 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -17,7 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.app + policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml index fb042575b..c834b1b93 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml @@ -166,5 +166,5 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.app + policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml index b2bf8bb96..edaa0be28 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml @@ -17,7 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policy.monitoring.cdap.tca.hi.lo.app + policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: diff --git a/src/test/resources/example/sdc/expected-result/policy-data.yaml b/src/test/resources/example/sdc/expected-result/policy-data.yaml index 7f2c4847b..2d3153112 100644 --- a/src/test/resources/example/sdc/expected-result/policy-data.yaml +++ b/src/test/resources/example/sdc/expected-result/policy-data.yaml @@ -135,7 +135,7 @@ policy_types: tosca.policies.Monitoring: derived_from: tosca.policies.Root description: A base policy type for all policies that governs monitoring provisioning - onap.policy.monitoring.cdap.tca.hi.lo.app: + onap.policies.monitoring.cdap.tca.hi.lo.app: derived_from: tosca.policies.Monitoring version: 1.0.0 properties: diff --git a/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar b/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar index b5fe39d31..727ef16b7 100755 Binary files a/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar and b/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar differ diff --git a/src/test/resources/tosca/micro-service-policy-payload.json b/src/test/resources/tosca/micro-service-policy-payload.json index 01d6d275c..2de06b083 100644 --- a/src/test/resources/tosca/micro-service-policy-payload.json +++ b/src/test/resources/tosca/micro-service-policy-payload.json @@ -4,7 +4,7 @@ "policies": [ { "testPolicy": { - "type": "onap.policy.monitoring.cdap.tca.hi.lo.app", + "type": "onap.policies.monitoring.cdap.tca.hi.lo.app", "version": "1.0.0", "metadata": { "policy-id": "testPolicy" diff --git a/src/test/resources/tosca/tosca_example.yaml b/src/test/resources/tosca/tosca_example.yaml index 699cffd7e..b0119f887 100644 --- a/src/test/resources/tosca/tosca_example.yaml +++ b/src/test/resources/tosca/tosca_example.yaml @@ -3,7 +3,7 @@ policy_types: onap.policies.Monitoring: derived_from: tosca.policies.Root description: a base policy type for all policies that governs monitoring provisioning - onap.policy.monitoring.cdap.tca.hi.lo.app: + onap.policies.monitoring.cdap.tca.hi.lo.app: derived_from: onap.policies.Monitoring version: 1.0.0 properties: -- cgit 1.2.3-korg From 109ccd46e27c1a5a244ab15c75e324e7d1a98291 Mon Sep 17 00:00:00 2001 From: sebdet Date: Thu, 2 May 2019 18:18:58 +0200 Subject: Rework the Model Json Rework the model Json returned by the backend to the UI Issue-ID: CLAMP-365 Change-Id: I8b4e24292d62140b4b2e105d8b18042f84e1fd38 Signed-off-by: sebdet --- .../org/onap/clamp/loop/LoopCsarInstaller.java | 52 +- .../portfolios/operational_policy_window.html | 7 +- .../designer/scripts/OperationalPolicyCtrl.js | 212 ++-- .../designer/scripts/propertyController.js | 4 +- .../org/onap/clamp/loop/CsarInstallerItCase.java | 18 +- .../example/sdc/expected-result/policy-data.yaml | 1033 ++++++++++++++++++-- .../example/sdc/service-Vloadbalancerms-csar.csar | Bin 110734 -> 0 bytes .../example/sdc/service_Vloadbalancerms_csar.csar | Bin 0 -> 115690 bytes src/test/resources/tosca/model-properties.json | 123 +++ 9 files changed, 1212 insertions(+), 237 deletions(-) delete mode 100755 src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar create mode 100644 src/test/resources/example/sdc/service_Vloadbalancerms_csar.csar create mode 100644 src/test/resources/tosca/model-properties.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/loop/LoopCsarInstaller.java b/src/main/java/org/onap/clamp/loop/LoopCsarInstaller.java index 0124aa704..ad13ad34d 100644 --- a/src/main/java/org/onap/clamp/loop/LoopCsarInstaller.java +++ b/src/main/java/org/onap/clamp/loop/LoopCsarInstaller.java @@ -25,7 +25,6 @@ package org.onap.clamp.loop; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import com.google.gson.Gson; import com.google.gson.JsonObject; import java.io.IOException; @@ -51,9 +50,13 @@ import org.onap.clamp.clds.util.drawing.SvgFacade; import org.onap.clamp.policy.Policy; import org.onap.clamp.policy.microservice.MicroServicePolicy; import org.onap.clamp.policy.operational.OperationalPolicy; -import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; +import org.onap.sdc.tosca.parser.api.IEntityDetails; +import org.onap.sdc.tosca.parser.elements.queries.EntityQuery; +import org.onap.sdc.tosca.parser.elements.queries.TopologyTemplateQuery; +import org.onap.sdc.tosca.parser.enums.EntityTemplateType; import org.onap.sdc.tosca.parser.enums.SdcTypes; import org.onap.sdc.toscaparser.api.NodeTemplate; +import org.onap.sdc.toscaparser.api.Property; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @@ -183,22 +186,49 @@ public class LoopCsarInstaller implements CsarInstaller { return globalProperties; } - private JsonObject createModelPropertiesJson(CsarHandler csar) { - JsonObject modelProperties = new JsonObject(); - Gson gson = new Gson(); - ISdcCsarHelper csarHelper = csar.getSdcCsarHelper(); - modelProperties.add("serviceDetails", - gson.fromJson(gson.toJson(csarHelper.getServiceMetadataAllProperties()), JsonObject.class)); + private static JsonObject createVfModuleProperties(CsarHandler csar) { + JsonObject vfModuleProps = new JsonObject(); + // Loop on all Groups defined in the service (VFModule entries type: + // org.openecomp.groups.VfModule) + for (IEntityDetails entity : csar.getSdcCsarHelper().getEntity( + EntityQuery.newBuilder(EntityTemplateType.GROUP).build(), + TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE).build(), false)) { + // Get all metadata info + JsonObject allVfProps = (JsonObject) JsonUtils.GSON.toJsonTree(entity.getMetadata().getAllProperties()); + vfModuleProps.add(entity.getMetadata().getAllProperties().get("vfModuleModelName"), allVfProps); + // now append the properties section so that we can also have isBase, + // volume_group, etc ... fields under the VFmodule name + for (Entry additionalProp : entity.getProperties().entrySet()) { + allVfProps.add(additionalProp.getValue().getName(), + JsonUtils.GSON.toJsonTree(additionalProp.getValue().getValue())); + } + } + return vfModuleProps; + } + private static JsonObject createServicePropertiesByType(CsarHandler csar) { JsonObject resourcesProp = new JsonObject(); + // Iterate on all types defined in the tosca lib for (SdcTypes type : SdcTypes.values()) { JsonObject resourcesPropByType = new JsonObject(); - for (NodeTemplate nodeTemplate : csarHelper.getServiceNodeTemplateBySdcType(type)) { - resourcesPropByType.add(nodeTemplate.getName(), JsonUtils.GSON_JPA_MODEL - .fromJson(new Gson().toJson(nodeTemplate.getMetaData().getAllProperties()), JsonObject.class)); + // For each type, get the metadata of each nodetemplate + for (NodeTemplate nodeTemplate : csar.getSdcCsarHelper().getServiceNodeTemplateBySdcType(type)) { + resourcesPropByType.add(nodeTemplate.getName(), + JsonUtils.GSON.toJsonTree(nodeTemplate.getMetaData().getAllProperties())); } resourcesProp.add(type.getValue(), resourcesPropByType); } + return resourcesProp; + } + + private static JsonObject createModelPropertiesJson(CsarHandler csar) { + JsonObject modelProperties = new JsonObject(); + // Add service details + modelProperties.add("serviceDetails", JsonUtils.GSON.fromJson( + JsonUtils.GSON.toJson(csar.getSdcCsarHelper().getServiceMetadataAllProperties()), JsonObject.class)); + // Add properties details for each type, VfModule, VF, VFC, .... + JsonObject resourcesProp = createServicePropertiesByType(csar); + resourcesProp.add("VFModule", createVfModuleProperties(csar)); modelProperties.add("resourceDetails", resourcesProp); return modelProperties; } diff --git a/src/main/resources/META-INF/resources/designer/partials/portfolios/operational_policy_window.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/operational_policy_window.html index b7864eca9..798f18f60 100644 --- a/src/main/resources/META-INF/resources/designer/partials/portfolios/operational_policy_window.html +++ b/src/main/resources/META-INF/resources/designer/partials/portfolios/operational_policy_window.html @@ -2,7 +2,7 @@ ============LICENSE_START======================================================= ONAP CLAMP ================================================================================ - Copyright (C) 2017-2018 AT&T Intellectual Property. All rights + Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); @@ -291,7 +291,7 @@ label { Type
-
diff --git a/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js b/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js index 2c3f83e41..0cf4c2e3a 100644 --- a/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js +++ b/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -55,7 +55,6 @@ app } console.log("No active formId found !"); } - function add_one_more() { console.log("add one more"); @@ -154,10 +153,9 @@ app policiesArray.push(policyProperties); // Now get the Guard if ($("#" + this.id + " #enableGuardPolicy").is(':checked')) { - var guardPolicyBody = serializeElement($("#" + this.id + " .guardProperties")); - var guardPolicyId = guardPolicyBody['id']; - delete guardPolicyBody['id']; - + var guardPolicyBody = serializeElement($("#" + this.id + " .guardProperties")); + var guardPolicyId = guardPolicyBody['id']; + delete guardPolicyBody['id']; allPolicies['guard_policies'][guardPolicyId] = guardPolicyBody; $scope.guard_ids.push(guardPolicyId); } @@ -190,9 +188,14 @@ app var formNum = add_one_more(); $.each($('.policyProperties').find('.form-control'), function(opPolicyPropIndex, opPolicyPropValue) { - $("#formId"+formNum+" .policyProperties").find("#"+opPolicyPropValue.id).val( + $("#formId" + formNum + " .policyProperties").find("#" + opPolicyPropValue.id).val( allPolicies['operational_policy']['policies'][opPolicyElemIndex][opPolicyPropValue.id]); }); + $.each($('.policyTarget').find('.form-control'), function(opPolicyTargetPropIndex, opPolicyTargetPropValue) { + + $("#formId" + formNum + " .policyTarget").find("#" + opPolicyTargetPropValue.id).val( + allPolicies['operational_policy']['policies'][opPolicyElemIndex]['target'][opPolicyTargetPropValue.id]); + }); // update the current tab label $("#go_properties_tab" + formNum).text( allPolicies['operational_policy']['policies'][opPolicyElemIndex]['id']); @@ -201,9 +204,11 @@ app if (guardElemValue.recipe === $($("#formId" + formNum + " #recipe")[0]).val()) { // Found one, set all guard prop - $.each($('.guardProperties').find('.form-control'), function(guardPropElemIndex,guardPropElemValue) { - guardElemValue['id'] = guardElemId; - $("#formId"+formNum+" .guardProperties").find("#"+guardPropElemValue.id).val( + $.each($('.guardProperties').find('.form-control'), function(guardPropElemIndex, + guardPropElemValue) { + + guardElemValue['id'] = guardElemId; + $("#formId" + formNum + " .guardProperties").find("#" + guardPropElemValue.id).val( guardElemValue[guardPropElemValue.id]); }); // And finally enable the flag @@ -212,108 +217,69 @@ app }); }); } - - $scope.initTargetResourceId = function() { - - var recipe = $(event.target).val(); - - var type = $(event.target).val(); - - $("#modelName").val(""); - $("#modelInvariantId").val(""); - $("#modelVersionId").val(""); - $("#modelVersion").val(""); - $("#modelCustomizationId").val(""); - $('#resourceId').empty(); - $("#resourceId") - .append( - $('').val("") - .html("-- choose an option --")); - $("#resourceId").append( - $('').val("Other:") - .html("Other:")); - if (type == "VM" || type == "" || type == "VNF" ) { - $("#metadata *").prop('disabled',true); - } - - var resourceVnf = getResourceDetailsProperty(); - if (type == "VNF" - && (null !== resourceVnf || undefined !== resourceVnf)) { - for ( var prop in resourceVnf) { - var name = resourceVnf[prop]["name"]; - $("#resourceId").append( - $('') - .val(name).html(name)); - } - - } - var resourceVFModule = getResourceDetailsVfModuleProperty(); - if (type == "VFModule" - && (null !== resourceVFModule || undefined !== resourceVFModule)) { - if (recipe == 'VF Module Create' - || recipe == 'VF Module Delete') { - for ( var prop in resourceVFModule) { - if (resourceVFModule[prop]["isBase"] == false) { - var name = resourceVFModule[prop]["name"]; - $("#resourceId").append( - $('') - .val(name) - .html(name)); - } - } - } - else - { - for ( var prop in resourceVFModule) { - var name = resourceVFModule[prop]["name"]; - $("#resourceId").append( - $('') - .val(name).html(name)); - } - } - } - } - - $scope.changeTargetResourceId = function() { - $("#modelName").val(""); - $("#modelInvariantId").val(""); - $("#modelVersionId").val(""); - $("#modelVersion").val(""); - $("#modelCustomizationId").val(""); - var resourceVFModule = getResourceDetailsVfModuleProperty(); - var type = $("#type").val(); - var recipe = $("#recipe").val(); - vfBaseName = $(event.target).val(); - if (type == "VFModule" - && (null !== resourceVFModule || undefined !== resourceVFModule) - && (recipe == 'VF Module Create' || recipe == 'VF Module Delete')) { - for ( var prop in resourceVFModule) { - var name = resourceVFModule[prop]["name"]; - if (name == vfBaseName) { - var vfModuleModelName = resourceVFModule[prop]["name"]; - $("#modelName").val( - vfModuleModelName); - var vfModuleModelInvariantUUID = resourceVFModule[prop]["invariantUUID"]; - $("#modelInvariantId").val( - vfModuleModelInvariantUUID); - var vfModuleModelUUID = resourceVFModule[prop]["UUID"]; - $("#modelVersionId").val( - vfModuleModelUUID); - var vfModuleModelVersion = resourceVFModule[prop]["version"]; - $("#modelVersion").val( - vfModuleModelVersion); - var vfModuleModelCustomizationUUID = resourceVFModule[prop]["customizationUUID"]; - $("#modelCustomizationId") - .val( - vfModuleModelCustomizationUUID); - } - } - } - else { - $("#metadata *").prop('disabled',true); - } - } - + $scope.initTargetResourceId = function(event) { + var formNum = $(event.target).closest('.formId').attr('id').substring(6); + + var type = $(event.target).val(); + var recipe = $("#formId" + formNum + "#recipe").val(); + $("#formId" + formNum + " #modelName").val(""); + $("#formId" + formNum + " #modelInvariantId").val(""); + $("#formId" + formNum + " #modelVersionId").val(""); + $("#formId" + formNum + " #modelVersion").val(""); + $("#formId" + formNum + " #modelCustomizationId").val(""); + $("#formId" + formNum + " #resourceId").empty(); + $("#formId" + formNum + " #resourceId").append($('').val("").html("-- choose an option --")); + if (type == "VM" || type == "" || type == "VNF") { + $("#formId" + formNum + " #metadata *").prop('disabled', true); + } + var resourceVnf = getResourceDetailsVfProperty(); + if (type == "VNF" && (null !== resourceVnf || undefined !== resourceVnf)) { + for ( var prop in resourceVnf) { + var name = resourceVnf[prop]["name"]; + $("#formId" + formNum + " #resourceId").append($('').val(name).html(name)); + } + } + var resourceVFModule = getResourceDetailsVfModuleProperty(); + if (type == "VFModule" && (null !== resourceVFModule || undefined !== resourceVFModule)) { + if (recipe == 'VF Module Create' || recipe == 'VF Module Delete') { + for ( var prop in resourceVFModule) { + if (resourceVFModule[prop]["isBase"] == false) { + $("#formId" + formNum + " #resourceId").append($('').val(resourceVFModule[prop]["vfModuleModelName"]).html(resourceVFModule[prop]["vfModuleModelName"])); + } + } + } else { + for ( var prop in resourceVFModule) { + $("#formId" + formNum + " #resourceId").append($('').val(resourceVFModule[prop]["vfModuleModelName"]).html(resourceVFModule[prop]["vfModuleModelName"])); + } + } + } + } + $scope.changeTargetResourceId = function(event) { + var formNum = $(event.target).closest('.formId').attr('id').substring(6); + $("#formId" + formNum +" #modelName").val(""); + $("#formId" + formNum +" #modelInvariantId").val(""); + $("#formId" + formNum +" #modelVersionId").val(""); + $("#formId" + formNum +" #modelVersion").val(""); + $("#formId" + formNum +" #modelCustomizationId").val(""); + var resourceVFModule = getResourceDetailsVfModuleProperty(); + var type = $("#formId" + formNum +" #type").val(); + var recipe = $("#formId" + formNum +" #recipe").val(); + if (type == "VFModule" && (null !== resourceVFModule || undefined !== resourceVFModule) + && (recipe == 'VF Module Create' || recipe == 'VF Module Delete')) { + for ( var prop in resourceVFModule) { + if (prop == $(event.target).val()) { + $("#formId" + formNum +" #modelName").val(resourceVFModule[prop]["vfModuleModelName"]); + $("#formId" + formNum +" #modelInvariantId").val(resourceVFModule[prop]["vfModuleModelInvariantUUID"]); + $("#formId" + formNum +" #modelVersionId").val(resourceVFModule[prop]["vfModuleModelUUID"]); + $("#formId" + formNum +" #modelVersion").val(resourceVFModule[prop]["vfModuleModelVersion"]); + $("#formId" + formNum +" #modelCustomizationId").val(resourceVFModule[prop]["vfModuleModelCustomizationUUID"]); + $("#formId" + formNum +" #metadata *").prop('disabled', false); + } + } + } else { + $("#formId" + formNum +" #metadata *").prop('disabled', true); + } + } $scope.changeGuardPolicyType = function() { var formItemActive = searchActiveFormId(); @@ -343,7 +309,8 @@ app $scope.init = function() { $(function() { - $scope.clname=getLoopName(); + + $scope.clname = getLoopName(); $("#add_one_more").click(function(event) { console.log("add one more"); @@ -359,17 +326,18 @@ app add_new_policy(); } $("#savePropsBtn").click(function(event) { + console.log("save properties triggered"); savePolicyLocally(); - for(var i = 0; i <= $scope.guard_ids.length; i++) { - for(var j = i; j <= $scope.guard_ids.length; j++) { - if(i != j && $scope.guard_ids[i] == $scope.guard_ids[j]) { - // duplacated guard policy id exist - alert("The guard policy ID should be unique."); - return; - } - } - } + for (var i = 0; i <= $scope.guard_ids.length; i++) { + for (var j = i; j <= $scope.guard_ids.length; j++) { + if (i != j && $scope.guard_ids[i] == $scope.guard_ids[j]) { + // duplacated guard policy id exist + alert("The guard policy ID should be unique."); + return; + } + } + } angular.element(document.getElementById('formSpan')).scope().submitForm(allPolicies); $("#close_button").click(); }); diff --git a/src/main/resources/META-INF/resources/designer/scripts/propertyController.js b/src/main/resources/META-INF/resources/designer/scripts/propertyController.js index 3902cf413..ee602b993 100644 --- a/src/main/resources/META-INF/resources/designer/scripts/propertyController.js +++ b/src/main/resources/META-INF/resources/designer/scripts/propertyController.js @@ -114,7 +114,7 @@ function setDeploymentStatusURL(deploymentStatusURL) { cl_props["dcaeDeploymentStatusUrl"] = deploymentStatusURL; } -function getResourceDetailsProperty() { +function getResourceDetailsVfProperty() { return cl_props["modelPropertiesJson"]["resourceDetails"]["VF"]; } @@ -126,4 +126,4 @@ function getLoopLogsArray() { return cl_props.loopLogs; } -module.exports = { getOperationalPolicyProperty,getGlobalProperty,getMsProperty,getMsUI,getLastUpdatedStatus,getDeploymentID,getDeploymentStatusURL,getResourceDetailsProperty,getResourceDetailsVfModuleProperty }; \ No newline at end of file +module.exports = { getOperationalPolicyProperty,getGlobalProperty,getMsProperty,getMsUI,getLastUpdatedStatus,getDeploymentID,getDeploymentStatusURL,getResourceDetailsVfProperty,getResourceDetailsVfModuleProperty }; \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java index 883945ebc..3bf85009a 100644 --- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java @@ -49,6 +49,7 @@ import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerExceptio import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact; import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller; +import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.clds.util.ResourceFileUtil; import org.onap.sdc.api.notification.IArtifactInfo; import org.onap.sdc.api.notification.INotificationData; @@ -57,6 +58,7 @@ import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; import org.onap.sdc.toscaparser.api.elements.Metadata; +import org.skyscreamer.jsonassert.JSONAssert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.test.context.SpringBootTest; @@ -69,7 +71,7 @@ import org.springframework.test.context.junit4.SpringRunner; @ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller-new") public class CsarInstallerItCase { - private static final String CSAR_ARTIFACT_NAME = "example/sdc/service-Vloadbalancerms-csar.csar"; + private static final String CSAR_ARTIFACT_NAME = "example/sdc/service_Vloadbalancerms_csar.csar"; private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec"; private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"; @@ -137,8 +139,7 @@ public class CsarInstallerItCase { // set SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); String path = Thread.currentThread().getContextClassLoader().getResource(CSAR_ARTIFACT_NAME).getFile(); - ISdcCsarHelper sdcHelper = factory - .getSdcCsarHelper(path); + ISdcCsarHelper sdcHelper = factory.getSdcCsarHelper(path); Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(sdcHelper); // Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); @@ -158,11 +159,11 @@ public class CsarInstallerItCase { Mockito.when(notificationData.getServiceArtifacts()).thenReturn(serviceArtifactsList); CsarHandler csarHandler = new CsarHandler(notificationData, "", ""); - csarHandler.setFilePath(Thread.currentThread().getContextClassLoader() - .getResource(CSAR_ARTIFACT_NAME).getFile()); + csarHandler + .setFilePath(Thread.currentThread().getContextClassLoader().getResource(CSAR_ARTIFACT_NAME).getFile()); Optional testyaml = csarHandler.getPolicyModelYaml(); - Assert.assertEquals(testyaml, Optional.ofNullable(ResourceFileUtil - .getResourceAsString("example/sdc/expected-result/policy-data.yaml"))); + Assert.assertEquals(testyaml, + Optional.ofNullable(ResourceFileUtil.getResourceAsString("example/sdc/expected-result/policy-data.yaml"))); } @Test @@ -178,6 +179,7 @@ public class CsarInstallerItCase { @Test @Transactional + @Rollback(value = false) public void testInstallTheCsarTca() throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException, JSONException, InterruptedException, PolicyModelException { String generatedName = RandomStringUtils.randomAlphanumeric(5); @@ -202,6 +204,8 @@ public class CsarInstallerItCase { assertThat(loop.getOperationalPolicies()).hasSize(1); assertThat(loop.getModelPropertiesJson().get("serviceDetails")).isNotNull(); assertThat(loop.getModelPropertiesJson().get("resourceDetails")).isNotNull(); + JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/model-properties.json"), + JsonUtils.GSON.toJson(loop.getModelPropertiesJson()), true); } } diff --git a/src/test/resources/example/sdc/expected-result/policy-data.yaml b/src/test/resources/example/sdc/expected-result/policy-data.yaml index 2d3153112..3cf5e975c 100644 --- a/src/test/resources/example/sdc/expected-result/policy-data.yaml +++ b/src/test/resources/example/sdc/expected-result/policy-data.yaml @@ -132,11 +132,11 @@ policy_types: type: string description: The name of the policy, that related to specific type, same as it is defined in the source. required: false - tosca.policies.Monitoring: + onap.policies.Monitoring: derived_from: tosca.policies.Root description: A base policy type for all policies that governs monitoring provisioning onap.policies.monitoring.cdap.tca.hi.lo.app: - derived_from: tosca.policies.Monitoring + derived_from: onap.policies.Monitoring version: 1.0.0 properties: tca_policy: @@ -144,6 +144,316 @@ policy_types: description: TCA Policy JSON entry_schema: type: onap.datatypes.monitoring.tca_policy + tosca.policies.nfv.InstantiationLevels: + derived_from: tosca.policies.Root + description: The InstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour and including default instantiation level in term of the number of VNFC instances to be created as defined in ETSI GS NFV-IFA 011 [1]. + properties: + levels: + type: map + description: Describes the various levels of resources that can be used to instantiate the VNF using this flavour. + required: true + entry_schema: + type: tosca.datatypes.nfv.InstantiationLevel + default_level: + type: string + description: The default instantiation level for this flavour. + required: false + tosca.policies.nfv.VduInstantiationLevels: + derived_from: tosca.policies.Root + description: The VduInstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour in term of the number of VNFC instances to be created from each vdu.Compute. as defined in ETSI GS NFV-IFA 011 [1] + properties: + levels: + type: map + description: Describes the Vdu.Compute levels of resources that can be used to instantiate the VNF using this flavour + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + targets: + - tosca.nodes.nfv.Vdu.Compute + tosca.policies.nfv.VirtualLinkInstantiationLevels: + derived_from: tosca.policies.Root + description: The VirtualLinkInstantiationLevels type is a policy type representing all the instantiation levels of virtual link resources to be instantiated within a deployment flavour as defined in ETSI GS NFV-IFA 011 [1]. + properties: + levels: + type: map + description: Describes the virtual link levels of resources that can be used to instantiate the VNF using this flavour. + required: true + entry_schema: + type: tosca.datatypes.nfv.VirtualLinkBitrateLevel + targets: + - tosca.nodes.nfv.VnfVirtualLink + tosca.policies.nfv.ScalingAspects: + derived_from: tosca.policies.Root + description: The ScalingAspects type is a policy type representing the scaling aspects used for horizontal scaling as defined in ETSI GS NFV-IFA 011 [1]. + properties: + aspects: + type: map + description: Describe maximum scale level for total number of scaling steps that can be applied to a particular aspect + required: true + entry_schema: + type: tosca.datatypes.nfv.ScalingAspect + tosca.policies.nfv.VduScalingAspectDeltas: + derived_from: tosca.policies.Root + description: The VduScalingAspectDeltas type is a policy type representing the Vdu.Compute detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + aspect: + type: string + description: Represents the scaling aspect to which this policy applies + required: true + deltas: + type: map + description: Describes the Vdu.Compute scaling deltas to be applied for every scaling steps of a particular aspect. + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + targets: + - tosca.nodes.nfv.Vdu.Compute + tosca.policies.nfv.VirtualLinkBitrateScalingAspectDeltas: + derived_from: tosca.policies.Root + description: The VirtualLinkBitrateScalingAspectDeltas type is a policy type representing the VnfVirtualLink detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + aspect: + type: string + description: Represents the scaling aspect to which this policy applies. + required: true + deltas: + type: map + description: Describes the VnfVirtualLink scaling deltas to be applied for every scaling steps of a particular aspect. + required: true + entry_schema: + type: tosca.datatypes.nfv.VirtualLinkBitrateLevel + targets: + - tosca.nodes.nfv.VnfVirtualLink + tosca.policies.nfv.VduInitialDelta: + derived_from: tosca.policies.Root + description: The VduInitialDelta type is a policy type representing the Vdu.Compute detail of an initial delta used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + initial_delta: + type: tosca.datatypes.nfv.VduLevel + description: Represents the initial minimum size of the VNF. + required: true + targets: + - tosca.nodes.nfv.Vdu.Compute + tosca.policies.nfv.VirtualLinkBitrateInitialDelta: + derived_from: tosca.policies.Root + description: The VirtualLinkBitrateInitialDelta type is a policy type representing the VnfVirtualLink detail of an initial deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + initial_delta: + type: tosca.datatypes.nfv.VirtualLinkBitrateLevel + description: Represents the initial minimum size of the VNF. + required: true + targets: + - tosca.nodes.nfv.VnfVirtualLink + tosca.policies.nfv.SecurityGroupRule: + derived_from: tosca.policies.Root + description: The SecurityGroupRule type is a policy type specified the matching criteria for the ingress and/or egress traffic to/from visited connection points as defined in ETSI GS NFV-IFA 011 [1]. + properties: + description: + type: string + description: Human readable description of the security group rule. + required: false + direction: + type: string + description: The direction in which the security group rule is applied. The direction of 'ingress' or 'egress' is specified against the associated CP. I.e., 'ingress' means the packets entering a CP, while 'egress' means the packets sent out of a CP. + required: false + constraints: + - valid_values: + - ingress + - egress + default: ingress + ether_type: + type: string + description: Indicates the protocol carried over the Ethernet layer. + required: false + constraints: + - valid_values: + - ipv4 + - ipv6 + default: ipv4 + protocol: + type: string + description: Indicates the protocol carried over the IP layer. Permitted values include any protocol defined in the IANA protocol registry, e.g. TCP, UDP, ICMP, etc. + required: false + constraints: + - valid_values: + - hopopt + - icmp + - igmp + - ggp + - ipv4 + - st + - tcp + - cbt + - egp + - igp + - bbn_rcc_mon + - nvp_ii + - pup + - argus + - emcon + - xnet + - chaos + - udp + - mux + - dcn_meas + - hmp + - prm + - xns_idp + - trunk_1 + - trunk_2 + - leaf_1 + - leaf_2 + - rdp + - irtp + - iso_tp4 + - netblt + - mfe_nsp + - merit_inp + - dccp + - 3pc + - idpr + - xtp + - ddp + - idpr_cmtp + - tp++ + - il + - ipv6 + - sdrp + - ipv6_route + - ipv6_frag + - idrp + - rsvp + - gre + - dsr + - bna + - esp + - ah + - i_nlsp + - swipe + - narp + - mobile + - tlsp + - skip + - ipv6_icmp + - ipv6_no_nxt + - ipv6_opts + - cftp + - sat_expak + - kryptolan + - rvd + - ippc + - sat_mon + - visa + - ipcv + - cpnx + - cphb + - wsn + - pvp + - br_sat_mon + - sun_nd + - wb_mon + - wb_expak + - iso_ip + - vmtp + - secure_vmtp + - vines + - ttp + - iptm + - nsfnet_igp + - dgp + - tcf + - eigrp + - ospfigp + - sprite_rpc + - larp + - mtp + - ax.25 + - ipip + - micp + - scc_sp + - etherip + - encap + - gmtp + - ifmp + - pnni + - pim + - aris + - scps + - qnx + - a/n + - ip_comp + - snp + - compaq_peer + - ipx_in_ip + - vrrp + - pgm + - l2tp + - ddx + - iatp + - stp + - srp + - uti + - smp + - sm + - ptp + - isis + - fire + - crtp + - crudp + - sscopmce + - iplt + - sps + - pipe + - sctp + - fc + - rsvp_e2e_ignore + - mobility + - udp_lite + - mpls_in_ip + - manet + - hip + - shim6 + - wesp + - rohc + default: tcp + port_range_min: + type: integer + description: Indicates minimum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints. + required: false + constraints: + - greater_or_equal: 0 + - less_or_equal: 65535 + default: 0 + port_range_max: + type: integer + description: Indicates maximum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints. + required: false + constraints: + - greater_or_equal: 0 + - less_or_equal: 65535 + default: 65535 + targets: + - tosca.nodes.nfv.VduCp + - tosca.nodes.nfv.VnfExtCp + tosca.policies.nfv.SupportedVnfInterface: + derived_from: tosca.policies.Root + description: this policy type represents interfaces produced by a VNF, the details to access them and the applicable connection points to use to access these interfaces + properties: + interface_name: + type: string + description: Identifies an interface produced by the VNF. + required: true + constraints: + - valid_values: + - vnf_indicator + - vnf_configuration + details: + type: tosca.datatypes.nfv.InterfaceDetails + description: Provide additional data to access the interface endpoint + required: false + targets: + - tosca.nodes.nfv.VnfExtCp + - tosca.nodes.nfv.VduCp data_types: tosca.datatypes.Root: description: The TOSCA root Data Type all other TOSCA base Data Types derive from @@ -1381,119 +1691,159 @@ data_types: type: string description: The network role of the related network, sharing provider network. required: false + tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + description: VnfcAdditionalConfigurableProperties type is an empty base type for deriving data types for describing additional configurable properties for a given VNFC. + properties: + description: + type: string + required: false tosca.datatypes.nfv.VnfcConfigurableProperties: derived_from: tosca.datatypes.Root + description: Defines the configurable properties of a VNFC properties: additional_vnfc_configurable_properties: - type: map - entry_schema: - type: string + type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties + description: Describes additional configuration for VNFC that can be modified using the ModifyVnfInfo operation required: false tosca.datatypes.nfv.RequestedAdditionalCapability: derived_from: tosca.datatypes.Root + description: describes requested additional capability for a particular VDU properties: + requested_additional_capability_name: + type: string + description: Identifies a requested additional capability for the VDU. + required: true support_mandatory: type: boolean + description: Indicates whether the requested additional capability is mandatory for successful operation. required: true min_requested_additional_capability_version: type: string + description: Identifies the minimum version of the requested additional capability. required: false preferred_requested_additional_capability_version: type: string + description: Identifies the preferred version of the requested additional capability. required: false - requested_additional_capability_name: - type: string - required: true target_performance_parameters: type: map + description: Identifies specific attributes, dependent on the requested additional capability type. + required: true entry_schema: type: string - required: true tosca.datatypes.nfv.VirtualMemory: derived_from: tosca.datatypes.Root + description: supports the specification of requirements related to virtual memory of a virtual compute resource properties: virtual_mem_size: type: scalar-unit.size + description: Amount of virtual memory. required: true virtual_mem_oversubscription_policy: type: string + description: The memory core oversubscription policy in terms of virtual memory to physical memory on the platform. required: false - vdu_memory_requirements: + vdu_mem_requirements: type: map + description: The hardware platform specific VDU memory requirements. A map of strings that contains a set of key-value pairs that describes hardware platform specific VDU memory requirements. + required: false entry_schema: type: string - required: false numa_enabled: type: boolean + description: It specifies the memory allocation to be cognisant of the relevant process/core allocation. required: false + default: false tosca.datatypes.nfv.VirtualCpuPinning: derived_from: tosca.datatypes.Root + description: Supports the specification of requirements related to the virtual CPU pinning configuration of a virtual compute resource properties: - cpu_pinning_policy: + virtual_cpu_pinning_policy: type: string + description: 'Indicates the policy for CPU pinning. The policy can take values + of "static" or "dynamic". In case of "dynamic" the allocation of virtual + CPU cores to logical CPU cores is decided by the VIM. (e.g.: SMT (Simultaneous + Multi-Threading) requirements). In case of "static" the allocation is requested + to be according to the virtual_cpu_pinning_rule.' + required: false constraints: - valid_values: - static - dynamic + virtual_cpu_pinning_rule: + type: list + description: Provides the list of rules for allocating virtual CPU cores to logical CPU cores/threads required: false - cpu_pinning_map: - type: map entry_schema: type: string - required: false tosca.datatypes.nfv.VirtualCpu: derived_from: tosca.datatypes.Root + description: Supports the specification of requirements related to virtual CPU(s) of a virtual compute resource properties: cpu_architecture: type: string + description: CPU architecture type. Examples are x86, ARM required: false num_virtual_cpu: type: integer + description: Number of virtual CPUs required: true + constraints: + - greater_than: 0 virtual_cpu_clock: type: scalar-unit.frequency + description: Minimum virtual CPU clock rate required: false virtual_cpu_oversubscription_policy: type: string + description: CPU core oversubscription policy e.g. the relation of virtual CPU cores to physical CPU cores/threads. required: false vdu_cpu_requirements: type: map + description: The hardware platform specific VDU CPU requirements. A map of strings that contains a set of key-value pairs describing VDU CPU specific hardware platform requirements. + required: false entry_schema: type: string - required: false virtual_cpu_pinning: type: tosca.datatypes.nfv.VirtualCpuPinning + description: The virtual CPU pinning configuration for the virtualised compute resource. required: false tosca.datatypes.nfv.LogicalNodeData: derived_from: tosca.datatypes.Root + description: Describes compute, memory and I/O requirements associated with a particular VDU. properties: logical_node_requirements: type: map + description: The logical node-level compute, memory and I/O requirements. A map of strings that contains a set of key-value pairs that describes hardware platform specific deployment requirements, including the number of CPU cores on this logical node, a memory configuration specific to a logical node or a requirement related to the association of an I/O device with the logical node. + required: false entry_schema: type: string - required: false tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: derived_from: tosca.datatypes.Root + description: Describes requirements on a virtual network interface properties: name: type: string + description: Provides a human readable name for the requirement. required: false description: type: string + description: Provides a human readable description of the requirement. required: false support_mandatory: type: boolean + description: Indicates whether fulfilling the constraint is mandatory (TRUE) for successful operation or desirable (FALSE). required: true - requirement: - type: string - required: false network_interface_requirements: type: map + description: The network interface requirements. A map of strings that contain a set of key-value pairs that describes the hardware platform specific network interface deployment requirements. + required: true entry_schema: type: string - required: true nic_io_requirements: type: tosca.datatypes.nfv.LogicalNodeData + description: references (couples) the CP with any logical node I/O requirements (for network devices) that may have been created. Linking these attributes is necessary so that so that I/O requirements that need to be articulated at the logical node level can be associated with the network interface requirements associated with the CP. required: false tosca.datatypes.nfv.injectFile: derived_from: tosca.datatypes.Root @@ -1506,24 +1856,27 @@ data_types: required: true tosca.datatypes.nfv.L2AddressData: derived_from: tosca.datatypes.Root + description: Describes the information on the MAC addresses to be assigned to a connection point. properties: mac_address_assignment: type: boolean + description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility required: true - address: - type: string - required: false tosca.datatypes.nfv.L3AddressData: derived_from: tosca.datatypes.Root + description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP properties: ip_address_assignment: type: boolean + description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility required: true floating_ip_activated: type: boolean + description: Specifies if the floating IP scheme is activated on the Connection Point or not required: true ip_address_type: type: string + description: Defines address type. The address type should be aligned with the address type supported by the layer_protocols properties of the parent VnfExtCp required: false constraints: - valid_values: @@ -1531,49 +1884,62 @@ data_types: - ipv6 number_of_ip_address: type: integer + description: Minimum number of IP addresses to be assigned required: false + constraints: + - greater_than: 0 fixed_ip_address: type: list entry_schema: type: string required: false tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + description: Describes information about the addressing scheme and parameters applicable to a CP properties: address_type: + type: string + description: Describes the type of the address to be assigned to a connection point. The content type shall be aligned with the address type supported by the layerProtocol property of the connection point + required: true constraints: - valid_values: - mac_address - ip_address - type: string - required: true l2_address_data: - required: false type: tosca.datatypes.nfv.L2AddressData - l3_address_data: + description: Provides the information on the MAC addresses to be assigned to a connection point. required: false + l3_address_data: type: tosca.datatypes.nfv.L3AddressData + description: Provides the information on the IP addresses to be assigned to a connection point + required: false tosca.datatypes.nfv.ConnectivityType: derived_from: tosca.datatypes.Root + description: describes additional connectivity information of a virtualLink properties: - layer_protocol: - type: string + layer_protocols: + type: list + description: Identifies the protocol a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire).The top layer protocol of the virtualLink protocol stack shall always be provided. The lower layer protocols may be included when there are specific requirements on these layers. required: true - constraints: - - valid_values: - - ethernet - - mpls - - odu2 - - ipv4 - - ipv6 - - pseudo_wire + entry_schema: + type: string + constraints: + - valid_values: + - ethernet + - mpls + - odu2 + - ipv4 + - ipv6 + - pseudo-wire flow_pattern: type: string + description: Identifies the flow pattern of the connectivity required: false constraints: - valid_values: - - Line - - Tree - - Mesh + - line + - tree + - mesh tosca.datatypes.nfv.VlFlavour: derived_from: tosca.datatypes.Root properties: @@ -1640,108 +2006,223 @@ data_types: required: false tosca.datatypes.nfv.VduProfile: derived_from: tosca.datatypes.Root + description: describes additional instantiation data for a given Vdu.Compute used in a specific deployment flavour. properties: min_number_of_instances: type: integer + description: Minimum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour. required: true + constraints: + - greater_or_equal: 0 max_number_of_instances: type: integer + description: Maximum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour. required: true + constraints: + - greater_or_equal: 0 watchdog: type: string required: true vmBootUpTimeOut: type: integer required: false - tosca.datatypes.nfv.LinkBitRateRequirements: + tosca.datatypes.nfv.LinkBitrateRequirements: derived_from: tosca.datatypes.Root + description: describes the requirements in terms of bitrate for a virtual link properties: root: type: integer + description: Specifies the throughput requirement in bits per second of the link (e.g. bitrate of E-Line, root bitrate of E-Tree, aggregate capacity of E-LAN). required: true + constraints: + - greater_or_equal: 0 leaf: type: integer - required: true + description: Specifies the throughput requirement in bits per second of leaf connections to the link when applicable to the connectivity type (e.g. for E-Tree and E LAN branches). + required: false + constraints: + - greater_or_equal: 0 tosca.datatypes.nfv.Qos: derived_from: tosca.datatypes.Root + description: describes QoS data for a given VL used in a VNF deployment flavour properties: latency: - type: integer + type: scalar-unit.time + description: Specifies the maximum latency required: true + constraints: + - greater_than: 0 s packet_delay_variation: - type: integer + type: scalar-unit.time + description: Specifies the maximum jitter required: true + constraints: + - greater_or_equal: 0 s packet_loss_ratio: type: float + description: Specifies the maximum packet loss ratio + required: false constraints: - in_range: - 0.0 - 1.0 - required: false - tosca.datatypes.nfv.VlProfile: + tosca.datatypes.nfv.IpAllocationPool: derived_from: tosca.datatypes.Root + description: Specifies a range of IP addresses properties: - max_bit_rate_requirements: - type: tosca.datatypes.nfv.LinkBitRateRequirements + start_ip_address: + type: string + description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range required: true - min_bit_rate_requirements: - type: tosca.datatypes.nfv.LinkBitRateRequirements + end_ip_address: + type: string + description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range required: true - qos: - type: tosca.datatypes.nfv.Qos - required: false - initiationParameters: - type: map - entry_schema: - type: string + tosca.datatypes.nfv.L2ProtocolData: + derived_from: tosca.datatypes.Root + description: describes L2 protocol data for a given virtual link used in a specific VNF deployment flavour. + properties: + name: + type: string + description: Identifies the network name associated with this L2 protocol. required: false - cidr: + network_type: type: string + description: Specifies the network type for this L2 protocol.The value may be overridden at run-time. required: false - networkName: + constraints: + - valid_values: + - flat + - vlan + - vxlan + - gre + vlan_transparent: + type: boolean + description: Specifies whether to support VLAN transparency for this L2 protocol or not. + required: false + default: false + mtu: + type: integer + description: Specifies the maximum transmission unit (MTU) value for this L2 protocol. + required: false + constraints: + - greater_than: 0 + segmentation_id: + type: integer + required: false + physical_network: type: string required: false - startIp: + tosca.datatypes.nfv.L3ProtocolData: + derived_from: tosca.datatypes.Root + description: describes L3 protocol data for a given virtual link used in a specific VNF deployment flavour. + properties: + name: type: string + description: Identifies the network name associated with this L3 protocol. required: false - endIp: + ip_version: type: string + description: Specifies IP version of this L3 protocol.The value of the ip_version property shall be consistent with the value of the layer_protocol in the connectivity_type property of the virtual link node. + required: true + constraints: + - valid_values: + - ipv4 + - ipv6 + cidr: + type: string + description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time. + required: true + ip_allocation_pools: + type: list + description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time. required: false - gatewayIp: + entry_schema: + type: tosca.datatypes.nfv.IpAllocationPool + gateway_ip: type: string + description: Specifies the gateway IP address for this L3 protocol. The value may be overridden at run-time. required: false - segmentationId: - type: integer + dhcp_enabled: + type: boolean + description: Indicates whether DHCP (Dynamic Host Configuration Protocol) is enabled or disabled for this L3 protocol. The value may be overridden at run-time. required: false - physicalNetwork: + ipv6_address_mode: type: string + description: Specifies IPv6 address mode. May be present when the value of the ipVersion attribute is "ipv6" and shall be absent otherwise. The value may be overridden at run-time. required: false - networkType: + constraints: + - valid_values: + - slaac + - dhcpv6-stateful + - dhcpv6-stateless + tosca.datatypes.nfv.VirtualLinkProtocolData: + derived_from: tosca.datatypes.Root + description: describes one protocol layer and associated protocol data for a given virtual link used in a specific VNF deployment flavour + properties: + associated_layer_protocol: type: string - required: false + description: Identifies one of the protocols a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire) as specified by the connectivity_type property. + required: true constraints: - valid_values: - - VLAN - - VXLAN - dhcpEnabled: - type: boolean + - ethernet + - mpls + - odu2 + - ipv4 + - ipv6 + - pseudo-wire + l2_protocol_data: + type: tosca.datatypes.nfv.L2ProtocolData + description: Specifies the L2 protocol data for a virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L2 protocol and shall be absent otherwise. required: false - vlanTransparent: - type: boolean + l3_protocol_data: + type: tosca.datatypes.nfv.L3ProtocolData + description: Specifies the L3 protocol data for this virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L3 protocol and shall be absent otherwise. required: false + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + description: Describes additional instantiation data for a given VL used in a specific VNF deployment flavour. + properties: + max_bitrate_requirements: + type: tosca.datatypes.nfv.LinkBitrateRequirements + description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile. + required: true + min_bitrate_requirements: + type: tosca.datatypes.nfv.LinkBitrateRequirements + description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile. + required: true + qos: + type: tosca.datatypes.nfv.Qos + description: Specifies the QoS requirements of a VL instantiated according to this profile. + required: false + virtual_link_protocol_data: + type: list + description: Specifies the protocol data for a virtual link. + required: false + entry_schema: + type: tosca.datatypes.nfv.VirtualLinkProtocolData tosca.datatypes.nfv.VduLevel: derived_from: tosca.datatypes.Root + description: Indicates for a given Vdu.Compute in a given level the number of instances to deploy properties: number_of_instances: type: integer + description: Number of instances of VNFC based on this VDU to deploy for this level. required: true + constraints: + - greater_or_equal: 0 tosca.datatypes.nfv.ScaleInfo: derived_from: tosca.datatypes.Root + description: Indicates for a given scaleAspect the corresponding scaleLevel properties: - scaleLevel: + scale_level: type: integer + description: The scale level for a particular aspect required: true - tosca.datatypes.nfv.ScaleAspect: + constraints: + - greater_or_equal: 0 + tosca.datatypes.nfv.ScalingAspect: derived_from: tosca.datatypes.Root properties: name: @@ -1750,77 +2231,302 @@ data_types: description: type: string required: true - associated_group: - type: string - required: false max_scale_level: type: integer required: true + constraints: + - greater_or_equal: 0 + step_deltas: + type: list + required: false + entry_schema: + type: string tosca.datatypes.nfv.InstantiationLevel: derived_from: tosca.datatypes.Root + description: Describes the scale level for each aspect that corresponds to a given level of resources to be instantiated within a deployment flavour in term of the number VNFC instances properties: description: type: string + description: Human readable description of the level required: true - vdu_levels: - type: map - required: true - entry_schema: - type: tosca.datatypes.nfv.VduLevel scale_info: type: map + description: Represents for each aspect the scale level that corresponds to this instantiation level. scale_info shall be present if the VNF supports scaling. required: false entry_schema: type: tosca.datatypes.nfv.ScaleInfo + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the InstantiateVnf operation. + properties: + description: + type: string + required: false tosca.datatypes.nfv.VnfScaleOperationConfiguration: derived_from: tosca.datatypes.Root + description: Represents information that affect the invocation of the ScaleVnf operation properties: scaling_by_more_than_one_step_supported: type: boolean + description: Signals whether passing a value larger than one in the numScalingSteps parameter of the ScaleVnf operation is supported by this VNF. + required: false + default: false tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the ScaleVnfToLevel operation properties: arbitrary_target_levels_supported: type: boolean + description: Signals whether scaling according to the parameter "scaleInfo" is supported by this VNF + required: true tosca.datatypes.nfv.VnfHealOperationConfiguration: derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the HealVnf operation properties: causes: type: list + description: Supported "cause" parameter values + required: false entry_schema: type: string tosca.datatypes.nfv.VnfTerminateOperationConfiguration: derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the TerminateVnf properties: min_graceful_termination_timeout: - type: integer + type: scalar-unit.time + description: Minimum timeout value for graceful termination of a VNF instance + required: true max_recommended_graceful_termination_timeout: - type: integer + type: scalar-unit.time + description: Maximum recommended timeout value that can be needed to gracefully terminate a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint + required: false tosca.datatypes.nfv.VnfOperateOperationConfiguration: derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the OperateVnf operation properties: - min_graceful_termination_timeout: + min_graceful_stop_timeout: + type: scalar-unit.time + description: Minimum timeout value for graceful stop of a VNF instance + required: true + max_recommended_graceful_stop_timeout: + type: scalar-unit.time + description: Maximum recommended timeout value that can be needed to gracefully stop a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint + required: false + tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the ChangeVnfFlavour operation + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfProfile: + derived_from: tosca.datatypes.Root + description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF. + properties: + instantiation_level: + type: string + description: Identifier of the instantiation level of the VNF DF to be used for instantiation. If not present, the default instantiation level as declared in the VNFD shall be used. + required: false + min_number_of_instances: type: integer - max_recommended_graceful_termination_timeout: + description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. + required: true + constraints: + - greater_or_equal: 0 + max_number_of_instances: type: integer + description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. + required: true + constraints: + - greater_or_equal: 0 + tosca.datatypes.nfv.UriAuthority: + derived_from: tosca.datatypes.Root + description: information that corresponds to the authority component of a URI as specified in IETF RFC 3986 [8] + properties: + user_info: + type: string + description: user_info field of the authority component of a URI + required: false + host: + type: string + description: host field of the authority component of a URI + required: false + port: + type: string + description: port field of the authority component of a URI + required: false + tosca.datatypes.nfv.UriComponents: + derived_from: tosca.datatypes.Root + description: information used to build a URI that complies with IETF RFC 3986 [8]. + properties: + scheme: + type: string + description: scheme component of a URI. + required: true + authority: + type: tosca.datatypes.nfv.UriAuthority + description: Authority component of a URI + required: false + path: + type: string + description: path component of a URI. + required: false + query: + type: string + description: query component of a URI. + required: false + fragment: + type: string + description: fragment component of a URI. + required: false + tosca.datatypes.nfv.InterfaceDetails: + derived_from: tosca.datatypes.Root + description: information used to access an interface exposed by a VNF + properties: + uri_components: + type: tosca.datatypes.nfv.UriComponents + description: Provides components to build a Uniform Ressource Identifier (URI) where to access the interface end point. + required: false + interface_specific_data: + type: map + description: Provides additional details that are specific to the type of interface considered. + required: false + entry_schema: + type: string + tosca.datatypes.nfv.VirtualLinkMonitoringParameter: + derived_from: tosca.datatypes.Root + description: Represents information on virtualised resource related performance metrics applicable to the VNF. + properties: + name: + type: string + description: Human readable name of the monitoring parameter + required: true + performance_metric: + type: string + description: Identifies a performance metric derived from those defined in ETSI GS NFV-IFA 027.The packetOutgoingVirtualLink and packetIncomingVirtualLink metrics shall be obtained by aggregation the PacketOutgoing and PacketIncoming measurements defined in clause 7.1 of GS NFV-IFA 027 of all virtual link ports attached to the virtual link to which the metrics apply. + required: true + constraints: + - valid_values: + - packet_outgoing_virtual_link + - packet_incoming_virtual_link + collection_period: + type: scalar-unit.time + description: Describes the recommended periodicity at which to collect the performance information. + required: false + constraints: + - greater_than: 0 s + tosca.datatypes.nfv.VnfcMonitoringParameter: + derived_from: tosca.datatypes.Root + description: Represents information on virtualised resource related performance metrics applicable to the VNF. + properties: + name: + type: string + description: Human readable name of the monitoring parameter + required: true + performance_metric: + type: string + description: Identifies the performance metric, according to ETSI GS NFV-IFA 027. + required: true + constraints: + - valid_values: + - v_cpu_usage_mean_vnf + - v_cpu_usage_peak_vnf + - v_memory_usage_mean_vnf + - v_memory_usage_peak_vnf + - v_disk_usage_mean_vnf + - v_disk_usage_peak_vnf + - byte_incoming_vnf_int_cp + - byte_outgoing_vnf_int_cp + - packet_incoming_vnf_int_cp + - packet_outgoing_vnf_int_cp + collection_period: + type: scalar-unit.time + description: Describes the recommended periodicity at which to collect the performance information. + required: false + constraints: + - greater_than: 0 s + tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the ChangeExtVnfConnectivity operation + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfMonitoringParameter: + derived_from: tosca.datatypes.Root + description: Represents information on virtualised resource related performance metrics applicable to the VNF. + properties: + name: + type: string + description: Human readable name of the monitoring parameter + required: true + performance_metric: + type: string + description: Identifies the performance metric, according to ETSI GS NFV-IFA 027. + required: true + constraints: + - valid_values: + - v_cpu_usage_mean_vnf + - v_cpu_usage_peak_vnf + - v_memory_usage_mean_vnf + - v_memory_usage_peak_vnf + - v_disk_usage_mean_vnf + - v_disk_usage_peak_vnf + - byte_incoming_vnf_ext_cp + - byte_outgoing_vnf_ext_cp + - packet_incoming_vnf_ext_cp + - packet_outgoing_vnf_ext_cp + collection_period: + type: scalar-unit.time + description: Describes the recommended periodicity at which to collect the performance information. + required: false + constraints: + - greater_than: 0 s tosca.datatypes.nfv.VnfLcmOperationsConfiguration: derived_from: tosca.datatypes.Root + description: Represents information to configure lifecycle management operations properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + description: Configuration parameters for the InstantiateVnf operation + required: false scale: type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + description: Configuration parameters for the ScaleVnf operation + required: false scale_to_level: type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + description: Configuration parameters for the ScaleVnfToLevel operation + required: false + change_flavour: + type: tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration + description: Configuration parameters for the changeVnfFlavourOpConfig operation + required: false heal: type: tosca.datatypes.nfv.VnfHealOperationConfiguration + description: Configuration parameters for the HealVnf operation + required: false terminate: type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + description: Configuration parameters for the TerminateVnf operation + required: false operate: type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + description: Configuration parameters for the OperateVnf operation + required: false + change_ext_connectivity: + type: tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration + description: Configuration parameters for the changeExtVnfConnectivityOpConfig operation + required: false tosca.datatypes.nfv.CpProtocolData: derived_from: tosca.datatypes.Root + description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information properties: - asscociated_layer_protocol: + associated_layer_protocol: type: string + required: true + description: One of the values of the property layer_protocols of the CP constraints: - valid_values: - ethernet @@ -1829,40 +2535,185 @@ data_types: - ipv4 - ipv6 - pseudo-wire - required: true address_data: - type: tosca.datatypes.nfv.AddressData + type: list + description: Provides information on the addresses to be assigned to the CP + entry_schema: + type: tosca.datatypes.nfv.AddressData + required: false + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + description: is an empty base type for deriving data types for describing additional configurable properties for a given VNF + properties: + description: + type: string required: false tosca.datatypes.nfv.VnfConfigurableProperties: derived_from: tosca.datatypes.Root + description: indicates configuration properties for a given VNF (e.g. related to auto scaling and auto healing). properties: is_autoscale_enabled: type: boolean + description: It permits to enable (TRUE)/disable (FALSE) the auto-scaling functionality. If the properties is not present for configuring, then VNF property is not supported required: false is_autoheal_enabled: type: boolean + description: It permits to enable (TRUE)/disable (FALSE) the auto-healing functionality. If the properties is not present for configuring, then VNF property is not supported + required: false + additional_configurable_properties: + description: It provides VNF specific configurable properties that can be modified using the ModifyVnfInfo operation required: false + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: derived_from: tosca.datatypes.Root + description: is an empty base type for deriving data types for describing VNF-specific extension properties: description: type: string required: false tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: derived_from: tosca.datatypes.Root + description: is an empty base type for deriving data types for describing VNF-specific metadata properties: description: type: string required: false tosca.datatypes.nfv.VnfInfoModifiableAttributes: derived_from: tosca.datatypes.Root + description: Describes VNF-specific extension and metadata for a given VNF properties: extensions: type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + description: \"Extension\" properties of VnfInfo that are writeable required: false metadata: type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + description: \"Metadata\" properties of VnfInfo that are writeable required: false + tosca.datatypes.nfv.VirtualLinkBitrateLevel: + derived_from: tosca.datatypes.Root + description: Describes bitrate requirements applicable to the virtual link instantiated from a particicular VnfVirtualLink + properties: + description: + type: string + required: false + bitrate_requirements: + type: tosca.datatypes.nfv.LinkBitrateRequirements + description: Virtual link bitrate requirements for an instantiation level or bitrate delta for a scaling step + required: true + tosca.datatypes.nfv.VnfOperationAdditionalParameters: + derived_from: tosca.datatypes.Root + description: Is an empty base type for deriving data type for describing VNF-specific parameters to be passed when invoking lifecycle management operations + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VirtualFileStorageData: + derived_from: tosca.datatypes.Root + description: VirtualFileStorageData describes file storage requirements associated with compute resources in a particular VDU + properties: + size_of_storage: + type: scalar-unit.size + description: Size of virtualized storage resource + required: true + file_system_protocol: + type: string + description: The shared file system protocol (e.g. NFS, CIFS) + required: true + tosca.datatypes.nfv.VirtualObjectStorageData: + derived_from: tosca.datatypes.Root + description: VirtualObjectStorageData describes object storage requirements associated with compute resources in a particular VDU + properties: + max_size_of_storage: + type: scalar-unit.size + description: Maximum size of virtualized storage resource + required: false + tosca.datatypes.nfv.VirtualBlockStorageData: + derived_from: tosca.datatypes.Root + description: VirtualBlockStorageData describes block storage requirements associated with compute resources in a particular VDU, either as a local disk or as virtual attached storage + properties: + size_of_storage: + type: scalar-unit.size + description: Size of virtualised storage resource + required: true + vdu_storage_requirements: + type: map + description: The hardware platform specific storage requirements. A map of strings that contains a set of key-value pairs that represents the hardware platform specific storage deployment requirements. + required: false + entry_schema: + type: string + rdma_enabled: + type: boolean + description: Indicates if the storage support RDMA + required: false + default: false + tosca.datatypes.nfv.SwImageData: + derived_from: tosca.datatypes.Root + description: describes information related to a software image artifact + properties: + name: + type: string + description: Name of this software image + required: true + version: + type: string + description: Version of this software image + required: true + checksum: + type: string + description: Checksum of the software image file + required: true + container_format: + type: string + description: The container format describes the container file format in which software image is provided + required: true + constraints: + - valid_values: + - aki + - ami + - ari + - bare + - docker + - ova + - ovf + disk_format: + type: string + description: The disk format of a software image is the format of the underlying disk image + required: true + constraints: + - valid_values: + - aki + - ami + - ari + - iso + - qcow2 + - raw + - vdi + - vhd + - vhdx + - vmdk + min_disk: + type: scalar-unit.size + description: The minimal disk size requirement for this software image + required: true + min_ram: + type: scalar-unit.size + description: The minimal RAM requirement for this software image + required: false + size: + type: scalar-unit.size + description: The size of this software image + required: true + operating_system: + type: string + description: Identifies the operating system used in the software image + required: false + supported_virtualisation_environments: + type: list + description: Identifies the virtualisation environments (e.g. hypervisor) compatible with this software image + required: false + entry_schema: + type: string onap.datatypes.monitoring.metricsPerEventName: derived_from: tosca.datatypes.Root properties: diff --git a/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar b/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar deleted file mode 100755 index 727ef16b7..000000000 Binary files a/src/test/resources/example/sdc/service-Vloadbalancerms-csar.csar and /dev/null differ diff --git a/src/test/resources/example/sdc/service_Vloadbalancerms_csar.csar b/src/test/resources/example/sdc/service_Vloadbalancerms_csar.csar new file mode 100644 index 000000000..3330dd1e8 Binary files /dev/null and b/src/test/resources/example/sdc/service_Vloadbalancerms_csar.csar differ diff --git a/src/test/resources/tosca/model-properties.json b/src/test/resources/tosca/model-properties.json new file mode 100644 index 000000000..9e7db8ebc --- /dev/null +++ b/src/test/resources/tosca/model-properties.json @@ -0,0 +1,123 @@ +{ + "serviceDetails": { + "serviceType": "", + "namingPolicy": "", + "environmentContext": "General_Revenue-Bearing", + "serviceEcompNaming": "true", + "serviceRole": "", + "name": "vLoadBalancerMS", + "description": "vLBMS", + "invariantUUID": "30ec5b59-4799-48d8-ac5f-1058a6b0e48f", + "ecompGeneratedNaming": "true", + "category": "Network L4+", + "type": "Service", + "UUID": "63cac700-ab9a-4115-a74f-7eac85e3fce0", + "instantiationType": "A-la-carte" + }, + "resourceDetails": { + "CP": { + + }, + "VL": { + + }, + "VF": { + "vLoadBalancerMS 0": { + "resourceVendor": "Test", + "resourceVendorModelNumber": "", + "name": "vLoadBalancerMS", + "description": "vLBMS", + "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506", + "subcategory": "Load Balancer", + "category": "Application L4+", + "type": "VF", + "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6", + "version": "1.0", + "resourceVendorRelease": "1.0", + "customizationUUID": "465246dc-7748-45f4-a013-308d92922552" + } + }, + "CR": { + + }, + "VFC": { + + }, + "PNF": { + + }, + "Service": { + + }, + "CVFC": { + + }, + "Service Proxy": { + + }, + "Configuration": { + + }, + "AllottedResource": { + + }, + "VFModule": { + "Vloadbalancerms..vpkg..module-1": { + "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043", + "vfModuleModelVersion": "1", + "vfModuleModelName": "Vloadbalancerms..vpkg..module-1", + "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc", + "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52", + "min_vf_module_instances": 0, + "vf_module_label": "vpkg", + "max_vf_module_instances": 1, + "vf_module_type": "Expansion", + "isBase": false, + "initial_count": 0, + "volume_group": false + }, + "Vloadbalancerms..vdns..module-3": { + "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa", + "vfModuleModelVersion": "1", + "vfModuleModelName": "Vloadbalancerms..vdns..module-3", + "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720", + "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1", + "min_vf_module_instances": 0, + "vf_module_label": "vdns", + "max_vf_module_instances": 50, + "vf_module_type": "Expansion", + "isBase": false, + "initial_count": 0, + "volume_group": false + }, + "Vloadbalancerms..base_template..module-0": { + "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3", + "vfModuleModelVersion": "1", + "vfModuleModelName": "Vloadbalancerms..base_template..module-0", + "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce", + "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27", + "min_vf_module_instances": 1, + "vf_module_label": "base_template", + "max_vf_module_instances": 1, + "vf_module_type": "Base", + "isBase": true, + "initial_count": 1, + "volume_group": false + }, + "Vloadbalancerms..vlb..module-2": { + "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd", + "vfModuleModelVersion": "1", + "vfModuleModelName": "Vloadbalancerms..vlb..module-2", + "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a", + "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806", + "min_vf_module_instances": 0, + "vf_module_label": "vlb", + "max_vf_module_instances": 1, + "vf_module_type": "Expansion", + "isBase": false, + "initial_count": 0, + "volume_group": false + } + } + } +} \ No newline at end of file -- cgit 1.2.3-korg From 7eb234559c64c4702ae621d7d2f531868677cdae Mon Sep 17 00:00:00 2001 From: sebdet Date: Wed, 8 May 2019 11:33:43 +0200 Subject: Fix model_type missing Fix model missing in some cases (new DCAE Blueprint), also removed useless fields in MicroService Object Issue-ID: CLAMP-370 Change-Id: Ia246b5d58309aceb3168107a4bf76b92b23add7a Signed-off-by: sebdet --- .../sdc/controller/installer/BlueprintParser.java | 40 ++-- .../sdc/controller/installer/MicroService.java | 18 +- .../resources/clds/camel/routes/flexible-flow.xml | 6 +- .../controller/installer/CsarInstallerItCase.java | 7 +- .../controller/installer/BlueprintParserTest.java | 14 +- .../controller/installer/ChainGeneratorTest.java | 24 +-- .../clds/util/drawing/ClampGraphBuilderTest.java | 8 +- .../org/onap/clamp/loop/CsarInstallerItCase.java | 12 ++ .../sdc/blueprint-dcae/prop-text-for-tca-2.json | 25 ++- .../sdc/blueprint-dcae/prop-text-for-tca-3.json | 47 ++++ .../example/sdc/blueprint-dcae/tca_2.yaml | 158 +++++++------- .../example/sdc/blueprint-dcae/tca_3.yaml | 236 +++++++++++++-------- 12 files changed, 356 insertions(+), 239 deletions(-) create mode 100644 src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index 809904f22..aca2ed01d 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -29,6 +29,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import java.util.AbstractMap; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -61,12 +62,12 @@ public class BlueprintParser { public Set getMicroServices(String blueprintString) { Set microServices = new HashSet<>(); JsonObject jsonObject = BlueprintParser.convertToJson(blueprintString); - JsonObject results = jsonObject.get(NODE_TEMPLATES).getAsJsonObject(); + JsonObject nodeTemplateList = jsonObject.get(NODE_TEMPLATES).getAsJsonObject(); - for (Entry entry : results.entrySet()) { + for (Entry entry : nodeTemplateList.entrySet()) { JsonObject nodeTemplate = entry.getValue().getAsJsonObject(); if (nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) { - MicroService microService = getNodeRepresentation(entry); + MicroService microService = getNodeRepresentation(entry, nodeTemplateList); microServices.add(microService); } } @@ -89,7 +90,7 @@ public class BlueprintParser { } String msName = theBiggestMicroServiceKey.toLowerCase().contains(HOLMES_PREFIX) ? HOLMES : TCA; return Collections - .singletonList(new MicroService(msName, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", "", "")); + .singletonList(new MicroService(msName, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", "")); } String getName(Entry entry) { @@ -118,8 +119,22 @@ public class BlueprintParser { return ""; } - String getModelType(Entry entry) { + String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList) { + for (JsonElement elem : jsonArray) { + String modelType = getModelType( + new AbstractMap.SimpleEntry(elem.getAsJsonObject().get(TARGET).getAsString(), + nodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()), + nodeTemplateList); + if (!modelType.isEmpty()) { + return modelType; + } + } + return ""; + } + + String getModelType(Entry entry, JsonObject nodeTemplateList) { JsonObject ob = entry.getValue().getAsJsonObject(); + // Search first in this node template if (ob.has(PROPERTIES)) { JsonObject properties = ob.get(PROPERTIES).getAsJsonObject(); if (properties.has(POLICYID)) { @@ -129,19 +144,18 @@ public class BlueprintParser { } } } + // Then it's may be a relationship + if (ob.has(RELATIONSHIPS)) { + return findModelTypeInTargetArray(ob.get(RELATIONSHIPS).getAsJsonArray(), nodeTemplateList); + } return ""; } - String getBlueprintName(Entry entry) { - return entry.getKey(); - } - - MicroService getNodeRepresentation(Entry entry) { + MicroService getNodeRepresentation(Entry entry, JsonObject nodeTemplateList) { String name = getName(entry); String getInputFrom = getInput(entry); - String modelType = getModelType(entry); - String blueprintName = getBlueprintName(entry); - return new MicroService(name, modelType, getInputFrom, "", blueprintName); + String modelType = getModelType(entry, nodeTemplateList); + return new MicroService(name, modelType, getInputFrom, ""); } private String getTarget(JsonObject elementObject) { diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java index ac4daeffb..9bc7a022a 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java @@ -29,16 +29,14 @@ import java.util.Objects; public class MicroService { private final String name; private final String modelType; - private final String blueprintName; private final String inputFrom; private String mappedNameJpa; - public MicroService(String name, String modelType, String inputFrom, String mappedNameJpa, String blueprintName) { + public MicroService(String name, String modelType, String inputFrom, String mappedNameJpa) { this.name = name; this.inputFrom = inputFrom; this.mappedNameJpa = mappedNameJpa; - this.modelType = modelType; - this.blueprintName = blueprintName; + this.modelType = modelType; } public String getName() { @@ -53,15 +51,10 @@ public class MicroService { return inputFrom; } - public String getBlueprintName() { - return blueprintName; - } - @Override public String toString() { return "MicroService{" + "name='" + name + '\'' + ", modelType='" + modelType + '\'' + ", inputFrom='" - + inputFrom + '\'' + ", mappedNameJpa='" + mappedNameJpa + '\'' + ", blueprintName='" - + blueprintName + '\'' + '}'; + + inputFrom + '\'' + ", mappedNameJpa='" + mappedNameJpa + '\'' + '}'; } public String getMappedNameJpa() { @@ -81,11 +74,12 @@ public class MicroService { return false; } MicroService that = (MicroService) o; - return name.equals(that.name) && modelType.equals(that.modelType) && inputFrom.equals(that.inputFrom) && mappedNameJpa.equals(that.mappedNameJpa) && blueprintName.equals(that.blueprintName); + return name.equals(that.name) && modelType.equals(that.modelType) && inputFrom.equals(that.inputFrom) + && mappedNameJpa.equals(that.mappedNameJpa); } @Override public int hashCode() { - return Objects.hash(name, modelType, inputFrom, mappedNameJpa, blueprintName); + return Objects.hash(name, modelType, inputFrom, mappedNameJpa); } } diff --git a/src/main/resources/clds/camel/routes/flexible-flow.xml b/src/main/resources/clds/camel/routes/flexible-flow.xml index b24525fe9..5f8577720 100644 --- a/src/main/resources/clds/camel/routes/flexible-flow.xml +++ b/src/main/resources/clds/camel/routes/flexible-flow.xml @@ -601,7 +601,7 @@ + message="Query Closed Loop status from policy PDP: ${exchangeProperty[loopObject].getName()}" /> @@ -625,9 +625,9 @@ + message="Endpoint to query from Policy PDP: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicyName]}/versions/deployed"> + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicyName]}/versions/deployed?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&httpClient.connectTimeout=10000&authMethod=Basic&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}" /> entry = jsonObject.entrySet().iterator().next(); - MicroService actual = new BlueprintParser().getNodeRepresentation(entry); + MicroService actual = new BlueprintParser().getNodeRepresentation(entry, jsonObject); Assert.assertEquals(expected, actual); } @Test public void getMicroServicesFromBlueprintTest() { - MicroService thirdApp = new MicroService(THIRD_APPP, MODEL_TYPE3, "", "", THIRD_APPP); - MicroService firstApp = new MicroService(FIRST_APPP, MODEL_TYPE1, THIRD_APPP, "", FIRST_APPP); - MicroService secondApp = new MicroService(SECOND_APPP, MODEL_TYPE2, FIRST_APPP, "", SECOND_APPP); + MicroService thirdApp = new MicroService(THIRD_APPP, MODEL_TYPE3, "", ""); + MicroService firstApp = new MicroService(FIRST_APPP, MODEL_TYPE1, THIRD_APPP, ""); + MicroService secondApp = new MicroService(SECOND_APPP, MODEL_TYPE2, FIRST_APPP, ""); Set expected = new HashSet<>(Arrays.asList(firstApp, secondApp, thirdApp)); Set actual = new BlueprintParser().getMicroServices(microServiceTheWholeBlueprintValid); @@ -164,7 +164,7 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceTCATest() { MicroService tcaMS = new MicroService(BlueprintParser.TCA, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", - "", ""); + ""); List expected = Collections.singletonList(tcaMS); List actual = new BlueprintParser().fallbackToOneMicroService(microServiceBlueprintOldStyleTCA); @@ -175,7 +175,7 @@ public class BlueprintParserTest { @Test public void fallBackToOneMicroServiceHolmesTest() { MicroService holmesMS = new MicroService(BlueprintParser.HOLMES, "onap.policies.monitoring.cdap.tca.hi.lo.app", - "", "", ""); + "", ""); List expected = Collections.singletonList(holmesMS); List actual = new BlueprintParser() diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java index 1eb66eadd..4b41ee818 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java @@ -38,10 +38,10 @@ public class ChainGeneratorTest { @Test public void getChainOfMicroServicesTest() { - MicroService ms1 = new MicroService(FIRST_APPP, "", "", "", ""); - MicroService ms2 = new MicroService(SECOND_APPP, "", FIRST_APPP, "", ""); - MicroService ms3 = new MicroService(THIRD_APPP, "", SECOND_APPP, "", ""); - MicroService ms4 = new MicroService(FOURTH_APPP, "", THIRD_APPP, "", ""); + MicroService ms1 = new MicroService(FIRST_APPP, "", "", ""); + MicroService ms2 = new MicroService(SECOND_APPP, "", FIRST_APPP, ""); + MicroService ms3 = new MicroService(THIRD_APPP, "", SECOND_APPP, ""); + MicroService ms4 = new MicroService(FOURTH_APPP, "", THIRD_APPP, ""); List expectedList = Arrays.asList(ms1, ms2, ms3, ms4); Set inputSet = new HashSet<>(expectedList); @@ -52,10 +52,10 @@ public class ChainGeneratorTest { @Test public void getChainOfMicroServicesTwiceNoInputTest() { - MicroService ms1 = new MicroService(FIRST_APPP, "", "", "", ""); - MicroService ms2 = new MicroService(SECOND_APPP, "", "", "", ""); - MicroService ms3 = new MicroService(THIRD_APPP, "", SECOND_APPP, "", ""); - MicroService ms4 = new MicroService(FOURTH_APPP, "", FIRST_APPP, "", ""); + MicroService ms1 = new MicroService(FIRST_APPP, "", "", ""); + MicroService ms2 = new MicroService(SECOND_APPP, "", "", ""); + MicroService ms3 = new MicroService(THIRD_APPP, "", SECOND_APPP, ""); + MicroService ms4 = new MicroService(FOURTH_APPP, "", FIRST_APPP, ""); Set inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); List actualList = new ChainGenerator().getChainOfMicroServices(inputSet); @@ -64,10 +64,10 @@ public class ChainGeneratorTest { @Test public void getChainOfMicroServicesBranchingTest() { - MicroService ms1 = new MicroService(FIRST_APPP, "", "", "", ""); - MicroService ms2 = new MicroService(SECOND_APPP, "", FIRST_APPP, "", ""); - MicroService ms3 = new MicroService(THIRD_APPP, "", FIRST_APPP, "", ""); - MicroService ms4 = new MicroService(FOURTH_APPP, "", FIRST_APPP, "", ""); + MicroService ms1 = new MicroService(FIRST_APPP, "", "", ""); + MicroService ms2 = new MicroService(SECOND_APPP, "", FIRST_APPP, ""); + MicroService ms3 = new MicroService(THIRD_APPP, "", FIRST_APPP, ""); + MicroService ms4 = new MicroService(FOURTH_APPP, "", FIRST_APPP, ""); Set inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); List actualList = new ChainGenerator().getChainOfMicroServices(inputSet); diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java index 5eb664fe7..ff6e1b5d4 100644 --- a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java +++ b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java @@ -56,8 +56,8 @@ public class ClampGraphBuilderTest { @Test public void clampGraphBuilderCompleteChainTest() { String collector = "VES"; - MicroService ms1 = new MicroService("ms1", "", "", "ms1_jpa_id", ""); - MicroService ms2 = new MicroService("ms2", "", "", "ms2_jpa_id", ""); + MicroService ms1 = new MicroService("ms1", "", "", "ms1_jpa_id"); + MicroService ms2 = new MicroService("ms2", "", "", "ms2_jpa_id"); String policy = "OperationalPolicy"; List microServices = Arrays.asList(ms1, ms2); @@ -76,8 +76,8 @@ public class ClampGraphBuilderTest { @Test(expected = InvalidStateException.class) public void clampGraphBuilderNoPolicyGivenTest() { String collector = "VES"; - MicroService ms1 = new MicroService("ms1", "", "", "ms1_jpa_id", ""); - MicroService ms2 = new MicroService("ms2", "", "", "ms2_jpa_id", ""); + MicroService ms1 = new MicroService("ms1", "", "", "ms1_jpa_id"); + MicroService ms2 = new MicroService("ms2", "", "", "ms2_jpa_id"); ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter); clampGraphBuilder.collector(collector).addMicroService(ms1).addMicroService(ms2).build(); diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java index 3bf85009a..cd6db68db 100644 --- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java @@ -51,6 +51,7 @@ import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller; import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.clds.util.ResourceFileUtil; +import org.onap.clamp.policy.microservice.MicroServicePolicy; import org.onap.sdc.api.notification.IArtifactInfo; import org.onap.sdc.api.notification.INotificationData; import org.onap.sdc.api.notification.IResourceInstance; @@ -206,6 +207,17 @@ public class CsarInstallerItCase { assertThat(loop.getModelPropertiesJson().get("resourceDetails")).isNotNull(); JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/model-properties.json"), JsonUtils.GSON.toJson(loop.getModelPropertiesJson()), true); + assertThat(((MicroServicePolicy) (loop.getMicroServicePolicies().toArray()[0])).getModelType()).isNotEmpty(); + + loop = loopsRepo + .findById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca_3.yaml")) + .get(); + assertThat(((MicroServicePolicy) (loop.getMicroServicePolicies().toArray()[0])).getModelType()).isNotEmpty(); + + loop = loopsRepo + .findById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE2, "tca_2.yaml")) + .get(); + assertThat(((MicroServicePolicy) (loop.getMicroServicePolicies().toArray()[0])).getModelType()).isNotEmpty(); } } diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json index 41ca2de22..d7a54162f 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json +++ b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json @@ -27,23 +27,22 @@ { "name": "deployParameters", "value": { - "dh_override": "component_dockerhost", - "dh_location_id": "zone1", - "aaiEnrichmentHost": "none", - "aaiEnrichmentPort": 8443, - "enableAAIEnrichment": false, - "dmaap_host": "dmaap.onap-message-router", - "dmaap_port": 3904, + "aaiEnrichmentHost": "aai.onap.svc.cluster.local", + "aaiEnrichmentPort": "8443", + "enableAAIEnrichment": true, + "dmaap_host": "message-router.onap", + "dmaap_port": "3904", "enableRedisCaching": false, - "redisHosts": "", - "tag_version": "nexus3.onap.org:10001/onap//onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.0.0", - "consul_host": "consul-server.onap-consul", + "redisHosts": "dcae-redis.onap.svc.cluster.local:6379", + "tag_version": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1", + "consul_host": "consul-server.onap", "consul_port": "8500", - "cbs_host": "config-binding-service.dcae", + "cbs_host": "config-binding-servicel", "cbs_port": "10000", - "external_port": "32010", + "external_port": "32012", + "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app", "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" } } ] -} +} \ No newline at end of file diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json new file mode 100644 index 000000000..f8f531654 --- /dev/null +++ b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json @@ -0,0 +1,47 @@ +{ + "global": [ + { + "name": "service", + "value": [ + "4cc5b45a-1f63-4194-8100-cd8e14248c92" + ] + }, + { + "name": "vf", + "value": [ + "07e266fc-49ab-4cd7-8378-ca4676f1b9ec" + ] + }, + { + "name": "actionSet", + "value": [ + "vnfRecipe" + ] + }, + { + "name": "location", + "value": [ + "DC1" + ] + }, + { + "name": "deployParameters", + "value": { + "aaiEnrichmentHost": "aai.onap.svc.cluster.local", + "aaiEnrichmentPort": "8443", + "enableAAIEnrichment": true, + "dmaap_host": "message-router.onap.svc.cluster.local", + "dmaap_port": "3904", + "enableRedisCaching": false, + "redisHosts": "dcae-redis.onap.svc.cluster.local:6379", + "tag_version": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest", + "consul_host": "consul-server.onap.svc.cluster.local", + "consul_port": "8500", + "cbs_host": "config-binding-service.dcae.svc.cluster.local", + "cbs_port": "10000", + "external_port": "32012", + "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" + } + } + ] +} \ No newline at end of file diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml index c834b1b93..56ae32a7f 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml @@ -1,76 +1,92 @@ +# +# ============LICENSE_START==================================================== +# ============================================================================= +# Copyright (c) 2019 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====================================================== + tosca_definitions_version: cloudify_dsl_1_3 -imports: - - "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml" - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/dockerplugin/3.2.0/dockerplugin_types.yaml - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/relationshipplugin/1.0.0/relationshipplugin_types.yaml - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml +description: > + This blueprint deploys/manages the TCA module as a Docker container + +imports: + - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml +# - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml inputs: - dh_override: - type: string - default: "component_dockerhost" - dh_location_id: - type: string - default: "zone1" aaiEnrichmentHost: type: string - default: "none" + default: "aai.onap.svc.cluster.local" aaiEnrichmentPort: - type: string - default: 8443 + type: string + default: "8443" enableAAIEnrichment: type: string - default: false + default: true dmaap_host: type: string - default: dmaap.onap-message-router + default: message-router.onap dmaap_port: type: string - default: 3904 + default: "3904" enableRedisCaching: type: string - default: false + default: false redisHosts: - type: string + type: string + default: dcae-redis.onap.svc.cluster.local:6379 tag_version: type: string - default: "nexus3.onap.org:10001/onap//onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.0.0" + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1" consul_host: type: string - default: consul-server.onap-consul + default: consul-server.onap consul_port: type: string default: "8500" cbs_host: type: string - default: "config-binding-service.dcae" + default: "config-binding-servicel" cbs_port: type: string default: "10000" policy_id: type: string - default: "none" + default: "onap.restart.tca" external_port: type: string - description: "Port for CDAPgui to be exposed" - default: "32010" - + description: Kubernetes node port on which CDAPgui is exposed + default: "32012" + policy_model_id: + type: string + default: "onap.policies.monitoring.cdap.tca.hi.lo.app" node_templates: - docker_service_host: - properties: - docker_host_override: - get_input: dh_override - location_id: - get_input: dh_location_id - type: dcae.nodes.SelectedDockerHost - tca_docker: + tca_k8s: + type: dcae.nodes.ContainerizedServiceComponent relationships: - - type: dcae.relationships.component_contained_in - target: docker_service_host - - target: tca_policy - type: cloudify.relationships.depends_on - type: dcae.nodes.DockerContainerForComponentsUsingDmaap + - target: tca_policy + type: cloudify.relationships.depends_on properties: + service_component_type: 'dcaegen2-analytics-tca' + application_config: {} + docker_config: {} + image: + get_input: tag_version + log_info: + log_directory: "/opt/app/TCAnalytics/logs" application_config: app_config: appDescription: DCAE Analytics Threshold Crossing Alert Application @@ -84,87 +100,75 @@ node_templates: tcaVESMessageStatusTableTTLSeconds: '86400' thresholdCalculatorFlowletInstances: '2' app_preferences: - aaiEnrichmentHost: + aaiEnrichmentHost: get_input: aaiEnrichmentHost aaiEnrichmentIgnoreSSLCertificateErrors: 'true' aaiEnrichmentPortNumber: '8443' aaiEnrichmentProtocol: https - aaiEnrichmentUserName: DCAE - aaiEnrichmentUserPassword: DCAE + aaiEnrichmentUserName: dcae@dcae.onap.org + aaiEnrichmentUserPassword: demo123456! aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf - enableAAIEnrichment: + enableAAIEnrichment: get_input: enableAAIEnrichment - enableRedisCaching: + enableRedisCaching: get_input: enableRedisCaching - redisHosts: + redisHosts: get_input: redisHosts enableAlertCEFFormat: 'false' publisherContentType: application/json - publisherHostName: + publisherHostName: get_input: dmaap_host - publisherHostPort: - get_input: dmaap_port + publisherHostPort: + get_input: dmaap_port publisherMaxBatchSize: '1' publisherMaxRecoveryQueueSize: '100000' publisherPollingInterval: '20000' publisherProtocol: http publisherTopicName: unauthenticated.DCAE_CL_OUTPUT - subscriberConsumerGroup: OpenDCAE-c12 + subscriberConsumerGroup: OpenDCAE-clamp subscriberConsumerId: c12 subscriberContentType: application/json - subscriberHostName: + subscriberHostName: get_input: dmaap_host subscriberHostPort: - get_input: dmaap_port + get_input: dmaap_port subscriberMessageLimit: '-1' subscriberPollingInterval: '30000' subscriberProtocol: http subscriberTimeoutMS: '-1' - subscriberTopicName: unauthenticated.SEC_MEASUREMENT_OUTPUT - tca_policy_default: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"LESS_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":700,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VM","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"Measurement_vGMUX","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"EQUAL","severity":"MAJOR","closedLoopEventStatus":"ABATED"},{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"GREATER","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]}]}' - service_component_type: dcaegen2-analytics_tca - docker_config: - healthcheck: - endpoint: /healthcheck - interval: 15s - timeout: 1s - type: http - image: - get_input: tag_version + subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT +# tca_policy: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"LESS_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":700,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VM","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"Measurement_vGMUX","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"EQUAL","severity":"MAJOR","closedLoopEventStatus":"ABATED"},{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"GREATER","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]}]}' + service_component_type: dcaegen2-analytics_tca interfaces: cloudify.interfaces.lifecycle: start: inputs: envs: - DMAAPHOST: + DMAAPHOST: { get_input: dmaap_host } DMAAPPORT: { get_input: dmaap_port } DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT" - DMAAPSUBTOPIC: "unauthenticated.SEC_MEASUREMENT_OUTPUT" - AAIHOST: + DMAAPSUBTOPIC: "unauthenticated.VES_MEASUREMENT_OUTPUT" + AAIHOST: { get_input: aaiEnrichmentHost } - AAIPORT: + AAIPORT: { get_input: aaiEnrichmentPort } - CONSUL_HOST: + CONSUL_HOST: { get_input: consul_host } - CONSUL_PORT: + CONSUL_PORT: { get_input: consul_port } - CBS_HOST: + CBS_HOST: { get_input: cbs_host } - CBS_PORT: + CBS_PORT: { get_input: cbs_port } - CONFIG_BINDING_SERVICE: "config_binding_service" + CONFIG_BINDING_SERVICE: "config_binding_service" ports: - - concat: ["11011:", { get_input: external_port }] - stop: - inputs: - cleanup_image: true + - concat: ["11011:", { get_input: external_port }] tca_policy: - type: dcae.nodes.policy + type: clamp.nodes.policy properties: policy_id: get_input: policy_id policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app - diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml index edaa0be28..53cfc4f76 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml @@ -1,105 +1,153 @@ tosca_definitions_version: cloudify_dsl_1_3 + +description: > + This blueprint deploys/manages the TCA module as a Docker container + imports: -- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml -- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml -- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml + - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml inputs: - location_id: + aaiEnrichmentHost: type: string - service_id: + default: "aai.onap.svc.cluster.local" + aaiEnrichmentPort: type: string + default: "8443" + enableAAIEnrichment: + type: string + default: true + dmaap_host: + type: string + default: message-router.onap.svc.cluster.local + dmaap_port: + type: string + default: "3904" + enableRedisCaching: + type: string + default: false + redisHosts: + type: string + default: dcae-redis.onap.svc.cluster.local:6379 + tag_version: + type: string + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest" + consul_host: + type: string + default: consul-server.onap.svc.cluster.local + consul_port: + type: string + default: "8500" + cbs_host: + type: string + default: "config-binding-service.dcae.svc.cluster.local" + cbs_port: + type: string + default: "10000" policy_id: type: string + default: "none" + external_port: + type: string + description: Kubernetes node port on which CDAPgui is exposed + default: "32012" + node_templates: - policy_0: - type: dcae.nodes.policy - properties: - policy_id: - get_input: policy_id - policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app - cdap_host_host: - type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure - properties: - location_id: - get_input: location_id - scn_override: cdap_broker.solutioning-central.dcae.onap.org - interfaces: - cloudify.interfaces.lifecycle: { - } - tca_tca: - type: dcae.nodes.MicroService.cdap - properties: - app_config: - appDescription: DCAE Analytics Threshold Crossing Alert Application - appName: dcae-tca - tcaSubscriberOutputStreamName: TCASubscriberOutputStream - tcaVESAlertsTableName: TCAVESAlertsTable - tcaVESAlertsTableTTLSeconds: '1728000' - tcaVESMessageStatusTableName: TCAVESMessageStatusTable - tcaVESMessageStatusTableTTLSeconds: '86400' - thresholdCalculatorFlowletInstances: '2' - app_preferences: - publisherContentType: application/json - publisherHostName: mrlocal-mtnjftle01.onap.org - publisherHostPort: '3905' - publisherMaxBatchSize: '10' - publisherMaxRecoveryQueueSize: '100000' - publisherPollingInterval: '20000' - publisherProtocol: https - publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub - publisherUserName: test@tca.af.dcae.onap.org - publisherUserPassword: password - subscriberConsumerGroup: OpenDCAE-c12 - subscriberConsumerId: c12 - subscriberContentType: application/json - subscriberHostName: mrlocal-mtnjftle01.onap.org - subscriberHostPort: '3905' - subscriberMessageLimit: '-1' - subscriberPollingInterval: '20000' - subscriberProtocol: https - subscriberTimeoutMS: '-1' - subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub - subscriberUserName: test@tca.af.dcae.onap.org - subscriberUserPassword: password - tca_policy: null - artifact_name: dcae-analytics-tca - artifact_version: 1.0.0 - connections: - streams_publishes: [ - ] - streams_subscribes: [ - ] - jar_url: http://somejar - location_id: - get_input: location_id - namespace: cdap_tca_hi_lo - programs: - - program_id: TCAVESCollectorFlow - program_type: flows - - program_id: TCADMaaPMRSubscriberWorker - program_type: workers - - program_id: TCADMaaPMRPublisherWorker - program_type: workers - service_component_type: cdap_app_tca - service_id: - get_input: service_id - streamname: TCASubscriberOutputStream + tca_k8s: + type: dcae.nodes.ContainerizedServiceComponent relationships: - - target: topic0 - type: dcae.relationships.subscribe_to_events - - target: topic1 - type: dcae.relationships.publish_events - - target: cdap_host_host - type: dcae.relationships.component_contained_in - - target: policy_0 - type: dcae.relationships.depends_on - topic0: - type: dcae.nodes.Topic + - target: tca_policy + type: cloudify.relationships.depends_on properties: - topic_name: '' - topic1: - type: dcae.nodes.Topic + service_component_type: 'dcaegen2-analytics-tca' + application_config: {} + docker_config: {} + image: + get_input: tag_version + log_info: + log_directory: "/opt/app/TCAnalytics/logs" + application_config: + app_config: + appDescription: DCAE Analytics Threshold Crossing Alert Application + appName: dcae-tca + tcaAlertsAbatementTableName: TCAAlertsAbatementTable + tcaAlertsAbatementTableTTLSeconds: '1728000' + tcaSubscriberOutputStreamName: TCASubscriberOutputStream + tcaVESAlertsTableName: TCAVESAlertsTable + tcaVESAlertsTableTTLSeconds: '1728000' + tcaVESMessageStatusTableName: TCAVESMessageStatusTable + tcaVESMessageStatusTableTTLSeconds: '86400' + thresholdCalculatorFlowletInstances: '2' + app_preferences: + aaiEnrichmentHost: + get_input: aaiEnrichmentHost + aaiEnrichmentIgnoreSSLCertificateErrors: 'true' + aaiEnrichmentPortNumber: '8443' + aaiEnrichmentProtocol: https + aaiEnrichmentUserName: dcae@dcae.onap.org + aaiEnrichmentUserPassword: demo123456! + aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query + aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf + enableAAIEnrichment: + get_input: enableAAIEnrichment + enableRedisCaching: + get_input: enableRedisCaching + redisHosts: + get_input: redisHosts + enableAlertCEFFormat: 'false' + publisherContentType: application/json + publisherHostName: + get_input: dmaap_host + publisherHostPort: + get_input: dmaap_port + publisherMaxBatchSize: '1' + publisherMaxRecoveryQueueSize: '100000' + publisherPollingInterval: '20000' + publisherProtocol: http + publisherTopicName: unauthenticated.DCAE_CL_OUTPUT + subscriberConsumerGroup: OpenDCAE-c12 + subscriberConsumerId: c12 + subscriberContentType: application/json + subscriberHostName: + get_input: dmaap_host + subscriberHostPort: + get_input: dmaap_port + subscriberMessageLimit: '-1' + subscriberPollingInterval: '30000' + subscriberProtocol: http + subscriberTimeoutMS: '-1' + subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT + tca_policy: '' + service_component_type: dcaegen2-analytics_tca + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + DMAAPHOST: + { get_input: dmaap_host } + DMAAPPORT: + { get_input: dmaap_port } + DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT" + DMAAPSUBTOPIC: "unauthenticated.VES_MEASUREMENT_OUTPUT" + AAIHOST: + { get_input: aaiEnrichmentHost } + AAIPORT: + { get_input: aaiEnrichmentPort } + CONSUL_HOST: + { get_input: consul_host } + CONSUL_PORT: + { get_input: consul_port } + CBS_HOST: + { get_input: cbs_host } + CBS_PORT: + { get_input: cbs_port } + CONFIG_BINDING_SERVICE: "config_binding_service" + ports: + - concat: ["11011:", { get_input: external_port }] + tca_policy: + type: dcae.nodes.policy properties: - topic_name: '' - + policy_id: + get_input: policy_id + policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app -- cgit 1.2.3-korg From 4545e770dd5ab7cab80ea115ed326e60a944cbc4 Mon Sep 17 00:00:00 2001 From: sebdet Date: Thu, 9 May 2019 11:03:53 +0200 Subject: Fix model type searching Change the way we get the model type in the dcaeblueprint Issue-ID: CLAMP-370 Change-Id: I961a20e5d993049c73acd67b6cbfe245e1676dda Signed-off-by: sebdet --- pom.xml | 2 +- .../sdc/controller/installer/BlueprintParser.java | 39 +++++++++++++--------- .../controller/installer/BlueprintParserTest.java | 2 +- .../clds/blueprint-with-microservice-chain.yaml | 6 ++-- .../clds/single-microservice-fragment-valid.yaml | 2 +- .../sdc/blueprint-dcae/prop-text-for-tca-3.json | 3 +- .../resources/example/sdc/blueprint-dcae/tca.yaml | 2 +- .../example/sdc/blueprint-dcae/tca_2.yaml | 2 +- .../example/sdc/blueprint-dcae/tca_3.yaml | 6 +++- version.properties | 2 +- 10 files changed, 39 insertions(+), 27 deletions(-) (limited to 'src/test/resources/example/sdc') diff --git a/pom.xml b/pom.xml index fb0144a8a..436fc46a3 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 4.0.0 org.onap.clamp clds - 4.0.0-SNAPSHOT + 4.0.1-SNAPSHOT clamp diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index aca2ed01d..3792c1720 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -53,21 +53,23 @@ public class BlueprintParser { private static final String TYPE = "type"; private static final String PROPERTIES = "properties"; private static final String NAME = "name"; - private static final String POLICYID = "policy_id"; - private static final String POLICY_TYPEID = "policy_type_id"; + private static final String INPUT = "inputs"; + private static final String GET_INPUT = "get_input"; + private static final String POLICY_MODELID = "policy_model_id"; private static final String RELATIONSHIPS = "relationships"; private static final String CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM = "clamp_node.relationships.gets_input_from"; private static final String TARGET = "target"; public Set getMicroServices(String blueprintString) { Set microServices = new HashSet<>(); - JsonObject jsonObject = BlueprintParser.convertToJson(blueprintString); - JsonObject nodeTemplateList = jsonObject.get(NODE_TEMPLATES).getAsJsonObject(); + JsonObject blueprintJson = BlueprintParser.convertToJson(blueprintString); + JsonObject nodeTemplateList = blueprintJson.get(NODE_TEMPLATES).getAsJsonObject(); + JsonObject inputList = blueprintJson.get(INPUT).getAsJsonObject(); for (Entry entry : nodeTemplateList.entrySet()) { JsonObject nodeTemplate = entry.getValue().getAsJsonObject(); if (nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) { - MicroService microService = getNodeRepresentation(entry, nodeTemplateList); + MicroService microService = getNodeRepresentation(entry, nodeTemplateList, inputList); microServices.add(microService); } } @@ -119,12 +121,12 @@ public class BlueprintParser { return ""; } - String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList) { + String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList, JsonObject inputList) { for (JsonElement elem : jsonArray) { String modelType = getModelType( new AbstractMap.SimpleEntry(elem.getAsJsonObject().get(TARGET).getAsString(), nodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()), - nodeTemplateList); + nodeTemplateList, inputList); if (!modelType.isEmpty()) { return modelType; } @@ -132,29 +134,34 @@ public class BlueprintParser { return ""; } - String getModelType(Entry entry, JsonObject nodeTemplateList) { + String getModelType(Entry entry, JsonObject nodeTemplateList, JsonObject inputList) { JsonObject ob = entry.getValue().getAsJsonObject(); // Search first in this node template if (ob.has(PROPERTIES)) { JsonObject properties = ob.get(PROPERTIES).getAsJsonObject(); - if (properties.has(POLICYID)) { - JsonObject policyIdObj = properties.get(POLICYID).getAsJsonObject(); - if (policyIdObj.has(POLICY_TYPEID)) { - return policyIdObj.get(POLICY_TYPEID).getAsString(); + if (properties.has(POLICY_MODELID)) { + if (properties.get(POLICY_MODELID).isJsonObject()) { + // it's a blueprint parameter + return inputList.get(properties.get(POLICY_MODELID).getAsJsonObject().get(GET_INPUT).getAsString()) + .getAsJsonObject().get("default").getAsString(); + } else { + // It's a direct value + return properties.get(POLICY_MODELID).getAsString(); } } } - // Then it's may be a relationship + // Or it's may be defined in a relationship if (ob.has(RELATIONSHIPS)) { - return findModelTypeInTargetArray(ob.get(RELATIONSHIPS).getAsJsonArray(), nodeTemplateList); + return findModelTypeInTargetArray(ob.get(RELATIONSHIPS).getAsJsonArray(), nodeTemplateList, inputList); } return ""; } - MicroService getNodeRepresentation(Entry entry, JsonObject nodeTemplateList) { + MicroService getNodeRepresentation(Entry entry, JsonObject nodeTemplateList, + JsonObject inputList) { String name = getName(entry); String getInputFrom = getInput(entry); - String modelType = getModelType(entry, nodeTemplateList); + String modelType = getModelType(entry, nodeTemplateList, inputList); return new MicroService(name, modelType, getInputFrom, ""); } diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java index 7a1f9f0ac..dec639770 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java @@ -144,7 +144,7 @@ public class BlueprintParserTest { MicroService expected = new MicroService(SECOND_APPP, MODEL_TYPE1, FIRST_APPP, ""); Entry entry = jsonObject.entrySet().iterator().next(); - MicroService actual = new BlueprintParser().getNodeRepresentation(entry, jsonObject); + MicroService actual = new BlueprintParser().getNodeRepresentation(entry, jsonObject, null); Assert.assertEquals(expected, actual); } diff --git a/src/test/resources/clds/blueprint-with-microservice-chain.yaml b/src/test/resources/clds/blueprint-with-microservice-chain.yaml index 4a7e5d7aa..fa2d72052 100644 --- a/src/test/resources/clds/blueprint-with-microservice-chain.yaml +++ b/src/test/resources/clds/blueprint-with-microservice-chain.yaml @@ -31,7 +31,7 @@ node_templates: service_component_name_override: second_app image: { get_input: second_app_docker_image } policy_id: - policy_type_id: type2 + policy_model_id: "type2" interfaces: cloudify.interfaces.lifecycle: start: @@ -56,7 +56,7 @@ node_templates: image: { get_input: first_app_docker_image } container_port: 6565 policy_id: - policy_type_id: type1 + policy_model_id: "type1" interfaces: cloudify.interfaces.lifecycle: start: @@ -81,7 +81,7 @@ node_templates: image: { get_input: third_app_docker_image } container_port: 443 policy_id: - policy_type_id: type3 + policy_model_id: "type3" interfaces: cloudify.interfaces.lifecycle: start: diff --git a/src/test/resources/clds/single-microservice-fragment-valid.yaml b/src/test/resources/clds/single-microservice-fragment-valid.yaml index 269ee5062..2c1680717 100644 --- a/src/test/resources/clds/single-microservice-fragment-valid.yaml +++ b/src/test/resources/clds/single-microservice-fragment-valid.yaml @@ -6,7 +6,7 @@ second_app: image: { get_input: second_app_docker_image } name: second_app policy_id: - policy_type_id: type1 + policy_model_id: "type1" interfaces: cloudify.interfaces.lifecycle: start: diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json index f8f531654..012c46e9c 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json +++ b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json @@ -40,7 +40,8 @@ "cbs_host": "config-binding-service.dcae.svc.cluster.local", "cbs_port": "10000", "external_port": "32012", - "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" + "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT", + "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app" } } ] diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml index edaa0be28..0cb9cdb68 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca.yaml @@ -17,7 +17,7 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app + policy_model_id: "onap.policies.monitoring.cdap.tca.hi.lo.app" cdap_host_host: type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure properties: diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml index 56ae32a7f..00ebfe7fe 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml @@ -171,4 +171,4 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app + policy_model_id: "onap.policies.monitoring.cdap.tca.hi.lo.app" diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml index 53cfc4f76..6fab504b2 100644 --- a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml +++ b/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml @@ -51,6 +51,9 @@ inputs: type: string description: Kubernetes node port on which CDAPgui is exposed default: "32012" + policy_model_id: + type: string + default: "onap.policies.monitoring.cdap.tca.hi.lo.app" node_templates: tca_k8s: @@ -150,4 +153,5 @@ node_templates: properties: policy_id: get_input: policy_id - policy_type_id: onap.policies.monitoring.cdap.tca.hi.lo.app + policy_model_id: + get_input: policy_model_id diff --git a/version.properties b/version.properties index 937711c74..16b9934e3 100644 --- a/version.properties +++ b/version.properties @@ -27,7 +27,7 @@ major=4 minor=0 -patch=0 +patch=1 base_version=${major}.${minor}.${patch} -- cgit 1.2.3-korg From 9047defa7549ebd9a84cef3e10bbfd90f068097b Mon Sep 17 00:00:00 2001 From: xuegao Date: Fri, 13 Dec 2019 11:50:24 +0100 Subject: Update deploymentParameters Update deploymentParameters to allow a map of instead of a single deploymentParam Issue-ID: CLAMP-569, CLAMP-570 Change-Id: I6abc4fe193157644bd6abe1c893a1416cadec988 Signed-off-by: xuegao --- .../clamp/clds/model/dcae/DcaeInventoryCache.java | 5 + .../java/org/onap/clamp/loop/CsarInstaller.java | 36 +----- .../onap/clamp/loop/deploy/DeployParameters.java | 127 +++++++++++++++++++++ .../clamp/loop/deploy/DeployParametersTest.java | 86 ++++++++++++++ .../sdc/expected-result/deployment-parameters.json | 43 +++++++ .../src/components/dialogs/Loop/DeployLoopModal.js | 35 ++++-- .../dialogs/Loop/DeployLoopModal.test.js | 9 +- .../__snapshots__/DeployLoopModal.test.js.snap | 68 ++++++----- 8 files changed, 336 insertions(+), 73 deletions(-) create mode 100644 src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java create mode 100644 src/test/java/org/onap/clamp/loop/deploy/DeployParametersTest.java create mode 100644 src/test/resources/example/sdc/expected-result/deployment-parameters.json (limited to 'src/test/resources/example/sdc') diff --git a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java index b383c18bf..558102c5d 100644 --- a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java +++ b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java @@ -38,6 +38,11 @@ public class DcaeInventoryCache { private Map> blueprintsMap = new ConcurrentHashMap<>(); + /** + * Add Dcae inventory response. + * + * @param inventoryResponse the Dcae inventory response + */ public void addDcaeInventoryResponse(DcaeInventoryResponse inventoryResponse) { Set responsesSet = blueprintsMap.get(inventoryResponse.getAsdcServiceId()); if (responsesSet == null) { diff --git a/src/main/java/org/onap/clamp/loop/CsarInstaller.java b/src/main/java/org/onap/clamp/loop/CsarInstaller.java index 3f69e116c..371f88e8b 100644 --- a/src/main/java/org/onap/clamp/loop/CsarInstaller.java +++ b/src/main/java/org/onap/clamp/loop/CsarInstaller.java @@ -45,6 +45,7 @@ import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; import org.onap.clamp.clds.sdc.controller.installer.MicroService; import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.clds.util.drawing.SvgFacade; +import org.onap.clamp.loop.deploy.DeployParameters; import org.onap.clamp.loop.service.Service; import org.onap.clamp.loop.service.ServiceRepository; import org.onap.clamp.policy.Policy; @@ -240,9 +241,7 @@ public class CsarInstaller { } private JsonObject createGlobalPropertiesJson(BlueprintArtifact blueprintArtifact, Loop newLoop) { - JsonObject globalProperties = new JsonObject(); - globalProperties.add("dcaeDeployParameters", getAllBlueprintParametersInJson(blueprintArtifact, newLoop)); - return globalProperties; + return new DeployParameters(blueprintArtifact, newLoop).getDeploymentParametersinJson(); } private static JsonObject createVfModuleProperties(CsarHandler csar) { @@ -280,24 +279,6 @@ public class CsarInstaller { return resourcesProp; } - private JsonObject getAllBlueprintParametersInJson(BlueprintArtifact blueprintArtifact, Loop newLoop) { - JsonObject node = new JsonObject(); - Yaml yaml = new Yaml(); - Map inputsNodes = ((Map) ((Map) yaml - .load(blueprintArtifact.getDcaeBlueprint())).get("inputs")); - inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> { - Object defaultValue = ((Map) elem.getValue()).get("default"); - if (defaultValue != null) { - addPropertyToNode(node, elem.getKey(), defaultValue); - } else { - node.addProperty(elem.getKey(), ""); - } - }); - // For Dublin only one micro service is expected - node.addProperty("policy_id", ((MicroServicePolicy) newLoop.getMicroServicePolicies().toArray()[0]).getName()); - return node; - } - /** * ll get the latest version of the artifact (version can be specified to DCAE * call). @@ -311,17 +292,4 @@ public class CsarInstaller { blueprintArtifact.getResourceAttached().getResourceInvariantUUID()); } - private void addPropertyToNode(JsonObject node, String key, Object value) { - if (value instanceof String) { - node.addProperty(key, (String) value); - } else if (value instanceof Number) { - node.addProperty(key, (Number) value); - } else if (value instanceof Boolean) { - node.addProperty(key, (Boolean) value); - } else if (value instanceof Character) { - node.addProperty(key, (Character) value); - } else { - node.addProperty(key, JsonUtils.GSON.toJson(value)); - } - } } diff --git a/src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java b/src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java new file mode 100644 index 000000000..c994af7c0 --- /dev/null +++ b/src/main/java/org/onap/clamp/loop/deploy/DeployParameters.java @@ -0,0 +1,127 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2019 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============================================ + * =================================================================== + * + */ + +package org.onap.clamp.loop.deploy; + +import com.google.gson.JsonObject; + +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.Map; + +import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact; +import org.onap.clamp.clds.util.JsonUtils; +import org.onap.clamp.loop.Loop; +import org.onap.clamp.policy.microservice.MicroServicePolicy; +import org.yaml.snakeyaml.Yaml; + +public class DeployParameters { + + private LinkedHashMap deploymentParamMap = new LinkedHashMap(); + + /** + * Constructor. + * + * @param blueprintArtifactList A list of blueprint artifacts + * @param loop The loop object + */ + public DeployParameters(LinkedHashSet blueprintArtifactList, Loop loop) { + this.init(blueprintArtifactList, loop); + } + + /** + * Constructor. + * + * @param blueprintArtifact One blueprint artifact + * @param loop The loop object + */ + public DeployParameters(BlueprintArtifact blueprintArtifact, Loop loop) { + LinkedHashSet blueprintArtifactList = new LinkedHashSet(); + blueprintArtifactList.add(blueprintArtifact); + this.init(blueprintArtifactList, loop); + } + + private void init(LinkedHashSet blueprintArtifactList, Loop loop) { + String microServiceName = ((MicroServicePolicy) loop.getMicroServicePolicies().toArray()[0]).getName(); + // Add index to the microservice name from the 2nd blueprint artifact for now. + // Update the microservice names, when able to link the microserivce <-> blueprint in the future + int index = 0; + for (BlueprintArtifact blueprintArtifact: blueprintArtifactList) { + if (index > 0) { + deploymentParamMap.put(microServiceName + index, + generateDeployParameter(blueprintArtifact, microServiceName)); + } else { + deploymentParamMap.put(microServiceName, generateDeployParameter(blueprintArtifact, microServiceName)); + } + index++; + } + } + + private JsonObject generateDeployParameter(BlueprintArtifact blueprintArtifact, String microServiceName) { + JsonObject deployJsonBody = new JsonObject(); + Yaml yaml = new Yaml(); + Map inputsNodes = ((Map) ((Map) yaml + .load(blueprintArtifact.getDcaeBlueprint())).get("inputs")); + inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> { + Object defaultValue = ((Map) elem.getValue()).get("default"); + if (defaultValue != null) { + addPropertyToNode(deployJsonBody, elem.getKey(), defaultValue); + } else { + deployJsonBody.addProperty(elem.getKey(), ""); + } + }); + // For Dublin only one micro service is expected + deployJsonBody.addProperty("policy_id", microServiceName); + return deployJsonBody; + } + + private void addPropertyToNode(JsonObject node, String key, Object value) { + if (value instanceof String) { + node.addProperty(key, (String) value); + } else if (value instanceof Number) { + node.addProperty(key, (Number) value); + } else if (value instanceof Boolean) { + node.addProperty(key, (Boolean) value); + } else if (value instanceof Character) { + node.addProperty(key, (Character) value); + } else { + node.addProperty(key, JsonUtils.GSON.toJson(value)); + } + } + + /** + * Convert the object in Json. + * + * @return The deploymentParameters in Json + */ + public JsonObject getDeploymentParametersinJson() { + JsonObject globalProperties = new JsonObject(); + JsonObject deployParamJson = new JsonObject(); + for (Map.Entry mapElement: deploymentParamMap.entrySet()) { + deployParamJson.add(mapElement.getKey(), mapElement.getValue()); + } + globalProperties.add("dcaeDeployParameters", deployParamJson); + return globalProperties; + } + +} diff --git a/src/test/java/org/onap/clamp/loop/deploy/DeployParametersTest.java b/src/test/java/org/onap/clamp/loop/deploy/DeployParametersTest.java new file mode 100644 index 000000000..8834ef667 --- /dev/null +++ b/src/test/java/org/onap/clamp/loop/deploy/DeployParametersTest.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Modifications copyright (c) 2019 Nokia + * Modifications Copyright (c) 2019 Samsung + * ================================================================================ + * 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============================================ + * =================================================================== + * + */ + +package org.onap.clamp.loop.deploy; + +import com.google.gson.JsonObject; + +import java.io.IOException; +import java.util.LinkedHashSet; + +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact; +import org.onap.clamp.clds.util.JsonUtils; +import org.onap.clamp.clds.util.ResourceFileUtil; +import org.onap.clamp.loop.Loop; +import org.onap.clamp.policy.microservice.MicroServicePolicy; +import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; + +public class DeployParametersTest { + + private BlueprintArtifact buildFakeBuildprintArtifact(String blueprintFilePath) throws IOException { + BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class); + Mockito.when(blueprintArtifact.getDcaeBlueprint()) + .thenReturn(ResourceFileUtil.getResourceAsString(blueprintFilePath)); + return blueprintArtifact; + } + + private LinkedHashSet buildFakeCsarHandler() throws IOException, SdcToscaParserException { + + LinkedHashSet blueprintSet = new LinkedHashSet(); + + BlueprintArtifact blueprintArtifact = buildFakeBuildprintArtifact("example/sdc/blueprint-dcae/tca.yaml"); + + blueprintSet.add(blueprintArtifact); + // Create fake blueprint artifact 2 on resource2 + blueprintArtifact = buildFakeBuildprintArtifact("example/sdc/blueprint-dcae/tca_2.yaml"); + blueprintSet.add(blueprintArtifact); + + // Create fake blueprint artifact 3 on resource 1 so that it's possible to + // test multiple CL deployment per Service/vnf + blueprintArtifact = buildFakeBuildprintArtifact("example/sdc/blueprint-dcae/tca_3.yaml"); + blueprintSet.add(blueprintArtifact); + return blueprintSet; + } + + @Test + public void getDeploymentParametersinJsonTest() throws IOException, SdcToscaParserException { + Loop loop = Mockito.mock(Loop.class); + MicroServicePolicy umService = Mockito.mock(MicroServicePolicy.class); + LinkedHashSet umServiceSet = new LinkedHashSet(); + Mockito.when(umService.getName()).thenReturn("testName"); + umServiceSet.add(umService); + Mockito.when(loop.getMicroServicePolicies()).thenReturn(umServiceSet); + + DeployParameters deployParams = new DeployParameters(buildFakeCsarHandler(), loop); + JsonObject paramJson = deployParams.getDeploymentParametersinJson(); + + Assert.assertEquals(JsonUtils.GSON_JPA_MODEL.toJson(paramJson), + ResourceFileUtil.getResourceAsString("example/sdc/expected-result/deployment-parameters.json")); + } +} diff --git a/src/test/resources/example/sdc/expected-result/deployment-parameters.json b/src/test/resources/example/sdc/expected-result/deployment-parameters.json new file mode 100644 index 000000000..2e10ac37e --- /dev/null +++ b/src/test/resources/example/sdc/expected-result/deployment-parameters.json @@ -0,0 +1,43 @@ +{ + "dcaeDeployParameters": { + "testName": { + "location_id": "", + "service_id": "", + "policy_id": "testName" + }, + "testName1": { + "aaiEnrichmentHost": "aai.onap.svc.cluster.local", + "aaiEnrichmentPort": "8443", + "enableAAIEnrichment": true, + "dmaap_host": "message-router.onap", + "dmaap_port": "3904", + "enableRedisCaching": false, + "redisHosts": "dcae-redis.onap.svc.cluster.local:6379", + "tag_version": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1", + "consul_host": "consul-server.onap", + "consul_port": "8500", + "cbs_host": "config-binding-servicel", + "cbs_port": "10000", + "external_port": "32012", + "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app", + "policy_id": "testName" + }, + "testName2": { + "aaiEnrichmentHost": "aai.onap.svc.cluster.local", + "aaiEnrichmentPort": "8443", + "enableAAIEnrichment": true, + "dmaap_host": "message-router.onap.svc.cluster.local", + "dmaap_port": "3904", + "enableRedisCaching": false, + "redisHosts": "dcae-redis.onap.svc.cluster.local:6379", + "tag_version": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest", + "consul_host": "consul-server.onap.svc.cluster.local", + "consul_port": "8500", + "cbs_host": "config-binding-service.dcae.svc.cluster.local", + "cbs_port": "10000", + "external_port": "32012", + "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app", + "policy_id": "testName" + } + } +} \ No newline at end of file diff --git a/ui-react/src/components/dialogs/Loop/DeployLoopModal.js b/ui-react/src/components/dialogs/Loop/DeployLoopModal.js index 34304d611..9c9a16feb 100644 --- a/ui-react/src/components/dialogs/Loop/DeployLoopModal.js +++ b/ui-react/src/components/dialogs/Loop/DeployLoopModal.js @@ -26,6 +26,8 @@ import LoopService from '../../../api/LoopService'; import Button from 'react-bootstrap/Button'; import Modal from 'react-bootstrap/Modal'; import Form from 'react-bootstrap/Form'; +import Tabs from 'react-bootstrap/Tabs'; +import Tab from 'react-bootstrap/Tab'; import styled from 'styled-components'; const ModalStyled = styled(Modal)` @@ -55,6 +57,14 @@ export default class DeployLoopModal extends React.Component { show: true }); } + componentDidMount() { + const deployJsonList = this.state.temporaryPropertiesJson["dcaeDeployParameters"]; + Object.keys(deployJsonList) + .filter((obj) => Object.keys(deployJsonList).indexOf(obj) === 0) + .map(obj => + this.setState({key: obj}) + ); + } handleClose(){ this.props.history.push('/'); } @@ -89,34 +99,43 @@ export default class DeployLoopModal extends React.Component { } handleChange(event) { let deploymentParam = this.state.temporaryPropertiesJson["dcaeDeployParameters"]; - deploymentParam[event.target.name] = event.target.value; + deploymentParam[this.state.key][event.target.name] = event.target.value; this.setState({temporaryPropertiesJson:{dcaeDeployParameters: deploymentParam}}); } - renderDeployParam() { + renderDeployParamTabs() { if (typeof (this.state.temporaryPropertiesJson) === "undefined") { return ""; } - const deployJson = this.state.temporaryPropertiesJson["dcaeDeployParameters"]; + const deployJsonList = this.state.temporaryPropertiesJson["dcaeDeployParameters"]; + var indents = []; + Object.keys(deployJsonList).map((item,key) => + indents.push( + {this.renderDeployParam(deployJsonList[item])} + ) + ); + return indents; + } + + renderDeployParam(deployJson) { var indents = []; Object.keys(deployJson).map((item,key) => indents.push( {item} )); - - return indents; + return indents; } - - render() { return ( Deployment parameters - {this.renderDeployParam()} + this.setState({ key })}> + {this.renderDeployParamTabs()} + diff --git a/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js b/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js index 2ebb8c067..5f1dcd5fc 100644 --- a/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js +++ b/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js @@ -32,8 +32,10 @@ describe('Verify DeployLoopModal', () => { "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca", "globalPropertiesJson": { "dcaeDeployParameters": { - "location_id": "", - "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca" + "testMs": { + "location_id": "", + "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca" + } } } }); @@ -101,10 +103,9 @@ describe('Verify DeployLoopModal', () => { it('Onchange event', () => { const event = { target: { name: "location_id", value: "testLocation"} }; const component = shallow(); - const forms = component.find('StateManager'); component.find('[name="location_id"]').simulate('change', event); component.update(); - expect(component.state('temporaryPropertiesJson').dcaeDeployParameters.location_id).toEqual("testLocation"); + expect(component.state('temporaryPropertiesJson').dcaeDeployParameters.testMs.location_id).toEqual("testLocation"); }); }); \ No newline at end of file diff --git a/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap b/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap index bf06965be..0f86aa340 100644 --- a/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap +++ b/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap @@ -14,34 +14,48 @@ exports[`Verify DeployLoopModal Test the render method 1`] = ` Deployment parameters - - - location_id - - - - - + - policy_id - - - + + + location_id + + + + + + policy_id + + + + +