aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extra/docker/clamp/clamp.env2
-rw-r--r--extra/docker/elk/.env2
-rw-r--r--extra/docker/elk/README.md90
-rw-r--r--extra/docker/elk/docker-compose.yml59
-rwxr-xr-xextra/docker/elk/tools/DMaaPServiceMocker/ds_mocker.py257
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/event_abated.json27
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/event_onset.json26
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_active.json28
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_final_failed.json42
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_final_open.json28
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_final_success.json40
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_operation.json28
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_failure.json29
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_success.json29
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_disabled.json29
-rw-r--r--extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_missing.json18
-rwxr-xr-xextra/docker/elk/tools/EsAutoQuery/autoQueryLoop.sh27
-rw-r--r--extra/docker/elk/tools/EsAutoQuery/closedLoopAlarmDuration.json34
-rw-r--r--extra/docker/elk/tools/EsAutoQuery/timeSince.json51
-rw-r--r--extra/docker/heat/clamp.env2
-rw-r--r--extra/docker/heat/docker-compose.yml84
-rw-r--r--extra/sql/bulkload/create-tables.sql5
-rw-r--r--extra/sql/dump/test-data.sql22
-rw-r--r--pom.xml41
-rw-r--r--src/main/docker/elasticsearch/Dockerfile21
-rw-r--r--src/main/docker/elasticsearch/bin/init_sg.sh7
-rw-r--r--src/main/docker/elasticsearch/config/elasticsearch.yml33
-rw-r--r--src/main/docker/elasticsearch/config/sg/kirk-keystore.jksbin4525 -> 0 bytes
-rw-r--r--src/main/docker/elasticsearch/config/sg/node-0-keystore.jksbin4593 -> 0 bytes
-rw-r--r--src/main/docker/elasticsearch/config/sg/sg_action_groups.yml153
-rw-r--r--src/main/docker/elasticsearch/config/sg/sg_config.yml148
-rw-r--r--src/main/docker/elasticsearch/config/sg/sg_internal_users.yml45
-rw-r--r--src/main/docker/elasticsearch/config/sg/sg_roles.yml300
-rw-r--r--src/main/docker/elasticsearch/config/sg/sg_roles_mapping.yml34
-rw-r--r--src/main/docker/elasticsearch/config/sg/truststore.jksbin1096 -> 0 bytes
-rw-r--r--src/main/docker/elasticsearch/my-entrypoint.sh8
-rw-r--r--src/main/docker/kibana/Dockerfile61
-rw-r--r--src/main/docker/kibana/README.md0
-rwxr-xr-xsrc/main/docker/kibana/backup.py89
-rw-r--r--src/main/docker/kibana/conf/keystore/org.onap.clamp.crt.pem30
-rw-r--r--src/main/docker/kibana/conf/keystore/org.onap.clamp.key.pem32
-rw-r--r--src/main/docker/kibana/conf/kibana.yml17
-rwxr-xr-xsrc/main/docker/kibana/restore.py115
-rw-r--r--src/main/docker/kibana/saved-objects/default/config/config-6.6.2.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/dashboard/dashboard-e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/index-pattern/index-pattern-04e06060-50bf-11e9-b3a3-7302725859d5.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWIk8yDIDjJ4k3sPXRbu.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWIk9P-qDjJ4k3sPXRcQ.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWIlAjTaDjJ4k3sPXRe1.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWJsTEvYr1AwiIiFoV6S.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWWh6CC3TSxbbr1lgyay.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWWh7d7sTSxbbr1lgyaz.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWWhVlbFTSxbbr1lgyap.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/search/search-AWXPmsmxr9U94x7rrLgV.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-0ef409f0-38f8-11e9-beac-8d2beda26615.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-2d36b0e0-38f6-11e9-beac-8d2beda26615.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-9a1a6750-38f7-11e9-beac-8d2beda26615.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-a9d9d120-38f8-11e9-beac-8d2beda26615.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-ae8c22b0-3905-11e9-beac-8d2beda26615.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-e1f0fa00-38f5-11e9-beac-8d2beda26615.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-f724dfd0-38f6-11e9-beac-8d2beda26615.json1
-rw-r--r--src/main/docker/kibana/saved-objects/default/visualization/visualization-fcc9a8b0-38f8-11e9-beac-8d2beda26615.json1
-rwxr-xr-xsrc/main/docker/kibana/startup.sh106
-rw-r--r--src/main/docker/logstash/Dockerfile36
-rw-r--r--src/main/docker/logstash/certs/aafca.pem26
-rw-r--r--src/main/docker/logstash/pipeline/logstash.conf269
-rw-r--r--src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java122
-rw-r--r--src/main/java/org/onap/clamp/clds/config/ClampProperties.java65
-rw-r--r--src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java133
-rw-r--r--src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java4
-rw-r--r--src/main/java/org/onap/clamp/clds/exception/BadRequestException.java61
-rw-r--r--src/main/java/org/onap/clamp/clds/exception/sdc/controller/BlueprintParserException.java (renamed from src/main/java/org/onap/clamp/exception/OperationException.java)37
-rw-r--r--src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java2
-rw-r--r--src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java5
-rw-r--r--src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintMicroService.java (renamed from src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java)44
-rw-r--r--src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java161
-rw-r--r--src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java24
-rwxr-xr-xsrc/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java8
-rwxr-xr-xsrc/main/java/org/onap/clamp/clds/util/drawing/Painter.java10
-rw-r--r--src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java4
-rw-r--r--src/main/java/org/onap/clamp/loop/CsarInstaller.java68
-rw-r--r--src/main/java/org/onap/clamp/loop/Loop.java19
-rw-r--r--src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java13
-rw-r--r--src/main/java/org/onap/clamp/loop/template/LoopElementModel.java2
-rw-r--r--src/main/java/org/onap/clamp/loop/template/LoopTemplate.java25
-rw-r--r--src/main/java/org/onap/clamp/loop/template/PolicyModel.java10
-rw-r--r--src/main/java/org/onap/clamp/policy/downloader/PolicyDownloader.java96
-rw-r--r--src/main/resources/application-noaaf.properties22
-rw-r--r--src/main/resources/application.properties30
-rw-r--r--src/main/resources/clds/camel/routes/dcae-flows.xml47
-rw-r--r--src/main/resources/clds/camel/routes/loop-flows.xml103
-rw-r--r--src/main/resources/clds/camel/routes/policy-flows.xml1075
-rw-r--r--src/test/java/org/onap/clamp/clds/it/PolicyConfigurationItCase.java71
-rw-r--r--src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java33
-rw-r--r--src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java2
-rw-r--r--src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java94
-rw-r--r--src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java39
-rw-r--r--src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java2
-rw-r--r--src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java16
-rw-r--r--src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java22
-rw-r--r--src/test/java/org/onap/clamp/loop/DcaeComponentTest.java4
-rw-r--r--src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java86
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java4
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java7
-rw-r--r--src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java17
-rw-r--r--src/test/resources/application.properties29
-rw-r--r--src/test/resources/clds/OperationalPolicyRepresentationBuilderTest.java52
-rw-r--r--src/test/resources/clds/blueprint-parser-mapping.json18
-rw-r--r--src/test/resources/clds/blueprint-with-microservice-chain.yaml238
-rw-r--r--src/test/resources/clds/camel/rest/clamp-api-v2.xml42
-rw-r--r--src/test/resources/clds/camel/routes/dcae-flows.xml26
-rw-r--r--src/test/resources/clds/camel/routes/loop-flows.xml104
-rw-r--r--src/test/resources/clds/camel/routes/policy-flows.xml1075
-rw-r--r--src/test/resources/clds/holmes-old-style-ms.yaml117
-rw-r--r--src/test/resources/clds/single-microservice-fragment-invalid.yaml (renamed from src/test/resources/clds/single-microservice-fragment-valid.yaml)0
-rw-r--r--src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml21
-rw-r--r--src/test/resources/clds/tca-old-style-ms.yaml169
-rw-r--r--src/test/resources/example/sdc/blueprint-dcae/holmes.yaml174
-rw-r--r--src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml130
-rw-r--r--src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json48
-rw-r--r--src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json48
-rw-r--r--src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json36
-rw-r--r--src/test/resources/http-cache/example/pdp/api/deletePolicy/.file1
-rw-r--r--src/test/resources/http-cache/example/pdp/api/getConfig/.file2
-rw-r--r--src/test/resources/http-cache/example/pdp/api/getConfig/.header1
-rw-r--r--src/test/resources/http-cache/example/pdp/api/pushPolicy/.file1
-rw-r--r--src/test/resources/http-cache/example/pdp/api/pushPolicy/.header1
-rw-r--r--src/test/resources/http-cache/example/pdp/api/updatePolicy/.file1
-rw-r--r--src/test/resources/http-cache/example/pdp/api/updatePolicy/.header1
-rw-r--r--src/test/resources/http-cache/example/policy/api/v1/policytypes/.file60
-rw-r--r--src/test/resources/http-cache/example/policy/api/v1/policytypes/.header (renamed from src/test/resources/http-cache/example/pdp/api/deletePolicy/.header)0
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.header1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.file1
-rw-r--r--src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.header1
-rw-r--r--src/test/resources/logback.xml91
-rw-r--r--src/test/resources/tosca/dcea_blueprint.yml170
-rwxr-xr-xui-react-lib/package.json3
-rw-r--r--version.properties4
181 files changed, 2423 insertions, 5422 deletions
diff --git a/extra/docker/clamp/clamp.env b/extra/docker/clamp/clamp.env
index 06381f94..3270db2c 100644
--- a/extra/docker/clamp/clamp.env
+++ b/extra/docker/clamp/clamp.env
@@ -1,2 +1,2 @@
### Be careful, this must be in one line only ###
-SPRING_APPLICATION_JSON={"spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3","spring.profiles.active":"clamp-default,clamp-default-user,clamp-sdc-controller-new,clamp-ssl-config","clamp.config.policy.api.url":"http4://third-party-proxy:8085","clamp.config.policy.pap.url":"http4://third-party-proxy:8085","clamp.config.dcae.inventory.url":"http://third-party-proxy:8085","clamp.config.dcae.deployment.url":"http4://third-party-proxy:8085"}
+SPRING_APPLICATION_JSON={"spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3","spring.profiles.active":"clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config","clamp.config.policy.api.url":"http4://third-party-proxy:8085","clamp.config.policy.pap.url":"http4://third-party-proxy:8085","clamp.config.dcae.inventory.url":"http://third-party-proxy:8085","clamp.config.dcae.deployment.url":"http4://third-party-proxy:8085"}
diff --git a/extra/docker/elk/.env b/extra/docker/elk/.env
deleted file mode 100644
index 79d79430..00000000
--- a/extra/docker/elk/.env
+++ /dev/null
@@ -1,2 +0,0 @@
-# docker compose related
-COMPOSE_PROJECT_NAME=clamp_elk
diff --git a/extra/docker/elk/README.md b/extra/docker/elk/README.md
deleted file mode 100644
index b2b6fe36..00000000
--- a/extra/docker/elk/README.md
+++ /dev/null
@@ -1,90 +0,0 @@
-CLAMP Dashboard
-===============
-
-ELK stack for CLAMP : Logstash is used to retrieve events and notifications from DMaaP and pushes them into Elasticsearch.
-Kibana is then used to extract statistics.
-
-
-Deployment instructions
------------------------
-
-Requirements: docker-compose
-
-1. Update configuration in docker-compose file
-2. `docker-compose up -d elasticsearch logstash kibana`
-
-If you encounter connection problems with kibana, first deploy elasticsearch, wait for it to be available, then kibana.
-
-Backup/restore
---------------
-
-backup.py and restore.py scripts are available inside the kibana docker image for saving and restoring the configuration.
-the default configuration is located in the kibana docker image under the directory "/saved-objects/default/"
-
-### backup.py
-```
-firts create the directory "/saved-objects/mybackup" if it doesn't exist
-docker-compose exec kibana backup.py -C /saved-objects/mybackup
-```
-```
-usage: backup.py [-h] [-v] [-C CONFIGURATION_PATH] [-f] [-H KIBANA_HOST]
-
-Description of the script
-
-optional arguments:
- -h, --help show this help message and exit
- -v, --verbose Use verbose logging
- -C CONFIGURATION_PATH, --configuration_path CONFIGURATION_PATH
- Path of the configuration to be backed up.
- -f, --force If the save folder already exists, overwrite files
- matching a configuration item that should be written.
- Files already in the folder that do not match are left
- as-is.
- -H KIBANA_HOST, --kibana-host KIBANA_HOST
- Kibana endpoint.
-
-```
-
-### restore.py
-```
-to restore the configuration, you previously backed up, use the command below:
-docker-compose exec kibana restore.py -C /saved-objects/mybackup -f
-to restore the default confgiuration use the command below:
-docker-compose exec kibana restore.py -C /saved-objects/default -f
-```
-```
-usage: restore.py [-h] [-v] [-C CONFIGURATION_PATH] [-H KIBANA_HOST] [-f]
-
-Restores the kibana configuration.
-
-optional arguments:
- -h, --help show this help message and exit
- -v, --verbose Use verbose logging
- -C CONFIGURATION_PATH, --configuration_path CONFIGURATION_PATH
- Path of the configuration to be restored.Should
- contain at least one folder named index-
- pattern,config,search,visualization or dashboard
- -H KIBANA_HOST, --kibana-host KIBANA_HOST
- Kibana endpoint.
- -f, --force Overwrite configuration if needed.
-```
-
-Tools
------
-
-The following tools are available in the 'tools/' folder.
-
-
-### EsAutoQuery
-
-Small script ease Elasticsearch /painless/ field development.
-It reads a json file as a query for Elasticsearch, pushes it on the ES server, and display back the answer in a loop, each time the file is modified.
-
-
-### DMaaP Service Mocker
-
-Script that simulates control loop DMaaP services to provide sample data to logstash through DMaaP.
-
-TODO
-----
-* Add a script that verifies that elasticsearch is available before starting loading the default configuration for kibana
diff --git a/extra/docker/elk/docker-compose.yml b/extra/docker/elk/docker-compose.yml
deleted file mode 100644
index 88656381..00000000
--- a/extra/docker/elk/docker-compose.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-version: '3.1'
-
-services:
- elasticsearch:
- image: onap/clamp-dashboard-elasticsearch:latest
- ports:
- - 9200:9200
- networks:
- es_net:
- aliases:
- - elasticsearch
- environment:
- - cluster.name=docker-cluster
- - bootstrap.memory_lock=false
- - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-
- logstash:
- image: onap/clamp-dashboard-logstash:latest
- build:
- context: ../../../src/main/docker/logstash
- dockerfile: Dockerfile.logstash
- volumes:
- - ../../../src/main/docker/logstash/pipeline:/usr/share/logstash/pipeline
- - ./logstash-input:/log-input
- depends_on:
- - elasticsearch
- networks:
- es_net:
- environment:
- - dmaap_base_url=http://dmaapmocker:3904/
- - dmaap_user=user
- - dmaap_password=password
- - dmaap_consumer_group=clampdashboard
- - dmaap_consumer_id=clampdashboard
- - event_topic=DCAE-CL-EVENT
- - notification_topic=POLICY-CL-MGT
- - request_topic=APPC-CL
- - elasticsearch_base_url=elasticsearch
- - "LOGSTASH_USR=logstash"
- - "LOGSTASH_PWD=logstash"
-
- kibana:
- image: onap/clamp-dashboard-kibana:latest
- build:
- context: ../../../src/main/docker/kibana
- dockerfile: Dockerfile.kibana
- ports:
- - 5601:5601
- depends_on:
- - elasticsearch
- volumes:
- - ../../../src/main/docker/kibana/saved-objects/:/saved-objects/
- - ../../../src/main/docker/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
- - ../../../src/main/docker/kibana/conf/keystore:/usr/share/kibana/config/keystore
- networks:
- es_net:
-
-networks:
- es_net:
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/ds_mocker.py b/extra/docker/elk/tools/DMaaPServiceMocker/ds_mocker.py
deleted file mode 100755
index bd6caecc..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/ds_mocker.py
+++ /dev/null
@@ -1,257 +0,0 @@
-#!/usr/bin/env python3
-import os
-import json
-import copy
-import random
-import requests
-import uuid
-import time
-from datetime import datetime
-
-def luck(n=2):
- """ gives 1 chance out of n (default: 2) to return True """
- assert n > 1
- return bool(random.randint(0, n-1))
-def now_dmaap_timestamp():
- return str(datetime.now().timestamp()).replace(".","")[:13]
-def now_notification_time():
- return datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f+00:00")
-
-CONTROL_LOOP_NAMES = [
- 'CL-vCPE-d925ed73',
- 'CL-vCPE-37b1c91e',
- 'CL-vCPE-c2597657',
- 'CL-vCPE-a11318ba',
- 'CL-vCPE-5321c558',
-]
-
-TEMPLATES = {
- 'event_abated' :'event_abated.json',
- 'event_onset' :'event_onset.json',
- 'notification_active' :'notification_active.json',
- 'notification_final_failed' :'notification_final_failed.json',
- 'notification_final_open' :'notification_final_open.json',
- 'notification_final_success' :'notification_final_success.json',
- 'notification_operation_failure' :'notification_operation_failure.json',
- 'notification_operation' :'notification_operation.json',
- 'notification_operation_success' :'notification_operation_success.json',
- 'notification_rejected_disabled' :'notification_rejected_disabled.json',
- 'notification_rejected_missing' :'notification_rejected_missing.json',
-}
-
-ERROR_MESSAGES = [
- ('APPC', 'APPC1 : timeout on restart','RESTART'),
- ('APPC', 'APPC2 : cannot restart','RESTART'),
- ('SO', 'SO1 : scale up failed', 'SCALEUP'),
- ('SO', 'SO2 : scale down failed', 'SCALEDOWN'),
-]
-
-for key in TEMPLATES:
- with open(TEMPLATES[key]) as f:
- content = f.read()
- TEMPLATES[key] = json.loads(content)
-
-
-class DMaaPMessage(dict):
-
- dmaap_host_url = "http://dmaap.host.url:9200/"
- dmaap_username = None
- dmaap_password = None
-
- @classmethod
- def from_template(cls, tmpl, **kwargs):
- obj = cls()
- obj.update(copy.deepcopy(TEMPLATES[tmpl]))
- for keys,value in kwargs.items():
- current_node = obj
- keys = keys.split(".")
- key = keys[0]
- for i in range(len(keys) - 1):
- current_node = current_node[keys[i]]
- key = keys[i]
- current_node[key] = value
- return obj
-
- def publish(self, topic):
- url = "%s/events/%s" % (self.dmaap_host_url, topic)
- auth = None
- if self.dmaap_username and self.dmaap_password:
- auth = (self.dmaap_username, self.dmaap_password)
- response = requests.post(url, data=json.dumps(self), auth=auth)
- return response.status_code
-
-class Event(DMaaPMessage):
-
- topic = "DCAE-CL-EVENT"
-
- @staticmethod
- def abated(**kwargs):
- return Event.from_template('event_abated', **kwargs)
-
- @staticmethod
- def onset(**kwargs):
- return Event.from_template('event_onset', **kwargs)
-
- def publish(self):
- return super().publish(self.topic)
-
-
-class Notification(DMaaPMessage):
-
- topic = "POLICY-CL-MGT"
-
- @classmethod
- def from_template(cls, tmpl, **kwargs):
- kwargs['notificationTime'] = now_notification_time()
- return super().from_template(tmpl, **kwargs)
-
- @staticmethod
- def active(**kwargs):
- return Notification.from_template('notification_active', **kwargs)
-
- @staticmethod
- def final(**kwargs):
- class FinalNotification(Notification):
- @staticmethod
- def success(**kwargs):
- return FinalNotification.from_template('notification_final_success', **kwargs)
- @staticmethod
- def failed(**kwargs):
- msg = FinalNotification.from_template('notification_final_failed', **kwargs)
- error = ERROR_MESSAGES[random.randint(0, len(ERROR_MESSAGES) - 1)]
- h = msg['history'][-1]
- h['actor'],h['message'],h['operation'] = error[0],error[1],error[2]
- return msg
- @staticmethod
- def open(**kwargs):
- return FinalNotification.from_template('notification_final_open', **kwargs)
- return FinalNotification
-
- @staticmethod
- def operation(**kwargs):
- class OperationNotification(Notification):
- @staticmethod
- def success(**kwargs):
- return OperationNotification.from_template('notification_operation_success', **kwargs)
- @staticmethod
- def failure(**kwargs):
- return OperationNotification.from_template('notification_operation_failure', **kwargs)
- return OperationNotification.from_template('notification_operation', **kwargs)
-
- @staticmethod
- def rejected(**kwargs):
- class RejectedNotification(Notification):
- @staticmethod
- def disabled(**kwargs):
- return RejectedNotification.from_template('notification_rejected_disabled', **kwargs)
- @staticmethod
- def missing_fields(**kwargs):
- return RejectedNotification.from_template('notification_rejected_missing', **kwargs)
-
- return RejectedNotification
-
- def publish(self):
- return super().publish(self.topic)
-
-
-
-class CLStatus(object):
-
- def __init__(self, dmaap_url=None,
- missing=None, disabled=None, op_failure=None):
- self._stopped = False
- def maybe(thing, ):
- if thing is None:
- thing = not luck(10)
- return thing
- self._missing = maybe(missing)
- self._disabled = maybe(disabled)
- self._op_failure = maybe(op_failure)
- self._config = dict(
- requestID=str(uuid.uuid4()),
- closedLoopControlName=CONTROL_LOOP_NAMES[random.randint(0, len(CONTROL_LOOP_NAMES) - 1)]
- )
-
- def __iter__(self):
- return next(self)
-
- def __next__(self):
- if self._stopped:
- raise StopIteration()
- config = self._config
- config.update(dict(closedLoopAlarmStart=now_dmaap_timestamp()))
- yield Event.onset(**config)
- if self._missing:
- self._stopped = True
- yield Notification.rejected().missing_fields(**config)
- raise StopIteration()
- elif self._disabled:
- self._stopped = True
- yield Notification.rejected().disabled(**config)
- raise StopIteration()
-
- yield Notification.active(**config)
- yield Notification.operation(**config)
-
- config['closedLoopAlarmEnd'] = now_dmaap_timestamp()
- if self._op_failure:
- yield Notification.operation().failure(**config)
- self._stopped = True
- yield Notification.final().failed(**config)
- else:
- yield Notification.operation().success(**config)
- yield Event.abated(**config)
- self._stopped = True
- yield Notification.final().success(**config)
- raise StopIteration()
-
-def print_usage():
- print("""
- ./ds_mocker.py <DMAAP_URL> <EVENT_TOPIC> [NOTIFICATION_TOPIC [REQUEST_TOPIC]]
- """)
- exit()
-
-def push(test_datas):
- for current_i, status in enumerate(test_datas):
- time.sleep(random.randint(0,3))
- for s in status:
- # print(s)
- status_code = s.publish()
- if status_code != 200:
- print("Error when publishing : status_code={}".format(status_code))
- exit(1)
- time.sleep(random.randint(0,3))
- print("%03d,missing:%5s,disabled:%5s,op_failure:%5s - %s" % (current_i, status._missing, status._disabled, status._op_failure, status._config))
-
-
-
-def generate_dataset_1():
- test_datas = [CLStatus(missing=False, disabled=False, op_failure=False) for i in range(300)] \
- + [CLStatus(missing=True, disabled=False, op_failure=False) for i in range(5)] \
- + [CLStatus(missing=False, disabled=True, op_failure=False) for i in range(6)] \
- + [CLStatus(missing=False, disabled=False, op_failure=True) for i in range(12)]
- random.shuffle(test_datas)
- return test_datas
-
-def generate_error_dataset_1():
- test_datas = [CLStatus(missing=False, disabled=False, op_failure=True) for i in range(60)]
- random.shuffle(test_datas)
- return test_datas
-
-
-DATASETS = {
- 'dataset_1': generate_dataset_1,
- 'op_failure_1': generate_error_dataset_1,
-}
-
-if __name__ == "__main__":
- import sys
- if len(sys.argv) < 3:
- print_usage()
-
- DMaaPMessage.dmaap_host_url = sys.argv[1]
- Event.topic = sys.argv[2]
- Notification.topic = len(sys.argv) > 3 and sys.argv[3] or sys.argv[2]
- # Request.topic = len(sys.argv) > 4 or Notification.topic
- #push(DATASETS['op_failure_1']())
- push(DATASETS['dataset_1']())
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/event_abated.json b/extra/docker/elk/tools/DMaaPServiceMocker/event_abated.json
deleted file mode 100644
index ae0d4b7d..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/event_abated.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "closedLoopAlarmEnd": 1478710227625,
- "closedLoopAlarmStart": 1478709727496,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "closedLoopEventStatus": "ABATED",
- "from": "DCAE",
- "policyName": "vFirewall",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/event_onset.json b/extra/docker/elk/tools/DMaaPServiceMocker/event_onset.json
deleted file mode 100644
index 223f0965..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/event_onset.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "closedLoopAlarmStart": 1478709385444,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "closedLoopEventStatus": "ONSET",
- "from": "DCAE",
- "policyName": "vFirewall",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "88e951ad-a07c-4748-9cef-34f32851a527",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_active.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_active.json
deleted file mode 100644
index 341a249d..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_active.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "OPS_CL_timer": 600,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "notification": "ACTIVE",
- "notificationTime": "2016-11-09 16:46:29.721000+00:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_failed.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_failed.json
deleted file mode 100644
index 4891c7ee..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_failed.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "OPS_CL_timer": 600,
- "closedLoopAlarmEnd": 1478710489739,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "history": [
- {
- "actor": "APPC",
- "end": 1478637014434,
- "message": "<APPC ERROR code/description>",
- "operation": "RESTART",
- "outcome": "FAILED",
- "start": 1478637014430,
- "subRequestId": "1",
- "target": "vserver.vserver-name"
- }
- ],
- "message": "actor=APPC,operation=RESTART,target=vserver.vserver-name,subRequestId=1,outcome=FAILED",
- "notification": "FINAL: FAILURE",
- "notificationTime": "2016-11-08 15:30:14.434000-05:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_open.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_open.json
deleted file mode 100644
index da9e6e11..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_open.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "closedLoopAlarmEnd": 1478710489739,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "notification": "FINAL: OPEN",
- "notificationTime": "2016-11-08 15:30:14.434000-05:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_success.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_success.json
deleted file mode 100644
index 3d027eb8..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_final_success.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "OPS_CL_timer": 600,
- "closedLoopAlarmEnd": 1478710489739,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "history": [
- {
- "actor": "APPC",
- "end": 1478709989738,
- "operation": "RESTART",
- "start": 1478709989734,
- "subRequestId": "1",
- "target": "vserver.vserver-name"
- }
- ],
- "message": "actor=APPC,operation=RESTART,target=vserver.vserver-name,subRequestId=1",
- "notification": "FINAL: SUCCESS",
- "notificationTime": "2016-11-09 11:46:29.738000-05:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation.json
deleted file mode 100644
index 341a249d..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "OPS_CL_timer": 600,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "notification": "ACTIVE",
- "notificationTime": "2016-11-09 16:46:29.721000+00:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_failure.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_failure.json
deleted file mode 100644
index 5dbe33ca..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_failure.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "OPS_CL_timer": 600,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "message": "<APPC ERROR code and/or message>",
- "notification": "OPERATION: FAILURE",
- "notificationTime": "2016-11-08 15:30:14.434000-05:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_success.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_success.json
deleted file mode 100644
index 9e18b979..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_operation_success.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "false",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "OPS_CL_timer": 600,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "message": "actor=APPC,operation=RESTART,target=vserver.vserver-name,subRequestId=1",
- "notification": "OPERATION: SUCCESS",
- "notificationTime": "2016-11-09 11:46:29.738000-05:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_disabled.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_disabled.json
deleted file mode 100644
index 3d949870..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_disabled.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "AAI": {
- "cloud-region.identity-url": "http://1.2.3.4:5000/v2.0",
- "complex.physical-location-id": "SNYSCA12",
- "generic-vnf.service-id": "eb477a13-f380-401e-b2bd-f2d444c63e54",
- "generic-vnf.vnf-name": "gupi1337p",
- "tenant.tenant-id": "8f7b9a8a-8607-4a01-a5ef-0b26f569dcbb",
- "vserver.is-closed-loop-disabled": "true",
- "vserver.prov-status": "PROV",
- "vserver.vserver-selflink": "https//2.3.4.5:1234/d5a992de-8a70-4d7d-b382-2bc6eea52317",
- "vserver.vserver-id": "08f6c1f9-99e7-49f3-a662-c62b9f200d79",
- "vserver.vserver-name": "gupi1337pm004"
- },
- "OPS_CL_timer": 600,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "message": "Closed Loop Disabled",
- "notification": "REJECTED",
- "notificationTime": "2016-05-11 15:09:23.896000+00:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_missing.json b/extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_missing.json
deleted file mode 100644
index c901401a..00000000
--- a/extra/docker/elk/tools/DMaaPServiceMocker/notification_rejected_missing.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "AAI": {},
- "OPS_CL_timer": 600,
- "closedLoopAlarmStart": 1478709989621,
- "closedLoopControlName": "ClosedLoop-3ffd062d-7589-43b2-865a-139b64e2d402",
- "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
- "from": "Policy",
- "message": "Missing AAI tag",
- "notification": "REJECTED",
- "notificationTime": "2016-05-11 14:42:23.629000+00:00",
- "policyName": "ClosedLoop.vUSP",
- "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
- "policyVersion": "v0.0.1",
- "requestID": "f889f60c-a715-48c0-801e-26428f6176b9",
- "target": "vserver.vserver-name",
- "target_type": "VM",
- "version": "1.0.2"
-}
diff --git a/extra/docker/elk/tools/EsAutoQuery/autoQueryLoop.sh b/extra/docker/elk/tools/EsAutoQuery/autoQueryLoop.sh
deleted file mode 100755
index 49294120..00000000
--- a/extra/docker/elk/tools/EsAutoQuery/autoQueryLoop.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-QUERY_FILE=${1:-query.json}
-INDEX=${2:-logstash-*}
-HOST_URL=${3:-http://localhost:9200}
-URL=$HOST_URL/$INDEX/_search
-
-function usage() {
- echo "Usage: $0 [QUERY_FILE [INDEX [HOST_URL]]]"
- echo
- echo "This script automatically sends the query file to elasticsearch"
- echo "each time it's modified."
-}
-
-if [ "${1}" == "--help" ];
-then
- usage
- exit 0
-fi
-
-echo "Querying '$URL' with '$QUERY_FILE'"
-while [ 1 ];
-do
- curl -XGET "$URL" -H 'Content-Type: application/json' -d"@$QUERY_FILE" | js-beautify
- echo
- inotifywait -e modify query.json
-done
diff --git a/extra/docker/elk/tools/EsAutoQuery/closedLoopAlarmDuration.json b/extra/docker/elk/tools/EsAutoQuery/closedLoopAlarmDuration.json
deleted file mode 100644
index 5a295454..00000000
--- a/extra/docker/elk/tools/EsAutoQuery/closedLoopAlarmDuration.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "query" : {
- "bool": {
- "must": [
- { "match": { "closedLoopEventStatus": "ABATED" } }
- ]
- }
- },
- "script_fields" : {
- "closedLoopAlarmDuration" : {
- "script" : {
- "lang": "painless",
- "source": "
-if (doc.get('closedLoopEventStatus.keyword').value == 'ABATED') {
- return doc.get('closedLoopAlarmEnd').value - doc.get('closedLoopAlarmStart').value;
-}
-return null
-"
- }
- }
- , "closedLoopAlarmStart" : {
- "script" : {
- "lang": "painless",
- "source": "doc['closedLoopAlarmStart']"
- }
- }
- , "closedLoopAlarmEnd" : {
- "script" : {
- "lang": "painless",
- "source": "doc['closedLoopAlarmEnd']"
- }
- }
- }
-}
diff --git a/extra/docker/elk/tools/EsAutoQuery/timeSince.json b/extra/docker/elk/tools/EsAutoQuery/timeSince.json
deleted file mode 100644
index 6ee14933..00000000
--- a/extra/docker/elk/tools/EsAutoQuery/timeSince.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "query" : {
- "match_all": {}
- },
- "script_fields" : {
- "timeSince" : {
- "script" : {
- "lang": "painless",
- "source": "
-long now = System.currentTimeMillis();
-if (doc.get('closedLoopEventStatus.keyword').value == 'ABATED') {
- return now - doc.get('closedLoopAlarmEnd').value;
-}
-if (doc.get('closedLoopEventStatus.keyword').value == 'ONSET') {
- return now - doc.get('closedLoopAlarmStart').value;
-}
-if (doc.containsKey('notification.keyword')) {
- return now - doc.get('notificationTime').value;
-}
-
-return null
-"
- }
- }
- , "closedLoopAlarmStart" : {
- "script" : {
- "lang": "painless",
- "source": "doc['closedLoopAlarmStart']"
- }
- }
- , "closedLoopEventStatus" : {
- "script" : {
- "lang": "painless",
- "source": "doc['closedLoopEventStatus.keyword']"
- }
- }
- , "notification" : {
- "script" : {
- "lang": "painless",
- "source": "doc['notification.keyword']"
- }
- }
- , "notificationTime" : {
- "script" : {
- "lang": "painless",
- "source": "doc['notificationTime'].value"
- }
- }
-
- }
-}
diff --git a/extra/docker/heat/clamp.env b/extra/docker/heat/clamp.env
deleted file mode 100644
index abca2676..00000000
--- a/extra/docker/heat/clamp.env
+++ /dev/null
@@ -1,2 +0,0 @@
-### Be careful, this must be in one line only ###
-SPRING_APPLICATION_JSON={"spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3","clamp.config.policy.pdpUrl1":"https://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123","clamp.config.policy.pdpUrl2":"https://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123","clamp.config.policy.papUrl":"https://policy.api.simpledemo.onap.org:9091/pap/ , testpap, alpha123"}
diff --git a/extra/docker/heat/docker-compose.yml b/extra/docker/heat/docker-compose.yml
deleted file mode 100644
index 109a036b..00000000
--- a/extra/docker/heat/docker-compose.yml
+++ /dev/null
@@ -1,84 +0,0 @@
-version: '2'
-
-services:
- db:
- image: mariadb:10.1.11
- volumes:
- - "/var/lib/mysql"
- - "../mariadb/conf1:/etc/mysql/conf.d:ro"
- - "../../sql/:/docker-entrypoint-initdb.d:ro"
- environment:
- - MYSQL_ROOT_PASSWORD=strong_pitchou
- ports:
- - "3306:3306"
- networks:
- clamp_net:
-
- clamp:
- image: onap/clamp:latest
- volumes:
- - "./config/:/opt/clamp/config:rw"
- depends_on:
- - db
- env_file:
- - clamp.env
- ports:
- - "8080:8080"
- - "8443:8443"
- networks:
- clamp_net:
-
- elasticsearch:
- image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
- ports:
- - 9200:9200
- networks:
- cldash_net:
- aliases:
- - elasticsearch
- environment:
- - cluster.name=docker-cluster
- - bootstrap.memory_lock=false
- - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-
- logstash:
- image: onap/clamp-dashboard-logstash:latest
- build:
- context: ../../../src/main/docker/logstash
- dockerfile: Dockerfile.logstash
- # volumes:
- # - ../../../src/main/docker/logstash/pipeline:/usr/share/logstash/pipeline
- # - ./logstash-input:/log-input
- depends_on:
- - elasticsearch
- networks:
- cldash_net:
- environment:
- - elasticsearch_host=https://elasticsearch:9200/
- - dmaap_base_url=https://ueb.api.simpledemo.onap.org:3905/
- # - dmaap_user=user
- # - dmaap_password=password
- - dmaap_consumer_group=clampdashboard
- - dmaap_consumer_id=clampdashboard
- - event_topic=DCAE-CL-EVENT
- - notification_topic=POLICY-CL-MGT
- - request_topic=APPC-CL
- - elasticsearch_base_url=elasticsearch
-
- kibana:
- image: onap/clamp-dashboard-kibana:latest
- build:
- context: ../../../src/main/docker/kibana
- dockerfile: Dockerfile.kibana
- ports:
- - 5601:5601
- depends_on:
- - elasticsearch
- # volumes:
- # - ../../../src/main/docker/kibana/saved-objects/:/saved-objects/
- networks:
- cldash_net:
-
-networks:
- cldash_net:
- clamp_net:
diff --git a/extra/sql/bulkload/create-tables.sql b/extra/sql/bulkload/create-tables.sql
index 10327650..4edb4691 100644
--- a/extra/sql/bulkload/create-tables.sql
+++ b/extra/sql/bulkload/create-tables.sql
@@ -36,7 +36,7 @@
created_timestamp datetime(6) not null,
updated_by varchar(255),
updated_timestamp datetime(6) not null,
- blueprint_yaml MEDIUMTEXT not null,
+ blueprint_yaml MEDIUMTEXT,
dcae_blueprint_id varchar(255),
loop_element_type varchar(255) not null,
primary key (name)
@@ -62,6 +62,7 @@
dcae_blueprint_id varchar(255),
maximum_instances_allowed integer,
svg_representation MEDIUMTEXT,
+ unique_blueprint boolean default false,
service_uuid varchar(255),
primary key (name)
) engine=InnoDB;
@@ -84,7 +85,7 @@
global_properties_json json,
last_computed_state varchar(255) not null,
svg_representation MEDIUMTEXT,
- loop_template_name varchar(255),
+ loop_template_name varchar(255) not null,
service_uuid varchar(255),
primary key (name)
) engine=InnoDB;
diff --git a/extra/sql/dump/test-data.sql b/extra/sql/dump/test-data.sql
index 08d3ca50..629ce652 100644
--- a/extra/sql/dump/test-data.sql
+++ b/extra/sql/dump/test-data.sql
@@ -44,7 +44,7 @@ UNLOCK TABLES;
LOCK TABLES `hibernate_sequence` WRITE;
/*!40000 ALTER TABLE `hibernate_sequence` DISABLE KEYS */;
-INSERT INTO `hibernate_sequence` VALUES (6);
+INSERT INTO `hibernate_sequence` VALUES (10);
/*!40000 ALTER TABLE `hibernate_sequence` ENABLE KEYS */;
UNLOCK TABLES;
@@ -54,7 +54,7 @@ UNLOCK TABLES;
LOCK TABLES `loop_element_models` WRITE;
/*!40000 ALTER TABLE `loop_element_models` DISABLE KEYS */;
-INSERT INTO `loop_element_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2020-01-30 15:21:59.168542','','2020-01-30 15:21:59.460129','tosca_definitions_version: cloudify_dsl_1_3\nimports:\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\ninputs:\n location_id:\n type: string\n service_id:\n type: string\n policy_id:\n type: string\nnode_templates:\n policy_0:\n type: dcae.nodes.policy\n properties:\n policy_id: \n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n cdap_host_host:\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\n properties:\n location_id:\n get_input: location_id\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\n interfaces:\n cloudify.interfaces.lifecycle: {\n }\n tca_tca:\n type: dcae.nodes.MicroService.cdap\n properties:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n publisherContentType: application/json\n publisherHostName: mrlocal-mtnjftle01.onap.org\n publisherHostPort: \'3905\'\n publisherMaxBatchSize: \'10\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: https\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\n publisherUserName: test@tca.af.dcae.onap.org\n publisherUserPassword: password\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName: mrlocal-mtnjftle01.onap.org\n subscriberHostPort: \'3905\'\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'20000\'\n subscriberProtocol: https\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\n subscriberUserName: test@tca.af.dcae.onap.org\n subscriberUserPassword: password\n tca_policy: null\n artifact_name: dcae-analytics-tca\n artifact_version: 1.0.0\n connections:\n streams_publishes: [\n ]\n streams_subscribes: [\n ]\n jar_url: http://somejar\n location_id:\n get_input: location_id\n namespace: cdap_tca_hi_lo\n programs:\n - program_id: TCAVESCollectorFlow\n program_type: flows\n - program_id: TCADMaaPMRSubscriberWorker\n program_type: workers\n - program_id: TCADMaaPMRPublisherWorker\n program_type: workers\n service_component_type: cdap_app_tca\n service_id:\n get_input: service_id\n streamname: TCASubscriberOutputStream\n relationships:\n - target: topic0\n type: dcae.relationships.subscribe_to_events\n - target: topic1\n type: dcae.relationships.publish_events\n - target: cdap_host_host\n type: dcae.relationships.component_contained_in\n - target: policy_0\n type: dcae.relationships.depends_on\n topic0:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n topic1:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n \n',NULL,'CONFIG_POLICY');
+INSERT INTO `loop_element_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2020-02-10 17:03:33.661538','','2020-02-10 17:03:34.923034',NULL,NULL,'CONFIG_POLICY');
/*!40000 ALTER TABLE `loop_element_models` ENABLE KEYS */;
UNLOCK TABLES;
@@ -73,9 +73,9 @@ UNLOCK TABLES;
LOCK TABLES `loop_templates` WRITE;
/*!40000 ALTER TABLE `loop_templates` DISABLE KEYS */;
-INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_srIFK_v1_0_ResourceInstanceName1_tca','','2020-01-30 15:21:59.434409','','2020-01-30 15:21:59.434409','tosca_definitions_version: cloudify_dsl_1_3\nimports:\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\ninputs:\n location_id:\n type: string\n service_id:\n type: string\n policy_id:\n type: string\nnode_templates:\n policy_0:\n type: dcae.nodes.policy\n properties:\n policy_id: \n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n cdap_host_host:\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\n properties:\n location_id:\n get_input: location_id\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\n interfaces:\n cloudify.interfaces.lifecycle: {\n }\n tca_tca:\n type: dcae.nodes.MicroService.cdap\n properties:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n publisherContentType: application/json\n publisherHostName: mrlocal-mtnjftle01.onap.org\n publisherHostPort: \'3905\'\n publisherMaxBatchSize: \'10\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: https\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\n publisherUserName: test@tca.af.dcae.onap.org\n publisherUserPassword: password\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName: mrlocal-mtnjftle01.onap.org\n subscriberHostPort: \'3905\'\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'20000\'\n subscriberProtocol: https\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\n subscriberUserName: test@tca.af.dcae.onap.org\n subscriberUserPassword: password\n tca_policy: null\n artifact_name: dcae-analytics-tca\n artifact_version: 1.0.0\n connections:\n streams_publishes: [\n ]\n streams_subscribes: [\n ]\n jar_url: http://somejar\n location_id:\n get_input: location_id\n namespace: cdap_tca_hi_lo\n programs:\n - program_id: TCAVESCollectorFlow\n program_type: flows\n - program_id: TCADMaaPMRSubscriberWorker\n program_type: workers\n - program_id: TCADMaaPMRPublisherWorker\n program_type: workers\n service_component_type: cdap_app_tca\n service_id:\n get_input: service_id\n streamname: TCASubscriberOutputStream\n relationships:\n - target: topic0\n type: dcae.relationships.subscribe_to_events\n - target: topic1\n type: dcae.relationships.publish_events\n - target: cdap_host_host\n type: dcae.relationships.component_contained_in\n - target: policy_0\n type: dcae.relationships.depends_on\n topic0:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n topic1:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n \n','typeId-3369cc54-4ce8-4539-9493-d983c7823d66',0,'<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-12f28bfa-1719-44f4-9c91-26e7fada7ce5\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-6d6eeecc-7060-4b47-bce5-b2242b27d579\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"392\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">TCA</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-c5346fd5-0e64-4d27-98f8-28ea1b614044\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-3ec9e9bf-49b6-4b2f-b381-564df668a1c4\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>','63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_srIFK_v1_0_ResourceInstanceName1_tca_3','','2020-01-30 15:21:59.294006','','2020-01-30 15:21:59.294006','tosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap.svc.cluster.local\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest\"\n consul_host:\n type: string\n default: consul-server.onap.svc.cluster.local\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-service.dcae.svc.cluster.local\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"none\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n tca_policy: \'\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: dcae.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \n get_input: policy_model_id\n','typeId-5b5d899d-819d-4813-bfd7-c5c1cdb9b2fc',0,'<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-85b608db-111d-4dd8-845d-8d400fd35cee\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-26a11a87-8b24-4237-9935-0d68dd85b3ce\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-29055f34-5441-433f-a593-d640eb09f0c1\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-13ded7ef-d2d2-4006-ab5d-c5d58e39b92a\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>','63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_srIFK_v1_0_ResourceInstanceName2_tca_2','','2020-01-30 15:21:59.154059','','2020-01-30 15:21:59.154059','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n# - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\"\n consul_host:\n type: string\n default: consul-server.onap\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-servicel\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n# 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\"}]}]}\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n','typeId-c12c1f86-295b-44a6-bbcf-2bbe40d70f2f',0,'<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-fe9170ad-de3f-4bb4-8e3c-420733514286\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-2e424ea4-af2e-4012-960f-5328faca34ee\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-accb3c7c-69fb-4fb2-b9e1-fabff8dab3b6\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-e805ab14-0f71-45ae-bc2b-4ec3d5322a7b\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>','63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_GDC6j_v1_0_ResourceInstanceName1_tca','','2020-02-10 17:03:34.815508','','2020-02-10 17:03:34.815508','tosca_definitions_version: cloudify_dsl_1_3\nimports:\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\ninputs:\n location_id:\n type: string\n service_id:\n type: string\n policy_id:\n type: string\nnode_templates:\n policy_0:\n type: dcae.nodes.policy\n properties:\n policy_id: \n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n cdap_host_host:\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\n properties:\n location_id:\n get_input: location_id\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\n interfaces:\n cloudify.interfaces.lifecycle: {\n }\n tca_tca:\n type: dcae.nodes.MicroService.cdap\n properties:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n publisherContentType: application/json\n publisherHostName: mrlocal-mtnjftle01.onap.org\n publisherHostPort: \'3905\'\n publisherMaxBatchSize: \'10\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: https\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\n publisherUserName: test@tca.af.dcae.onap.org\n publisherUserPassword: password\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName: mrlocal-mtnjftle01.onap.org\n subscriberHostPort: \'3905\'\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'20000\'\n subscriberProtocol: https\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\n subscriberUserName: test@tca.af.dcae.onap.org\n subscriberUserPassword: password\n tca_policy: null\n artifact_name: dcae-analytics-tca\n artifact_version: 1.0.0\n connections:\n streams_publishes: [\n ]\n streams_subscribes: [\n ]\n jar_url: http://somejar\n location_id:\n get_input: location_id\n namespace: cdap_tca_hi_lo\n programs:\n - program_id: TCAVESCollectorFlow\n program_type: flows\n - program_id: TCADMaaPMRSubscriberWorker\n program_type: workers\n - program_id: TCADMaaPMRPublisherWorker\n program_type: workers\n service_component_type: cdap_app_tca\n service_id:\n get_input: service_id\n streamname: TCASubscriberOutputStream\n relationships:\n - target: topic0\n type: dcae.relationships.subscribe_to_events\n - target: topic1\n type: dcae.relationships.publish_events\n - target: cdap_host_host\n type: dcae.relationships.component_contained_in\n - target: policy_0\n type: dcae.relationships.depends_on\n topic0:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n topic1:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n \n','typeId-a733c5f2-9113-4747-a2d2-4f9a9da9901b',0,'<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-d1bb10f9-42f5-4fef-b597-9f737ee8d832\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-4bf9ad3e-84b9-46f0-b3e5-ec82e1f23ba8\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"380.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_tca</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-3f0968ad-658a-4283-b90e-1cde635fec34\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-83a2296d-f738-4015-9565-77a5091908f8\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>','63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_GDC6j_v1_0_ResourceInstanceName1_tca_3','','2020-02-10 17:03:34.343090','','2020-02-10 17:03:34.343090','tosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap.svc.cluster.local\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest\"\n consul_host:\n type: string\n default: consul-server.onap.svc.cluster.local\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-service.dcae.svc.cluster.local\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"none\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n tca_policy: \'\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: dcae.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \n get_input: policy_model_id\n','typeId-8003bdb0-7171-404d-8ea4-fbe3cfd34589',0,'<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-94660e4f-91a6-4ffb-8fff-c19f29467423\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-f0f44886-e805-4b05-b5ce-9b33ae5d781c\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-bfbb1c94-868f-4da5-b7fe-a4d2d9051e02\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-5e16ceab-e71b-4423-9095-5d188289be24\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>','63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_GDC6j_v1_0_ResourceInstanceName2_tca_2','','2020-02-10 17:03:33.619163','','2020-02-10 17:03:33.619163','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n# - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\"\n consul_host:\n type: string\n default: consul-server.onap\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-servicel\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n# 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\"}]}]}\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n','typeId-d7711567-0d72-4206-8705-c4258f2dc4c6',0,'<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-29d16576-88f2-4537-a5a5-781a6bbb5c57\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-08babc23-4c16-4288-b7cc-c3825caa5a19\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-3701e293-a2bb-48d7-b66f-b6e1e041804a\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-a9630a89-3fbd-43b2-b3ae-0beb84e989f4\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>','63cac700-ab9a-4115-a74f-7eac85e3fce0');
/*!40000 ALTER TABLE `loop_templates` ENABLE KEYS */;
UNLOCK TABLES;
@@ -85,7 +85,7 @@ UNLOCK TABLES;
LOCK TABLES `loopelementmodels_to_policymodels` WRITE;
/*!40000 ALTER TABLE `loopelementmodels_to_policymodels` DISABLE KEYS */;
-INSERT INTO `loopelementmodels_to_policymodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','onap.policies.monitoring.cdap.tca.hi.lo.app','1.0');
+INSERT INTO `loopelementmodels_to_policymodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0');
/*!40000 ALTER TABLE `loopelementmodels_to_policymodels` ENABLE KEYS */;
UNLOCK TABLES;
@@ -113,9 +113,9 @@ UNLOCK TABLES;
LOCK TABLES `looptemplates_to_loopelementmodels` WRITE;
/*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` DISABLE KEYS */;
-INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_srIFK_v1_0_ResourceInstanceName1_tca',0);
-INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_srIFK_v1_0_ResourceInstanceName1_tca_3',0);
-INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_srIFK_v1_0_ResourceInstanceName2_tca_2',0);
+INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_GDC6j_v1_0_ResourceInstanceName1_tca',0);
+INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_GDC6j_v1_0_ResourceInstanceName1_tca_3',0);
+INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_GDC6j_v1_0_ResourceInstanceName2_tca_2',0);
/*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` ENABLE KEYS */;
UNLOCK TABLES;
@@ -143,7 +143,7 @@ UNLOCK TABLES;
LOCK TABLES `policy_models` WRITE;
/*!40000 ALTER TABLE `policy_models` DISABLE KEYS */;
-INSERT INTO `policy_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0',NULL,'2020-01-30 15:21:59.176333','','2020-01-30 15:21:59.461713','app','tosca_definitions_version: tosca_simple_yaml_1_0_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n description: a base policy type for all policies that governs monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: map\n description: TCA Policy JSON\n entry_schema:\n type: onap.datatypes.monitoring.tca_policy\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n');
+INSERT INTO `policy_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','','2020-02-10 17:03:33.698994','','2020-02-10 17:03:33.698994','app','{\"policyTypeId\": \"onap.policies.controlloop.operational\",\"policyTypeVersion\": \"1.0.0\",\"policyId\": \"OPERATIONAL_z711F_v1_0_ResourceInstanceName1_tca\"}');
/*!40000 ALTER TABLE `policy_models` ENABLE KEYS */;
UNLOCK TABLES;
@@ -165,4 +165,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2020-01-30 14:23:27
+-- Dump completed on 2020-02-10 16:04:53
diff --git a/pom.xml b/pom.xml
index bb22596f..84b4d1f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.clamp</groupId>
<artifactId>clds</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>5.0.0-SNAPSHOT</version>
<name>clamp</name>
@@ -45,9 +45,6 @@
- The DOCKER images for:
* CLAMP backend (Java Spring)
* CLAMP frontend (Javscript React)
- * The dashboard - Elastic search
- * The dashboard - Logstash
- * The dashboard - Kibana
It can test:
- The CLAMP backend, JAVA unit testing
@@ -94,7 +91,7 @@
<sonar.exclusions>src/main/resources/**</sonar.exclusions>
<sonar.scm.exclusions.disabled>true</sonar.scm.exclusions.disabled>
<sonar.javascript.lcov.reportPaths>${project.build.directory}/${ui.react.src}/coverage/lcov.info</sonar.javascript.lcov.reportPaths>
- <sonar.coverage.exclusions>src/main/resources/**,target/ui-react/src/**/*.test.js,target/ui-react/src/setupTests.js,src/main/docker/kibana/*.py</sonar.coverage.exclusions>
+ <sonar.coverage.exclusions>src/main/resources/**,target/ui-react/src/**/*.test.js,target/ui-react/src/setupTests.js</sonar.coverage.exclusions>
<docker.push.registry>localhost:5000</docker.push.registry>
<docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
<docker.skip.build>true</docker.skip.build>
@@ -105,7 +102,7 @@
<tomcat.version>9.0.27</tomcat.version>
<ui.react.src>ui-react</ui.react.src>
<ui.react.lib.src>ui-react-lib</ui.react.lib.src>
- <npm.publish.url>https://nexus3.onap.org/repository/npm.release/</npm.publish.url>
+ <npm.publish.url>https://nexus3.onap.org/repository/npm.snapshot/</npm.publish.url>
</properties>
<profiles>
@@ -1034,38 +1031,6 @@
</assembly>
</build>
</image>
- <image>
- <name>onap/clamp-dashboard-logstash</name>
- <alias>onap-clamp-dashboard-logstash</alias>
- <run>
- <skip>true</skip>
- </run>
- <build>
- <cleanup>true</cleanup>
- <tags>
- <tag>latest</tag>
- <tag>${project.docker.latesttagtimestamp.version}</tag>
- <tag>${project.docker.latesttag.version}</tag>
- </tags>
- <dockerFile>logstash/Dockerfile</dockerFile>
- </build>
- </image>
- <image>
- <name>onap/clamp-dashboard-kibana</name>
- <alias>onap-clamp-dashboard-kibana</alias>
- <run>
- <skip>true</skip>
- </run>
- <build>
- <cleanup>true</cleanup>
- <tags>
- <tag>latest</tag>
- <tag>${project.docker.latesttagtimestamp.version}</tag>
- <tag>${project.docker.latesttag.version}</tag>
- </tags>
- <dockerFile>kibana/Dockerfile</dockerFile>
- </build>
- </image>
</images>
</configuration>
diff --git a/src/main/docker/elasticsearch/Dockerfile b/src/main/docker/elasticsearch/Dockerfile
deleted file mode 100644
index 24352429..00000000
--- a/src/main/docker/elasticsearch/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# https://github.com/elastic/elasticsearch-docker
-FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.2
-
-COPY config/sg/ config/sg/
-COPY config/ config/
-COPY bin/ bin/
-#RUN chmod +x bin/init_sg.sh
-COPY my-entrypoint.sh /usr/local/bin/my-entrypoint.sh
-RUN chmod a+x /usr/local/bin/my-entrypoint.sh
-# Search Guard plugin
-RUN elasticsearch-plugin install --batch com.floragunn:search-guard-6:6.6.2-25.1 \
- && chmod +x plugins/search-guard-6/tools/*.sh \
- && chown -R elasticsearch config/sg/ \
- && chmod -R go= config/sg/
-
-# Add your elasticsearch plugins setup here
-# Example: RUN elasticsearch-plugin install analysis-icu
-
-# This custom entrypoint script is used instead of
-# the original's /usr/local/bin/docker-entrypoint.sh
-ENTRYPOINT ["bash","-c","my-entrypoint.sh"] \ No newline at end of file
diff --git a/src/main/docker/elasticsearch/bin/init_sg.sh b/src/main/docker/elasticsearch/bin/init_sg.sh
deleted file mode 100644
index 1c4e607c..00000000
--- a/src/main/docker/elasticsearch/bin/init_sg.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-plugins/search-guard-6/tools/sgadmin.sh \
- -cd config/sg/ \
- -ts config/sg/truststore.jks \
- -ks config/sg/kirk-keystore.jks \
- -nhnv \
- -icl \ No newline at end of file
diff --git a/src/main/docker/elasticsearch/config/elasticsearch.yml b/src/main/docker/elasticsearch/config/elasticsearch.yml
deleted file mode 100644
index 4d46ca01..00000000
--- a/src/main/docker/elasticsearch/config/elasticsearch.yml
+++ /dev/null
@@ -1,33 +0,0 @@
----
-## Default Elasticsearch configuration from elasticsearch-docker.
-## from https://github.com/elastic/elasticsearch-docker/blob/master/.tedi/template/elasticsearch.yml
-#
-cluster.name: "docker-cluster"
-network.host: 0.0.0.0
-
-# minimum_master_nodes need to be explicitly set when bound on a public IP
-# set to 1 to allow single node clusters
-# Details: https://github.com/elastic/elasticsearch/pull/17288
-discovery.zen.minimum_master_nodes: 1
-
-## Use single node discovery in order to disable production mode and avoid bootstrap checks
-## see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
-#
-discovery.type: single-node
-
-## X-Pack settings
-## see https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html
-#
-#xpack.license.self_generated.type: basic
-#xpack.security.enabled: false
-
-## Search Guard
-#
-searchguard.enterprise_modules_enabled: false
-
-searchguard.ssl.transport.keystore_filepath: sg/node-0-keystore.jks
-searchguard.ssl.transport.truststore_filepath: sg/truststore.jks
-searchguard.ssl.transport.enforce_hostname_verification: false
-
-searchguard.authcz.admin_dn:
- - "CN=kirk,OU=client,O=client,l=tEst,C=De"
diff --git a/src/main/docker/elasticsearch/config/sg/kirk-keystore.jks b/src/main/docker/elasticsearch/config/sg/kirk-keystore.jks
deleted file mode 100644
index dd7562ef..00000000
--- a/src/main/docker/elasticsearch/config/sg/kirk-keystore.jks
+++ /dev/null
Binary files differ
diff --git a/src/main/docker/elasticsearch/config/sg/node-0-keystore.jks b/src/main/docker/elasticsearch/config/sg/node-0-keystore.jks
deleted file mode 100644
index 5693b7bf..00000000
--- a/src/main/docker/elasticsearch/config/sg/node-0-keystore.jks
+++ /dev/null
Binary files differ
diff --git a/src/main/docker/elasticsearch/config/sg/sg_action_groups.yml b/src/main/docker/elasticsearch/config/sg/sg_action_groups.yml
deleted file mode 100644
index 38ffef02..00000000
--- a/src/main/docker/elasticsearch/config/sg/sg_action_groups.yml
+++ /dev/null
@@ -1,153 +0,0 @@
-UNLIMITED:
- readonly: true
- permissions:
- - "*"
-
-###### INDEX LEVEL ######
-
-INDICES_ALL:
- readonly: true
- permissions:
- - "indices:*"
-
-# for backward compatibility
-ALL:
- readonly: true
- permissions:
- - INDICES_ALL
-
-MANAGE:
- readonly: true
- permissions:
- - "indices:monitor/*"
- - "indices:admin/*"
-
-CREATE_INDEX:
- readonly: true
- permissions:
- - "indices:admin/create"
- - "indices:admin/mapping/put"
-
-MANAGE_ALIASES:
- readonly: true
- permissions:
- - "indices:admin/aliases*"
-
-INDEX_OWNER:
- - CREATE_INDEX
- - CRUD
-
-# for backward compatibility
-MONITOR:
- readonly: true
- permissions:
- - INDICES_MONITOR
-
-INDICES_MONITOR:
- readonly: true
- permissions:
- - "indices:monitor/*"
-
-DATA_ACCESS:
- readonly: true
- permissions:
- - "indices:data/*"
- - CRUD
-
-WRITE:
- readonly: true
- permissions:
- - "indices:data/write*"
- - "indices:admin/mapping/put"
-
-READ:
- readonly: true
- permissions:
- - "indices:data/read*"
- - "indices:admin/mappings/fields/get*"
-
-DELETE:
- readonly: true
- permissions:
- - "indices:data/write/delete*"
-
-CRUD:
- readonly: true
- permissions:
- - READ
- - WRITE
-
-SEARCH:
- readonly: true
- permissions:
- - "indices:data/read/search*"
- - "indices:data/read/msearch*"
- - SUGGEST
-
-SUGGEST:
- readonly: true
- permissions:
- - "indices:data/read/suggest*"
-
-INDEX:
- readonly: true
- permissions:
- - "indices:data/write/index*"
- - "indices:data/write/update*"
- - "indices:admin/mapping/put"
- - "indices:data/write/bulk*"
-
-GET:
- readonly: true
- permissions:
- - "indices:data/read/get*"
- - "indices:data/read/mget*"
-
-###### CLUSTER LEVEL ######
-
-CLUSTER_ALL:
- readonly: true
- permissions:
- - "cluster:*"
-
-CLUSTER_MONITOR:
- readonly: true
- permissions:
- - "cluster:monitor/*"
-
-CLUSTER_COMPOSITE_OPS_RO:
- readonly: true
- permissions:
- - "indices:data/read/mget"
- - "indices:data/read/msearch"
- - "indices:data/read/mtv"
- - "indices:admin/aliases/exists*"
- - "indices:admin/aliases/get*"
- - "indices:data/read/scroll"
-
-CLUSTER_COMPOSITE_OPS:
- readonly: true
- permissions:
- - "indices:data/write/bulk"
- - "indices:admin/aliases*"
- - "indices:data/write/reindex"
- - CLUSTER_COMPOSITE_OPS_RO
-
-MANAGE_SNAPSHOTS:
- readonly: true
- permissions:
- - "cluster:admin/snapshot/*"
- - "cluster:admin/repository/*"
-
-# CLAMPDASHBOARD ELASTICSEARCH ENTRYPOINT
-GET_TEMPLATE:
- - "indices:admin/template/get"
-PUT_TEMPLATE:
- - "indices:admin/template/put"
-TEMPLATE_OWNER:
- - GET_TEMPLATE
- - PUT_TEMPLATE
-ES_INPUT:
- - TEMPLATE_OWNER
- - WRITE
- - MONITOR
diff --git a/src/main/docker/elasticsearch/config/sg/sg_config.yml b/src/main/docker/elasticsearch/config/sg/sg_config.yml
deleted file mode 100644
index 9a16a823..00000000
--- a/src/main/docker/elasticsearch/config/sg/sg_config.yml
+++ /dev/null
@@ -1,148 +0,0 @@
-# This is the main Search Guard configuration file where authentication
-# and authorization is defined.
-#
-# You need to configure at least one authentication domain in the authc of this file.
-# An authentication domain is responsible for extracting the user credentials from
-# the request and for validating them against an authentication backend like Active Directory for example.
-#
-# If more than one authentication domain is configured the first one which succeeds wins.
-# If all authentication domains fail then the request is unauthenticated.
-# In this case an exception is thrown and/or the HTTP status is set to 401.
-#
-# After authentication authorization (authz) will be applied. There can be zero or more authorizers which collect
-# the roles from a given backend for the authenticated user.
-#
-# Both, authc and auth can be enabled/disabled separately for REST and TRANSPORT layer. Default is true for both.
-# http_enabled: true
-# transport_enabled: true
-#
-# 5.x Migration: "enabled: true/false" will also be respected currently but only to provide backward compatibility.
-#
-# For HTTP it is possible to allow anonymous authentication. If that is the case then the HTTP authenticators try to
-# find user credentials in the HTTP request. If credentials are found then the user gets regularly authenticated.
-# If none can be found the user will be authenticated as an "anonymous" user. This user has always the username "sg_anonymous"
-# and one role named "sg_anonymous_backendrole".
-# If you enable anonymous authentication all HTTP authenticators will not challenge.
-#
-#
-# Note: If you define more than one HTTP authenticators make sure to put non-challenging authenticators like "proxy" or "clientcert"
-# first and the challenging one last.
-# Because it's not possible to challenge a client with two different authentication methods (for example
-# Kerberos and Basic) only one can have the challenge flag set to true. You can cope with this situation
-# by using pre-authentication, e.g. sending a HTTP Basic authentication header in the request.
-#
-# Default value of the challenge flag is true.
-#
-#
-# HTTP
-# basic (challenging)
-# proxy (not challenging, needs xff)
-# clientcert (not challenging, needs https)
-# host (not challenging) #DEPRECATED, will be removed in a future version.
-# host based authentication is configurable in sg_roles_mapping
-
-# Authc
-# internal
-# noop
-
-# Authz
-# noop
-#
-# Some SearchGuard functionality is licensed under Apache-2.0, while other functionality is non-free;
-# see https://github.com/floragunncom/search-guard. The functionality enabled in this configuration
-# file only include those that are licensed under Apache-2.0. Please use care and review SearchGuard's
-# license details before enabling any additional features here.
-
-
-searchguard:
- dynamic:
- # Set filtered_alias_mode to 'disallow' to forbid more than 2 filtered aliases per index
- # Set filtered_alias_mode to 'warn' to allow more than 2 filtered aliases per index but warns about it (default)
- # Set filtered_alias_mode to 'nowarn' to allow more than 2 filtered aliases per index silently
- #filtered_alias_mode: warn
- #kibana:
- # see https://github.com/floragunncom/search-guard-docs/blob/master/multitenancy.md
- # To make this work you need to install https://github.com/floragunncom/search-guard-module-kibana-multitenancy/wiki
- #multitenancy_enabled: true
- #server_username: kibanaserver
- #index: '.kibana'
- #do_not_fail_on_forbidden: false
- http:
- anonymous_auth_enabled: false
- xff:
- enabled: false
- internalProxies: '192\.168\.0\.10|192\.168\.0\.11' # regex pattern
- #internalProxies: '.*' # trust all internal proxies, regex pattern
- remoteIpHeader: 'x-forwarded-for'
- proxiesHeader: 'x-forwarded-by'
- #trustedProxies: '.*' # trust all external proxies, regex pattern
- ###### see https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html for regex help
- ###### more information about XFF https://en.wikipedia.org/wiki/X-Forwarded-For
- ###### and here https://tools.ietf.org/html/rfc7239
- ###### and https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#Remote_IP_Valve
- authc:
- basic_internal_auth_domain:
- http_enabled: true
- transport_enabled: true
- order: 4
- http_authenticator:
- type: basic
- challenge: true
- authentication_backend:
- type: intern
- proxy_auth_domain:
- http_enabled: false
- transport_enabled: false
- order: 3
- http_authenticator:
- type: proxy
- challenge: false
- config:
- user_header: "x-proxy-user"
- roles_header: "x-proxy-roles"
- authentication_backend:
- type: noop
- jwt_auth_domain:
- http_enabled: false
- transport_enabled: false
- order: 0
- http_authenticator:
- type: jwt
- challenge: false
- config:
- signing_key: "base64 encoded HMAC key or public RSA/ECDSA pem key"
- jwt_header: "Authorization"
- jwt_url_parameter: null
- roles_key: null
- subject_key: null
- authentication_backend:
- type: noop
- clientcert_auth_domain:
- http_enabled: false
- transport_enabled: false
- order: 2
- http_authenticator:
- type: clientcert
- config:
- username_attribute: cn #optional, if omitted DN becomes username
- challenge: false
- authentication_backend:
- type: noop
- authz:
-# auth_failure_listeners:
-# ip_rate_limiting:
-# type: ip
-# allowed_tries: 10
-# time_window_seconds: 3600
-# block_expiry_seconds: 600
-# max_blocked_clients: 100000
-# max_tracked_clients: 100000
-# internal_authentication_backend_limiting:
-# type: username
-# authentication_backend: intern
-# allowed_tries: 10
-# time_window_seconds: 3600
-# block_expiry_seconds: 600
-# max_blocked_clients: 100000
-# max_tracked_clients: 100000
- \ No newline at end of file
diff --git a/src/main/docker/elasticsearch/config/sg/sg_internal_users.yml b/src/main/docker/elasticsearch/config/sg/sg_internal_users.yml
deleted file mode 100644
index 1712d379..00000000
--- a/src/main/docker/elasticsearch/config/sg/sg_internal_users.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-# This is the internal user database
-# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh
-
-#password is: admin
-admin:
- readonly: true
- hash: $2a$12$VcCDgh2NDk07JGN0rjGbM.Ad41qVR/YFJcgHp0UGns5JDymv..TOG
- roles:
- - admin
- attributes:
- #no dots allowed in attribute names
- attribute1: value1
- attribute2: value2
- attribute3: value3
-
-#password is: logstash
-logstash:
- hash: $2a$12$u1ShR4l4uBS3Uv59Pa2y5.1uQuZBrZtmNfqB3iM/.jL0XoV9sghS2
- roles:
- - logstash
-
-#password is: kibanaserver
-kibanaserver:
- readonly: true
- hash: $2a$12$4AcgAt3xwOWadA5s5blL6ev39OXDNhmOesEoo33eZtrq2N0YrU3H.
-
-#password is: kibanaro
-kibanaro:
- hash: $2a$12$JJSXNfTowz7Uu5ttXfeYpeYE0arACvcwlPBStB1F.MI7f0U9Z4DGC
- roles:
- - kibanauser
- - readall
-
-#password is: readall
-readall:
- hash: $2a$12$ae4ycwzwvLtZxwZ82RmiEunBbIPiAmGZduBAjKN0TXdwQFtCwARz2
- #password is: readall
- roles:
- - readall
-
-#password is: snapshotrestore
-snapshotrestore:
- hash: $2y$12$DpwmetHKwgYnorbgdvORCenv4NAK8cPUg8AI6pxLCuWf/ALc0.v7W
- roles:
- - snapshotrestore \ No newline at end of file
diff --git a/src/main/docker/elasticsearch/config/sg/sg_roles.yml b/src/main/docker/elasticsearch/config/sg/sg_roles.yml
deleted file mode 100644
index 1a3a80ce..00000000
--- a/src/main/docker/elasticsearch/config/sg/sg_roles.yml
+++ /dev/null
@@ -1,300 +0,0 @@
-#<sg_role_name>:
-# cluster:
-# - '<permission>'
-# indices:
-# '<indexname or alias>':
-# '<type>':
-# - '<permission>'
-# _dls_: '<dls query>'
-# _fls_:
-# - '<field>'
-# - '<field>'
-
-# When a user make a request to Elasticsearch then the following roles will be evaluated to see if the user has
-# permissions for the request. A request is always associated with an action and is executed against and index (or alias)
-# and a type. If a request is executed against all indices (or all types) then the asterix ('*') is needed.
-# Every role a user has will be examined if it allows the action against an index (or type). At least one role must match
-# for the request to be successful. If no role match then the request will be denied. Currently a match must happen within
-# one single role - that means that permissions can not span multiple roles.
-
-# For <permission>, <indexname or alias> and <type> simple wildcards and regular expressions are possible.
-# A asterix (*) will match any character sequence (or an empty sequence)
-# A question mark (?) will match any single character (but NOT empty character)
-# Example: '*my*index' will match 'my_first_index' as well as 'myindex' but not 'myindex1'
-# Example: '?kibana' will match '.kibana' but not 'kibana'
-
-# To use a full blown regex you have to pre- and apend a '/' to use regex instead of simple wildcards
-# '/<java regex>/'
-# Example: '/\S*/' will match any non whitespace characters
-
-# Important:
-# Index, alias or type names can not contain dots (.) in the <indexname or alias> or <type> expression.
-# Reason is that we currently parse the config file into a elasticsearch settings object which cannot cope with dots in keys.
-# Workaround: Just configure something like '?kibana' instead of '.kibana' or 'my?index' instead of 'my.index'
-# This limitation will likely removed with Search Guard 6
-#
-# Some SearchGuard functionality is licensed under Apache-2.0, while other functionality is non-free;
-# see https://github.com/floragunncom/search-guard. The functionality enabled in this configuration
-# file only include those that are licensed under Apache-2.0. Please use care and review SearchGuard's
-# license details before enabling any additional features here.
-
-# Allows everything, but no changes to searchguard configuration index
-sg_all_access:
- readonly: true
- cluster:
- - UNLIMITED
- indices:
- '*':
- '*':
- - UNLIMITED
- tenants:
- admin_tenant: RW
-
-# Read all, but no write permissions
-sg_readall:
- readonly: true
- cluster:
- - CLUSTER_COMPOSITE_OPS_RO
- indices:
- '*':
- '*':
- - READ
-
-# Read all and monitor, but no write permissions
-sg_readall_and_monitor:
- cluster:
- - CLUSTER_MONITOR
- - CLUSTER_COMPOSITE_OPS_RO
- indices:
- '*':
- '*':
- - READ
-
-# For users which use kibana, access to indices must be granted separately
-sg_kibana_user:
- readonly: true
- cluster:
- - INDICES_MONITOR
- - CLUSTER_COMPOSITE_OPS
- indices:
- '?kibana':
- '*':
- - MANAGE
- - INDEX
- - READ
- - DELETE
- '?kibana-6':
- '*':
- - MANAGE
- - INDEX
- - READ
- - DELETE
- '?kibana_*':
- '*':
- - MANAGE
- - INDEX
- - READ
- - DELETE
- '?tasks':
- '*':
- - INDICES_ALL
- '?management-beats':
- '*':
- - INDICES_ALL
- '*':
- '*':
- - indices:data/read/field_caps*
- - indices:data/read/xpack/rollup*
- - indices:admin/mappings/get*
- - indices:admin/get
-
-# For the kibana server
-sg_kibana_server:
- readonly: true
- cluster:
- - CLUSTER_MONITOR
- - CLUSTER_COMPOSITE_OPS
- - cluster:admin/xpack/monitoring*
- - indices:admin/template*
- - indices:data/read/scroll*
- indices:
- '?kibana':
- '*':
- - INDICES_ALL
- '?kibana-6':
- '*':
- - INDICES_ALL
- '?kibana_*':
- '*':
- - INDICES_ALL
- '?reporting*':
- '*':
- - INDICES_ALL
- '?monitoring*':
- '*':
- - INDICES_ALL
- '?tasks':
- '*':
- - INDICES_ALL
- '?management-beats*':
- '*':
- - INDICES_ALL
- '*':
- '*':
- - "indices:admin/aliases*"
-
-# For logstash and beats
-sg_logstash:
- cluster:
- - ES_INPUT
- - CLUSTER_MONITOR
- - CLUSTER_COMPOSITE_OPS
- - indices:admin/template/get
- - indices:admin/template/put
- indices:
- 'logstash-*':
- '*':
- - INDEX_OWNER
- '*beat*':
- '*':
- - INDEX_OWNER
- 'dmaap*':
- '*':
- - INDEX_OWNER
- 'events*':
- '*':
- - INDEX_OWNER
- 'errors*':
- '*':
- - INDEX_OWNER
-
-# Allows adding and modifying repositories and creating and restoring snapshots
-sg_manage_snapshots:
- cluster:
- - MANAGE_SNAPSHOTS
- indices:
- '*':
- '*':
- - "indices:data/write/index"
- - "indices:admin/create"
-
-# Allows each user to access own named index
-sg_own_index:
- cluster:
- - CLUSTER_COMPOSITE_OPS
- indices:
- '${user_name}':
- '*':
- - INDICES_ALL
-
-### X-Pack COMPATIBILITY
-sg_xp_monitoring:
- readonly: true
- cluster:
- - cluster:monitor/xpack/info
- - cluster:monitor/main
- - cluster:admin/xpack/monitoring/bulk
- indices:
- '?monitor*':
- '*':
- - INDICES_ALL
-
-sg_xp_alerting:
- readonly: true
- cluster:
- - indices:data/read/scroll
- - cluster:admin/xpack/watcher*
- - cluster:monitor/xpack/watcher*
- indices:
- '?watches*':
- '*':
- - INDICES_ALL
- '?watcher-history-*':
- '*':
- - INDICES_ALL
- '?triggered_watches':
- '*':
- - INDICES_ALL
- '*':
- '*':
- - READ
- - indices:admin/aliases/get
-
-sg_xp_machine_learning:
- readonly: true
- cluster:
- - cluster:admin/persistent*
- - cluster:internal/xpack/ml*
- - indices:data/read/scroll*
- - cluster:admin/xpack/ml*
- - cluster:monitor/xpack/ml*
- indices:
- '*':
- '*':
- - READ
- - indices:admin/get*
- '?ml-*':
- '*':
- - "*"
-
-
-### LEGACY ROLES, FOR COMPATIBILITY ONLY
-### WILL BE REMOVED IN SG7, DO NOT USE ANYMORE
-
-sg_readonly_and_monitor:
- cluster:
- - CLUSTER_MONITOR
- - CLUSTER_COMPOSITE_OPS_RO
- indices:
- '*':
- '*':
- - READ
-
-# Make xpack monitoring work
-sg_monitor:
- cluster:
- - cluster:admin/xpack/monitoring/*
- - cluster:admin/ingest/pipeline/put
- - cluster:admin/ingest/pipeline/get
- - indices:admin/template/get
- - indices:admin/template/put
- - CLUSTER_MONITOR
- - CLUSTER_COMPOSITE_OPS
- indices:
- '?monitor*':
- '*':
- - INDICES_ALL
- '?marvel*':
- '*':
- - INDICES_ALL
- '?kibana*':
- '*':
- - READ
- '*':
- '*':
- - indices:data/read/field_caps
-
-# Make xpack alerting work
-sg_alerting:
- cluster:
- - indices:data/read/scroll
- - cluster:admin/xpack/watcher/watch/put
- - cluster:admin/xpack/watcher*
- - CLUSTER_MONITOR
- - CLUSTER_COMPOSITE_OPS
- indices:
- '?kibana*':
- '*':
- - READ
- '?watches*':
- '*':
- - INDICES_ALL
- '?watcher-history-*':
- '*':
- - INDICES_ALL
- '?triggered_watches':
- '*':
- - INDICES_ALL
- '*':
- '*':
- - READ
diff --git a/src/main/docker/elasticsearch/config/sg/sg_roles_mapping.yml b/src/main/docker/elasticsearch/config/sg/sg_roles_mapping.yml
deleted file mode 100644
index 45bb7755..00000000
--- a/src/main/docker/elasticsearch/config/sg/sg_roles_mapping.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# In this file users, backendroles and hosts can be mapped to Search Guard roles.
-# Permissions for Search Guard roles are configured in sg_roles.yml
-
-sg_all_access:
- readonly: true
- backendroles:
- - admin
-
-sg_logstash:
- backendroles:
- - logstash
-
-sg_kibana_server:
- readonly: true
- users:
- - kibanaserver
-
-sg_kibana_user:
- backendroles:
- - kibanauser
-
-sg_readall:
- readonly: true
- backendroles:
- - readall
-
-sg_manage_snapshots:
- readonly: true
- backendroles:
- - snapshotrestore
-
-sg_own_index:
- users:
- - '*' \ No newline at end of file
diff --git a/src/main/docker/elasticsearch/config/sg/truststore.jks b/src/main/docker/elasticsearch/config/sg/truststore.jks
deleted file mode 100644
index 7a1b59a8..00000000
--- a/src/main/docker/elasticsearch/config/sg/truststore.jks
+++ /dev/null
Binary files differ
diff --git a/src/main/docker/elasticsearch/my-entrypoint.sh b/src/main/docker/elasticsearch/my-entrypoint.sh
deleted file mode 100644
index 9eee64e0..00000000
--- a/src/main/docker/elasticsearch/my-entrypoint.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source init_sg.sh
-
-while [ $? -ne 0 ]; do
- sleep 10
- source init_sg.sh
-done &
-
-/bin/bash -c "source /usr/local/bin/docker-entrypoint.sh;"
diff --git a/src/main/docker/kibana/Dockerfile b/src/main/docker/kibana/Dockerfile
deleted file mode 100644
index 21e89252..00000000
--- a/src/main/docker/kibana/Dockerfile
+++ /dev/null
@@ -1,61 +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============================================
-# ===================================================================
-#
-###
-
-FROM docker.elastic.co/kibana/kibana-oss:6.6.2
-
-# Search Guard plugin
-RUN kibana-plugin install https://repo1.maven.org/maven2/com/floragunn/search-guard-kibana-plugin/6.6.2-18.4/search-guard-kibana-plugin-6.6.2-18.4.zip
-
-MAINTAINER "The Onap Team"
-LABEL Description="Kibana image with saved objects loading and Search Guard support"
-USER root
-RUN yum install -y python-requests && yum clean all
-
-# You can share volume on this folder to restore
-# a default kibana configuration. Each subfolder will
-# be considered as a saved-object folder generated by,
-# the backup.py script bundled with the image.
-# Structure example :
-# saved-objects/
-# └── default
-# ├── config
-# │   └── config-6.1.3.json
-# ├── dashboard
-# │   └── dashboard-e6a82230-c190-11e8-a550-27f2e3138fee.json
-# ├── index-pattern
-# │   └── index-pattern-3ecb1c70-c190-11e8-a550-27f2e3138fee.json
-# ├── search
-# │   └── search-abdd0440-c190-11e8-a550-27f2e3138fee.json
-# └── visualization
-# ├── visualization-cb896270-c190-11e8-a550-27f2e3138fee.json
-# └── visualization-d837b120-c190-11e8-a550-27f2e3138fee.json
-
-RUN mkdir /saved-objects/ && chown kibana:kibana /saved-objects/
-
-USER kibana
-
-ADD saved-objects /saved-objects
-ADD startup.sh /usr/local/bin/startup.sh
-ADD restore.py /usr/local/bin/restore.py
-ADD backup.py /usr/local/bin/backup.py
-CMD /usr/local/bin/startup.sh
diff --git a/src/main/docker/kibana/README.md b/src/main/docker/kibana/README.md
deleted file mode 100644
index e69de29b..00000000
--- a/src/main/docker/kibana/README.md
+++ /dev/null
diff --git a/src/main/docker/kibana/backup.py b/src/main/docker/kibana/backup.py
deleted file mode 100755
index b1e45181..00000000
--- a/src/main/docker/kibana/backup.py
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/env python
-###
-# ============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============================================
-# ===================================================================
-#
-###
-
-import json
-import logging
-import os
-import sys
-
-import requests
-
-PER_PAGE = 1000
-
-def parse_args(args):
- """ Parse arguments given to this script"""
- import argparse
- parser = argparse.ArgumentParser(
- description=('Description of the script'))
- parser.add_argument('-v', '--verbose', dest='log_level', action='store_const',
- const=logging.DEBUG, default=logging.INFO,
- help='Use verbose logging')
- parser.add_argument('-C', '--configuration_path',
- default='./default',
- help='Path of the configuration to be backed up.')
- parser.add_argument('-f', '--force', action='store_const',
- const=True, default=False,
- help=('If the save folder already exists, overwrite files'
- ' matching a configuration item that should be written.'
- ' Files already in the folder that do not match are'
- ' left as-is.'))
- parser.add_argument('-H', '--kibana-host', default='https://localhost:5601',
- help='Kibana endpoint.')
-
- return parser.parse_args(args)
-
-def get_logger(args):
- """Creates the logger based on the provided arguments"""
- logging.basicConfig()
- logger = logging.getLogger(__name__)
- logger.setLevel(args.log_level)
- return logger
-
-def main():
- """ This script dumps the kibana configuration from Kibana"""
- args = parse_args(sys.argv[1:])
-
- base_config_path = args.configuration_path
-
- # get list of the set of objects we update
- url = "%s/api/saved_objects/_find" % (args.kibana_host.rstrip("/"),)
- saved_objects_req = requests.get(url, auth=('admin', 'admin'), verify=False,
- params={'per_page': PER_PAGE,'type':['config','search','dashboard','visualization','index-pattern']})
-
- saved_objects = saved_objects_req.json()['saved_objects']
-
- for obj in saved_objects:
-
- obj_folder = os.path.sep.join((base_config_path, obj['type']))
-
- if not os.path.exists(obj_folder):
- os.makedirs(obj_folder)
-
- filename = "%s/%s-%s.json" % (obj_folder, obj['type'], obj['id'])
- with open(filename, 'w') as file:
- json.dump(obj, fp=file)
-
-
-if __name__ == "__main__":
- main()
diff --git a/src/main/docker/kibana/conf/keystore/org.onap.clamp.crt.pem b/src/main/docker/kibana/conf/keystore/org.onap.clamp.crt.pem
deleted file mode 100644
index ce630d43..00000000
--- a/src/main/docker/kibana/conf/keystore/org.onap.clamp.crt.pem
+++ /dev/null
@@ -1,30 +0,0 @@
-Bag Attributes
- friendlyName: clamp@clamp.onap.org
- localKeyID: 54 69 6D 65 20 31 35 35 33 37 38 37 35 31 38 33 30 33
-subject=/CN=clamp/emailAddress=/OU=clamp@clamp.onap.org/OU=OSAAF/O=ONAP/C=US
-issuer=/C=US/O=ONAP/OU=OSAAF/CN=intermediateCA_9
------BEGIN CERTIFICATE-----
-MIIEKDCCAxCgAwIBAgIIWY+5kgf/UG4wDQYJKoZIhvcNAQELBQAwRzELMAkGA1UE
-BhMCVVMxDTALBgNVBAoMBE9OQVAxDjAMBgNVBAsMBU9TQUFGMRkwFwYDVQQDDBBp
-bnRlcm1lZGlhdGVDQV85MB4XDTE5MDMyMTE2MTY1OFoXDTIwMDMyMTE2MTY1OFow
-bDEOMAwGA1UEAwwFY2xhbXAxDzANBgkqhkiG9w0BCQEWADEdMBsGA1UECwwUY2xh
-bXBAY2xhbXAub25hcC5vcmcxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQ
-MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALic
-uDccBjOAlOsL1Z1nKnDPRTNxBwIVfARRQDxK3C0zDHQ5qEmIQlF0Vjp+bJ2rgzMW
-BnodC38zt1jSXymEsekZNV2sUyBbzJl6vxvA1xJKI9VHLyPSzyUEd1H4qh8b7IDX
-3GDqUJgNfvzJ94DaNnnYWFVZq/IYdLjCFaXDxPUQZtlmpdkIWBzvMeNRe4bWajau
-immkmSi5/2BYQfZXHXpiKiyBnN+1FbU3consmjNwS1L+PjD+k3JLsc5ANZYZMOTp
-Szhu3xmDiB3UV4gPQWacQQZEo/5exywY3Ax3TowGwIA660eSkW1L5RPdyvzEgp7A
-vu4+rbhfeR5bXjy2iAUCAwEAAaOB8jCB7zAJBgNVHRMEAjAAMA4GA1UdDwEB/wQE
-AwIF4DAgBgNVHSUBAf8EFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwVAYDVR0jBE0w
-S4AUgfeZWxC5yIze81Je6k5poEM+rN2hMKQuMCwxDjAMBgNVBAsMBU9TQUFGMQ0w
-CwYDVQQKDARPTkFQMQswCQYDVQQGEwJVU4IBBzAdBgNVHQ4EFgQU+GZ6wmWDPrmq
-Wd1/NtMYiCQ8Dg4wOwYDVR0RBDQwMoIFY2xhbXCCHWNsYW1wLmFwaS5zaW1wbGVk
-ZW1vLm9uYXAub3JnggpjbGFtcC5vbmFwMA0GCSqGSIb3DQEBCwUAA4IBAQCFZdhB
-U6xm6l0vj4q89onLx4opTPvwGNRc0n402lifkPYXseFtphZSHIf2Sg0mFTH4KHb4
-FdMyBzq1+f5WLU+xRC1nT4eGJ0FvRR6204/fGVrzJTS67phnRnxr2WZzLPW0wPJe
-K8SzN6tkUgE7/a/s0T/htE/blDxWh75+tA2jQlgj1Ri0y9A1J8wx++REKjGlHjFN
-53aiipsB+wC/oEMzYL4qEPiYPI0Lr3Lsay1F7f6cvDT4+EYzBLMFuwCvpcnHgSMS
-4fFj2ROmUG2+CC23B88Q0WNxjLPq/CrmHZZBsqwruPJ0cSuCQxfshTQ6uZhcjtu8
-6TRYkIcL0x9r/AHP
------END CERTIFICATE-----
diff --git a/src/main/docker/kibana/conf/keystore/org.onap.clamp.key.pem b/src/main/docker/kibana/conf/keystore/org.onap.clamp.key.pem
deleted file mode 100644
index fcf68bfa..00000000
--- a/src/main/docker/kibana/conf/keystore/org.onap.clamp.key.pem
+++ /dev/null
@@ -1,32 +0,0 @@
-Bag Attributes
- friendlyName: clamp@clamp.onap.org
- localKeyID: 54 69 6D 65 20 31 35 35 33 37 38 37 35 31 38 33 30 33
-Key Attributes: <No Attributes>
------BEGIN PRIVATE KEY-----
-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC4nLg3HAYzgJTr
-C9WdZypwz0UzcQcCFXwEUUA8StwtMwx0OahJiEJRdFY6fmydq4MzFgZ6HQt/M7dY
-0l8phLHpGTVdrFMgW8yZer8bwNcSSiPVRy8j0s8lBHdR+KofG+yA19xg6lCYDX78
-yfeA2jZ52FhVWavyGHS4whWlw8T1EGbZZqXZCFgc7zHjUXuG1mo2ropppJkouf9g
-WEH2Vx16YiosgZzftRW1N3KJ7JozcEtS/j4w/pNyS7HOQDWWGTDk6Us4bt8Zg4gd
-1FeID0FmnEEGRKP+XscsGNwMd06MBsCAOutHkpFtS+UT3cr8xIKewL7uPq24X3ke
-W148togFAgMBAAECggEATncV+R5pKFS7dteV2IvzxvTh1cZxkxoslu0t3zJ2OKPc
-5D1pYK+QeGx5Be2cHru6TOlMoXRc4ZjKke8AUXY74/Y573GB91vtL0KznYkuIHDw
-oALcb153eqVWTbniHMzSjcSxv2N4E9iQo8L39oVI6CrjCIvPgFuSqMCdUNJPkVTI
-4nsarTfLK4fzi7IbWzi9JdE1QRNIxcCMcYJRnLZMdneMLBleR0UL82Xc2KOy5SEt
-zyKYCQ8zS247FKolnOrDkhKxXI5fzdDpRK5AQSsAykUPWlYq7pzKjY/dU9rMRohx
-YSltFjPZ3sQ3UKqqIqhZS+GoVuZoc925WyhViPsqtQKBgQDsL4LFfPWN8nnsusQp
-VR3T7HvvwXuEVAydlaJMwZU0cRYN+L7RHHjDoXZZrNJDIDzNoWnBLKRGx3mtLmgJ
-9Pa6SxN6Oc8oo6jzv2D59g1PVjNOMOYTCTb/2Xum4LMLaeeF57HkWxzeA3Ws47++
-gXwzQpbE90tp1Ys4uXD3JoivvwKBgQDIGZTwLGhLSegdAjG83WEgmdtzT1kjvx0Q
-A8IR2jkgkTJHdKiuslJ8Z3/XufHEwWMWwfs1XLwxYluoo1y9eNvNeHZXjLqjL62c
-I3034F9IvvTUqFcxam2WdoklXbAiSvLUo/9exPgOuVxok6Zv1imRgGb/vYV9vyG7
-86MRuQu5OwKBgQC9E3fcA6JMpY3H3uhEsngzfMDm+fyYvfRvfyezzNFWbyWZv8V6
-gBGJg0vMlFarGDa044BW/hbw9qXI5zqwpeOS1aFdGsRlo0cRAuduk/Spy7c85FZ7
-bMgT4BZmTMHo5DpNb2NxDSO59AkThCuvJde47ZjnS5WavzI6EfKGWNnZ3wKBgQCF
-QiwjCp/mS/DtqLFxAsmVSYGROG231aXILYiIFRloa+ndFn7j4NP4D4FfLHErRFL2
-K/ddIUYfaU57b1fqwts26ht90LXWyYDH9AaHOMCcFLe+C+INgcA7rPNG1C7hl6JC
-JHmEJo7AV4eICZSU9D44rRdrB08oYCpaHjYiLmb1UwKBgQCWCDJ4p2DrNL9hzj3K
-kzvM5saXrfI4aVBXVt9rw9s1d/WG8JOpnmHcnLPb6Tj59rDktrLCLv0sVstMwNVJ
-sOO+qsgn1VoZalcVhhjdONm5YvhJQgz0F7Y2xkr6g/AuMPz2YigGfm7fe/z7rc+L
-q9Ua2HmUS8DDBy7W89MNZJNkDQ==
------END PRIVATE KEY-----
diff --git a/src/main/docker/kibana/conf/kibana.yml b/src/main/docker/kibana/conf/kibana.yml
deleted file mode 100644
index cfec41e3..00000000
--- a/src/main/docker/kibana/conf/kibana.yml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# Default Kibana configuration from kibana-docker.
-
-server.name: kibana
-server.host: "0"
-elasticsearch.hosts: http://elasticsearch:9200
-server.ssl.enabled: true
-server.ssl.key: /usr/share/kibana/config/keystore/org.onap.clamp.key.pem
-server.ssl.certificate: /usr/share/kibana/config/keystore/org.onap.clamp.crt.pem
-
-## Search Guard
-#
-#xpack.security.enabled: false
-elasticsearch.username: kibanaserver
-elasticsearch.password: kibanaserver
-
-searchguard.cookie.password: 123567818187654rwrwfsfshdhdhtegdhfzftdhncn \ No newline at end of file
diff --git a/src/main/docker/kibana/restore.py b/src/main/docker/kibana/restore.py
deleted file mode 100755
index eee2e6b7..00000000
--- a/src/main/docker/kibana/restore.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env python
-###
-# ============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============================================
-# ===================================================================
-#
-###
-import json
-import logging
-import os
-import sys
-
-import requests
-
-if sys.version_info < (3,):
- # for HTTPStatus.OK only
- import httplib as HTTPStatus
-else:
- from http import HTTPStatus
-
-
-
-OBJECT_TYPES = ['index-pattern', 'config', 'search', 'visualization', 'dashboard']
-
-def parse_args(args):
- """ Parse arguments given to this script"""
- import argparse
- parser = argparse.ArgumentParser(
- description=('Restores the kibana configuration.'))
- parser.add_argument('-v', '--verbose', dest='log_level', action='store_const',
- const=logging.DEBUG, default=logging.INFO,
- help='Use verbose logging')
- parser.add_argument('-C', '--configuration_path',
- default='./default',
- help=('Path of the configuration to be restored.'
- 'Should contain at least one folder named %s or %s' %
- (','.join(OBJECT_TYPES[:-1]), OBJECT_TYPES[-1])
- )
- )
- parser.add_argument('-H', '--kibana-host', default='https://localhost:5601',
- help='Kibana endpoint.')
- parser.add_argument('-f', '--force', action='store_const',
- const=True, default=False,
- help='Overwrite configuration if needed.')
-
- return parser.parse_args(args)
-
-def get_logger(args):
- """Creates the logger based on the provided arguments"""
- logging.basicConfig()
- logger = logging.getLogger(__name__)
- logger.setLevel(args.log_level)
- return logger
-
-def main():
- ''' Main script function'''
- args = parse_args(sys.argv[1:])
- logger = get_logger(args)
- base_config_path = args.configuration_path
-
- # order to ensure dependency order is ok
- for obj_type in OBJECT_TYPES:
- obj_dir = os.path.sep.join((base_config_path, obj_type))
-
- if not os.path.exists(obj_dir):
- logger.info('No %s to restore, skipping.', obj_type)
- continue
-
- for obj_filename in os.listdir(obj_dir):
- with open(os.path.sep.join((obj_dir, obj_filename))) as obj_file:
- payload = obj_file.read()
-
- obj = json.loads(payload)
-
- obj_id = obj['id']
- for key in ('id', 'version', 'type', 'updated_at'):
- try:
- del obj[key]
- except KeyError:
- logger.info("Could not find key %s in %s[%s]", key, obj_type, obj_id)
-
- logger.info('Restoring %s id:%s (overwrite:%s)', obj_type, obj_id, args.force)
- url = "%s/api/saved_objects/%s/%s" % (args.kibana_host.rstrip("/"), obj_type, obj_id)
- params = {'overwrite': True} if args.force else {}
- post_object_req = requests.post(url, auth=('admin', 'admin'), verify=False,
- headers={'content-type': 'application/json',
- 'kbn-xsrf': 'True'},
- params=params,
- data=json.dumps(obj))
- if post_object_req.status_code == HTTPStatus.OK:
- logger.info('%s id:%s restored.', obj_type, obj_id)
- else:
- logger.warning(('Something bad happend while restoring %s id:%s. '
- ' Received status code: %s'),
- obj_type, obj_id, post_object_req.status_code)
- logger.warning('Body: %s', post_object_req.content)
-
-if __name__ == "__main__":
- main()
diff --git a/src/main/docker/kibana/saved-objects/default/config/config-6.6.2.json b/src/main/docker/kibana/saved-objects/default/config/config-6.6.2.json
deleted file mode 100644
index 41aee482..00000000
--- a/src/main/docker/kibana/saved-objects/default/config/config-6.6.2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"buildNum": 19548, "defaultIndex": "04e06060-50bf-11e9-b3a3-7302725859d5"}, "version": 2, "type": "config", "id": "6.6.2", "updated_at": "2019-04-03T18:36:56.261Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/dashboard/dashboard-e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4.json b/src/main/docker/kibana/saved-objects/default/dashboard/dashboard-e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4.json
deleted file mode 100644
index 76670d24..00000000
--- a/src/main/docker/kibana/saved-objects/default/dashboard/dashboard-e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"hits": 0, "timeRestore": false, "description": "", "title": "Clamp Dashboard", "uiStateJSON": "{\n \"P-4\": {\n \"vis\": {\n \"legendOpen\": false\n }\n },\n \"P-6\": {\n \"vis\": {\n \"params\": {\n \"sort\": {\n \"columnIndex\": null,\n \"direction\": null\n }\n }\n }\n }\n}", "panelsJSON": "[\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"1\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 0\n },\n \"id\": \"e1f0fa00-38f5-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"1\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"2\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 0\n },\n \"id\": \"f724dfd0-38f6-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"2\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"3\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 3\n },\n \"id\": \"9a1a6750-38f7-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"3\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"4\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 3\n },\n \"id\": \"0ef409f0-38f8-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"4\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"5\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 6\n },\n \"id\": \"ae8c22b0-3905-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"5\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"6\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 6\n },\n \"id\": \"a9d9d120-38f8-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"6\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n }\n]", "optionsJSON": "{\n \"darkTheme\": false,\n \"hidePanelTitles\": false,\n \"useMargins\": true\n}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\n \"query\": {\n \"language\": \"lucene\",\n \"query\": \"\"\n },\n \"filter\": [],\n \"highlightAll\": true,\n \"version\": true\n}"}}, "version": 4, "type": "dashboard", "id": "e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4", "updated_at": "2019-04-04T06:45:02.504Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/index-pattern/index-pattern-04e06060-50bf-11e9-b3a3-7302725859d5.json b/src/main/docker/kibana/saved-objects/default/index-pattern/index-pattern-04e06060-50bf-11e9-b3a3-7302725859d5.json
deleted file mode 100644
index 5f277210..00000000
--- a/src/main/docker/kibana/saved-objects/default/index-pattern/index-pattern-04e06060-50bf-11e9-b3a3-7302725859d5.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"fields": "[{\"name\":\"@timestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@version\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@version.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.in-maint\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.in-maint.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.ipv4-oam-address\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.ipv4-oam-address.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.is-closed-loop-disabled\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.is-closed-loop-disabled.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.model-customization-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.model-customization-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.model-invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.model-invariant-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.model-version-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.model-version-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-function\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-function.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-naming-code.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-role\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-role.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-type.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.orchestration-status\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.orchestration-status.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.prov-status\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.prov-status.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.resource-version\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.resource-version.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.service-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.service-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.vnf-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.vnf-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.vnf-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.vnf-name.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.vnf-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.vnf-type.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.vserver.vserver-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.vserver.vserver-name.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"closedLoopAlarmStart\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"closedLoopControlName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"closedLoopControlName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"closedLoopEventClient\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"closedLoopEventClient.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"flagFinalFailure\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"flagFinalFailure.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"from\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"from.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.actor\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.actor.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.end\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.message\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.message.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.operation\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.operation.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.outcome\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.outcome.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.start\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.subRequestId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.subRequestId.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.target\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.target.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"notification\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"notification.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"notificationTime\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"policyName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"policyName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"policyScope\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"policyScope.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"policyVersion\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"policyVersion.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"requestId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"requestId.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tags\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"tags.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"target\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"target.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"targetType\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"targetType.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"type.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"version\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"version.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vmName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"vmName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vnfName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"vnfName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vnfType\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"vnfType.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]", "timeFieldName": "@timestamp", "title": "events-*"}, "version": 2, "type": "index-pattern", "id": "04e06060-50bf-11e9-b3a3-7302725859d5", "updated_at": "2019-03-27T18:34:58.345Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWIk8yDIDjJ4k3sPXRbu.json b/src/main/docker/kibana/saved-objects/default/search/search-AWIk8yDIDjJ4k3sPXRbu.json
deleted file mode 100644
index 0b3d3e94..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWIk8yDIDjJ4k3sPXRbu.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "ONSET", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ONSET\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}}]}"}, "columns": ["closedLoopAlarmStart", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification"]}, "version": 1, "type": "search", "id": "AWIk8yDIDjJ4k3sPXRbu", "updated_at": "2019-03-20T07:18:23.921Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWIk9P-qDjJ4k3sPXRcQ.json b/src/main/docker/kibana/saved-objects/default/search/search-AWIk9P-qDjJ4k3sPXRcQ.json
deleted file mode 100644
index 9e8916a4..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWIk9P-qDjJ4k3sPXRcQ.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "ABATED", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"closedLoopEventStatus: \\\"ABATED\\\"\"}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ABATED\",\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ABATED\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ONSET\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ONSET\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}}]}"}, "columns": ["closedLoopAlarmStart", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification"]}, "version": 1, "type": "search", "id": "AWIk9P-qDjJ4k3sPXRcQ", "updated_at": "2019-03-20T07:18:22.812Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWIlAjTaDjJ4k3sPXRe1.json b/src/main/docker/kibana/saved-objects/default/search/search-AWIlAjTaDjJ4k3sPXRe1.json
deleted file mode 100644
index 0f569da8..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWIlAjTaDjJ4k3sPXRe1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "FAILURE NOTIFICATION", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ABATED\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ABATED\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ONSET\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ONSET\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"FAILURE NOTIFICATION\",\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"notification.keyword\",\"negate\":false,\"params\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"FINAL: FAILURE\"},\"query\":{\"match\":{\"notification.keyword\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}}}}]}"}, "columns": ["closedLoopAlarmStart", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification"]}, "version": 1, "type": "search", "id": "AWIlAjTaDjJ4k3sPXRe1", "updated_at": "2019-03-20T07:18:26.164Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWJsTEvYr1AwiIiFoV6S.json b/src/main/docker/kibana/saved-objects/default/search/search-AWJsTEvYr1AwiIiFoV6S.json
deleted file mode 100644
index 75989328..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWJsTEvYr1AwiIiFoV6S.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "FINAL: FAILURE", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"notification\",\"negate\":false,\"params\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"FINAL: FAILURE\"},\"query\":{\"match\":{\"notification\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}}}}]}"}, "columns": ["notification"]}, "version": 1, "type": "search", "id": "AWJsTEvYr1AwiIiFoV6S", "updated_at": "2019-03-20T07:18:19.445Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWWh6CC3TSxbbr1lgyay.json b/src/main/docker/kibana/saved-objects/default/search/search-AWWh6CC3TSxbbr1lgyay.json
deleted file mode 100644
index 38f58c07..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWWh6CC3TSxbbr1lgyay.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "Control Loop which Failed", "title": "List of Control Loops (Summary)", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"bool\":{\"should\":[{\"exists\":{\"field\":\"flagAbated\"}},{\"exists\":{\"field\":\"flagFinalFailure\"}}]},\"meta\":{\"negate\":false,\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"disabled\":true,\"alias\":\"abated or failure\",\"type\":\"custom\",\"key\":\"bool\",\"value\":\"{\\\"should\\\":[{\\\"exists\\\":{\\\"field\\\":\\\"flagAbated\\\"}},{\\\"exists\\\":{\\\"field\\\":\\\"flagFinalFailure\\\"}}]}\"},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"negate\":false,\"disabled\":true,\"alias\":\"abated\",\"type\":\"exists\",\"key\":\"flagAbated\",\"value\":\"exists\"},\"exists\":{\"field\":\"flagAbated\"},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"negate\":false,\"disabled\":true,\"alias\":\"failure\",\"type\":\"exists\",\"key\":\"flagFinalFailure\",\"value\":\"exists\"},\"exists\":{\"field\":\"flagFinalFailure\"},\"$state\":{\"store\":\"appState\"}}]}"}, "columns": ["requestID", "closedLoopControlName", "notification", "vnfName", "vmName", "vnfType", "locationCity", "locationState", "flagAbated", "flagFinalFailure", "eventDuration"]}, "version": 1, "type": "search", "id": "AWWh6CC3TSxbbr1lgyay", "updated_at": "2019-03-20T07:18:21.676Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWWh7d7sTSxbbr1lgyaz.json b/src/main/docker/kibana/saved-objects/default/search/search-AWWh7d7sTSxbbr1lgyaz.json
deleted file mode 100644
index 5da483d1..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWWh7d7sTSxbbr1lgyaz.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "Control Loops Abated", "title": "ABATED CL", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":{\"query_string\":{\"query\":\"closedLoopEventStatus: \\\"ABATED\\\"\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"negate\":false,\"disabled\":false,\"alias\":\"ABATED\",\"type\":\"phrase\",\"key\":\"closedLoopEventStatus.keyword\",\"value\":\"ABATED\",\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"negate\":false,\"disabled\":true,\"alias\":\"ONSET\",\"type\":\"phrase\",\"key\":\"closedLoopEventStatus.keyword\",\"value\":\"ONSET\",\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"}, "columns": ["closedLoopAlarmEnd", "requestID", "closedLoopControlName", "closedLoopEventStatus", "vmName", "vnfName", "vnfType", "locationCity", "locationState", "eventDuration"]}, "version": 1, "type": "search", "id": "AWWh7d7sTSxbbr1lgyaz", "updated_at": "2019-03-20T07:18:25.062Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWWhVlbFTSxbbr1lgyap.json b/src/main/docker/kibana/saved-objects/default/search/search-AWWhVlbFTSxbbr1lgyap.json
deleted file mode 100644
index b4c78149..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWWhVlbFTSxbbr1lgyap.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["controlLoopIDTime", "asc"], "hits": 0, "description": "", "title": "ControlLoopsGroupByRequestIDandTime", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"}, "columns": ["controlLoopIDTime", "from", "closedLoopEventStatus", "notification", "notificationTime", "eventDuration", "vmName", "vnfName", "locationCity", "locationState"]}, "version": 1, "type": "search", "id": "AWWhVlbFTSxbbr1lgyap", "updated_at": "2019-03-20T07:18:20.542Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWXPmsmxr9U94x7rrLgV.json b/src/main/docker/kibana/saved-objects/default/search/search-AWXPmsmxr9U94x7rrLgV.json
deleted file mode 100644
index 81fcaf1c..00000000
--- a/src/main/docker/kibana/saved-objects/default/search/search-AWXPmsmxr9U94x7rrLgV.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "FAILURE NOTIFICATION CL", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ABATED\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"type\":\"phrase\",\"value\":\"ABATED\",\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ONSET\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"type\":\"phrase\",\"value\":\"ONSET\",\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"FAILURE NOTIFICATION\",\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"notification.keyword\",\"negate\":false,\"type\":\"phrase\",\"value\":\"FINAL: FAILURE\",\"params\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"notification.keyword\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}}}}]}"}, "columns": ["requestID", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification", "vnfName", "vmName", "vnfType", "locationCity", "locationState", "eventDuration"]}, "version": 1, "type": "search", "id": "AWXPmsmxr9U94x7rrLgV", "updated_at": "2019-03-20T07:18:27.319Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-0ef409f0-38f8-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-0ef409f0-38f8-11e9-beac-8d2beda26615.json
deleted file mode 100644
index a9f177a9..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-0ef409f0-38f8-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"Control Loop percentage count per status v2\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"filters\",\"schema\":\"segment\",\"params\":{\"filters\":[{\"input\":{\"query\":\"flagAbated:\\\"1\\\"\"},\"label\":\"\"},{\"input\":{\"query\":\"flagFinalFailure:\\\"1\\\"\"}},{\"input\":{\"query\":\"!(flagAbated:\\\"1\\\") && !(flagFinalFailure:\\\"1\\\")\"}}]}}]}", "description": "", "title": "Control Loop percentage count per status v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "0ef409f0-38f8-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.430Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-2d36b0e0-38f6-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-2d36b0e0-38f6-11e9-beac-8d2beda26615.json
deleted file mode 100644
index 91a3bcfa..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-2d36b0e0-38f6-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"CL count filtered by status v2\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"closedLoopAlarmStart\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"Alarm start date\"}}]}", "description": "", "title": "CL count filtered by status v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[{\"meta\":{\"index\":\"44f02cf0-38f3-11e9-beac-8d2beda26615\",\"negate\":true,\"disabled\":false,\"alias\":null,\"type\":\"exists\",\"key\":\"flagFinalFailure\",\"value\":\"exists\"},\"exists\":{\"field\":\"flagFinalFailure\"},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "2d36b0e0-38f6-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.417Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-9a1a6750-38f7-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-9a1a6750-38f7-11e9-beac-8d2beda26615.json
deleted file mode 100644
index b2dfa4b6..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-9a1a6750-38f7-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"CL view over Time v2\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"closedLoopAlarmStart\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"CL start date/time\"}}]}", "description": "", "title": "CL view over Time v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "9a1a6750-38f7-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.420Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-a9d9d120-38f8-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-a9d9d120-38f8-11e9-beac-8d2beda26615.json
deleted file mode 100644
index 40f3b087..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-a9d9d120-38f8-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"Top Error Messages v2\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"history.actor.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Actor\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"history.message.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Message\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"history.operation.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Operation\"}}]}", "description": "", "title": "Top Error Messages v2", "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "a9d9d120-38f8-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.426Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-ae8c22b0-3905-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-ae8c22b0-3905-11e9-beac-8d2beda26615.json
deleted file mode 100644
index 281fed3d..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-ae8c22b0-3905-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"Hottest closed loops v2\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"closedLoopControlName.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}", "description": "", "title": "Hottest closed loops v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "ae8c22b0-3905-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.434Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-e1f0fa00-38f5-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-e1f0fa00-38f5-11e9-beac-8d2beda26615.json
deleted file mode 100644
index 86a44d99..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-e1f0fa00-38f5-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"Amount of CL v2\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":100}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"requestId.keyword\",\"customLabel\":\"Amount of Control Loops\"}}]}", "description": "", "title": "Amount of CL v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "e1f0fa00-38f5-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.429Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-f724dfd0-38f6-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-f724dfd0-38f6-11e9-beac-8d2beda26615.json
deleted file mode 100644
index 189595f5..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-f724dfd0-38f6-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"CL events date histogram v2\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"Closed loop alarm start per day\"}}]}", "description": "", "title": "CL events date histogram v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "f724dfd0-38f6-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.432Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-fcc9a8b0-38f8-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-fcc9a8b0-38f8-11e9-beac-8d2beda26615.json
deleted file mode 100644
index 15165b57..00000000
--- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-fcc9a8b0-38f8-11e9-beac-8d2beda26615.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attributes": {"visState": "{\"title\":\"Number of Complete CL\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}]}", "description": "", "title": "Number of Complete CL", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[{\"bool\":{\"should\":[{\"exists\":{\"field\":\"flagAbated\"}},{\"exists\":{\"field\":\"flagFinalFailure\"}}]},\"meta\":{\"index\":\"44f02cf0-38f3-11e9-beac-8d2beda26615\",\"disabled\":false,\"alias\":null,\"type\":\"custom\",\"key\":\"bool\",\"value\":\"{\\\"should\\\":[{\\\"exists\\\":{\\\"field\\\":\\\"flagAbated\\\"}},{\\\"exists\\\":{\\\"field\\\":\\\"flagFinalFailure\\\"}}]}\",\"negate\":false},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "fcc9a8b0-38f8-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.423Z"} \ No newline at end of file
diff --git a/src/main/docker/kibana/startup.sh b/src/main/docker/kibana/startup.sh
deleted file mode 100755
index a232706e..00000000
--- a/src/main/docker/kibana/startup.sh
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/bin/bash -x
-###
-# ============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============================================
-# ===================================================================
-#
-###
-KIBANA_CONF_FILE="/usr/share/kibana/config/kibana.yml"
-SAVED_OBJECTS_ROOT="/saved-objects/"
-RESTORE_CMD="/usr/local/bin/restore.py -H http://127.0.0.1:5601/ -f"
-BACKUP_BIN="/usr/local/bin/backup.py"
-KIBANA_START_CMD="/usr/local/bin/kibana-docker"
-LOG_FILE="/tmp/load.kibana.log"
-KIBANA_LOAD_CMD="/usr/local/bin/kibana-docker -H 127.0.0.1 -l $LOG_FILE"
-TIMEOUT=60
-WAIT_TIME=2
-LOADED_FLAG=$SAVED_OBJECTS_ROOT/.loaded
-
-if [ -f $LOADED_FLAG ];
-then
- echo "---- Kibana saved objects already restored. Remove $LOADED_FLAG if you want to restore them again."
-elif [ -n "$(ls -A ${SAVED_OBJECTS_PATH})" ];
-then
- echo "---- Waiting for elasticsearch to be up..."
- RES=-1
- PING_TIMEOUT=60
- elastic_url=$(grep elasticsearch.url /usr/share/kibana/config/kibana.yml | cut -d\ -f2)
- while [ ! "$RES" -eq "0" ] && [ "$PING_TIMEOUT" -gt "0" ];
- do
- curl $elastic_url
- RES=$?
- sleep $WAIT_TIME
- let PING_TIMEOUT=$PING_TIMEOUT-$WAIT_TIME
- done
-
- echo "---- Saved objects found, restoring files."
-
- $KIBANA_LOAD_CMD &
- KIB_PID=$!
-
- # Wait for log file to be avaiable
- LOG_TIMEOUT=60
- while [ ! -f $LOG_FILE ] && [ "$LOG_TIMEOUT" -gt "0" ];
- do
- echo "Waiting for $LOG_FILE to be available..."
- sleep $WAIT_TIME
- let LOG_TIMEOUT=$LOG_TIMEOUT-$WAIT_TIME
- done
-
- tail -f $LOG_FILE &
- LOG_PID=$!
-
- # Wait for kibana to be listening
- while [ -z "$(grep "Server running at" $LOG_FILE)" ] && [ "$TIMEOUT" -gt "0" ];
- do
- echo "Waiting for kibana to start..."
- sleep $WAIT_TIME
- let TIMEOUT=$TIMEOUT-$WAIT_TIME
- done
- sleep 1
-
- # restore files
- for saved_objects_path in $SAVED_OBJECTS_ROOT/*
- do
- # skip files as we only need directories
- [ -f $saved_objects_path ] && continue
-
- echo "Restoring content of $saved_objects_path"
- $RESTORE_CMD -C $saved_objects_path
- sleep 1
- done
-
- touch $LOADED_FLAG
- if [ "$?" != "0" ];
- then
- echo "WARNING: Could not save $LOADED_FLAG, saved objects will be restored on next startup." >&2
- fi
-
- # cleanup
- kill $KIB_PID
- kill $LOG_PID
-else
- echo "---- No saved object found"
- ls -A ${SAVED_OBJECTS_PATH}
-fi
-
-echo "---- Starting kibana"
-
-$KIBANA_START_CMD
-
diff --git a/src/main/docker/logstash/Dockerfile b/src/main/docker/logstash/Dockerfile
deleted file mode 100644
index 73988dc7..00000000
--- a/src/main/docker/logstash/Dockerfile
+++ /dev/null
@@ -1,36 +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============================================
-# ===================================================================
-#
-###
-FROM docker.elastic.co/logstash/logstash-oss:6.6.2
-
-MAINTAINER "The Onap Team"
-LABEL Description="Logstash image with some plugins needed for the clamp dashboard"
-
-# Default aaf certificates
-COPY certs /certs.d/
-
-# remove default pipeline first
-COPY pipeline/logstash.conf /usr/share/logstash/pipeline/logstash.conf
-
-# add plugins needed by aggregation part of the pipeline
-RUN /usr/share/logstash/bin/logstash-plugin install logstash-filter-elasticsearch
-RUN /usr/share/logstash/bin/logstash-plugin install logstash-filter-prune
diff --git a/src/main/docker/logstash/certs/aafca.pem b/src/main/docker/logstash/certs/aafca.pem
deleted file mode 100644
index cf12ec4c..00000000
--- a/src/main/docker/logstash/certs/aafca.pem
+++ /dev/null
@@ -1,26 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEVDCCAjygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAsMQ4wDAYDVQQLDAVPU0FB
-RjENMAsGA1UECgwET05BUDELMAkGA1UEBhMCVVMwHhcNMTgwNjA1MDg1MTQxWhcN
-MjMwNjA1MDg1MTQxWjBHMQswCQYDVQQGEwJVUzENMAsGA1UECgwET05BUDEOMAwG
-A1UECwwFT1NBQUYxGTAXBgNVBAMMEGludGVybWVkaWF0ZUNBXzEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOXCdZIoWM0EnEEw3qPiVMhAgNolWCTaLt
-eI2TjlTQdGDIcXdBZukHdNeOKYzOXRsLt6bLRtd5yARpn53EbzS/dgAyHuaz1HjE
-5IPWSFRg9SulfHUmcS+GBt1+KiMJTlOsw6wSA73H/PjjXBbWs/uRJTnaNmV3so7W
-DhNW6fHOrbom4p+3FucbB/QAM9b/3l/1LKnRgdXx9tekDnaKN5u3HVBmyOlRhaRp
-tscLUCT3jijoGAPRcYZybgrpa0z3iCWquibTO/eLwuO/Dn7yHWau9ZZAHGPBSn9f
-TiLKRYV55mNjr3zvs8diTPECFPW8w8sRIH3za1aKHgUC1gd87Yr3AgMBAAGjZjBk
-MB0GA1UdDgQWBBQa1FdycErTZ6nr4dxiMbKH0P7vqjAfBgNVHSMEGDAWgBRTVTPy
-S+vQUbHBeJrBKDF77+rtSTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAlA/RTPy5i09fJ4ytSAmAdytMwEwRaU9F
-dshG7LU9q95ODsuM79yJvV9+ISIJZRsBqf5PDv93bUCKKHIYGvR6kNd+n3yx/fce
-txDkC/tMj1T9D8TuDKAclGEO9K5+1roOQQFxr4SE6XKb/wjn8OMrCoJ75S0F3htF
-LKL85T77JeGeNgSk8JEsZvQvj32m0gv9rxi5jM/Zi5E2vxrBR9T1v3kVvlt6+PSF
-BoHXROk5HQmdHxnH+VYQtDHSwj9Xe9aoJMyL0WjYKd//8NUO+VACDOtK4Nia6gy9
-m/n9kMASMw6f9iF4n6t4902RWrRKTYM1CVu5wyVklVbEdE9i6Db4CpL9E8HpBUAP
-t44JiNzuFkDmSE/z5XuQIimDt6nzOaSF8pX2KHY2ICDLwpMNUvxzqXD9ECbdspiy
-JC2RGq8uARGGl6kQQBKDNO8SrO7rSBPANd1+LgqrKbCrHYfvFgkZPgT5MlQi+E1G
-LNT+i6fzZha9ed/L6yjl5Em71flJGFwRZl2pfErZRxp8pLPcznYyIpSjcwnqNCRC
-orhlp8nheiODC3oO3AFHDiFgUqvm8hgpnT2cPk2lpU2VY1TcZ8sW5qUDCxINIPcW
-u1SAsa87IJK3vEzPZfTCs/S6XThoqRfXj0c0Rahj7YFRi/PqIPY0ejwdtmZ9m9pZ
-8Lb0GYmlo44=
------END CERTIFICATE-----
diff --git a/src/main/docker/logstash/pipeline/logstash.conf b/src/main/docker/logstash/pipeline/logstash.conf
deleted file mode 100644
index 5c1d47d1..00000000
--- a/src/main/docker/logstash/pipeline/logstash.conf
+++ /dev/null
@@ -1,269 +0,0 @@
-# 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.
-input {
- http_poller {
- urls => {
- event_queue => {
- method => get
- url => "${dmaap_base_url}/events/${event_topic}/${dmaap_consumer_group}/${dmaap_consumer_id}?timeout=15000"
- headers => {
- Accept => "application/json"
- }
- add_field => { "topic" => "${event_topic}" }
- type => "dmaap_event"
- }
- notification_queue => {
- method => get
- url => "${dmaap_base_url}/events/${notification_topic}/${dmaap_consumer_group}/${dmaap_consumer_id}?timeout=15000"
- headers => {
- Accept => "application/json"
- }
- add_field => { "topic" => "${notification_topic}" }
- type => "dmaap_notification"
- }
- request_queue => {
- method => get
- url => "${dmaap_base_url}/events/${request_topic}/${dmaap_consumer_group}/${dmaap_consumer_id}?timeout=15000"
- headers => {
- Accept => "application/json"
- }
- add_field => { "topic" => "${request_topic}" }
- type => "dmaap_request"
- }
- }
- socket_timeout => 30
- request_timeout => 30
- codec => "plain"
- schedule => { "every" => "1m" }
- cacert => "/certs.d/aafca.pem"
- }
-}
-
-input {
- file {
- path => [
- "/log-input/*"
- ]
- type => "dmaap_log"
- codec => "json"
- }
-}
-
-filter {
- if [type] != "dmaap_log" {
- #only execute this section for dmaap events from http request
- #it doesn't apply to dmaap events from log file
-
- # avoid noise if no entry in the list
- if [message] == "[]" {
- drop { }
- }
-
- if [http_request_failure] or [@metadata][code] != "200" {
- mutate {
- add_tag => [ "error" ]
- }
- }
-
- if "dmaap_source" in [tags] {
- #
- # Dmaap provides a json list, whose items are Strings containing the event
- # provided to Dmaap, which itself is an escaped json.
- #
- # We first need to parse the json as we have to use the plaintext as it cannot
- # work with list of events, then split that list into multiple string events,
- # that we then transform into json.
- #
- json {
- source => "[message]"
- target => "message"
- }
- ruby {
- code => "
- for ev in event.get('message', [])
- ev.set('@metadata', event.get('@metadata'))
- end
- "
- }
-
- split {
- field => "message"
- }
- json {
- source => "message"
- }
- mutate {
- remove_field => [ "message" ]
- }
- }
- }
- #now start the common, to both http request and log file events, processing
-
- #
- # Some timestamps are expressed as milliseconds, some are in microseconds
- #
- if [closedLoopAlarmStart] {
- ruby {
- code => "
- if event.get('closedLoopAlarmStart').to_s.to_i(10) > 9999999999999
- event.set('closedLoopAlarmStart', event.get('closedLoopAlarmStart').to_s.to_i(10) / 1000)
- else
- event.set('closedLoopAlarmStart', event.get('closedLoopAlarmStart').to_s.to_i(10))
- end
- "
- }
- date {
- match => [ "closedLoopAlarmStart", UNIX_MS ]
- target => "closedLoopAlarmStart"
- }
- }
-
- if [closedLoopAlarmEnd] {
- ruby {
- code => "
- if event.get('closedLoopAlarmEnd').to_s.to_i(10) > 9999999999999
- event.set('closedLoopAlarmEnd', event.get('closedLoopAlarmEnd').to_s.to_i(10) / 1000)
- else
- event.set('closedLoopAlarmEnd', event.get('closedLoopAlarmEnd').to_s.to_i(10))
- end
- "
- }
- date {
- match => [ "closedLoopAlarmEnd", UNIX_MS ]
- target => "closedLoopAlarmEnd"
- }
-
- }
-
-
- #
- # Notification time are expressed under the form "yyyy-MM-dd HH:mm:ss", which
- # is close to ISO8601, but lacks of T as spacer: "yyyy-MM-ddTHH:mm:ss"
- #
- if [notificationTime] {
- mutate {
- gsub => [ "notificationTime", " ", "T" ]
- }
- date {
- match => [ "notificationTime", ISO8601 ]
- target => "notificationTime"
- }
- }
-
-
- #
- # Renaming some fields for readability
- #
- if [AAI][generic-vnf.vnf-name] {
- mutate {
- add_field => { "vnfName" => "%{[AAI][generic-vnf.vnf-name]}" }
- }
- }
- if [AAI][generic-vnf.vnf-type] {
- mutate {
- add_field => { "vnfType" => "%{[AAI][generic-vnf.vnf-type]}" }
- }
- }
- if [AAI][vserver.vserver-name] {
- mutate {
- add_field => { "vmName" => "%{[AAI][vserver.vserver-name]}" }
- }
- }
- if [AAI][complex.city] {
- mutate {
- add_field => { "locationCity" => "%{[AAI][complex.city]}" }
- }
- }
- if [AAI][complex.state] {
- mutate {
- add_field => { "locationState" => "%{[AAI][complex.state]}" }
- }
- }
-
-
- #
- # Adding some flags to ease aggregation
- #
- if [closedLoopEventStatus] =~ /(?i)ABATED/ {
- mutate {
- add_field => { "flagAbated" => "1" }
- }
- }
- if [notification] =~ /^.*?(?:\b|_)FINAL(?:\b|_).*?(?:\b|_)FAILURE(?:\b|_).*?$/ {
- mutate {
- add_field => { "flagFinalFailure" => "1" }
- }
- }
-
-
- if "error" not in [tags] {
- #
- # Creating data for a secondary index
- #
- clone {
- clones => [ "event-cl-aggs" ]
- add_tag => [ "event-cl-aggs" ]
- }
-
- if "event-cl-aggs" in [tags] {
- #
- # we only need a few fields for aggregations; remove all fields from clone except :
- # vmName,vnfName,vnfType,requestID,closedLoopAlarmStart, closedLoopControlName,closedLoopAlarmEnd,abated,nbrDmaapevents,finalFailure
- #
- prune {
- whitelist_names => ["^@.*$","^topic$","^type$","^tags$","^flagFinalFailure$","^flagAbated$","^locationState$","^locationCity$","^vmName$","^vnfName$","^vnfType$","^requestID$","^closedLoopAlarmStart$","^closedLoopControlName$","^closedLoopAlarmEnd$","^target$","^target_type$","^triggerSourceName$","^policyScope$","^policyName$","^policyVersion$"]
- }
-
- }
- }
-}
-
-output {
- stdout {
- codec => rubydebug { metadata => true }
- }
-
- if "error" in [tags] {
- elasticsearch {
- codec => "json"
- hosts => ["${elasticsearch_base_url}"]
- user => "${LOGSTASH_USR}"
- password => "${LOGSTASH_PWD}"
- index => "errors-%{+YYYY.MM.DD}"
- doc_as_upsert => true
- }
-
- } else if "event-cl-aggs" in [tags] {
- elasticsearch {
- codec => "json"
- hosts => ["${elasticsearch_base_url}"]
- user => "${LOGSTASH_USR}"
- password => "${LOGSTASH_PWD}"
- document_id => "%{requestID}"
- index => "events-cl-%{+YYYY.MM.DD}" # creates daily indexes for control loop
- doc_as_upsert => true
- action => "update"
- }
-
- } else {
- elasticsearch {
- codec => "json"
- hosts => ["${elasticsearch_base_url}"]
- user => "${LOGSTASH_USR}"
- password => "${LOGSTASH_PWD}"
- index => "events-raw-%{+YYYY.MM.DD}" # creates daily indexes
- doc_as_upsert => true
- }
- }
-}
diff --git a/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java
new file mode 100644
index 00000000..96294207
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java
@@ -0,0 +1,122 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 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.clds.client;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.ExchangeBuilder;
+import org.onap.clamp.clds.config.ClampProperties;
+import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService;
+import org.onap.clamp.loop.template.PolicyModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * The class implements the communication with the Policy Engine to retrieve
+ * policy models (tosca). It mainly delegates the physical calls to Camel
+ * engine.
+ *
+ */
+@Component
+public class PolicyEngineServices {
+ private final CamelContext camelContext;
+
+ private static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyEngineServices.class);
+ private static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+ private static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+ private static int retryInterval = 0;
+ private static int retryLimit = 1;
+
+ public static final String POLICY_RETRY_INTERVAL = "policy.retry.interval";
+ public static final String POLICY_RETRY_LIMIT = "policy.retry.limit";
+
+ @Autowired
+ public PolicyEngineServices(CamelContext camelContext, ClampProperties refProp) {
+ this.camelContext = camelContext;
+
+ if (refProp.getStringValue(POLICY_RETRY_LIMIT) != null) {
+ retryLimit = Integer.valueOf(refProp.getStringValue(POLICY_RETRY_LIMIT));
+ }
+ if (refProp.getStringValue(POLICY_RETRY_INTERVAL) != null) {
+ retryInterval = Integer.valueOf(refProp.getStringValue(POLICY_RETRY_INTERVAL));
+ }
+ }
+
+ public PolicyModel createPolicyModelFromPolicyEngine(String policyType, String policyVersion)
+ throws InterruptedException {
+ return new PolicyModel(policyType, this.downloadOnePolicy(policyType, policyVersion), policyVersion,
+ createPolicyAcronym(policyType));
+ }
+
+ public PolicyModel createPolicyModelFromPolicyEngine(BlueprintMicroService microService)
+ throws InterruptedException {
+ return createPolicyModelFromPolicyEngine(microService.getModelType(), microService.getModelVersion());
+ }
+
+ private static String createPolicyAcronym(String policyType) {
+ String[] policyNameArray = policyType.split("\\.");
+ return policyNameArray[policyNameArray.length - 1];
+ }
+
+ /**
+ * This method can be used to download all policy types + data types defined in
+ * policy engine.
+ *
+ * @return A yaml containing all policy Types and all data types
+ * @throws InterruptedException In case of issue when sleeping during the retry
+ */
+ public String downloadAllPolicies() throws InterruptedException {
+ return callCamelRoute(ExchangeBuilder.anExchange(camelContext).build(), "direct:get-all-policy-models");
+ }
+
+ /**
+ * This method can be used to download a policy tosca model on the engine.
+ *
+ * @param policyType The policy type (id)
+ * @param policyVersion The policy version
+ * @return A string with the whole policy tosca model
+ * @throws InterruptedException In case of issue when sleeping during the retry
+ */
+ public String downloadOnePolicy(String policyType, String policyVersion) throws InterruptedException {
+ return callCamelRoute(ExchangeBuilder.anExchange(camelContext).withProperty("policyModelName", policyType)
+ .withProperty("policyModelVersion", policyVersion).build(), "direct:get-policy-model");
+ }
+
+ private String callCamelRoute(Exchange exchange, String camelFlow) throws InterruptedException {
+ for (int i = 0; i < retryLimit; i++) {
+ Exchange exchangeResponse = camelContext.createProducerTemplate().send(camelFlow, exchange);
+ if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) {
+ return (String) exchangeResponse.getIn().getBody();
+ } else {
+ logger.info("Policy query " + retryInterval + "ms before retrying ...");
+ // wait for a while and try to connect to DCAE again
+ Thread.sleep(retryInterval);
+ }
+ }
+ return "";
+ }
+}
diff --git a/src/main/java/org/onap/clamp/clds/config/ClampProperties.java b/src/main/java/org/onap/clamp/clds/config/ClampProperties.java
index 9905585d..8eae9066 100644
--- a/src/main/java/org/onap/clamp/clds/config/ClampProperties.java
+++ b/src/main/java/org/onap/clamp/clds/config/ClampProperties.java
@@ -23,13 +23,11 @@
package org.onap.clamp.clds.config;
-import com.google.common.base.Splitter;
-
import com.google.gson.JsonElement;
+
import java.io.IOException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
-import java.util.List;
import org.apache.commons.io.IOUtils;
import org.onap.clamp.clds.util.JsonUtils;
@@ -53,8 +51,7 @@ public class ClampProperties {
/**
* get property value.
*
- * @param key
- * The first key
+ * @param key The first key
* @return The string with the value
*/
public String getStringValue(String key) {
@@ -65,10 +62,8 @@ public class ClampProperties {
* get property value for a combo key (key1 + "." + key2). If not found just use
* key1.
*
- * @param key1
- * The first key
- * @param key2
- * The second key after a dot
+ * @param key1 The first key
+ * @param key2 The second key after a dot
* @return The string with the value
*/
public String getStringValue(String key1, String key2) {
@@ -83,17 +78,15 @@ public class ClampProperties {
* Return json as objects that can be updated. The value obtained from the
* clds-reference file will be used as a filename.
*
- * @param key
- * The key that will be used to access the clds-reference file
+ * @param key The key that will be used to access the clds-reference file
* @return A jsonNode
- * @throws IOException
- * In case of issues with the JSON parser
+ * @throws IOException In case of issues with the JSON parser
*/
public JsonElement getJsonTemplate(String key) throws IOException {
String fileReference = getStringValue(key);
return (fileReference != null)
- ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class)
- : null;
+ ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class)
+ : null;
}
/**
@@ -101,30 +94,25 @@ public class ClampProperties {
* "." + key2), otherwise default to just key1. The value obtained from the
* clds-reference file will be used as a filename.
*
- * @param key1
- * The first key
- * @param key2
- * The second key after a dot
+ * @param key1 The first key
+ * @param key2 The second key after a dot
* @return A JsonNode
- * @throws IOException
- * In case of issues with the JSON parser
+ * @throws IOException In case of issues with the JSON parser
*/
public JsonElement getJsonTemplate(String key1, String key2) throws IOException {
String fileReference = getStringValue(key1, key2);
return (fileReference != null)
- ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class)
- : null;
+ ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class)
+ : null;
}
/**
* Return the file content. The value obtained from the clds-reference file will
* be used as a filename.
*
- * @param key
- * The key that will be used to access the clds-reference file
+ * @param key The key that will be used to access the clds-reference file
* @return File content in String
- * @throws IOException
- * In case of issues with the JSON parser
+ * @throws IOException In case of issues with the JSON parser
*/
public String getFileContent(String key) throws IOException {
String fileReference = getStringValue(key);
@@ -136,13 +124,10 @@ public class ClampProperties {
* otherwise default to just key1. The value obtained from the clds-reference
* file will be used as a filename.
*
- * @param key1
- * The first key
- * @param key2
- * The second key after a dot
+ * @param key1 The first key
+ * @param key2 The second key after a dot
* @return File content in String
- * @throws IOException
- * In case of issues with the JSON parser
+ * @throws IOException In case of issues with the JSON parser
*/
public String getFileContent(String key1, String key2) throws IOException {
String fileReference = getStringValue(key1, key2);
@@ -153,18 +138,4 @@ public class ClampProperties {
URL url = appContext.getResource(filepath).getURL();
return IOUtils.toString(url, StandardCharsets.UTF_8);
}
-
- /**
- * Returns the list of strings split with separator.
- *
- * @param key
- * property key
- * @param separator
- * property value separator
- * @return List of Strings split with a separator
- */
- public List<String> getStringList(String key, String separator) {
- return Splitter.on(separator).trimResults().omitEmptyStrings()
- .splitToList(env.getProperty(CONFIG_PREFIX + key));
- }
}
diff --git a/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java b/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java
deleted file mode 100644
index a4f37e8b..00000000
--- a/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java
+++ /dev/null
@@ -1,133 +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============================================
- * ===================================================================
- *
- */
-
-package org.onap.clamp.clds.config;
-
-import java.util.Properties;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Component
-@ConfigurationProperties(prefix = "clamp.config.policy")
-public class PolicyConfiguration {
-
- public static final String PDP_URL1 = "PDP_URL1";
- public static final String PDP_URL2 = "PDP_URL2";
- public static final String PAP_URL = "PAP_URL";
- public static final String NOTIFICATION_TYPE = "NOTIFICATION_TYPE";
- public static final String NOTIFICATION_UEB_SERVERS = "NOTIFICATION_UEB_SERVERS";
- public static final String CLIENT_ID = "CLIENT_ID";
- public static final String CLIENT_KEY = "CLIENT_KEY";
- public static final String ENVIRONMENT = "ENVIRONMENT";
- private String pdpUrl1;
- private String pdpUrl2;
- private String papUrl;
- private String notificationType;
- private String notificationUebServers;
- private String clientId;
- private String clientKey;
- private String policyEnvironment;
-
- public String getPdpUrl1() {
- return pdpUrl1;
- }
-
- public void setPdpUrl1(String pdpUrl1) {
- this.pdpUrl1 = pdpUrl1;
- }
-
- public String getPdpUrl2() {
- return pdpUrl2;
- }
-
- public void setPdpUrl2(String pdpUrl2) {
- this.pdpUrl2 = pdpUrl2;
- }
-
- public String getPapUrl() {
- return papUrl;
- }
-
- public void setPapUrl(String papUrl) {
- this.papUrl = papUrl;
- }
-
- public String getNotificationType() {
- return notificationType;
- }
-
- public void setNotificationType(String notificationType) {
- this.notificationType = notificationType;
- }
-
- public String getNotificationUebServers() {
- return notificationUebServers;
- }
-
- public void setNotificationUebServers(String notificationUebServers) {
- this.notificationUebServers = notificationUebServers;
- }
-
- public String getClientId() {
- return clientId;
- }
-
- public void setClientId(String clientId) {
- this.clientId = clientId;
- }
-
- public String getClientKey() {
- return clientKey;
- }
-
- public void setClientKey(String clientKey) {
- this.clientKey = clientKey;
- }
-
- public String getPolicyEnvironment() {
- return policyEnvironment;
- }
-
- public void setPolicyEnvironment(String environment) {
- this.policyEnvironment = environment;
- }
-
- /**
- * Returns policy configuration properties.
- *
- * @return policy configuration properties
- */
- public Properties getProperties() {
- Properties prop = new Properties();
- prop.put(PDP_URL1, pdpUrl1);
- prop.put(PDP_URL2, pdpUrl2);
- prop.put(PAP_URL, papUrl);
- prop.put(NOTIFICATION_TYPE, notificationType);
- prop.put(NOTIFICATION_UEB_SERVERS, notificationUebServers);
- prop.put(CLIENT_ID, clientId);
- prop.put(CLIENT_KEY, clientKey);
- prop.put(ENVIRONMENT, policyEnvironment);
- return prop;
- }
-}
diff --git a/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java b/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java
index 5a3e22a3..eca45d66 100644
--- a/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java
@@ -41,14 +41,12 @@ import org.onap.clamp.loop.CsarInstaller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled;
@Configuration
-@ComponentScan(basePackages = { "org.onap.clamp.loop", "org.onap.clamp.clds.config" })
-@Profile("clamp-sdc-controller-new")
+@Profile("clamp-sdc-controller")
public class SdcControllerConfiguration {
private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcControllerConfiguration.class);
diff --git a/src/main/java/org/onap/clamp/clds/exception/BadRequestException.java b/src/main/java/org/onap/clamp/clds/exception/BadRequestException.java
deleted file mode 100644
index caf525ee..00000000
--- a/src/main/java/org/onap/clamp/clds/exception/BadRequestException.java
+++ /dev/null
@@ -1,61 +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============================================
- * ===================================================================
- *
- */
-
-package org.onap.clamp.clds.exception;
-
-/**
- * New exception to request errors.
- *
- */
-public class BadRequestException extends RuntimeException {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = -5738167530541646123L;
-
- /**
- * This constructor can be used to create a new CldsConfigException.
- *
- * @param message
- * A string message detailing the problem
- * @param ex
- * The exception sent by the code
- */
- public BadRequestException(String message, Throwable ex) {
- super(message, ex);
- }
-
- /**
- * This constructor can be used to create a new CldsConfigException. 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 BadRequestException(String message) {
- super(message);
- }
-
-}
diff --git a/src/main/java/org/onap/clamp/exception/OperationException.java b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/BlueprintParserException.java
index 6e26d294..7257fd8a 100644
--- a/src/main/java/org/onap/clamp/exception/OperationException.java
+++ b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/BlueprintParserException.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,41 +21,34 @@
*
*/
-package org.onap.clamp.exception;
+package org.onap.clamp.clds.exception.sdc.controller;
/**
- * New exception to CldsUser errors.
- *
+ * Exception during blueprint parsing.
*/
-public class OperationException extends RuntimeException {
+public class BlueprintParserException extends Exception {
/**
- * The serial version ID.
+ * Serial ID.
*/
- private static final long serialVersionUID = 2788967876393519620L;
+ private static final long serialVersionUID = -3044162346353623199L;
/**
- * This constructor can be used to create a new CldsUsersException.
+ * This constructor can be used to create a new SdcDownloadException.
*
- * @param message
- * A string message detailing the problem
- * @param cause
- * The exception sent by the code
+ * @param message The message to dump
*/
- public OperationException(String message, Throwable cause) {
- super(message, cause);
+ public BlueprintParserException(final String message) {
+ super(message);
}
/**
- * This constructor can be used to create a new CldsUsersException. Use this
- * constructor only if you are creating a new exception stack, not if an
- * exception was already raised by another code.
+ * This constructor can be used to create a new SdcDownloadException.
*
- * @param message
- * A string message detailing the problem
+ * @param message The message to dump
+ * @param cause The Throwable cause object
*/
- public OperationException(String message) {
- super(message);
+ public BlueprintParserException(final String message, final Throwable cause) {
+ super(message, cause);
}
-
}
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 19bc23d5..fc2ca5ca 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
@@ -46,7 +46,7 @@ public class DcaeInventoryCache {
public void addDcaeInventoryResponse(DcaeInventoryResponse inventoryResponse) {
Set<DcaeInventoryResponse> responsesSet = blueprintsMap.get(inventoryResponse.getAsdcServiceId());
if (responsesSet == null) {
- responsesSet = new TreeSet<DcaeInventoryResponse>();
+ responsesSet = new TreeSet<>();
blueprintsMap.put(inventoryResponse.getAsdcServiceId(), responsesSet);
}
responsesSet.add(inventoryResponse);
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 bd18baea..fbb37d52 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.sdc.controller.BlueprintParserException;
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;
@@ -290,6 +291,10 @@ public class SdcSingleController {
sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
DistributionStatusEnum.DEPLOY_ERROR, e.getMessage());
Thread.currentThread().interrupt();
+ } catch (BlueprintParserException e) {
+ logger.error("BlueprintParser exception caught during the notification processing", e);
+ sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
+ DistributionStatusEnum.DEPLOY_ERROR, e.getMessage());
} catch (RuntimeException e) {
logger.error("Unexpected exception caught during the notification processing", e);
sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
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/BlueprintMicroService.java
index 68ac842c..e00ce943 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/BlueprintMicroService.java
@@ -17,7 +17,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END============================================
- * Modifications copyright (c) 2019 AT&T
+ * Modifications copyright (c) 2019-2020 AT&T
* ===================================================================
*
*/
@@ -26,25 +26,24 @@ package org.onap.clamp.clds.sdc.controller.installer;
import java.util.Objects;
-public class MicroService {
+public class BlueprintMicroService {
private final String name;
private final String modelType;
private final String inputFrom;
- private String mappedNameJpa;
+ private final String modelVersion;
/**
* The Micro service constructor.
*
- * @param name The name in String
- * @param modelType The model type
- * @param inputFrom Comes from (single chained)
- * @param mappedNameJpa Name in database
+ * @param name The name in String
+ * @param modelType The model type
+ * @param inputFrom Comes from (single chained)
*/
- public MicroService(String name, String modelType, String inputFrom, String mappedNameJpa) {
+ public BlueprintMicroService(String name, String modelType, String inputFrom, String modelVersion) {
this.name = name;
this.inputFrom = inputFrom;
- this.mappedNameJpa = mappedNameJpa;
this.modelType = modelType;
+ this.modelVersion = modelVersion;
}
public String getName() {
@@ -59,18 +58,19 @@ public class MicroService {
return inputFrom;
}
- @Override
- public String toString() {
- return "MicroService{" + "name='" + name + '\'' + ", modelType='" + modelType + '\'' + ", inputFrom='"
- + inputFrom + '\'' + ", mappedNameJpa='" + mappedNameJpa + '\'' + '}';
- }
-
- public String getMappedNameJpa() {
- return mappedNameJpa;
+ /**
+ * modelVerrsion getter.
+ *
+ * @return the modelVersion
+ */
+ public String getModelVersion() {
+ return modelVersion;
}
- public void setMappedNameJpa(String mappedNameJpa) {
- this.mappedNameJpa = mappedNameJpa;
+ @Override
+ public String toString() {
+ return "MicroService {" + "name='" + name + '\'' + ", modelType='" + modelType + '\'' + ", inputFrom='"
+ + inputFrom + '\'' + ", modelVersion='" + modelVersion + '\'' + '}';
}
@Override
@@ -81,13 +81,13 @@ public class MicroService {
if (obj == null || getClass() != obj.getClass()) {
return false;
}
- MicroService that = (MicroService) obj;
+ BlueprintMicroService that = (BlueprintMicroService) obj;
return name.equals(that.name) && modelType.equals(that.modelType) && inputFrom.equals(that.inputFrom)
- && mappedNameJpa.equals(that.mappedNameJpa);
+ && modelVersion.equals(that.modelVersion);
}
@Override
public int hashCode() {
- return Objects.hash(name, modelType, inputFrom, mappedNameJpa);
+ return Objects.hash(name, modelType, inputFrom, modelVersion);
}
}
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 0dd231f0..981a2041 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
@@ -24,6 +24,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.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -38,76 +40,74 @@ import java.util.Map.Entry;
import java.util.Set;
import org.json.JSONObject;
-import org.springframework.stereotype.Component;
+import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException;
import org.yaml.snakeyaml.Yaml;
-@Component
public class BlueprintParser {
static final String TCA = "TCA";
- static final String HOLMES = "Holmes";
- private static final String TCA_POLICY = "tca_policy";
- private static final String HOLMES_PREFIX = "holmes";
private static final String NODE_TEMPLATES = "node_templates";
private static final String DCAE_NODES = "dcae.nodes.";
+ private static final String DCAE_NODES_POLICY = "dcae.nodes.policy";
private static final String TYPE = "type";
private static final String PROPERTIES = "properties";
private static final String NAME = "name";
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 POLICY_MODEL_ID = "policy_model_id";
+ private static final String POLICY_MODEL_VERSION = "policy_model_version";
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 static final String DEFAULT_VERSION = "1.0.0";
+
+ private static final EELFLogger logger = EELFManager.getInstance().getLogger(BlueprintParser.class);
+
+ private BlueprintParser() {
+
+ }
/**
* Get all micro services from blueprint.
*
* @param blueprintString the blueprint in a String
* @return A set of MircoService
+ * @throws BlueprintParserException In case of issues with the parsing
*/
- public Set<MicroService> getMicroServices(String blueprintString) {
- Set<MicroService> microServices = new HashSet<>();
+ public static Set<BlueprintMicroService> getMicroServices(String blueprintString) throws BlueprintParserException {
+ Set<BlueprintMicroService> microServices = new HashSet<>();
JsonObject blueprintJson = BlueprintParser.convertToJson(blueprintString);
JsonObject nodeTemplateList = blueprintJson.get(NODE_TEMPLATES).getAsJsonObject();
JsonObject inputList = blueprintJson.get(INPUT).getAsJsonObject();
for (Entry<String, JsonElement> entry : nodeTemplateList.entrySet()) {
JsonObject nodeTemplate = entry.getValue().getAsJsonObject();
- if (nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) {
- MicroService microService = getNodeRepresentation(entry, nodeTemplateList, inputList);
- microServices.add(microService);
+ if (!nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES_POLICY)
+ && nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) {
+ BlueprintMicroService microService = getNodeRepresentation(entry, nodeTemplateList, inputList);
+ if (!microService.getModelType().isBlank()) {
+ microServices.add(microService);
+ } else {
+ logger.warn("Microservice " + microService.getName()
+ + " will NOT be used by CLAMP as the model type is not defined or has not been found");
+ }
}
}
- microServices.removeIf(ms -> TCA_POLICY.equals(ms.getName()));
+ logger.debug("Those microservices have been found in the blueprint:" + microServices);
return microServices;
}
/**
- * Does a fallback to TCA or Holmes.
+ * Does a fallback to TCA.
*
- * @param blueprintString the blueprint in a String
* @return The list of microservices
*/
- public List<MicroService> fallbackToOneMicroService(String blueprintString) {
- JsonObject jsonObject = BlueprintParser.convertToJson(blueprintString);
- JsonObject results = jsonObject.get(NODE_TEMPLATES).getAsJsonObject();
- String theBiggestMicroServiceContent = "";
- String theBiggestMicroServiceKey = "";
- for (Entry<String, JsonElement> entry : results.entrySet()) {
- String msAsString = entry.getValue().toString();
- int len = msAsString.length();
- if (len > theBiggestMicroServiceContent.length()) {
- theBiggestMicroServiceContent = msAsString;
- theBiggestMicroServiceKey = entry.getKey();
- }
- }
- String msName = theBiggestMicroServiceKey.toLowerCase().contains(HOLMES_PREFIX) ? HOLMES : TCA;
- return Collections
- .singletonList(new MicroService(msName, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", ""));
+ public static List<BlueprintMicroService> fallbackToOneMicroService() {
+ return Collections.singletonList(
+ new BlueprintMicroService(TCA, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", DEFAULT_VERSION));
}
- String getName(Entry<String, JsonElement> entry) {
+ static String getName(Entry<String, JsonElement> entry) {
String microServiceYamlName = entry.getKey();
JsonObject ob = entry.getValue().getAsJsonObject();
if (ob.has(PROPERTIES)) {
@@ -119,7 +119,7 @@ public class BlueprintParser {
return microServiceYamlName;
}
- String getInput(Entry<String, JsonElement> entry) {
+ static String getInput(Entry<String, JsonElement> entry) {
JsonObject ob = entry.getValue().getAsJsonObject();
if (ob.has(RELATIONSHIPS)) {
JsonArray relationships = ob.getAsJsonArray(RELATIONSHIPS);
@@ -133,51 +133,81 @@ public class BlueprintParser {
return "";
}
- String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList, JsonObject inputList) {
- for (JsonElement elem : jsonArray) {
- String modelType = getModelType(
- new AbstractMap.SimpleEntry<String, JsonElement>(elem.getAsJsonObject().get(TARGET).getAsString(),
- nodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()),
- nodeTemplateList, inputList);
- if (!modelType.isEmpty()) {
- return modelType;
+ static String findPropertyInRelationshipsArray(String propertyName, JsonArray relationshipsArray,
+ JsonObject blueprintNodeTemplateList, JsonObject blueprintInputList) throws BlueprintParserException {
+ for (JsonElement elem : relationshipsArray) {
+ if (blueprintNodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()) == null) {
+ throw new BlueprintParserException(
+ "The Target mentioned in the blueprint is not a known entry in the blueprint: "
+ + elem.getAsJsonObject().get(TARGET).getAsString());
+ } else {
+ String property = getPropertyValue(propertyName,
+ new AbstractMap.SimpleEntry<String, JsonElement>(
+ elem.getAsJsonObject().get(TARGET).getAsString(), blueprintNodeTemplateList
+ .get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()),
+ blueprintNodeTemplateList, blueprintInputList);
+ if (!property.isEmpty()) {
+ return property;
+ }
}
}
return "";
}
- String getModelType(Entry<String, JsonElement> entry, JsonObject nodeTemplateList, JsonObject inputList) {
- JsonObject ob = entry.getValue().getAsJsonObject();
+ static String getDirectOrInputPropertyValue(String propertyName, JsonObject blueprintInputList,
+ JsonObject nodeTemplateContent) {
+ JsonObject properties = nodeTemplateContent.get(PROPERTIES).getAsJsonObject();
+ if (properties.has(propertyName)) {
+ if (properties.get(propertyName).isJsonObject()) {
+ // it's a blueprint parameter
+ return blueprintInputList
+ .get(properties.get(propertyName).getAsJsonObject().get(GET_INPUT).getAsString())
+ .getAsJsonObject().get("default").getAsString();
+ } else {
+ // It's a direct value
+ return properties.get(propertyName).getAsString();
+ }
+ }
+ return "";
+ }
+
+ static String getPropertyValue(String propertyName, Entry<String, JsonElement> nodeTemplateEntry,
+ JsonObject blueprintNodeTemplateList, JsonObject blueprintIputList) throws BlueprintParserException {
+ JsonObject nodeTemplateContent = nodeTemplateEntry.getValue().getAsJsonObject();
// Search first in this node template
- if (ob.has(PROPERTIES)) {
- JsonObject properties = ob.get(PROPERTIES).getAsJsonObject();
- 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();
- }
+ if (nodeTemplateContent.has(PROPERTIES)) {
+ String propValue = getDirectOrInputPropertyValue(propertyName, blueprintIputList, nodeTemplateContent);
+ if (!propValue.isBlank()) {
+ return propValue;
}
}
// Or it's may be defined in a relationship
- if (ob.has(RELATIONSHIPS)) {
- return findModelTypeInTargetArray(ob.get(RELATIONSHIPS).getAsJsonArray(), nodeTemplateList, inputList);
+ if (nodeTemplateContent.has(RELATIONSHIPS)) {
+ return findPropertyInRelationshipsArray(propertyName,
+ nodeTemplateContent.get(RELATIONSHIPS).getAsJsonArray(), blueprintNodeTemplateList,
+ blueprintIputList);
}
return "";
}
- MicroService getNodeRepresentation(Entry<String, JsonElement> entry, JsonObject nodeTemplateList,
- JsonObject inputList) {
- String name = getName(entry);
- String getInputFrom = getInput(entry);
- String modelType = getModelType(entry, nodeTemplateList, inputList);
- return new MicroService(name, modelType, getInputFrom, "");
+ static BlueprintMicroService getNodeRepresentation(Entry<String, JsonElement> nodeTemplateEntry,
+ JsonObject blueprintNodeTemplateList, JsonObject blueprintInputList) throws BlueprintParserException {
+ String modelIdFound = getPropertyValue(POLICY_MODEL_ID, nodeTemplateEntry, blueprintNodeTemplateList,
+ blueprintInputList);
+ String versionFound = getPropertyValue(POLICY_MODEL_VERSION, nodeTemplateEntry, blueprintNodeTemplateList,
+ blueprintInputList);
+ if (modelIdFound.isBlank()) {
+ logger.warn("policy_model_id is not defined for the node template:" + nodeTemplateEntry.getKey());
+ }
+ if (versionFound.isBlank()) {
+ logger.warn("policy_model_version is not defined (setting it to a default value) for the node template:"
+ + nodeTemplateEntry.getKey());
+ }
+ return new BlueprintMicroService(getName(nodeTemplateEntry), modelIdFound, getInput(nodeTemplateEntry),
+ !versionFound.isBlank() ? versionFound : DEFAULT_VERSION);
}
- private String getTarget(JsonObject elementObject) {
+ private static String getTarget(JsonObject elementObject) {
if (elementObject.has(TYPE) && elementObject.has(TARGET)
&& elementObject.get(TYPE).getAsString().equals(CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM)) {
return elementObject.get(TARGET).getAsString();
@@ -186,10 +216,7 @@ public class BlueprintParser {
}
private static JsonObject convertToJson(String yamlString) {
- Yaml yaml = new Yaml();
- Map<String, Object> map = yaml.load(yamlString);
-
- JSONObject jsonObject = new JSONObject(map);
- return new Gson().fromJson(jsonObject.toString(), JsonObject.class);
+ Map<String, Object> map = new Yaml().load(yamlString);
+ return new Gson().fromJson(new JSONObject(map).toString(), JsonObject.class);
}
}
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java
index 9e76cc93..2bd259c2 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java
@@ -42,11 +42,11 @@ public class ChainGenerator {
* @param input A set of microservices
* @return The list of microservice chained
*/
- public List<MicroService> getChainOfMicroServices(Set<MicroService> input) {
- LinkedList<MicroService> returnList = new LinkedList<>();
+ public List<BlueprintMicroService> getChainOfMicroServices(Set<BlueprintMicroService> input) {
+ LinkedList<BlueprintMicroService> returnList = new LinkedList<>();
if (preValidate(input)) {
- LinkedList<MicroService> theList = new LinkedList<>();
- for (MicroService ms : input) {
+ LinkedList<BlueprintMicroService> theList = new LinkedList<>();
+ for (BlueprintMicroService ms : input) {
insertNodeTemplateIntoChain(ms, theList);
}
if (postValidate(theList)) {
@@ -56,16 +56,16 @@ public class ChainGenerator {
return returnList;
}
- private boolean preValidate(Set<MicroService> input) {
- List<MicroService> noInputs = input.stream().filter(ms -> "".equals(ms.getInputFrom()))
+ private boolean preValidate(Set<BlueprintMicroService> input) {
+ List<BlueprintMicroService> noInputs = input.stream().filter(ms -> "".equals(ms.getInputFrom()))
.collect(Collectors.toList());
return noInputs.size() == 1;
}
- private boolean postValidate(LinkedList<MicroService> microServices) {
+ private boolean postValidate(LinkedList<BlueprintMicroService> microServices) {
for (int i = 1; i < microServices.size() - 1; i++) {
- MicroService prev = microServices.get(i - 1);
- MicroService current = microServices.get(i);
+ BlueprintMicroService prev = microServices.get(i - 1);
+ BlueprintMicroService current = microServices.get(i);
if (!current.getInputFrom().equals(prev.getName())) {
return false;
}
@@ -73,11 +73,11 @@ public class ChainGenerator {
return true;
}
- private void insertNodeTemplateIntoChain(MicroService microServicetoInsert,
- LinkedList<MicroService> chainOfMicroServices) {
+ private void insertNodeTemplateIntoChain(BlueprintMicroService microServicetoInsert,
+ LinkedList<BlueprintMicroService> chainOfMicroServices) {
int insertIndex = 0;
for (int i = 0; i < chainOfMicroServices.size(); i++) {
- MicroService current = chainOfMicroServices.get(i);
+ BlueprintMicroService current = chainOfMicroServices.get(i);
if (microServicetoInsert.getName().equals(current.getInputFrom())) {
insertIndex = i;
break;
diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java
index 8ded0cb8..6ce89873 100755
--- a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java
+++ b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java
@@ -28,12 +28,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import org.onap.clamp.clds.sdc.controller.installer.MicroService;
+import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService;
public class ClampGraphBuilder {
private String policy;
private String collector;
- private List<MicroService> microServices = new ArrayList<>();
+ private List<BlueprintMicroService> microServices = new ArrayList<>();
private final Painter painter;
public ClampGraphBuilder(Painter painter) {
@@ -50,12 +50,12 @@ public class ClampGraphBuilder {
return this;
}
- public ClampGraphBuilder addMicroService(MicroService ms) {
+ public ClampGraphBuilder addMicroService(BlueprintMicroService ms) {
microServices.add(ms);
return this;
}
- public ClampGraphBuilder addAllMicroServices(List<MicroService> msList) {
+ public ClampGraphBuilder addAllMicroServices(List<BlueprintMicroService> msList) {
microServices.addAll(msList);
return this;
}
diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java
index af6caf93..d96c9e53 100755
--- a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java
+++ b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java
@@ -31,7 +31,7 @@ import java.awt.RenderingHints;
import java.util.List;
import org.apache.batik.svggen.SVGGraphics2D;
-import org.onap.clamp.clds.sdc.controller.installer.MicroService;
+import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService;
public class Painter {
private final int canvasSize;
@@ -57,7 +57,7 @@ public class Painter {
this.canvasSize = DEFALUT_CANVAS_SIZE;
}
- DocumentBuilder doPaint(String collector, List<MicroService> microServices, String policy) {
+ DocumentBuilder doPaint(String collector, List<BlueprintMicroService> microServices, String policy) {
int numOfRectangles = 2 + microServices.size();
int numOfArrows = numOfRectangles + 1;
int baseLength = (canvasSize - 2 * CIRCLE_RADIUS) / (numOfArrows + numOfRectangles);
@@ -76,12 +76,12 @@ public class Painter {
return ib.getDocumentBuilder();
}
- private void doTheActualDrawing(String collector, List<MicroService> microServices, String policy,
+ private void doTheActualDrawing(String collector, List<BlueprintMicroService> microServices, String policy,
ImageBuilder ib) {
ib.circle("start-circle", SLIM_LINE).arrow().rectangle(collector, RectTypes.COLECTOR, collector);
- for (MicroService ms : microServices) {
- ib.arrow().rectangle(ms.getMappedNameJpa(), RectTypes.MICROSERVICE, ms.getName());
+ for (BlueprintMicroService ms : microServices) {
+ ib.arrow().rectangle(ms.getModelType(), RectTypes.MICROSERVICE, ms.getName());
}
ib.arrow().rectangle(policy, RectTypes.POLICY, policy).arrow().circle("stop-circle", THICK_LINE);
diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java b/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java
index ae0c1729..251f4886 100644
--- a/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java
+++ b/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java
@@ -27,7 +27,7 @@ package org.onap.clamp.clds.util.drawing;
import java.util.List;
import org.apache.batik.svggen.SVGGraphics2D;
-import org.onap.clamp.clds.sdc.controller.installer.MicroService;
+import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService;
import org.onap.clamp.clds.util.XmlTools;
import org.springframework.stereotype.Component;
import org.w3c.dom.Document;
@@ -40,7 +40,7 @@ public class SvgFacade {
* @param microServicesChain THe chain of microservices
* @return A String containing the SVG
*/
- public String getSvgImage(List<MicroService> microServicesChain) {
+ public String getSvgImage(List<BlueprintMicroService> microServicesChain) {
SVGGraphics2D svgGraphics2D = new SVGGraphics2D(XmlTools.createEmptySvgDocument());
Document document = XmlTools.createEmptySvgDocument();
DocumentBuilder dp = new DocumentBuilder(document, svgGraphics2D.getDOMFactory());
diff --git a/src/main/java/org/onap/clamp/loop/CsarInstaller.java b/src/main/java/org/onap/clamp/loop/CsarInstaller.java
index 013d3419..c0cfac96 100644
--- a/src/main/java/org/onap/clamp/loop/CsarInstaller.java
+++ b/src/main/java/org/onap/clamp/loop/CsarInstaller.java
@@ -33,13 +33,15 @@ import java.util.Map.Entry;
import org.json.simple.parser.ParseException;
import org.onap.clamp.clds.client.DcaeInventoryServices;
+import org.onap.clamp.clds.client.PolicyEngineServices;
+import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException;
import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException;
import org.onap.clamp.clds.model.dcae.DcaeInventoryResponse;
import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact;
+import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService;
import org.onap.clamp.clds.sdc.controller.installer.BlueprintParser;
import org.onap.clamp.clds.sdc.controller.installer.ChainGenerator;
import org.onap.clamp.clds.sdc.controller.installer.CsarHandler;
-import org.onap.clamp.clds.sdc.controller.installer.MicroService;
import org.onap.clamp.clds.util.drawing.SvgFacade;
import org.onap.clamp.loop.service.CsarServiceInstaller;
import org.onap.clamp.loop.service.Service;
@@ -47,6 +49,8 @@ import org.onap.clamp.loop.template.LoopElementModel;
import org.onap.clamp.loop.template.LoopTemplate;
import org.onap.clamp.loop.template.LoopTemplatesRepository;
import org.onap.clamp.loop.template.PolicyModel;
+import org.onap.clamp.loop.template.PolicyModelId;
+import org.onap.clamp.loop.template.PolicyModelsRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
@@ -61,31 +65,27 @@ import org.springframework.stereotype.Component;
public class CsarInstaller {
private static final EELFLogger logger = EELFManager.getInstance().getLogger(CsarInstaller.class);
- public static final String CONTROL_NAME_PREFIX = "ClosedLoop-";
- public static final String GET_INPUT_BLUEPRINT_PARAM = "get_input";
- // This will be used later as the policy scope
- public static final String MODEL_NAME_PREFIX = "Loop_";
@Autowired
- LoopsRepository loopRepository;
+ private PolicyModelsRepository policyModelsRepository;
@Autowired
- LoopTemplatesRepository loopTemplatesRepository;
+ private LoopTemplatesRepository loopTemplatesRepository;
@Autowired
- BlueprintParser blueprintParser;
+ private ChainGenerator chainGenerator;
@Autowired
- ChainGenerator chainGenerator;
+ private DcaeInventoryServices dcaeInventoryService;
@Autowired
- DcaeInventoryServices dcaeInventoryService;
+ private SvgFacade svgFacade;
@Autowired
- private SvgFacade svgFacade;
+ private CsarServiceInstaller csarServiceInstaller;
@Autowired
- CsarServiceInstaller csarServiceInstaller;
+ private PolicyEngineServices policyEngineServices;
/**
* Verify whether Csar is deployed.
@@ -113,8 +113,11 @@ public class CsarInstaller {
* @param csar The Csar Handler
* @throws SdcArtifactInstallerException The SdcArtifactInstallerException
* @throws InterruptedException The InterruptedException
+ * @throws BlueprintParserException In case of issues with the blueprint
+ * parsing
*/
- public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException, InterruptedException {
+ public void installTheCsar(CsarHandler csar)
+ throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException {
logger.info("Installing the CSAR " + csar.getFilePath());
installTheLoopTemplates(csar, csarServiceInstaller.installTheService(csar));
logger.info("Successfully installed the CSAR " + csar.getFilePath());
@@ -127,9 +130,11 @@ public class CsarInstaller {
* @param service The service object that is related to the loop
* @throws SdcArtifactInstallerException The SdcArtifactInstallerException
* @throws InterruptedException The InterruptedException
+ * @throws BlueprintParserException In case of issues with the blueprint
+ * parsing
*/
public void installTheLoopTemplates(CsarHandler csar, Service service)
- throws SdcArtifactInstallerException, InterruptedException {
+ throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException {
try {
logger.info("Installing the Loops");
for (Entry<String, BlueprintArtifact> blueprint : csar.getMapOfBlueprints().entrySet()) {
@@ -145,20 +150,20 @@ public class CsarInstaller {
}
private LoopTemplate createLoopTemplateFromBlueprint(CsarHandler csar, BlueprintArtifact blueprintArtifact,
- Service service) throws IOException, ParseException, InterruptedException {
+ Service service) throws IOException, ParseException, InterruptedException, BlueprintParserException {
LoopTemplate newLoopTemplate = new LoopTemplate();
newLoopTemplate.setBlueprint(blueprintArtifact.getDcaeBlueprint());
newLoopTemplate.setName(LoopTemplate.generateLoopTemplateName(csar.getSdcNotification().getServiceName(),
csar.getSdcNotification().getServiceVersion(),
blueprintArtifact.getResourceAttached().getResourceInstanceName(),
blueprintArtifact.getBlueprintArtifactName()));
- List<MicroService> microServicesChain = chainGenerator
- .getChainOfMicroServices(blueprintParser.getMicroServices(blueprintArtifact.getDcaeBlueprint()));
+ List<BlueprintMicroService> microServicesChain = chainGenerator
+ .getChainOfMicroServices(BlueprintParser.getMicroServices(blueprintArtifact.getDcaeBlueprint()));
if (microServicesChain.isEmpty()) {
- microServicesChain = blueprintParser.fallbackToOneMicroService(blueprintArtifact.getDcaeBlueprint());
+ microServicesChain = BlueprintParser.fallbackToOneMicroService();
}
newLoopTemplate.setModelService(service);
- newLoopTemplate.addLoopElementModels(createMicroServiceModels(microServicesChain, csar, blueprintArtifact));
+ newLoopTemplate.addLoopElementModels(createMicroServiceModels(microServicesChain));
newLoopTemplate.setMaximumInstancesAllowed(0);
newLoopTemplate.setSvgRepresentation(svgFacade.getSvgImage(microServicesChain));
DcaeInventoryResponse dcaeResponse = queryDcaeToGetServiceTypeId(blueprintArtifact);
@@ -166,31 +171,26 @@ public class CsarInstaller {
return newLoopTemplate;
}
- private HashSet<LoopElementModel> createMicroServiceModels(List<MicroService> microServicesChain, CsarHandler csar,
- BlueprintArtifact blueprintArtifact) throws IOException {
+ private HashSet<LoopElementModel> createMicroServiceModels(List<BlueprintMicroService> microServicesChain)
+ throws InterruptedException {
HashSet<LoopElementModel> newSet = new HashSet<>();
- for (MicroService microService : microServicesChain) {
+ for (BlueprintMicroService microService : microServicesChain) {
LoopElementModel loopElementModel = new LoopElementModel(microService.getModelType(), "CONFIG_POLICY",
- blueprintArtifact.getDcaeBlueprint());
+ null);
newSet.add(loopElementModel);
- loopElementModel.addPolicyModel(createPolicyModel(microService, csar));
+ loopElementModel.addPolicyModel(getPolicyModel(microService));
}
return newSet;
}
- private static String createPolicyAcronym(String policyType) {
- String[] policyNameArray = policyType.split("\\.");
- return policyNameArray[policyNameArray.length - 1];
- }
-
- private PolicyModel createPolicyModel(MicroService microService, CsarHandler csar) throws IOException {
- return new PolicyModel(microService.getModelType(), csar.getPolicyModelYaml().orElse(""), "1.0",
- createPolicyAcronym(microService.getModelType()));
+ private PolicyModel getPolicyModel(BlueprintMicroService microService) throws InterruptedException {
+ return policyModelsRepository
+ .findById(new PolicyModelId(microService.getModelType(), microService.getModelVersion()))
+ .orElse(policyEngineServices.createPolicyModelFromPolicyEngine(microService));
}
/**
- * ll get the latest version of the artifact (version can be specified to DCAE
- * call).
+ * Get the service blueprint Id in the Dcae inventory using the SDC UUID.
*
* @return The DcaeInventoryResponse object containing the dcae values
*/
diff --git a/src/main/java/org/onap/clamp/loop/Loop.java b/src/main/java/org/onap/clamp/loop/Loop.java
index 33981267..0ac8030d 100644
--- a/src/main/java/org/onap/clamp/loop/Loop.java
+++ b/src/main/java/org/onap/clamp/loop/Loop.java
@@ -131,7 +131,7 @@ public class Loop extends AuditEntity implements Serializable {
@Expose
@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.EAGER)
- @JoinColumn(name = "loop_template_name")
+ @JoinColumn(name = "loop_template_name", nullable=false)
private LoopTemplate loopTemplate;
private void initializeExternalComponents() {
@@ -253,10 +253,12 @@ public class Loop extends AuditEntity implements Serializable {
}
public Map<String, ExternalComponent> getComponents() {
+ refreshDcaeComponents();
return components;
}
public ExternalComponent getComponent(String componentName) {
+ refreshDcaeComponents();
return this.components.get(componentName);
}
@@ -272,6 +274,17 @@ public class Loop extends AuditEntity implements Serializable {
this.loopTemplate = loopTemplate;
}
+ private void refreshDcaeComponents() {
+ if (!this.loopTemplate.getUniqueBlueprint()) {
+ this.components.remove("DCAE");
+ for (MicroServicePolicy policy : this.microServicePolicies) {
+ if (!this.components.containsKey("DCAE_" + policy.getName())) {
+ this.addComponent(new DcaeComponent(policy.getName()));
+ }
+ }
+ }
+ }
+
/**
* Generate the loop name.
*
@@ -282,9 +295,9 @@ public class Loop extends AuditEntity implements Serializable {
* @return The generated loop name
*/
public static String generateLoopName(String serviceName, String serviceVersion, String resourceName,
- String blueprintFilename) {
+ String blueprintFileName) {
StringBuilder buffer = new StringBuilder("LOOP_").append(serviceName).append("_v").append(serviceVersion)
- .append("_").append(resourceName).append("_").append(blueprintFilename.replaceAll(".yaml", ""));
+ .append("_").append(resourceName).append("_").append(blueprintFileName.replaceAll(".yaml", ""));
return buffer.toString().replace('.', '_').replaceAll(" ", "");
}
diff --git a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java
index 21960e38..7c0e3ccb 100644
--- a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java
+++ b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java
@@ -48,6 +48,8 @@ public class DcaeComponent extends ExternalComponent {
private static final String DCAE_SERVICETYPE_ID = "serviceTypeId";
private static final String DCAE_INPUTS = "inputs";
+ private String name;
+
public static final ExternalComponentState BLUEPRINT_DEPLOYED = new ExternalComponentState("BLUEPRINT_DEPLOYED",
"The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop");
public static final ExternalComponentState PROCESSING_MICROSERVICE_INSTALLATION = new ExternalComponentState(
@@ -73,13 +75,20 @@ public class DcaeComponent extends ExternalComponent {
public DcaeComponent() {
super(BLUEPRINT_DEPLOYED);
+ this.name = "DCAE";
+ }
+
+ public DcaeComponent(String name) {
+ super(BLUEPRINT_DEPLOYED);
+ this.name = "DCAE_" + name;
}
@Override
public String getComponentName() {
- return "DCAE";
+ return name;
}
+
/**
* Convert the json response to a DcaeOperationStatusResponse.
*
@@ -170,7 +179,7 @@ public class DcaeComponent extends ExternalComponent {
/**
* Return the uninstallation payload for DCAE.
*
- * @param microServicePolicy The microServicePolicy object
+ * @param policy The microServicePolicy object
* @return The payload in string (json)
*/
public static String getUndeployPayload(MicroServicePolicy policy) {
diff --git a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java
index e3f05a01..0a0831bb 100644
--- a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java
+++ b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java
@@ -70,7 +70,7 @@ public class LoopElementModel extends AuditEntity implements Serializable {
/**
* Here we store the blueprint coming from DCAE.
*/
- @Column(columnDefinition = "MEDIUMTEXT", nullable = false, name = "blueprint_yaml")
+ @Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml")
private String blueprint;
/**
diff --git a/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java
index b8adebae..3e90c1e5 100644
--- a/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java
+++ b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java
@@ -70,7 +70,6 @@ public class LoopTemplate extends AuditEntity implements Serializable {
@Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml")
private String blueprint;
- @Expose
@Column(columnDefinition = "MEDIUMTEXT", name = "svg_representation")
private String svgRepresentation;
@@ -88,6 +87,10 @@ public class LoopTemplate extends AuditEntity implements Serializable {
@Column(name = "maximum_instances_allowed")
private Integer maximumInstancesAllowed;
+ @Expose
+ @Column(name = "unique_blueprint", columnDefinition = "boolean default false")
+ private boolean uniqueBlueprint;
+
/**
* name getter.
*
@@ -140,6 +143,11 @@ public class LoopTemplate extends AuditEntity implements Serializable {
*/
public void setBlueprint(String blueprint) {
this.blueprint = blueprint;
+ if (blueprint == null) {
+ this.uniqueBlueprint = false;
+ } else {
+ this.uniqueBlueprint = true;
+ }
}
/**
@@ -245,6 +253,15 @@ public class LoopTemplate extends AuditEntity implements Serializable {
}
/**
+ * uniqueBlueprint getter.
+ *
+ * @return the uniqueBlueprint
+ */
+ public boolean getUniqueBlueprint() {
+ return uniqueBlueprint;
+ }
+
+ /**
* Default constructor for serialization.
*/
public LoopTemplate() {
@@ -265,7 +282,7 @@ public class LoopTemplate extends AuditEntity implements Serializable {
public LoopTemplate(String name, String blueprint, String svgRepresentation, Integer maxInstancesAllowed,
Service service) {
this.name = name;
- this.blueprint = blueprint;
+ this.setBlueprint(blueprint);
this.svgRepresentation = svgRepresentation;
this.maximumInstancesAllowed = maxInstancesAllowed;
@@ -312,10 +329,10 @@ public class LoopTemplate extends AuditEntity implements Serializable {
* @return The generated loop template name
*/
public static String generateLoopTemplateName(String serviceName, String serviceVersion, String resourceName,
- String blueprintFilename) {
+ String blueprintFileName) {
StringBuilder buffer = new StringBuilder("LOOP_TEMPLATE_").append(serviceName).append("_v")
.append(serviceVersion).append("_").append(resourceName).append("_")
- .append(blueprintFilename.replaceAll(".yaml", ""));
+ .append(blueprintFileName.replaceAll(".yaml", ""));
return buffer.toString().replace('.', '_').replaceAll(" ", "");
}
}
diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java
index 886e8c80..53539fcc 100644
--- a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java
+++ b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java
@@ -224,7 +224,13 @@ public class PolicyModel extends AuditEntity implements Serializable, Comparable
@Override
public int compareTo(PolicyModel arg0) {
- // Reverse it, so that by default we have the latest
- return SemanticVersioning.compare(arg0.getVersion(), this.version);
+
+ if (this.getPolicyModelType().equals(arg0.getPolicyModelType())) {
+ // Reverse it, so that by default we have the latest in they are same model type
+ return SemanticVersioning.compare(arg0.getVersion(), this.version);
+ } else {
+ return this.getPolicyModelType().compareTo(arg0.getPolicyModelType());
+ }
+
}
}
diff --git a/src/main/java/org/onap/clamp/policy/downloader/PolicyDownloader.java b/src/main/java/org/onap/clamp/policy/downloader/PolicyDownloader.java
new file mode 100644
index 00000000..8795a125
--- /dev/null
+++ b/src/main/java/org/onap/clamp/policy/downloader/PolicyDownloader.java
@@ -0,0 +1,96 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 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.policy.downloader;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+import java.util.LinkedHashMap;
+import java.util.Map.Entry;
+
+import org.onap.clamp.clds.client.PolicyEngineServices;
+import org.onap.clamp.loop.template.PolicyModel;
+import org.onap.clamp.loop.template.PolicyModelId;
+import org.onap.clamp.loop.template.PolicyModelsRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.yaml.snakeyaml.Yaml;
+
+/**
+ * This class implements a periodic job that is done in the background to
+ * synchronize policy models available on the policy engine and the clamp
+ * database table PolicyModel.
+ */
+@Configuration
+@Profile("clamp-policy-controller")
+public class PolicyDownloader {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyDownloader.class);
+ protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+ public static final String POLICY_RETRY_INTERVAL = "policy.retry.interval";
+ public static final String POLICY_RETRY_LIMIT = "policy.retry.limit";
+
+ private final PolicyEngineServices policyEngineServices;
+ private final PolicyModelsRepository policyModelsRepository;
+
+ @Autowired
+ public PolicyDownloader(PolicyEngineServices policyEngineService, PolicyModelsRepository policyModelsRepository) {
+ this.policyEngineServices = policyEngineService;
+ this.policyModelsRepository = policyModelsRepository;
+ }
+
+ private void createPolicyInDbIfNeeded(PolicyModel policyModel) {
+ if (!policyModelsRepository
+ .existsById(new PolicyModelId(policyModel.getPolicyModelType(), policyModel.getVersion()))) {
+ policyModelsRepository.save(policyModel);
+ }
+ }
+
+ @Scheduled(fixedRate = 120000)
+ public void synchronizeAllPolicies() throws InterruptedException {
+ try {
+ LinkedHashMap<String, Object> loadedYaml = new Yaml().load(policyEngineServices.downloadAllPolicies());
+ if (loadedYaml == null || loadedYaml.isEmpty()) {
+ logger.warn(
+ "getAllPolicyType yaml returned by policy engine could not be decoded, as it's null or empty");
+ return;
+ }
+
+ LinkedHashMap<String, Object> policyTypesList = (LinkedHashMap<String, Object>) loadedYaml
+ .get("policy_types");
+ for (Entry<String, Object> policyType : policyTypesList.entrySet()) {
+ createPolicyInDbIfNeeded(policyEngineServices.createPolicyModelFromPolicyEngine(policyType.getKey(),
+ ((String) ((LinkedHashMap<String, Object>) policyType.getValue()).get("version"))));
+ }
+ } catch (InterruptedException e) {
+ logger.warn("query to policy engine has been interrupted", e);
+ throw e;
+ }
+
+ }
+
+}
diff --git a/src/main/resources/application-noaaf.properties b/src/main/resources/application-noaaf.properties
index d389b211..69d16875 100644
--- a/src/main/resources/application-noaaf.properties
+++ b/src/main/resources/application-noaaf.properties
@@ -73,7 +73,7 @@ clamp.config.keyFile=classpath:/clds/aaf/org.onap.clamp.keyfile
server.servlet.context-path=/
#Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller-new,clamp-ssl-config
+spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller
spring.http.converters.preferred-json-mapper=gson
#The max number of active threads in this pool
@@ -160,26 +160,6 @@ clamp.config.policy.pap.url=http4://localhost:8085
clamp.config.policy.pap.userName=healthcheck
clamp.config.policy.pap.password=zb!XztG34
-
-clamp.config.policy.clientKey=dGVzdA==
-#DEVL for development
-#TEST for Test environments
-#PROD for prod environments
-clamp.config.policy.policyEnvironment=TEST
-# General Policy request properties
-#
-clamp.config.policy.onap.name=DCAE
-clamp.config.policy.pdp.group=default
-clamp.config.policy.ms.type=MicroService
-clamp.config.policy.ms.policyNamePrefix=Config_MS_
-clamp.config.policy.op.policyNamePrefix=Config_BRMS_Param_
-clamp.config.policy.base.policyNamePrefix=Config_
-clamp.config.policy.op.type=BRMS_Param
-
-clamp.config.import.tosca.model=true
-clamp.config.tosca.policyTypes=tca
-clamp.config.tosca.filePath=/tmp/tosca-models
-
# TCA MicroService Policy request build properties
#
clamp.config.tca.policyid.prefix=DCAE.Config_
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index b97d6436..bb25abff 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -78,7 +78,7 @@ server.ssl.trust-store-password=enc:iDnPBBLq_EMidXlMa1FEuBR8TZzYxrCg66vq_XfLHdJ
server.servlet.context-path=/
#Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller-new,clamp-ssl-config
+spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller
spring.http.converters.preferred-json-mapper=gson
#The max number of active threads in this pool
@@ -163,34 +163,6 @@ clamp.config.policy.pap.url=http4://policy.api.simpledemo.onap.org:6969
clamp.config.policy.pap.userName=healthcheck
clamp.config.policy.pap.password=zb!XztG34
-clamp.config.policy.pdpUrl1=http://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123
-clamp.config.policy.pdpUrl2=http://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123
-clamp.config.policy.papUrl=http://policy.api.simpledemo.onap.org:8081/pap/ , testpap, alpha123
-clamp.config.policy.notificationType=websocket
-clamp.config.policy.notificationUebServers=localhost
-clamp.config.policy.notificationTopic=PDPD-CONFIGURATION
-clamp.config.policy.clientId=python
-# base64 encoding
-
-clamp.config.policy.clientKey=dGVzdA==
-#DEVL for development
-#TEST for Test environments
-#PROD for prod environments
-clamp.config.policy.policyEnvironment=TEST
-# General Policy request properties
-#
-clamp.config.policy.onap.name=DCAE
-clamp.config.policy.pdp.group=default
-clamp.config.policy.ms.type=MicroService
-clamp.config.policy.ms.policyNamePrefix=Config_MS_
-clamp.config.policy.op.policyNamePrefix=Config_BRMS_Param_
-clamp.config.policy.base.policyNamePrefix=Config_
-clamp.config.policy.op.type=BRMS_Param
-
-clamp.config.import.tosca.model=true
-clamp.config.tosca.policyTypes=tca
-clamp.config.tosca.filePath=/tmp/tosca-models
-
# TCA MicroService Policy request build properties
#
clamp.config.tca.policyid.prefix=DCAE.Config_
diff --git a/src/main/resources/clds/camel/routes/dcae-flows.xml b/src/main/resources/clds/camel/routes/dcae-flows.xml
index 7137bab9..8088c2a4 100644
--- a/src/main/resources/clds/camel/routes/dcae-flows.xml
+++ b/src/main/resources/clds/camel/routes/dcae-flows.xml
@@ -3,12 +3,12 @@
<from uri="direct:deploy-loop" />
<choice>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
</simple>
<to uri="direct:deploy-loop-single-blueprint" />
</when>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
</simple>
<to uri="direct:deploy-loop-multi-blueprint" />
</when>
@@ -74,18 +74,14 @@
</setProperty>
<to
uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" />
- <setProperty propertyName="logMessage">
- <simple>DEPLOY loop status
- (Dep-id:${exchangeProperty[dcaeDeploymentId]},
- StatusUrl:${exchangeProperty[dcaeStatusUrl]})
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>DCAE</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Deploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" />
</split>
<doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
<setProperty propertyName="logMessage">
<simple>DEPLOY micro service failed
(MicroService name:${exchangeProperty[microServicePolicy].getName()}),
@@ -176,12 +172,12 @@
<from uri="direct:undeploy-loop" />
<choice>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
</simple>
<to uri="direct:undeploy-loop-single-blueprint" />
</when>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
</simple>
<to uri="direct:undeploy-loop-multi-blueprint" />
</when>
@@ -244,25 +240,22 @@
</setProperty>
<to
uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[microServicePolicy].getDcaeDeploymentId()},${exchangeProperty[dcaeStatusUrl]})" />
- <setProperty propertyName="logMessage">
- <simple>UNDEPLOY micro service successful
- (MicroService name:${exchangeProperty[microServicePolicy].getName()})
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>DCAE</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" />
</when>
<otherwise>
<log loggingLevel="WARNING"
message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !" />
<to
- uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" />
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING','DCAE',${exchangeProperty[loopObject]})" />
</otherwise>
</choice>
</split>
<doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
<setProperty propertyName="logMessage">
<simple>UNDEPLOY micro service failed
(MicroService name:${exchangeProperty[microServicePolicy].getName()})
@@ -355,7 +348,7 @@
<route id="get-dcae-deployment-status">
<from uri="direct:get-dcae-deployment-status" />
<log loggingLevel="INFO"
- message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()}" />
+ message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()} - ${exchangeProperty[dcaeComponent].getComponentName()}" />
<to
uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')" />
<doTry>
@@ -375,9 +368,9 @@
</simple>
</setHeader>
<log loggingLevel="INFO"
- message="Endpoint to query Closed Loop status: ${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}"></log>
+ message="Endpoint to query Closed Loop status: ${exchangeProperty[getStatusUrl]}"></log>
<toD
- uri="${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ uri="${exchangeProperty[getStatusUrl]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
<doFinally>
<to uri="direct:reset-raise-http-exception-flag" />
<to
diff --git a/src/main/resources/clds/camel/routes/loop-flows.xml b/src/main/resources/clds/camel/routes/loop-flows.xml
index 57d32f0f..c4e9fee6 100644
--- a/src/main/resources/clds/camel/routes/loop-flows.xml
+++ b/src/main/resources/clds/camel/routes/loop-flows.xml
@@ -108,37 +108,84 @@
<from uri="direct:update-dcae-status-for-loop" />
<log loggingLevel="INFO"
message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" />
- <setProperty propertyName="dcaeComponent">
- <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
- </setProperty>
- <when>
- <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}
- != null
- </simple>
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:get-dcae-deployment-status" />
+ <choice>
<when>
- <simple> ${header.CamelHttpResponseCode} == 200 </simple>
- <convertBodyTo type="java.lang.String" />
- <setProperty propertyName="dcaeResponse">
- <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
- method="convertDcaeResponse(${body})" />
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
+ </simple>
+ <setProperty propertyName="dcaeComponent">
+ <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
+ </setProperty>
+ <when>
+ <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} != null
+ </simple>
+ <setProperty propertyName="getStatusUrl">
+ <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}</simple>
+ </setProperty>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <to uri="direct:get-dcae-deployment-status" />
+ <when>
+ <simple> ${header.CamelHttpResponseCode} == 200 </simple>
+ <convertBodyTo type="java.lang.String" />
+ <setProperty propertyName="dcaeResponse">
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="convertDcaeResponse(${body})" />
+ </setProperty>
+ </when>
+ </when>
+ <setProperty propertyName="dcaeState">
+ <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
+ </simple>
</setProperty>
+ <log loggingLevel="INFO"
+ message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" />
</when>
- </when>
-
- <setProperty propertyName="dcaeState">
- <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
- </simple>
- </setProperty>
- <log loggingLevel="INFO"
- message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
- <to
- uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" />
-
- </route>
+ <when>
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
+ </simple>
+ <split>
+ <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
+ </simple>
+ <setProperty propertyName="microServicePolicy">
+ <simple>${body}</simple>
+ </setProperty>
+ <setProperty propertyName="dcaeComponent">
+ <simple>${exchangeProperty[loopObject].getComponent('DCAE_' + ${exchangeProperty[microServicePolicy].getName())}</simple>
+ </setProperty>
+ <when>
+ <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()} != null
+ </simple>
+ <setProperty propertyName="getStatusUrl">
+ <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()}</simple>
+ </setProperty>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <to uri="direct:get-dcae-deployment-status" />
+ <when>
+ <simple> ${header.CamelHttpResponseCode} == 200 </simple>
+ <convertBodyTo type="java.lang.String" />
+ <setProperty propertyName="dcaeResponse">
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="convertDcaeResponse(${body})" />
+ </setProperty>
+ </when>
+ </when>
+ <setProperty propertyName="dcaeState">
+ <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
+ </simple>
+ </setProperty>
+ <log loggingLevel="INFO"
+ message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[microServicePolicy]})" />
+ </split>>
+ </when>
+ </choice>
+ </route>
<route id="direct:update-loop-state">
<from uri="direct:update-loop-state" />
<log loggingLevel="INFO"
diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml
index 97416a6c..c28e4543 100644
--- a/src/main/resources/clds/camel/routes/policy-flows.xml
+++ b/src/main/resources/clds/camel/routes/policy-flows.xml
@@ -1,520 +1,587 @@
<routes xmlns="http://camel.apache.org/schema/spring">
- <route id="verify-one-policy">
- <from uri="direct:verify-one-policy" />
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:get-policy" />
- <when>
- <simple> ${header.CamelHttpResponseCode} != 200 </simple>
- <setProperty propertyName="policyFound">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <log loggingLevel="WARN"
- message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}" />
- </when>
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:get-deployment-policy" />
- <when>
- <simple> ${header.CamelHttpResponseCode} != 200 </simple>
- <setProperty propertyName="policyDeployed">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <log loggingLevel="WARN"
- message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}" />
- </when>
- <setProperty propertyName="newPolicyState">
- <simple>${exchangeProperty[policyComponent].computeState(*)}</simple>
- </setProperty>
- </route>
-
- <route id="get-policy">
- <from uri="direct:get-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Getting Policy: ${exchangeProperty[policyName]}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')" />
- <setHeader headerName="CamelHttpMethod">
- <constant>GET</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[policyName]} GET
- Policy status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
-
- <route id="get-deployment-policy">
- <from uri="direct:get-deployment-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')" />
- <setHeader headerName="CamelHttpMethod">
- <constant>GET</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log>
- <toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[policyName]} GET Policy deployment
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
+ <route id="verify-one-policy">
+ <from uri="direct:verify-one-policy"/>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
</setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
- <route id="create-micro-service-policy">
- <from uri="direct:create-micro-service-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')" />
- <setBody>
- <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[microServicePolicy].getName()} creation
- status
- </simple>
+ <to uri="direct:get-policy"/>
+ <when>
+ <simple> ${header.CamelHttpResponseCode} != 200 </simple>
+ <setProperty propertyName="policyFound">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <log loggingLevel="WARN"
+ message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}"/>
+ </when>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
</setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
+ <to uri="direct:get-deployment-policy"/>
+ <when>
+ <simple> ${header.CamelHttpResponseCode} != 200 </simple>
+ <setProperty propertyName="policyDeployed">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <log loggingLevel="WARN"
+ message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}"/>
+ </when>
+ <setProperty propertyName="newPolicyState">
+ <simple>${exchangeProperty[policyComponent].computeState(*)}</simple>
</setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ </route>
- <route id="delete-micro-service-policy">
- <from uri="direct:delete-micro-service-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')" />
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <route id="get-policy">
+ <from uri="direct:get-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Getting Policy: ${exchangeProperty[policyName]}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[policyName]} GET
+ Policy status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[microServicePolicy].getName()} removal
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="get-deployment-policy">
+ <from uri="direct:get-deployment-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log>
+ <toD
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[policyName]} GET Policy deployment
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="get-all-policy-models">
+ <from uri="direct:get-all-policy-models"/>
+ <doTry>
+ <log loggingLevel="INFO" message="Getting all the policy models"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting all the policy models')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get all policy models: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <convertBodyTo type="java.lang.String"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="get-policy-model">
+ <from uri="direct:get-policy-model"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Getting the policy model: ${exchangeProperty[policyModelName]}/${exchangeProperty[policyModelVersion]}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy model')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <convertBodyTo type="java.lang.String"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="create-micro-service-policy">
+ <from uri="direct:create-micro-service-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')"/>
+ <setBody>
+ <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[microServicePolicy].getName()} creation
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="create-operational-policy">
- <from uri="direct:create-operational-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')" />
- <setBody>
- <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[operationalPolicy].getName()} creation
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="delete-micro-service-policy">
+ <from uri="direct:delete-micro-service-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')"/>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
- <route id="delete-operational-policy">
- <from uri="direct:delete-operational-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')" />
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[operationalPolicy].getName()} removal
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[microServicePolicy].getName()} removal
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="create-guard-policy">
- <from uri="direct:create-guard-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')" />
- <setBody>
- <simple>${exchangeProperty[guardPolicy].getValue()}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[guardPolicy].getKey()} creation status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="create-operational-policy">
+ <from uri="direct:create-operational-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')"/>
+ <setBody>
+ <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[operationalPolicy].getName()} creation
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="delete-guard-policy">
- <from uri="direct:delete-guard-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')" />
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <route id="delete-operational-policy">
+ <from uri="direct:delete-operational-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')"/>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[operationalPolicy].getName()} removal
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[guardPolicy].getKey()} removal status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="create-guard-policy">
+ <from uri="direct:create-guard-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')"/>
+ <setBody>
+ <simple>${exchangeProperty[guardPolicy].getValue()}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[guardPolicy].getKey()} creation status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="add-all-to-active-pdp-group">
- <from uri="direct:add-all-to-active-pdp-group" />
- <doTry>
- <log loggingLevel="INFO"
- message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')" />
- <setBody>
- <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log>
- <toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <route id="delete-guard-policy">
+ <from uri="direct:delete-guard-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')"/>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>PDP Group push ALL status</simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[guardPolicy].getKey()} removal status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="remove-all-policy-from-active-pdp-group">
- <from uri="direct:remove-all-policy-from-active-pdp-group" />
- <doTry>
- <log loggingLevel="INFO"
- message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')" />
- <split>
- <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])}
- </simple>
- <setProperty propertyName="policyName">
- <simple>${body}</simple>
- </setProperty>
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log>
- <toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[policyName]} PDP Group removal status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </split>
- <doCatch>
- <exception>java.lang.Exception</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <setProperty propertyName="logMessage">
- <simple>PDP Group removal, Error reported: ${exception}</simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doCatch>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- </doFinally>
- </doTry>
- </route>
+ <route id="add-all-to-active-pdp-group">
+ <from uri="direct:add-all-to-active-pdp-group"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')"/>
+ <setBody>
+ <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>PDP Group push ALL status</simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
+
+ <route id="remove-all-policy-from-active-pdp-group">
+ <from uri="direct:remove-all-policy-from-active-pdp-group"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')"/>
+ <split>
+ <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])}
+ </simple>
+ <setProperty propertyName="policyName">
+ <simple>${body}</simple>
+ </setProperty>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log>
+ <toD
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[policyName]} PDP Group removal status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </split>
+ <doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <setProperty propertyName="logMessage">
+ <simple>PDP Group removal, Error reported: ${exception}</simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doCatch>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
</routes> \ No newline at end of file
diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyConfigurationItCase.java b/src/test/java/org/onap/clamp/clds/it/PolicyConfigurationItCase.java
deleted file mode 100644
index fd20e360..00000000
--- a/src/test/java/org/onap/clamp/clds/it/PolicyConfigurationItCase.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * ============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============================================
- * ===================================================================
- *
- */
-
-package org.onap.clamp.clds.it;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.onap.clamp.clds.config.PolicyConfiguration;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-/**
- * Test Config Policy read from application.properties.
- */
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class PolicyConfigurationItCase {
-
- @Autowired
- private PolicyConfiguration policyConfiguration;
-
- @Test
- public void testPolicyConfiguration() {
- assertNotNull(policyConfiguration.getPdpUrl1());
- assertNotNull(policyConfiguration.getPdpUrl2());
- assertNotNull(policyConfiguration.getPapUrl());
- assertNotNull(policyConfiguration.getPolicyEnvironment());
- assertNotNull(policyConfiguration.getClientId());
- assertNotNull(policyConfiguration.getClientKey());
- assertNotNull(policyConfiguration.getNotificationType());
- assertNotNull(policyConfiguration.getNotificationUebServers());
- assertEquals(8, policyConfiguration.getProperties().size());
- assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PDP_URL1))
- .contains("/pdp/ , testpdp, alpha123"));
- assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PDP_URL2))
- .contains("/pdp/ , testpdp, alpha123"));
- assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PAP_URL))
- .contains("/pap/ , testpap, alpha123"));
- assertEquals("websocket", policyConfiguration.getProperties().get(PolicyConfiguration.NOTIFICATION_TYPE));
- assertEquals("localhost",
- policyConfiguration.getProperties().get(PolicyConfiguration.NOTIFICATION_UEB_SERVERS));
- assertEquals("python", policyConfiguration.getProperties().get(PolicyConfiguration.CLIENT_ID));
- assertEquals("dGVzdA==", policyConfiguration.getProperties().get(PolicyConfiguration.CLIENT_KEY));
- assertEquals("DEVL", policyConfiguration.getProperties().get(PolicyConfiguration.ENVIRONMENT));
- }
-}
diff --git a/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java b/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java
index d3404203..c25415ec 100644
--- a/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java
@@ -28,10 +28,9 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-
import com.google.gson.JsonElement;
+
import java.io.IOException;
-import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -55,19 +54,15 @@ public class CldsReferencePropertiesItCase {
*/
@Test
public void testGetStringValue() {
- assertEquals("DCAE", refProp.getStringValue("policy.onap.name"));
- assertEquals("Config_MS_", refProp.getStringValue("policy.ms.policyNamePrefix", ""));
- assertEquals("Config_MS_", refProp.getStringValue("policy.ms.policyNamePrefix", "testos"));
- assertEquals("Config_MS_", refProp.getStringValue("policy.ms", "policyNamePrefix"));
- assertNull(refProp.getStringValue("does.not.exist"));
+ assertEquals("healthcheck", refProp.getStringValue("policy.api.userName"));
}
@Test
public void shouldReturnJsonFromTemplate() throws IOException {
- //when
+ // when
JsonElement root = refProp.getJsonTemplate("ui.location.default");
- //then
+ // then
assertNotNull(root);
assertTrue(root.isJsonObject());
assertEquals("Data Center 1", root.getAsJsonObject().get("DC1").getAsString());
@@ -75,10 +70,10 @@ public class CldsReferencePropertiesItCase {
@Test
public void shouldReturnJsonFromTemplate_2() throws IOException {
- //when
+ // when
JsonElement root = refProp.getJsonTemplate("ui.location", "default");
- //then
+ // then
assertNotNull(root);
assertTrue(root.isJsonObject());
assertEquals("Data Center 1", root.getAsJsonObject().get("DC1").getAsString());
@@ -86,18 +81,17 @@ public class CldsReferencePropertiesItCase {
@Test
public void shouldReturnNullIfPropertyNotFound() throws IOException {
- //when
+ // when
JsonElement root = refProp.getJsonTemplate("ui.location", "");
- //then
+ // then
assertNull(root);
}
/**
* Test getting prop value as a JSON Node / template.
*
- * @throws IOException
- * when JSON parsing fails
+ * @throws IOException when JSON parsing fails
*/
@Test
public void testGetFileContent() throws IOException {
@@ -109,13 +103,4 @@ public class CldsReferencePropertiesItCase {
content = refProp.getFileContent("ui.location", "default");
assertEquals(location, content);
}
-
- @Test
- public void testGetStringList() {
- List<String> profileList = refProp.getStringList("policy.pdpUrl1", ",");
- assertEquals(3, profileList.size());
- assertTrue(profileList.get(0).trim().startsWith("http://localhost:"));
- assertEquals("testpdp", profileList.get(1).trim());
- assertEquals("alpha123", profileList.get(2).trim());
- }
}
diff --git a/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java b/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java
index 7c520a25..7ef73453 100644
--- a/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java
@@ -45,7 +45,7 @@ import org.springframework.test.util.ReflectionTestUtils;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
-@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller-new")
+@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller")
public class SdcControllersConfigurationItCase {
@Autowired
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 e48bfc44..9efb6898 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
@@ -44,6 +44,7 @@ import org.json.JSONObject;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException;
import org.onap.clamp.clds.util.ResourceFileUtil;
import org.yaml.snakeyaml.Yaml;
@@ -53,17 +54,16 @@ public class BlueprintParserTest {
private static final String SECOND_APPP = "second_app";
private static final String THIRD_APPP = "third_app";
private static final String MODEL_TYPE1 = "type1";
- private static final String MODEL_TYPE2 = "type2";
- private static final String MODEL_TYPE3 = "type3";
+ private static final String MODEL_TYPE_TCA = "onap.policies.monitoring.cdap.tca.hi.lo.app";
+ private static final String VERSION = "1.0.0";
private static String microServiceTheWholeBlueprintValid;
- private static String microServiceBlueprintOldStyleTCA;
- private static String microServiceBlueprintOldStyleHolmes;
private static String newMicroServiceBlueprint;
- private static JsonObject jsonObjectBlueprintValid;
+ private static JsonObject jsonObjectBlueprintInvalid;
private static JsonObject jsonObjectBlueprintWithoutName;
private static JsonObject jsonObjectBlueprintWithoutProperties;
private static JsonObject jsonObjectBlueprintWithoutRelationships;
+ private static JsonObject jsonObjectBlueprintValidWithVersion;
/**
* Method to load Blueprints before all test.
@@ -74,20 +74,21 @@ public class BlueprintParserTest {
public static void loadBlueprints() throws IOException {
microServiceTheWholeBlueprintValid = ResourceFileUtil
.getResourceAsString("clds/blueprint-with-microservice-chain.yaml");
- microServiceBlueprintOldStyleTCA = ResourceFileUtil.getResourceAsString("clds/tca-old-style-ms.yaml");
+
newMicroServiceBlueprint = ResourceFileUtil.getResourceAsString("clds/new-microservice.yaml");
- microServiceBlueprintOldStyleHolmes = ResourceFileUtil.getResourceAsString("clds/holmes-old-style-ms.yaml");
- String microServiceBlueprintValid = ResourceFileUtil
- .getResourceAsString("clds/single-microservice-fragment-valid.yaml");
+ String microServiceBlueprintInvalid = ResourceFileUtil
+ .getResourceAsString("clds/single-microservice-fragment-invalid.yaml");
+ jsonObjectBlueprintInvalid = yamlToJson(microServiceBlueprintInvalid);
String microServiceBlueprintWithoutName = ResourceFileUtil
.getResourceAsString("clds/single-microservice-fragment-without-name.yaml");
+ jsonObjectBlueprintWithoutName = yamlToJson(microServiceBlueprintWithoutName);
String microServiceBlueprintWithoutProperties = ResourceFileUtil
.getResourceAsString("clds/single-microservice-fragment-without-properties.yaml");
-
- jsonObjectBlueprintValid = yamlToJson(microServiceBlueprintValid);
- jsonObjectBlueprintWithoutName = yamlToJson(microServiceBlueprintWithoutName);
jsonObjectBlueprintWithoutProperties = yamlToJson(microServiceBlueprintWithoutProperties);
+ String microServiceBlueprintValidWithVersion = ResourceFileUtil
+ .getResourceAsString("clds/single-microservice-fragment-valid-with-version.yaml");
+ jsonObjectBlueprintValidWithVersion = yamlToJson(microServiceBlueprintValidWithVersion);
String microServiceBlueprintWithoutRelationships = ResourceFileUtil
.getResourceAsString("clds/single-microservice-fragment-without-relationships.yaml");
@@ -97,11 +98,11 @@ public class BlueprintParserTest {
@Test
public void getNameShouldReturnDefinedName() {
- final JsonObject jsonObject = jsonObjectBlueprintValid;
+ final JsonObject jsonObject = jsonObjectBlueprintInvalid;
String expectedName = jsonObject.get(jsonObject.keySet().iterator().next()).getAsJsonObject().get("properties")
.getAsJsonObject().get("name").getAsString();
Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next();
- String actualName = new BlueprintParser().getName(entry);
+ String actualName = BlueprintParser.getName(entry);
Assert.assertEquals(expectedName, actualName);
}
@@ -112,7 +113,7 @@ public class BlueprintParserTest {
String expectedName = jsonObject.keySet().iterator().next();
Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next();
- String actualName = new BlueprintParser().getName(entry);
+ String actualName = BlueprintParser.getName(entry);
Assert.assertEquals(expectedName, actualName);
}
@@ -123,18 +124,18 @@ public class BlueprintParserTest {
String expectedName = jsonObject.keySet().iterator().next();
Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next();
- String actualName = new BlueprintParser().getName(entry);
+ String actualName = BlueprintParser.getName(entry);
Assert.assertEquals(expectedName, actualName);
}
@Test
public void getInputShouldReturnInputWhenPresent() {
- final JsonObject jsonObject = jsonObjectBlueprintValid;
+ final JsonObject jsonObject = jsonObjectBlueprintInvalid;
String expected = FIRST_APPP;
Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next();
- String actual = new BlueprintParser().getInput(entry);
+ String actual = BlueprintParser.getInput(entry);
Assert.assertEquals(expected, actual);
}
@@ -145,63 +146,56 @@ public class BlueprintParserTest {
String expected = "";
Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next();
- String actual = new BlueprintParser().getInput(entry);
+ String actual = BlueprintParser.getInput(entry);
Assert.assertEquals(expected, actual);
}
- @Test
- public void getNodeRepresentationFromCompleteYaml() {
- final JsonObject jsonObject = jsonObjectBlueprintValid;
-
- MicroService expected = new MicroService(SECOND_APPP, MODEL_TYPE1, FIRST_APPP, "");
- Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next();
- MicroService actual = new BlueprintParser().getNodeRepresentation(entry, jsonObject, null);
-
- Assert.assertEquals(expected, actual);
+ @Test(expected = BlueprintParserException.class)
+ public void getNodeRepresentationFromIncompleteYaml() throws BlueprintParserException {
+ BlueprintParser.getNodeRepresentation(jsonObjectBlueprintInvalid.entrySet().iterator().next(),
+ jsonObjectBlueprintInvalid, null);
}
@Test
- public void getMicroServicesFromBlueprintTest() {
- 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, "");
+ public void getNodeRepresentationFromCompleteYamlWithModelVersion() throws BlueprintParserException {
+ final JsonObject jsonObject = jsonObjectBlueprintValidWithVersion;
- Set<MicroService> expected = new HashSet<>(Arrays.asList(firstApp, secondApp, thirdApp));
- Set<MicroService> actual = new BlueprintParser().getMicroServices(microServiceTheWholeBlueprintValid);
+ BlueprintMicroService expected = new BlueprintMicroService(SECOND_APPP, MODEL_TYPE1, "", "10.0.0");
+ Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next();
+ BlueprintMicroService actual = BlueprintParser.getNodeRepresentation(entry, jsonObject, null);
Assert.assertEquals(expected, actual);
}
@Test
+ public void getMicroServicesFromBlueprintTest() throws BlueprintParserException {
+ BlueprintMicroService thirdApp = new BlueprintMicroService(THIRD_APPP, MODEL_TYPE_TCA, SECOND_APPP, VERSION);
+ BlueprintMicroService firstApp = new BlueprintMicroService(FIRST_APPP, MODEL_TYPE_TCA, "", VERSION);
+ BlueprintMicroService secondApp = new BlueprintMicroService(SECOND_APPP, MODEL_TYPE_TCA, FIRST_APPP, VERSION);
- public void fallBackToOneMicroServiceTcaTest() {
- MicroService tcaMs = new MicroService(BlueprintParser.TCA, "onap.policies.monitoring.cdap.tca.hi.lo.app", "",
- "");
- List<MicroService> expected = Collections.singletonList(tcaMs);
- List<MicroService> actual = new BlueprintParser().fallbackToOneMicroService(microServiceBlueprintOldStyleTCA);
+ Set<BlueprintMicroService> expected = new HashSet<>(Arrays.asList(firstApp, secondApp, thirdApp));
+ Set<BlueprintMicroService> actual = BlueprintParser.getMicroServices(microServiceTheWholeBlueprintValid);
Assert.assertEquals(expected, actual);
}
@Test
- public void fallBackToOneMicroServiceHolmesTest() {
- MicroService holmesMs = new MicroService(BlueprintParser.HOLMES, "onap.policies.monitoring.cdap.tca.hi.lo.app",
- "", "");
-
- List<MicroService> expected = Collections.singletonList(holmesMs);
- List<MicroService> actual = new BlueprintParser()
- .fallbackToOneMicroService(microServiceBlueprintOldStyleHolmes);
+ public void fallBackToOneMicroServiceTcaTest() {
+ BlueprintMicroService tcaMs = new BlueprintMicroService(BlueprintParser.TCA,
+ "onap.policies.monitoring.cdap.tca.hi.lo.app", "", VERSION);
+ List<BlueprintMicroService> expected = Collections.singletonList(tcaMs);
+ List<BlueprintMicroService> actual = BlueprintParser.fallbackToOneMicroService();
Assert.assertEquals(expected, actual);
}
@Test
- public void newMicroServiceTest() {
- List<MicroService> microServicesChain = new ChainGenerator()
- .getChainOfMicroServices(new BlueprintParser().getMicroServices(newMicroServiceBlueprint));
+ public void newMicroServiceTest() throws BlueprintParserException {
+ List<BlueprintMicroService> microServicesChain = new ChainGenerator()
+ .getChainOfMicroServices(BlueprintParser.getMicroServices(newMicroServiceBlueprint));
if (microServicesChain.isEmpty()) {
- microServicesChain = new BlueprintParser().fallbackToOneMicroService(newMicroServiceBlueprint);
+ microServicesChain = BlueprintParser.fallbackToOneMicroService();
}
assertThat(microServicesChain.size()).isEqualTo(1);
assertThat(microServicesChain.get(0).getName()).isEqualTo("pmsh");
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 4b4563cd..83b3dda0 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
@@ -36,42 +36,43 @@ public class ChainGeneratorTest {
private static final String SECOND_APPP = "second_app";
private static final String THIRD_APPP = "third_app";
private static final String FOURTH_APPP = "fourth_app";
+ private static final String DEFAULT_VERSION = "1.0.0";
@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, "");
+ BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION);
+ BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", FIRST_APPP, DEFAULT_VERSION);
+ BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", SECOND_APPP, DEFAULT_VERSION);
+ BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", THIRD_APPP, DEFAULT_VERSION);
- List<MicroService> expectedList = Arrays.asList(ms1, ms2, ms3, ms4);
- Set<MicroService> inputSet = new HashSet<>(expectedList);
+ List<BlueprintMicroService> expectedList = Arrays.asList(ms1, ms2, ms3, ms4);
+ Set<BlueprintMicroService> inputSet = new HashSet<>(expectedList);
- List<MicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet);
+ List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet);
Assert.assertEquals(expectedList, actualList);
}
@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, "");
+ BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION);
+ BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", "", DEFAULT_VERSION);
+ BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", SECOND_APPP, DEFAULT_VERSION);
+ BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", FIRST_APPP, DEFAULT_VERSION);
- Set<MicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4));
- List<MicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet);
+ Set<BlueprintMicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4));
+ List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet);
Assert.assertTrue(actualList.isEmpty());
}
@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, "");
+ BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION);
+ BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", FIRST_APPP, DEFAULT_VERSION);
+ BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", FIRST_APPP, DEFAULT_VERSION);
+ BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", FIRST_APPP, DEFAULT_VERSION);
- Set<MicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4));
- List<MicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet);
+ Set<BlueprintMicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4));
+ List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet);
Assert.assertTrue(actualList.isEmpty());
}
}
diff --git a/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java b/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java
index 1453d0ba..f6054d53 100644
--- a/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java
+++ b/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java
@@ -45,7 +45,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
-@PowerMockIgnore({ "javax.crypto.*", "com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*" })
+@PowerMockIgnore({ "javax.crypto.*", "com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*" })
public class CryptoUtilsTest {
private final String data = "This is a test string";
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 269ad42e..65eb2696 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
@@ -39,7 +39,7 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
-import org.onap.clamp.clds.sdc.controller.installer.MicroService;
+import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService;
@RunWith(MockitoJUnitRunner.class)
public class ClampGraphBuilderTest {
@@ -50,7 +50,7 @@ public class ClampGraphBuilderTest {
private ArgumentCaptor<String> collectorCaptor;
@Captor
- private ArgumentCaptor<List<MicroService>> microServicesCaptor;
+ private ArgumentCaptor<List<BlueprintMicroService>> microServicesCaptor;
@Captor
private ArgumentCaptor<String> policyCaptor;
@@ -58,17 +58,17 @@ 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");
+ BlueprintMicroService ms1 = new BlueprintMicroService("ms1", "", "", "1.0.0");
+ BlueprintMicroService ms2 = new BlueprintMicroService("ms2", "", "", "1.0.0");
String policy = "OperationalPolicy";
- final List<MicroService> microServices = Arrays.asList(ms1, ms2);
+ final List<BlueprintMicroService> microServices = Arrays.asList(ms1, ms2);
ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter);
clampGraphBuilder.collector(collector).addMicroService(ms1).addMicroService(ms2).policy(policy).build();
verify(mockPainter, times(1)).doPaint(collectorCaptor.capture(), microServicesCaptor.capture(),
- policyCaptor.capture());
+ policyCaptor.capture());
Assert.assertEquals(collector, collectorCaptor.getValue());
Assert.assertEquals(microServices, microServicesCaptor.getValue());
@@ -78,8 +78,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");
+ BlueprintMicroService ms1 = new BlueprintMicroService("ms1", "", "", "1.0.0");
+ BlueprintMicroService ms2 = new BlueprintMicroService("ms2", "", "", "1.0.0");
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 70adf3ee..636684cd 100644
--- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
+++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
@@ -44,6 +44,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.onap.clamp.clds.Application;
+import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException;
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.installer.BlueprintArtifact;
@@ -73,7 +74,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
-@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller-new")
+@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller")
public class CsarInstallerItCase {
private static final String CSAR_ARTIFACT_NAME = "example/sdc/service_Vloadbalancerms_csar.csar";
@@ -180,7 +181,7 @@ public class CsarInstallerItCase {
@Test
@Transactional
public void testIsCsarAlreadyDeployedTca() throws SdcArtifactInstallerException, SdcToscaParserException,
- CsarHandlerException, IOException, InterruptedException {
+ CsarHandlerException, IOException, InterruptedException, BlueprintParserException {
String generatedName = RandomStringUtils.randomAlphanumeric(5);
CsarHandler csarHandler = buildFakeCsarHandler(generatedName);
assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isFalse();
@@ -192,7 +193,7 @@ public class CsarInstallerItCase {
@Transactional
@Commit
public void testInstallTheCsarTca() throws SdcArtifactInstallerException, SdcToscaParserException,
- CsarHandlerException, IOException, JSONException, InterruptedException {
+ CsarHandlerException, IOException, JSONException, InterruptedException, BlueprintParserException {
String generatedName = RandomStringUtils.randomAlphanumeric(5);
CsarHandler csar = buildFakeCsarHandler(generatedName);
csarInstaller.installTheCsar(csar);
@@ -233,16 +234,9 @@ public class CsarInstallerItCase {
assertThat(policyModelsRepository.findAll().size()).isEqualByComparingTo(1);
assertThat(policyModelsRepository
- .existsById(new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0"))).isTrue();
- }
-
- @Test(expected = SdcArtifactInstallerException.class)
- @Transactional
- public void shouldThrowSdcArtifactInstallerException()
- throws SdcArtifactInstallerException, SdcToscaParserException, IOException, InterruptedException {
- String generatedName = RandomStringUtils.randomAlphanumeric(5);
- CsarHandler csarHandler = buildFakeCsarHandler(generatedName);
- Mockito.when(csarHandler.getPolicyModelYaml()).thenThrow(IOException.class);
- csarInstaller.installTheCsar(csarHandler);
+ .existsById(new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0"))).isTrue();
+ assertThat(policyModelsRepository
+ .getOne((new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0")))
+ .getPolicyModelTosca()).isNotBlank();
}
}
diff --git a/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java b/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java
index 03b35f1b..fa9cc063 100644
--- a/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java
+++ b/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java
@@ -69,8 +69,8 @@ public class DcaeComponentTest {
@Test
public void convertDcaeResponseTest() throws IOException {
- String dcaeFakeResponse = "{'requestId':'testId','operationType':'install','status':'state','error':'errorMessage', "
- + "'links':{'self':'selfUrl','uninstall':'uninstallUrl'}}";
+ String dcaeFakeResponse = "{'requestId':'testId','operationType':'install','status':'state',"
+ + "'error':'errorMessage', 'links':{'self':'selfUrl','uninstall':'uninstallUrl'}}";
DcaeOperationStatusResponse responseObject = DcaeComponent.convertDcaeResponse(dcaeFakeResponse);
assertThat(responseObject.getRequestId()).isEqualTo("testId");
assertThat(responseObject.getOperationType()).isEqualTo("install");
diff --git a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java
index e1cee341..c85d5a57 100644
--- a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java
@@ -58,6 +58,9 @@ public class DeployFlowTestItCase {
@Autowired
LoopService loopService;
+ @Autowired
+ LoopsRepository loopsRepository;
+
@Test
@Transactional
public void deployWithSingleBlueprintTest() throws JsonSyntaxException, IOException {
@@ -86,8 +89,8 @@ public class DeployFlowTestItCase {
@Transactional
public void deployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException {
Loop loopTest2 = createLoop("ControlLoopTest2", "<xml></xml>", "yamlcontent", "{\"dcaeDeployParameters\": {"
- + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"},"
- + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}"
+ + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName1_tca\"},"
+ + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName2_tca\"}"
+ "}}", "UUID-blueprint");
LoopTemplate template = new LoopTemplate();
template.setName("templateName");
@@ -98,7 +101,7 @@ public class DeployFlowTestItCase {
"tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true);
loopTest2.addMicroServicePolicy(microServicePolicy1);
loopTest2.addMicroServicePolicy(microServicePolicy2);
- loopService.saveOrUpdateLoop(loopTest2);
+ loopsRepository.saveAndFlush(loopTest2);
Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2)
.build();
@@ -143,8 +146,8 @@ public class DeployFlowTestItCase {
@Transactional
public void undeployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException {
Loop loopTest2 = createLoop("ControlLoopTest2", "<xml></xml>", "yamlcontent", "{\"dcaeDeployParameters\": {"
- + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"},"
- + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}"
+ + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName1_tca\"},"
+ + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName2_tca\"}"
+ "}}", "UUID-blueprint");
LoopTemplate template = new LoopTemplate();
template.setName("templateName");
@@ -157,7 +160,7 @@ public class DeployFlowTestItCase {
"testDeploymentId2", "testDeploymentStatusUrl2");
loopTest2.addMicroServicePolicy(microServicePolicy1);
loopTest2.addMicroServicePolicy(microServicePolicy2);
- loopService.saveOrUpdateLoop(loopTest2);
+ loopsRepository.saveAndFlush(loopTest2);
Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2)
.build();
@@ -172,6 +175,77 @@ public class DeployFlowTestItCase {
assertThat(loopAfterTest.getDcaeDeploymentId()).isNull();
}
+
+ @Test
+ @Transactional
+ public void getStatusWithSingleBlueprintTest() throws JsonSyntaxException, IOException {
+ Loop loopTest = createLoop("ControlLoopTest", "<xml></xml>", "yamlcontent", "{\"testname\":\"testvalue\"}",
+ "UUID-blueprint");
+ LoopTemplate template = new LoopTemplate();
+ template.setName("templateName");
+ template.setBlueprint("yamlcontent");
+ loopTest.setLoopTemplate(template);
+ MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "",
+ "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0",
+ "{\"param1\":\"value1\"}", true);
+ loopTest.addMicroServicePolicy(microServicePolicy);
+ loopService.saveOrUpdateLoop(loopTest);
+ assertThat(loopTest.getComponents().size()).isEqualTo(2);
+ assertThat(loopTest.getComponent("DCAE")).isNotNull();
+ assertThat(loopTest.getComponent("POLICY")).isNotNull();
+ Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest)
+ .build();
+
+ camelContext.createProducerTemplate().send("direct:update-dcae-status-for-loop", myCamelExchange);
+
+ assertThat(loopTest.getComponent("DCAE").getState().getStateName()).isEqualTo("BLUEPRINT_DEPLOYED");
+
+ Loop loopAfterTest = loopService.getLoop("ControlLoopTest");
+ assertThat(loopAfterTest.getComponents().size()).isEqualTo(2);
+ assertThat(loopAfterTest.getComponent("DCAE")).isNotNull();
+ assertThat(loopAfterTest.getComponent("POLICY")).isNotNull();
+ }
+
+ @Test
+ @Transactional
+ public void getStatusWithMultipleBlueprintTest() throws JsonSyntaxException, IOException {
+ Loop loopTest = createLoop("ControlLoopTest", "<xml></xml>", "yamlcontent", "{\"testname\":\"testvalue\"}",
+ "UUID-blueprint");
+ LoopTemplate template = new LoopTemplate();
+ template.setName("templateName");
+ loopTest.setLoopTemplate(template);
+ MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "",
+ "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0",
+ "{\"param1\":\"value1\"}", true);
+ MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("configPolicyTest2", "",
+ "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0",
+ "{\"param1\":\"value1\"}", true);
+ loopTest.addMicroServicePolicy(microServicePolicy);
+ loopTest.addMicroServicePolicy(microServicePolicy2);
+ loopService.saveOrUpdateLoop(loopTest);
+ assertThat(loopTest.getComponents().size()).isEqualTo(3);
+ assertThat(loopTest.getComponent("DCAE")).isNull();
+ assertThat(loopTest.getComponent("DCAE_configPolicyTest")).isNotNull();
+ assertThat(loopTest.getComponent("DCAE_configPolicyTest2")).isNotNull();
+ assertThat(loopTest.getComponent("POLICY")).isNotNull();
+ Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest)
+ .build();
+
+ camelContext.createProducerTemplate().send("direct:update-dcae-status-for-loop", myCamelExchange);
+
+ assertThat(loopTest.getComponent("DCAE_configPolicyTest").getState().getStateName())
+ .isEqualTo("BLUEPRINT_DEPLOYED");
+ assertThat(loopTest.getComponent("DCAE_configPolicyTest2").getState().getStateName())
+ .isEqualTo("BLUEPRINT_DEPLOYED");
+
+ Loop loopAfterTest = loopService.getLoop("ControlLoopTest");
+ assertThat(loopAfterTest.getComponents().size()).isEqualTo(3);
+ assertThat(loopAfterTest.getComponent("DCAE")).isNull();
+ assertThat(loopAfterTest.getComponent("POLICY")).isNotNull();
+ assertThat(loopTest.getComponent("DCAE_configPolicyTest")).isNotNull();
+ assertThat(loopTest.getComponent("DCAE_configPolicyTest2")).isNotNull();
+ }
+
private Loop createLoop(String name, String svgRepresentation, String blueprint, String globalPropertiesJson,
String dcaeBlueprintId) throws JsonSyntaxException, IOException {
Loop loop = new Loop(name, svgRepresentation);
diff --git a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
index ad37bcc8..f1e5c092 100644
--- a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
@@ -39,6 +39,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.clamp.clds.Application;
import org.onap.clamp.clds.util.JsonUtils;
+import org.onap.clamp.loop.template.LoopTemplate;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
import org.onap.clamp.policy.microservice.MicroServicePolicyService;
import org.onap.clamp.policy.operational.OperationalPolicy;
@@ -68,6 +69,9 @@ public class LoopControllerTestItCase {
private void saveTestLoopToDb() {
Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint", "representation");
testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
+ LoopTemplate template = new LoopTemplate();
+ template.setName("testTemplate");
+ testLoop.setLoopTemplate(template);
loopService.saveOrUpdateLoop(testLoop);
}
diff --git a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java
index 615826ed..8089bf1a 100644
--- a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java
@@ -40,6 +40,7 @@ import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.loop.log.LogType;
import org.onap.clamp.loop.log.LoopLog;
import org.onap.clamp.loop.log.LoopLogService;
+import org.onap.clamp.loop.template.LoopTemplate;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
import org.onap.clamp.policy.microservice.MicroServicePolicyService;
import org.onap.clamp.policy.operational.OperationalPolicy;
@@ -175,6 +176,9 @@ public class LoopServiceTestItCase {
private void saveTestLoopToDb() {
Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint", "representation");
testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
+ LoopTemplate template = new LoopTemplate();
+ template.setName("testTemplate");
+ testLoop.setLoopTemplate(template);
loopService.saveOrUpdateLoop(testLoop);
}
@@ -296,6 +300,9 @@ public class LoopServiceTestItCase {
// Add log
Loop loop = loopsRepository.findById(EXAMPLE_LOOP_NAME).orElse(null);
loop.addLog(new LoopLog("test", LogType.INFO, "CLAMP", loop));
+ LoopTemplate template = new LoopTemplate();
+ template.setName("testTemplate");
+ loop.setLoopTemplate(template);
loop = loopService.saveOrUpdateLoop(loop);
// Add op policy
OperationalPolicy operationalPolicy = new OperationalPolicy("opPolicy", null,
diff --git a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java
index f8c1d866..ce1181d3 100644
--- a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java
+++ b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java
@@ -28,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.stream.Collectors;
import javax.transaction.Transactional;
@@ -52,11 +53,13 @@ public class PolicyModelServiceItCase {
@Autowired
PolicyModelsRepository policyModelsRepository;
- private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";
+ private static final String POLICY_MODEL_TYPE_1 = "org.onap.testos";
private static final String POLICY_MODEL_TYPE_1_VERSION_1 = "1.0.0";
- private static final String POLICY_MODEL_TYPE_2 = "org.onap.test2";
+ private static final String POLICY_MODEL_TYPE_2 = "org.onap.testos2";
+ private static final String POLICY_MODEL_TYPE_3 = "org.onap.testos3";
private static final String POLICY_MODEL_TYPE_2_VERSION_1 = "1.0.0";
+ private static final String POLICY_MODEL_TYPE_3_VERSION_1 = "1.0.0";
private static final String POLICY_MODEL_TYPE_2_VERSION_2 = "2.0.0";
private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym,
@@ -150,9 +153,17 @@ public class PolicyModelServiceItCase {
PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST",
"VARIANT", "user");
policyModelsService.saveOrUpdatePolicyModel(policyModel2);
+ PolicyModel policyModel3 = getPolicyModel(POLICY_MODEL_TYPE_3, "yaml", POLICY_MODEL_TYPE_3_VERSION_1, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel3);
SortedSet<PolicyModel> sortedSet = new TreeSet<>();
policyModelsService.getAllPolicyModels().forEach(sortedSet::add);
- assertThat(sortedSet).contains(policyModel2, policyModel1);
+ List<PolicyModel> listToCheck = sortedSet.stream().filter(
+ policy -> policy.equals(policyModel3) || policy.equals(policyModel2) || policy.equals(policyModel1))
+ .collect(Collectors.toList());
+ assertThat(listToCheck.get(0)).isEqualByComparingTo(policyModel2);
+ assertThat(listToCheck.get(1)).isEqualByComparingTo(policyModel1);
+ assertThat(listToCheck.get(2)).isEqualByComparingTo(policyModel3);
}
}
diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties
index bbade742..17c42f56 100644
--- a/src/test/resources/application.properties
+++ b/src/test/resources/application.properties
@@ -116,7 +116,7 @@ spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.use-new-id-generator-mappings=true
# Whether to enable logging of SQL statements.
-spring.jpa.show-sql=true
+#spring.jpa.show-sql=true
#Async Executor default Parameters
async.core.pool.size=10
@@ -148,33 +148,6 @@ clamp.config.policy.pap.url=http4://localhost:${docker.http-cache.port.host}
clamp.config.policy.pap.userName=healthcheck
clamp.config.policy.pap.password=zb!XztG34
-clamp.config.policy.pdpUrl1=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123
-clamp.config.policy.pdpUrl2=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123
-clamp.config.policy.papUrl=http://localhost:${docker.http-cache.port.host}/pap/ , testpap, alpha123
-clamp.config.policy.notificationType=websocket
-clamp.config.policy.notificationUebServers=localhost
-clamp.config.policy.notificationTopic=
-clamp.config.policy.clientId=python
-# base64 encoding
-clamp.config.policy.clientKey=dGVzdA==
-#DEVL for development
-#TEST for Test environments
-#PROD for prod environments
-clamp.config.policy.policyEnvironment=DEVL
-# General Policy request properties
-#
-clamp.config.policy.onap.name=DCAE
-clamp.config.policy.pdp.group=default
-clamp.config.policy.ms.type=MicroService
-clamp.config.policy.ms.policyNamePrefix=Config_MS_
-clamp.config.policy.op.policyNamePrefix=Config_BRMS_Param_
-clamp.config.policy.base.policyNamePrefix=Config_
-clamp.config.policy.op.type=BRMS_Param
-
-clamp.config.import.tosca.model=false
-clamp.config.tosca.policyTypes=tca
-clamp.config.tosca.filePath=/tmp/tosca-models
-
# TCA MicroService Policy request build properties
#
clamp.config.tca.policyid.prefix=DCAE.Config_
diff --git a/src/test/resources/clds/OperationalPolicyRepresentationBuilderTest.java b/src/test/resources/clds/OperationalPolicyRepresentationBuilderTest.java
deleted file mode 100644
index 904525be..00000000
--- a/src/test/resources/clds/OperationalPolicyRepresentationBuilderTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*-
- * ============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.policy.operational;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonObject;
-
-import java.io.IOException;
-
-import org.junit.Test;
-import org.onap.clamp.clds.util.ResourceFileUtil;
-import org.skyscreamer.jsonassert.JSONAssert;
-
-public class OperationalPolicyRepresentationBuilderTest {
-
- @Test
- public void testOperationalPolicyPayloadConstruction() throws IOException {
- JsonObject jsonModel = new GsonBuilder().create()
- .fromJson(ResourceFileUtil.getResourceAsString("tosca/model-properties.json"), JsonObject.class);
-
- JsonObject jsonSchema = OperationalPolicyRepresentationBuilder.generateOperationalPolicySchema(jsonModel);
-
- assertThat(jsonSchema).isNotNull();
-
- JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/operational-policy-json-schema.json"),
- new GsonBuilder().create().toJson(jsonSchema), false);
- }
-
-}
diff --git a/src/test/resources/clds/blueprint-parser-mapping.json b/src/test/resources/clds/blueprint-parser-mapping.json
deleted file mode 100644
index a22e9fcf..00000000
--- a/src/test/resources/clds/blueprint-parser-mapping.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[
- {
- "blueprintKey": "tca_",
- "dcaeDeployable":"true",
- "files": {
- "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/tca-template.xml",
- "svgXmlFilePath": "classpath:/clds/templates/bpmn/tca-img.xml"
- }
- },
- {
- "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/clds/blueprint-with-microservice-chain.yaml b/src/test/resources/clds/blueprint-with-microservice-chain.yaml
index fa2d7205..0e9e4bc8 100644
--- a/src/test/resources/clds/blueprint-with-microservice-chain.yaml
+++ b/src/test/resources/clds/blueprint-with-microservice-chain.yaml
@@ -1,98 +1,202 @@
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://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.4/k8splugin_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:
- first_app_docker_image:
+ aaiEnrichmentHost:
+ type: string
+ 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: "image1"
- second_app_docker_image:
+ default: "3904"
+ enableRedisCaching:
type: string
- default: "image2"
- third_app_docker_image:
+ default: false
+ redisHosts:
type: string
- default: "image3"
- dmaap_ip:
+ default: dcae-redis.onap.svc.cluster.local:6379
+ tag_version:
type: string
- default: "message-router:3904"
- dmaap_topic:
+ default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest"
+ consul_host:
type: string
- default: "/events/unauthenticated.DCAE_CL_OUTPUT"
+ 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: "policy_id"
+ default: "none"
+ external_port:
+ 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:
- second_app:
- type: dcae.nodes.ContainerizedServiceComponentUsingDmaap
+ first_app:
+ type: dcae.nodes.ContainerizedServiceComponent
properties:
- service_component_type: dcaegen2-analytics-tca
- service_component_name_override: second_app
- image: { get_input: second_app_docker_image }
- policy_id:
- policy_model_id: "type2"
- interfaces:
- cloudify.interfaces.lifecycle:
- start:
- inputs:
- envs:
- grpc_server.host: "first_app.onap"
- dmaap_ip: {get_input: dmaap_ip}
- dmapp_topic: {get_input: dmaap_topic}
- policy_id: {get_input: policy_id}
- ports:
- - 8080:8080
+ service_component_type: 'dcaegen2-analytics-tca'
+ application_config: {}
+ docker_config: {}
+ image:
+ get_input: tag_version
+ log_info:
+ log_directory: "/opt/app/TCAnalytics/logs"
relationships:
- - type: cloudify.relationships.connected_to
- target: first_app
+ - target: tca_policy_1
+ type: cloudify.relationships.depends_on
+ second_app:
+ type: dcae.nodes.ContainerizedServiceComponent
+ relationships:
+ - target: tca_policy_2
+ type: cloudify.relationships.depends_on
- type: clamp_node.relationships.gets_input_from
target: first_app
- first_app:
- type: dcae.nodes.ContainerizedPlatformComponent
properties:
- name: first_app
- dns_name: "first_app"
- image: { get_input: first_app_docker_image }
- container_port: 6565
- policy_id:
- policy_model_id: "type1"
+ 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:
- dmaap_ip: {get_input: dmaap_ip}
- dmapp_topic: {get_input: dmaap_topic}
- policy_id: {get_input: policy_id}
+ 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:
- - 8081:8081
+ - concat: ["11011:", { get_input: external_port }]
+ third_app:
+ type: dcae.nodes.ContainerizedServiceComponent
+ properties:
+ service_component_type: 'dcaegen2-analytics-tca'
+ application_config: {}
+ docker_config: {}
+ image:
+ get_input: tag_version
+ log_info:
+ log_directory: "/opt/app/TCAnalytics/logs"
relationships:
- - type: cloudify.relationships.connected_to
- target: third_app
+ - target: tca_policy_3
+ type: cloudify.relationships.depends_on
- type: clamp_node.relationships.gets_input_from
- target: third_app
-
- third_app:
- type: dcae.nodes.ContainerizedPlatformComponent
+ target: second_app
+ tca_policy_1:
+ type: dcae.nodes.policy
properties:
- name: third_app
- dns_name: "third_app"
- image: { get_input: third_app_docker_image }
- container_port: 443
policy_id:
- policy_model_id: "type3"
- interfaces:
- cloudify.interfaces.lifecycle:
- start:
- inputs:
- envs:
- dmaap_ip: {get_input: dmaap_ip}
- dmapp_topic: {get_input: dmaap_topic}
- policy_id: {get_input: policy_id}
- ports:
- - 8082:8082
- tca_policy:
+ get_input: policy_id
+ policy_model_id:
+ get_input: policy_model_id
+ tca_policy_2:
type: dcae.nodes.policy
properties:
- policy_id: { get_input: policy_id } \ No newline at end of file
+ policy_id:
+ get_input: policy_id
+ policy_model_id:
+ get_input: policy_model_id
+
+ tca_policy_3:
+ type: dcae.nodes.policy
+ properties:
+ policy_id:
+ get_input: policy_id
+ policy_model_id:
+ get_input: policy_model_id
diff --git a/src/test/resources/clds/camel/rest/clamp-api-v2.xml b/src/test/resources/clds/camel/rest/clamp-api-v2.xml
index cf99625e..a0a3eb10 100644
--- a/src/test/resources/clds/camel/rest/clamp-api-v2.xml
+++ b/src/test/resources/clds/camel/rest/clamp-api-v2.xml
@@ -238,6 +238,48 @@
</route>
</put>
<put
+ uri="/v2/loop/refreshOpPolicyJsonSchema/{loopName}"
+ outType="org.onap.clamp.loop.Loop"
+ produces="application/json">
+ <route>
+ <removeHeaders
+ pattern="*"
+ excludePattern="loopName" />
+ <doTry>
+ <log
+ loggingLevel="INFO"
+ message="Refresh Operational Policy UI for loop: ${header.loopName}" />
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REFRESH OP Policy UI request')" />
+ <to
+ uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+ <to uri="direct:load-loop" />
+ <to
+ uri="bean:org.onap.clamp.loop.LoopController?method=refreshOpPolicyJsonRepresentation(${header.loopName})" />
+ <log
+ loggingLevel="INFO"
+ message="REFRESH request successfully executed for loop: ${header.loopName}" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+ <doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+ <log
+ loggingLevel="ERROR"
+ message="REFRESH request failed for loop: ${header.loopName}" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+ </doCatch>
+ </doTry>
+ </route>
+ </put>
+ <put
uri="/v2/loop/undeploy/{loopName}"
outType="org.onap.clamp.loop.Loop"
produces="application/json">
diff --git a/src/test/resources/clds/camel/routes/dcae-flows.xml b/src/test/resources/clds/camel/routes/dcae-flows.xml
index 48cda7a0..8088c2a4 100644
--- a/src/test/resources/clds/camel/routes/dcae-flows.xml
+++ b/src/test/resources/clds/camel/routes/dcae-flows.xml
@@ -3,12 +3,12 @@
<from uri="direct:deploy-loop" />
<choice>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
</simple>
<to uri="direct:deploy-loop-single-blueprint" />
</when>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
</simple>
<to uri="direct:deploy-loop-multi-blueprint" />
</when>
@@ -74,6 +74,8 @@
</setProperty>
<to
uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Deploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" />
</split>
<doCatch>
<exception>java.lang.Exception</exception>
@@ -170,12 +172,12 @@
<from uri="direct:undeploy-loop" />
<choice>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
</simple>
<to uri="direct:undeploy-loop-single-blueprint" />
</when>
<when>
- <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
</simple>
<to uri="direct:undeploy-loop-multi-blueprint" />
</when>
@@ -238,12 +240,14 @@
</setProperty>
<to
uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[microServicePolicy].getDcaeDeploymentId()},${exchangeProperty[dcaeStatusUrl]})" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" />
</when>
<otherwise>
<log loggingLevel="WARNING"
message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !" />
<to
- uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" />
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING','DCAE',${exchangeProperty[loopObject]})" />
</otherwise>
</choice>
</split>
@@ -344,7 +348,7 @@
<route id="get-dcae-deployment-status">
<from uri="direct:get-dcae-deployment-status" />
<log loggingLevel="INFO"
- message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()}" />
+ message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()} - ${exchangeProperty[dcaeComponent].getComponentName()}" />
<to
uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')" />
<doTry>
@@ -364,9 +368,9 @@
</simple>
</setHeader>
<log loggingLevel="INFO"
- message="Endpoint to query Closed Loop status: ${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}"></log>
+ message="Endpoint to query Closed Loop status: ${exchangeProperty[getStatusUrl]}"></log>
<toD
- uri="${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ uri="${exchangeProperty[getStatusUrl]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
<doFinally>
<to uri="direct:reset-raise-http-exception-flag" />
<to
@@ -448,9 +452,9 @@
<split>
<simple>${exchangeProperty[dcaeResponseList]}</simple>
<convertBodyTo type="org.onap.clamp.clds.model.dcae.DcaeInventoryResponse" />
- <setProperty propertyName="dcaeResponse">
- <simple>${body}</simple>
- </setProperty>
+ <setProperty propertyName="dcaeResponse">
+ <simple>${body}</simple>
+ </setProperty>
<to uri="bean:org.onap.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})" />
</split>
<doFinally>
diff --git a/src/test/resources/clds/camel/routes/loop-flows.xml b/src/test/resources/clds/camel/routes/loop-flows.xml
index 036e8efc..c4e9fee6 100644
--- a/src/test/resources/clds/camel/routes/loop-flows.xml
+++ b/src/test/resources/clds/camel/routes/loop-flows.xml
@@ -17,7 +17,6 @@
<stop />
</when>
</route>
-
<route id="update-policy-status-for-loop">
<from uri="direct:update-policy-status-for-loop" />
<setProperty propertyName="policyComponent">
@@ -109,37 +108,84 @@
<from uri="direct:update-dcae-status-for-loop" />
<log loggingLevel="INFO"
message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" />
- <setProperty propertyName="dcaeComponent">
- <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
- </setProperty>
- <when>
- <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}
- != null
- </simple>
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:get-dcae-deployment-status" />
+ <choice>
<when>
- <simple> ${header.CamelHttpResponseCode} == 200 </simple>
- <convertBodyTo type="java.lang.String" />
- <setProperty propertyName="dcaeResponse">
- <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
- method="convertDcaeResponse(${body})" />
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
+ </simple>
+ <setProperty propertyName="dcaeComponent">
+ <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
+ </setProperty>
+ <when>
+ <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} != null
+ </simple>
+ <setProperty propertyName="getStatusUrl">
+ <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}</simple>
+ </setProperty>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <to uri="direct:get-dcae-deployment-status" />
+ <when>
+ <simple> ${header.CamelHttpResponseCode} == 200 </simple>
+ <convertBodyTo type="java.lang.String" />
+ <setProperty propertyName="dcaeResponse">
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="convertDcaeResponse(${body})" />
+ </setProperty>
+ </when>
+ </when>
+ <setProperty propertyName="dcaeState">
+ <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
+ </simple>
</setProperty>
+ <log loggingLevel="INFO"
+ message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" />
</when>
- </when>
-
- <setProperty propertyName="dcaeState">
- <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
- </simple>
- </setProperty>
- <log loggingLevel="INFO"
- message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
- <to
- uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" />
-
- </route>
+ <when>
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
+ </simple>
+ <split>
+ <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
+ </simple>
+ <setProperty propertyName="microServicePolicy">
+ <simple>${body}</simple>
+ </setProperty>
+ <setProperty propertyName="dcaeComponent">
+ <simple>${exchangeProperty[loopObject].getComponent('DCAE_' + ${exchangeProperty[microServicePolicy].getName())}</simple>
+ </setProperty>
+ <when>
+ <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()} != null
+ </simple>
+ <setProperty propertyName="getStatusUrl">
+ <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()}</simple>
+ </setProperty>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <to uri="direct:get-dcae-deployment-status" />
+ <when>
+ <simple> ${header.CamelHttpResponseCode} == 200 </simple>
+ <convertBodyTo type="java.lang.String" />
+ <setProperty propertyName="dcaeResponse">
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="convertDcaeResponse(${body})" />
+ </setProperty>
+ </when>
+ </when>
+ <setProperty propertyName="dcaeState">
+ <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
+ </simple>
+ </setProperty>
+ <log loggingLevel="INFO"
+ message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[microServicePolicy]})" />
+ </split>>
+ </when>
+ </choice>
+ </route>
<route id="direct:update-loop-state">
<from uri="direct:update-loop-state" />
<log loggingLevel="INFO"
diff --git a/src/test/resources/clds/camel/routes/policy-flows.xml b/src/test/resources/clds/camel/routes/policy-flows.xml
index 75ac66c6..c28e4543 100644
--- a/src/test/resources/clds/camel/routes/policy-flows.xml
+++ b/src/test/resources/clds/camel/routes/policy-flows.xml
@@ -1,520 +1,587 @@
<routes xmlns="http://camel.apache.org/schema/spring">
- <route id="verify-one-policy">
- <from uri="direct:verify-one-policy" />
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:get-policy" />
- <when>
- <simple> ${header.CamelHttpResponseCode} != 200 </simple>
- <setProperty propertyName="policyFound">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <log loggingLevel="WARN"
- message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}" />
- </when>
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:get-deployment-policy" />
- <when>
- <simple> ${header.CamelHttpResponseCode} != 200 </simple>
- <setProperty propertyName="policyDeployed">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <log loggingLevel="WARN"
- message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}" />
- </when>
- <setProperty propertyName="newPolicyState">
- <simple>${exchangeProperty[policyComponent].computeState(*)}</simple>
- </setProperty>
- </route>
-
- <route id="get-policy">
- <from uri="direct:get-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Getting Policy: ${exchangeProperty[policyName]}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')" />
- <setHeader headerName="CamelHttpMethod">
- <constant>GET</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[policyName]} GET
- Policy status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
-
- <route id="get-deployment-policy">
- <from uri="direct:get-deployment-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')" />
- <setHeader headerName="CamelHttpMethod">
- <constant>GET</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to get policy deployment status: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[policyName]} GET Policy deployment
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
+ <route id="verify-one-policy">
+ <from uri="direct:verify-one-policy"/>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
</setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
- <route id="create-micro-service-policy">
- <from uri="direct:create-micro-service-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')" />
- <setBody>
- <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[microServicePolicy].getName()} creation
- status
- </simple>
+ <to uri="direct:get-policy"/>
+ <when>
+ <simple> ${header.CamelHttpResponseCode} != 200 </simple>
+ <setProperty propertyName="policyFound">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <log loggingLevel="WARN"
+ message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}"/>
+ </when>
+ <setProperty propertyName="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">false</simple>
</setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
+ <to uri="direct:get-deployment-policy"/>
+ <when>
+ <simple> ${header.CamelHttpResponseCode} != 200 </simple>
+ <setProperty propertyName="policyDeployed">
+ <simple resultType="java.lang.Boolean">false</simple>
+ </setProperty>
+ <log loggingLevel="WARN"
+ message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}"/>
+ </when>
+ <setProperty propertyName="newPolicyState">
+ <simple>${exchangeProperty[policyComponent].computeState(*)}</simple>
</setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ </route>
- <route id="delete-micro-service-policy">
- <from uri="direct:delete-micro-service-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')" />
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <route id="get-policy">
+ <from uri="direct:get-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Getting Policy: ${exchangeProperty[policyName]}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[policyName]} GET
+ Policy status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[microServicePolicy].getName()} removal
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="get-deployment-policy">
+ <from uri="direct:get-deployment-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log>
+ <toD
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[policyName]} GET Policy deployment
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="get-all-policy-models">
+ <from uri="direct:get-all-policy-models"/>
+ <doTry>
+ <log loggingLevel="INFO" message="Getting all the policy models"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting all the policy models')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get all policy models: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <convertBodyTo type="java.lang.String"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="get-policy-model">
+ <from uri="direct:get-policy-model"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Getting the policy model: ${exchangeProperty[policyModelName]}/${exchangeProperty[policyModelVersion]}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy model')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <convertBodyTo type="java.lang.String"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="create-micro-service-policy">
+ <from uri="direct:create-micro-service-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')"/>
+ <setBody>
+ <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[microServicePolicy].getName()} creation
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="create-operational-policy">
- <from uri="direct:create-operational-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')" />
- <setBody>
- <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[operationalPolicy].getName()} creation
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="delete-micro-service-policy">
+ <from uri="direct:delete-micro-service-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')"/>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
- <route id="delete-operational-policy">
- <from uri="direct:delete-operational-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')" />
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[operationalPolicy].getName()} removal
- status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[microServicePolicy].getName()} removal
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="create-guard-policy">
- <from uri="direct:create-guard-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')" />
- <setBody>
- <simple>${exchangeProperty[guardPolicy].getValue()}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[guardPolicy].getKey()} creation status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="create-operational-policy">
+ <from uri="direct:create-operational-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')"/>
+ <setBody>
+ <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[operationalPolicy].getName()} creation
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="delete-guard-policy">
- <from uri="direct:delete-guard-policy" />
- <doTry>
- <log loggingLevel="INFO"
- message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')" />
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <route id="delete-operational-policy">
+ <from uri="direct:delete-operational-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')"/>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[operationalPolicy].getName()} removal
+ status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[guardPolicy].getKey()} removal status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <route id="create-guard-policy">
+ <from uri="direct:create-guard-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')"/>
+ <setBody>
+ <simple>${exchangeProperty[guardPolicy].getValue()}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[guardPolicy].getKey()} creation status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="add-all-to-active-pdp-group">
- <from uri="direct:add-all-to-active-pdp-group" />
- <doTry>
- <log loggingLevel="INFO"
- message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')" />
- <setBody>
- <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log>
- <toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <route id="delete-guard-policy">
+ <from uri="direct:delete-guard-policy"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')"/>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- <setProperty propertyName="logMessage">
- <simple>PDP Group push ALL status</simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
- </route>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[guardPolicy].getKey()} removal status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
- <route id="remove-all-policy-from-active-pdp-group">
- <from uri="direct:remove-all-policy-from-active-pdp-group" />
- <doTry>
- <log loggingLevel="INFO"
- message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')" />
- <split>
- <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])}
- </simple>
- <setProperty propertyName="policyName">
- <simple>${body}</simple>
- </setProperty>
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log>
- <toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[policyName]} PDP Group removal status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </split>
- <doCatch>
- <exception>java.lang.Exception</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <setProperty propertyName="logMessage">
- <simple>PDP Group removal, Error reported: ${exception}</simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doCatch>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- </doFinally>
- </doTry>
- </route>
+ <route id="add-all-to-active-pdp-group">
+ <from uri="direct:add-all-to-active-pdp-group"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')"/>
+ <setBody>
+ <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])}
+ </simple>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ <setProperty propertyName="logMessage">
+ <simple>PDP Group push ALL status</simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doFinally>
+ </doTry>
+ </route>
+
+ <route id="remove-all-policy-from-active-pdp-group">
+ <from uri="direct:remove-all-policy-from-active-pdp-group"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')"/>
+ <split>
+ <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])}
+ </simple>
+ <setProperty propertyName="policyName">
+ <simple>${body}</simple>
+ </setProperty>
+ <setBody>
+ <constant>null</constant>
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log>
+ <toD
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <setProperty propertyName="logMessage">
+ <simple>${exchangeProperty[policyName]} PDP Group removal status
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </split>
+ <doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <setProperty propertyName="logMessage">
+ <simple>PDP Group removal, Error reported: ${exception}</simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>POLICY</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response"/>
+ </doCatch>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
</routes> \ No newline at end of file
diff --git a/src/test/resources/clds/holmes-old-style-ms.yaml b/src/test/resources/clds/holmes-old-style-ms.yaml
deleted file mode 100644
index 3f0c9a60..00000000
--- a/src/test/resources/clds/holmes-old-style-ms.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-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
- location_id:
- type: string
- service_id:
- type: string
- policy_id:
- type: string
- default: "CLAMPPolicyTriggerNoaapp_v1_0_29b0578b_dcee_472c_8cdd0.ClosedLoop_860ee9f2_ba64_11e8_a16b_02bd571477fe_TCA_1d13unw"
-node_templates:
- policy_0:
- type: dcae.nodes.policy
- properties:
- policy_model: policy.nodes.holmes
- policy_filter: "DCAE.Config_Holmes.*"
- policy_id:
- get_input: policy_id
- 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:
- 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: <<topic0>>
- type: message_router
- - sec_measurement:
- aaf_password:
- get_input: topic1_aaf_password
- aaf_username:
- get_input: topic1_aaf_username
- dmaap_info: <<topic1>>
- 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
- - 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/clds/single-microservice-fragment-valid.yaml b/src/test/resources/clds/single-microservice-fragment-invalid.yaml
index 2c168071..2c168071 100644
--- a/src/test/resources/clds/single-microservice-fragment-valid.yaml
+++ b/src/test/resources/clds/single-microservice-fragment-invalid.yaml
diff --git a/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml b/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml
new file mode 100644
index 00000000..ae31fb16
--- /dev/null
+++ b/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml
@@ -0,0 +1,21 @@
+second_app:
+ type: dcae.nodes.ContainerizedServiceComponentUsingDmaap
+ properties:
+ service_component_type: dcaegen2-analytics-tca
+ service_component_name_override: second_app
+ image: { get_input: second_app_docker_image }
+ name: second_app
+ policy_id:
+ policy_model_id: "type1"
+ policy_model_version: "10.0.0"
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ start:
+ inputs:
+ envs:
+ grpc_server.host: "first_app.onap"
+ dmaap_ip: {get_input: dmaap_ip}
+ dmapp_topic: {get_input: dmaap_topic}
+ policy_id: {get_input: policy_id}
+ ports:
+ - 8080:8080
diff --git a/src/test/resources/clds/tca-old-style-ms.yaml b/src/test/resources/clds/tca-old-style-ms.yaml
deleted file mode 100644
index b976190a..00000000
--- a/src/test/resources/clds/tca-old-style-ms.yaml
+++ /dev/null
@@ -1,169 +0,0 @@
-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
-
diff --git a/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml b/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml
deleted file mode 100644
index f180a7df..00000000
--- a/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml
+++ /dev/null
@@ -1,174 +0,0 @@
-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:
- 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:
- 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: <<topic0>>
- type: message_router
- - sec_measurement:
- aaf_password:
- get_input: topic1_aaf_password
- aaf_username:
- get_input: topic1_aaf_username
- dmaap_info: <<topic1>>
- 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
- - 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/blueprint-dcae/not-recognized.yaml b/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml
deleted file mode 100644
index 6522885f..00000000
--- a/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml
+++ /dev/null
@@ -1,130 +0,0 @@
-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: <<topic1_n.1519416493404.5>>
- type: message_router
- streams_subscribes:
- DCAE_PM_DATA_C_M:
- dmaap_info: <<feed_n.1519416394214.2>>
- 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/prop-text-for-tca-2.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json
deleted file mode 100644
index d7a54162..00000000
--- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "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": {
- "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": "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
deleted file mode 100644
index 012c46e9..00000000
--- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "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",
- "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app"
- }
- }
- ]
-} \ No newline at end of file
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
deleted file mode 100644
index ce3158d9..00000000
--- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "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"
- }
- }
- ]
-}
diff --git a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file b/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file
deleted file mode 100644
index 0637a088..00000000
--- a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file
+++ /dev/null
@@ -1 +0,0 @@
-[] \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/pdp/api/getConfig/.file b/src/test/resources/http-cache/example/pdp/api/getConfig/.file
deleted file mode 100644
index fb2ad04b..00000000
--- a/src/test/resources/http-cache/example/pdp/api/getConfig/.file
+++ /dev/null
@@ -1,2 +0,0 @@
-[{"policyConfigMessage":"Config Retrieved! ","policyConfigStatus":"CONFIG_RETRIEVED","type":"JSON","config":"{\"service\":\"tca_policy\",\"location\":\"SampleServiceLocation\",\"uuid\":\"test\",\"policyName\":\"MicroServicevCPE\",\"description\":\"MicroService vCPE Policy\",\"configName\":\"SampleConfigName\",\"templateVersion\":\"OpenSource.version.1\",\"version\":\"1.1.0\",\"priority\":\"1\",\"policyScope\":\"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\",\"guard\":\"False\",\"content\":{\"tca_policy\":{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"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\"}]}]}}}","policyName":"com.Config_MS_MicroServicevCPE.1.xml","policyVersion":"1","matchingConditions":{"ONAPName":"DCAE","ConfigName":"SampleConfigName","service":"tca_policy","uuid":"test","Location":"SampleServiceLocation"},"responseAttributes":{},"property":null},
-{"policyConfigMessage":"Config Retrieved! ","policyConfigStatus":"CONFIG_RETRIEVED","type":"JSON","config":"{\"service\":\"tca_policy\",\"location\":\"SampleServiceLocation\",\"uuid\":\"test\",\"policyName\":\"MicroServicevCPE\",\"description\":\"MicroService vCPE Policy\",\"configName\":\"SampleConfigName\",\"templateVersion\":\"OpenSource.version.1\",\"version\":\"1.1.0\",\"priority\":\"1\",\"policyScope\":\"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\",\"guard\":\"False\",\"content\":{\"tca_policy\":{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"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\"}]}]}}}","policyName":"ClHolmes1.Config_ClosedLoop_f142fc95_2601_11e8_89ce_0242ac130002_null","policyVersion":"1","matchingConditions":{"ONAPName":"DCAE","ConfigName":"SampleConfigName","service":"tca_policy","uuid":"test","Location":"SampleServiceLocation"},"responseAttributes":{},"property":null}] \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/pdp/api/getConfig/.header b/src/test/resources/http-cache/example/pdp/api/getConfig/.header
deleted file mode 100644
index 9958716f..00000000
--- a/src/test/resources/http-cache/example/pdp/api/getConfig/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Transfer-Encoding": "chunked", "Date": "Mon, 12 Mar 2018 15:03:26 GMT", "Content-Type": "application/json;charset=UTF-8", "Server": "Apache-Coyote/1.1"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.file b/src/test/resources/http-cache/example/pdp/api/pushPolicy/.file
deleted file mode 100644
index 0637a088..00000000
--- a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.file
+++ /dev/null
@@ -1 +0,0 @@
-[] \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.header b/src/test/resources/http-cache/example/pdp/api/pushPolicy/.header
deleted file mode 100644
index 6a280d97..00000000
--- a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.file b/src/test/resources/http-cache/example/pdp/api/updatePolicy/.file
deleted file mode 100644
index 0637a088..00000000
--- a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.file
+++ /dev/null
@@ -1 +0,0 @@
-[] \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.header b/src/test/resources/http-cache/example/pdp/api/updatePolicy/.header
deleted file mode 100644
index 6a280d97..00000000
--- a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file
new file mode 100644
index 00000000..7394d3f9
--- /dev/null
+++ b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file
@@ -0,0 +1,60 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ - onap.policies.Monitoring:
+ version: 1.0.0
+ description: A base policy type for all policies that govern monitoring provision
+ derived_from: tosca.policies.Root
+ properties:
+ # Omitted for brevity, see Section 1
+
+ - onap.policies.controlloop.Operational:
+ version: 1.0.0
+ description: Operational Policy for Control Loops
+ derived_from: tosca.policies.Root
+ properties:
+ # Omitted for brevity, see Section 1
+
+ - onap.policies.controloop.operational.Drools:
+ version: 1.0.0
+ description: Operational Policy for Control Loops using the Drools PDP
+ derived_from: onap.policies.controlloop.Operational
+ properties:
+ # Omitted for brevity, see Section 1
+
+ - onap.policies.controloop.operational.Apex:
+ version: 1.0.0
+ description: Operational Policy for Control Loops using the APEX PDP
+ derived_from: onap.policies.controlloop.Operational
+ properties:
+ # Omitted for brevity, see Section 1
+
+ - onap.policies.controlloop.Guard:
+ version: 1.0.0
+ description: Operational Policy for Control Loops
+ derived_from: tosca.policies.Root
+ properties:
+ # Omitted for brevity, see Section 1
+
+ - onap.policies.controlloop.guard.FrequencyLimiter:
+ version: 1.0.0
+ description: Supports limiting the frequency of actions being taken by a Actor.
+ derived_from: onap.policies.controlloop.Guard
+ properties:
+ # Omitted for brevity, see Section 1
+
+ - onap.policies.controlloop.guard.Blacklist:
+ version: 1.0.0
+ description: Supports blacklist of VNF's from performing control loop actions on.
+ derived_from: onap.policies.controlloop.Guard
+ properties:
+ # Omitted for brevity, see Section 1
+
+ - onap.policies.controlloop.guard.MinMax:
+ version: 1.0.0
+ description: Supports Min/Max number of VF Modules
+ derived_from: onap.policies.controlloop.Guard
+ properties:
+ # Omitted for brevity, see Section 1
+
+data_types:
+ # Any bespoke data types referenced by policy type definitions[]
diff --git a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.header b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header
index 6a280d97..6a280d97 100644
--- a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.header
+++ b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=CVFC/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=CVFC/.file
deleted file mode 100644
index 7115df3f..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=CVFC/.file
+++ /dev/null
@@ -1 +0,0 @@
-[{"uuid":"a01ebd00-4b64-4607-8422-c3733735800d","invariantUUID":"dd6edb9e-015e-45ae-9597-bac06687f9e3","name":"vLoadBalancer-nodes.vdnsCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"948da0c9-536e-4688-85eb-d906fe7324b3","invariantUUID":"702cbc3d-5669-426d-aba6-6ddf4d4a702b","name":"vLoadBalancer-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"38b62ebd-276a-48e8-948b-de76c81d6686","invariantUUID":"2ef814e3-7c17-420c-bdba-e84e338cd991","name":"vLoadBalancer-nodes.vdns_1Cvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"228aac11-6e48-4412-afbf-327c5c3b04fb","invariantUUID":"ba4d4b5d-f861-4155-886b-b1cdba5e0957","name":"vLoadBalancer-nodes.vlbCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"2bbcbcce-f9e2-4f5d-b975-1f1122d3226c","invariantUUID":"28142b9a-7925-4921-bc81-178c5bae4a9b","name":"vPacketGen-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"701bf7b7-ddf1-4658-af5f-66c815348fd3","invariantUUID":"53ebeed7-84db-4638-b1f3-8ed44c75985b","name":"vFirewall-nodes.vfwCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"d6a5add1-162a-4966-80a6-8ba53d83b17f","invariantUUID":"74805001-19f5-4c2c-9928-03014161c32a","name":"vFirewall-nodes.vsnCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"}] \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=CVFC/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=CVFC/.header
deleted file mode 100644
index e7f1e849..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=CVFC/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "2612", "Set-Cookie": "JSESSIONID=17p45w15arnkc191z2olo4e8qe;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "485020fa-b5f7-4d30-9473-e201326ed649"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VF/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VF/.file
deleted file mode 100644
index 253046a9..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VF/.file
+++ /dev/null
@@ -1 +0,0 @@
-[{"uuid":"c041f64d-8d8f-4f89-906f-79dccc63e7f5","invariantUUID":"48504e0e-f3d3-411d-a52b-eda1b8fec073","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/toscaModel","category":"Application L4+","subCategory":"Load Balancer","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007"},{"uuid":"98c27d0b-9395-4f8b-87ab-e076cd1f627e","invariantUUID":"07e266fc-49ab-4cd7-8378-ca4676f1b9ec","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/toscaModel","category":"Application L4+","subCategory":"Firewall","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007"},{"uuid":"a004b0d8-54bd-4ede-9311-c75dc608e9fd","invariantUUID":"023a3f0d-1161-45ff-b4cf-8918a8ccf3ad","name":"vPacketGen","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/toscaModel","category":"Application L4+","subCategory":"Web Server","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007"}] \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VF/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VF/.header
deleted file mode 100644
index ff1f54a0..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VF/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1099", "Set-Cookie": "JSESSIONID=1cmvc2wrt6df31psfrfvp7y670;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "a37e7d9c-effe-4354-94df-77774dd239d3"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VFC/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VFC/.file
deleted file mode 100644
index 542fc479..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VFC/.file
+++ /dev/null
@@ -1 +0,0 @@
-[{"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/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VFC/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VFC/.header
deleted file mode 100644
index 6a280d97..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources&#63;resourceType=VFC/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.file
deleted file mode 100644
index 5a84698e..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"228aac11-6e48-4412-afbf-327c5c3b04fb","invariantUUID":"ba4d4b5d-f861-4155-886b-b1cdba5e0957","name":"vLoadBalancer-nodes.vlbCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vlb","resources":[{"resourceInstanceName":"vlb_vlb_private_2_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vlb_vlb_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vlb","resourceName":"Vloadbalancer.nodes.heat.vlb","resourceInvariantUUID":"3ff44c1d-0384-4501-8e33-dd3000799378","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d"},{"resourceInstanceName":"vlb_vlb_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.header
deleted file mode 100644
index 439efd9f..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1539", "Set-Cookie": "JSESSIONID=2hdxvh0c2nj012gw8yu63ffd1;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "1a2d5fef-de1c-478e-bf5c-7df1bc37870e"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.file
deleted file mode 100644
index e0b3cd72..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"2bbcbcce-f9e2-4f5d-b975-1f1122d3226c","invariantUUID":"28142b9a-7925-4921-bc81-178c5bae4a9b","name":"vPacketGen-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vpacketgencvfc.abstract.nodes.vpg","resources":[{"resourceInstanceName":"vpg_vpg_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vpg","resourceName":"Vpacketgen.nodes.heat.vpg","resourceInvariantUUID":"86769df9-139b-489f-949d-05efb7f0ed6a","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"c8a01686-2762-483c-98ad-a66606b9947f"},{"resourceInstanceName":"vpg_vpg_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.header
deleted file mode 100644
index 27e67e5c..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1290", "Set-Cookie": "JSESSIONID=1uooiet6i9dyt17t85aw0rkxkc;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "f50d8d8a-f63d-44cc-bc32-5c8b0e47305c"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.file
deleted file mode 100644
index 9f717326..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"38b62ebd-276a-48e8-948b-de76c81d6686","invariantUUID":"2ef814e3-7c17-420c-bdba-e84e338cd991","name":"vLoadBalancer-nodes.vdns_1Cvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vdns_1","resources":[{"resourceInstanceName":"vdns_vdns_2_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vdns","resourceName":"Vloadbalancer.nodes.heat.vdns","resourceInvariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"cca286e8-5ac0-451c-b874-8cc307181e10"},{"resourceInstanceName":"vdns_vdns_2_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.header
deleted file mode 100644
index 79b1c524..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1315", "Set-Cookie": "JSESSIONID=1mwa65h39co1ljdehgclglgrt;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e436e8fb-e11d-4e9b-a082-cb51c82be86f"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.file
deleted file mode 100644
index 46e4922d..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"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","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewall.abstract.nodes.heat.vfw","description":"Not reusable inner VFC"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.header
deleted file mode 100644
index 5d398140..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "530", "Set-Cookie": "JSESSIONID=1cybc5e92nwmc1bh0rv2faio02;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "132bca4c-b16b-4c78-b52f-4a33bd74b4ed"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.file
deleted file mode 100644
index 0469714b..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"701bf7b7-ddf1-4658-af5f-66c815348fd3","invariantUUID":"53ebeed7-84db-4638-b1f3-8ed44c75985b","name":"vFirewall-nodes.vfwCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewallcvfc.abstract.nodes.vfw","resources":[{"resourceInstanceName":"vfw_vfw_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vfw_vfw_private_2_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vfw_vfw_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vfw","resourceName":"Vfirewall.nodes.heat.vfw","resourceInvariantUUID":"1a12347c-6166-4d21-9861-b2c432722a23","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"68bb176c-8d5f-4d27-8407-fd8d9e5910eb"}],"description":"Complex node type that is used as nested type in VF"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.header
deleted file mode 100644
index c4e7b690..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1527", "Set-Cookie": "JSESSIONID=1x67gjk2bge1i5gw7e9i9efw;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "65089c4e-19a4-4616-b3ec-97d7f4c65725"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.file
deleted file mode 100644
index 6c99b699..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"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","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancer.abstract.nodes.heat.vpg","description":"Not reusable inner VFC"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.header
deleted file mode 100644
index 45800a0a..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "538", "Set-Cookie": "JSESSIONID=m8wbe2pvqc0ga1gf3ceig0tc;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "12c97091-9d7e-4463-9154-4249b378e4d7"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.file
deleted file mode 100644
index 5689e38a..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"948da0c9-536e-4688-85eb-d906fe7324b3","invariantUUID":"702cbc3d-5669-426d-aba6-6ddf4d4a702b","name":"vLoadBalancer-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vpg","resources":[{"resourceInstanceName":"vpg","resourceName":"Vloadbalancer.nodes.heat.vpg","resourceInvariantUUID":"05e3e25f-b671-433f-8ea6-835c198c15ae","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"8fb4db8b-1d1f-4369-8611-0375d86f0051"},{"resourceInstanceName":"vpg_vpg_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vpg_vpg_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.header
deleted file mode 100644
index 86110d46..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1299", "Set-Cookie": "JSESSIONID=1hq9wsp841x1l7lxmnjnau49m;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e890362a-2dc4-4278-bee6-7dca3802e9ce"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.file
deleted file mode 100644
index dd564ea9..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"98c27d0b-9395-4f8b-87ab-e076cd1f627e","invariantUUID":"07e266fc-49ab-4cd7-8378-ca4676f1b9ec","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/toscaModel","category":"Application L4+","subCategory":"Firewall","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","lastUpdaterFullName":"Joni Mitchell","toscaResourceName":"org.onap.resource.vf.Vfirewall","resources":[{"resourceInstanceName":"unprotected_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"},{"resourceInstanceName":"abstract_vfw","resourceName":"vFirewall-nodes.vfwCvfc","resourceInvariantUUID":"53ebeed7-84db-4638-b1f3-8ed44c75985b","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"701bf7b7-ddf1-4658-af5f-66c815348fd3"},{"resourceInstanceName":"protected_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"},{"resourceInstanceName":"abstract_vsn","resourceName":"vFirewall-nodes.vsnCvfc","resourceInvariantUUID":"74805001-19f5-4c2c-9928-03014161c32a","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"d6a5add1-162a-4966-80a6-8ba53d83b17f"}],"artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/artifacts/6e816af9-944d-46d0-826d-5ff7be063a01","artifactDescription":"VF license file","artifactChecksum":"Njg4NTI4ZWY2MTliMGQzOGZmNDA4ZjRiMjllZmJkMzM=","artifactUUID":"6e816af9-944d-46d0-826d-5ff7be063a01","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vfw.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/artifacts/cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"M2I1YmVjNzZkY2MxMWJkYTM5NzA3NDVhMGQxMzY2MDA=","artifactUUID":"cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/artifacts/5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"}],"description":"vFW, vSink"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.header
deleted file mode 100644
index 56bc0de4..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "2820", "Set-Cookie": "JSESSIONID=1lzsottm5qzz6tqpilubfc84d;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "f9f2ebc4-5438-4b28-aaae-9671b78c30d1"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.file
deleted file mode 100644
index 7f8d2201..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"a004b0d8-54bd-4ede-9311-c75dc608e9fd","invariantUUID":"023a3f0d-1161-45ff-b4cf-8918a8ccf3ad","name":"vPacketGen","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/toscaModel","category":"Application L4+","subCategory":"Web Server","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","lastUpdaterFullName":"Joni Mitchell","toscaResourceName":"org.onap.resource.vf.Vpacketgen","resources":[{"resourceInstanceName":"abstract_vpg","resourceName":"vPacketGen-nodes.vpgCvfc","resourceInvariantUUID":"28142b9a-7925-4921-bc81-178c5bae4a9b","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"2bbcbcce-f9e2-4f5d-b975-1f1122d3226c"}],"artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/artifacts/0d837657-c5fe-4042-a105-b650361cc289","artifactDescription":"VF license file","artifactChecksum":"MGU5YWY1NzNmZmM3MTEwYmM0YTgzMmQ5NGUyMmUzODQ=","artifactUUID":"0d837657-c5fe-4042-a105-b650361cc289","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vpkg.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/artifacts/010c5015-477d-4aba-a57a-540daa1b7af6","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NzI1ZTM5NDU3ZjBhMzQwNmFiNDYzNDBhOWM2NjNmOWU=","artifactUUID":"010c5015-477d-4aba-a57a-540daa1b7af6","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/artifacts/054e473f-173b-48d5-a4ee-f5ef055c008d","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"054e473f-173b-48d5-a4ee-f5ef055c008d","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"}],"description":"vPacketGen"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.header
deleted file mode 100644
index 31ab6c95..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "2096", "Set-Cookie": "JSESSIONID=89np5gtpq1dg1q6yy7aqkysk3;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e02c1210-1cc8-4c4d-9763-2720e5f0a1ef"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.file
deleted file mode 100644
index c48a5063..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"a01ebd00-4b64-4607-8422-c3733735800d","invariantUUID":"dd6edb9e-015e-45ae-9597-bac06687f9e3","name":"vLoadBalancer-nodes.vdnsCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vdns","resources":[{"resourceInstanceName":"vdns","resourceName":"Vloadbalancer.nodes.heat.vdns","resourceInvariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"cca286e8-5ac0-451c-b874-8cc307181e10"},{"resourceInstanceName":"vdns_vdns_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vdns_vdns_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.header
deleted file mode 100644
index 86df6fd4..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1307", "Set-Cookie": "JSESSIONID=s3ol5grms28iil8u7399i2ti;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "c5dafa60-41b8-46b1-9f02-a7cd6a9a92a5"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.file
deleted file mode 100644
index 1156b147..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"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","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewall.abstract.nodes.heat.vsn","description":"Not reusable inner VFC"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.header
deleted file mode 100644
index faa4d0bd..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "530", "Set-Cookie": "JSESSIONID=1iw9dnwwle3ig19rx0pz7c5dqu;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "415de25b-5ad3-4de7-b188-e6dec8e01f35"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.file
deleted file mode 100644
index b754b913..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"c041f64d-8d8f-4f89-906f-79dccc63e7f5","invariantUUID":"48504e0e-f3d3-411d-a52b-eda1b8fec073","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/toscaModel","category":"Application L4+","subCategory":"Load Balancer","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","lastUpdaterFullName":"Joni Mitchell","toscaResourceName":"org.onap.resource.vf.Vloadbalancer","resources":[{"resourceInstanceName":"abstract_vdns","resourceName":"vLoadBalancer-nodes.vdnsCvfc","resourceInvariantUUID":"dd6edb9e-015e-45ae-9597-bac06687f9e3","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"a01ebd00-4b64-4607-8422-c3733735800d"},{"resourceInstanceName":"vlb_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"},{"resourceInstanceName":"abstract_vlb","resourceName":"vLoadBalancer-nodes.vlbCvfc","resourceInvariantUUID":"ba4d4b5d-f861-4155-886b-b1cdba5e0957","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"228aac11-6e48-4412-afbf-327c5c3b04fb"},{"resourceInstanceName":"abstract_vpg","resourceName":"vLoadBalancer-nodes.vpgCvfc","resourceInvariantUUID":"702cbc3d-5669-426d-aba6-6ddf4d4a702b","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"948da0c9-536e-4688-85eb-d906fe7324b3"},{"resourceInstanceName":"abstract_vdns_1","resourceName":"vLoadBalancer-nodes.vdns_1Cvfc","resourceInvariantUUID":"2ef814e3-7c17-420c-bdba-e84e338cd991","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"38b62ebd-276a-48e8-948b-de76c81d6686"},{"resourceInstanceName":"pktgen_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"}],"artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/51af0540-4863-4900-b3be-0f81abd89194","artifactDescription":"VF license file","artifactChecksum":"ODk5M2NiYzE2ZDk1ZmNkZmRjZDcwMTE1NjExMzViNjA=","artifactUUID":"51af0540-4863-4900-b3be-0f81abd89194","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"dnsscaling.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NmE1MmVmNThmZmFjZmZiZTA4NDY2NzA2OTM4ZmFlMGM=","artifactUUID":"f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vlb.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"ZWZiMDg0M2UxMGZmMjlhYTIxODE5ZDBhNWVhZDk2NTU=","artifactUUID":"3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactVersion":"2","artifactLabel":"heat2","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/28a877c8-2005-43d7-802d-769b5f420608","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"28a877c8-2005-43d7-802d-769b5f420608","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"}],"description":"vLB, vDNS, vPacketGen"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.header
deleted file mode 100644
index 84e69926..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "3790", "Set-Cookie": "JSESSIONID=1nqlf3cbvim6c1vmptrsdbq3ih;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "5b484e69-bb1c-4445-9da2-0eef460adf07"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.file
deleted file mode 100644
index 24fbb474..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"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","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vpacketgen.abstract.nodes.heat.vpg","description":"Not reusable inner VFC"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.header
deleted file mode 100644
index 650c2ad4..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "532", "Set-Cookie": "JSESSIONID=1cozsnghk53ca15awxbl6ni870;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "7ceea8dc-76d4-4dfb-a142-b0d220d61e14"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.file
deleted file mode 100644
index 40093178..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"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","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancer.abstract.nodes.heat.vdns","description":"Not reusable inner VFC"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.header
deleted file mode 100644
index 2ae908f0..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "540", "Set-Cookie": "JSESSIONID=uf90ig0y06m3a7lijhv462bb;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "8a4decf7-9171-4559-861f-db94405f9f2c"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.file
deleted file mode 100644
index 7ccde149..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"d6a5add1-162a-4966-80a6-8ba53d83b17f","invariantUUID":"74805001-19f5-4c2c-9928-03014161c32a","name":"vFirewall-nodes.vsnCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewallcvfc.abstract.nodes.vsn","resources":[{"resourceInstanceName":"vsn","resourceName":"Vfirewall.nodes.heat.vsn","resourceInvariantUUID":"d66c0bce-d7e1-41ad-bdaf-468d442d0543","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"b339e576-e433-4be4-8a43-258f629c4e79"},{"resourceInstanceName":"vsn_vsn_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vsn_vsn_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.header
deleted file mode 100644
index ebd87211..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "1287", "Set-Cookie": "JSESSIONID=atnj864xj270149zuaoutning;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "6a01fc8c-95f7-4708-a232-495c3b8cf436"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.file
deleted file mode 100644
index 3113104e..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"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","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancer.abstract.nodes.heat.vlb","description":"Not reusable inner VFC"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.header
deleted file mode 100644
index 629e7d98..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "538", "Set-Cookie": "JSESSIONID=1gy8iwktdb6fl1ja4hcilqnj0x;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "712c8b60-afb5-4b77-a12f-bdaf82d5b9a5"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/.file
deleted file mode 100644
index 92694fed..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.file
+++ /dev/null
@@ -1 +0,0 @@
-[{"uuid":"aecb6332-e906-4334-9f04-93ba4926f6c2","invariantUUID":"c95b0e7c-c1f0-4287-9928-7964c5377a46","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED"},{"uuid":"56441b4b-0467-41dc-9a0e-e68613838219","invariantUUID":"4cc5b45a-1f63-4194-8100-cd8e14248c92","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED"}] \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/.header
deleted file mode 100644
index 231ae3db..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "699", "Set-Cookie": "JSESSIONID=w1td04rzsdjkehn8j9ajg2cz;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "43868be1-b1b4-4876-b1ed-8a4abf710695"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.file
deleted file mode 100644
index 294d88c5..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"56441b4b-0467-41dc-9a0e-e68613838219","invariantUUID":"4cc5b45a-1f63-4194-8100-cd8e14248c92","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED","lastUpdaterFullName":"Joni Mitchell","resources":[{"resourceInstanceName":"vFirewall 0","resourceName":"vFirewall","resourceInvariantUUID":"07e266fc-49ab-4cd7-8378-ca4676f1b9ec","resourceVersion":"1.0","resoucreType":"VF","resourceUUID":"98c27d0b-9395-4f8b-87ab-e076cd1f627e","artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/6e816af9-944d-46d0-826d-5ff7be063a01","artifactDescription":"VF license file","artifactChecksum":"Njg4NTI4ZWY2MTliMGQzOGZmNDA4ZjRiMjllZmJkMzM=","artifactUUID":"6e816af9-944d-46d0-826d-5ff7be063a01","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vfirewall0_modules.json","artifactType":"VF_MODULES_METADATA","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/f8cda4b3-3185-4801-b2dc-daa07509f62a","artifactDescription":"Auto-generated VF Modules information artifact","artifactChecksum":"MjZjNjBmNDFhOWZiZDdhOWZhNTI5NGRlNDE0NDQ4ZWM=","artifactUUID":"f8cda4b3-3185-4801-b2dc-daa07509f62a","artifactVersion":"1","artifactLabel":"vfModulesMetadata","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vfw.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"M2I1YmVjNzZkY2MxMWJkYTM5NzA3NDVhMGQxMzY2MDA=","artifactUUID":"cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vfw.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/1a4f0437-9e22-4e18-89ee-c4d95d15e9c1","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"MTU0MzA1NzVmYmRhN2ZhMTEzZWMxZWIxMjdkMWFkY2Y=","artifactUUID":"1a4f0437-9e22-4e18-89ee-c4d95d15e9c1","artifactVersion":"2","generatedFromUUID":"51533b42-39ce-4ea8-86a4-458cfbdc72da.heat1","artifactLabel":"heat1env","artifactGroupType":"DEPLOYMENT"}]},{"resourceInstanceName":"vPacketGen 0","resourceName":"vPacketGen","resourceInvariantUUID":"023a3f0d-1161-45ff-b4cf-8918a8ccf3ad","resourceVersion":"1.0","resoucreType":"VF","resourceUUID":"a004b0d8-54bd-4ede-9311-c75dc608e9fd","artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/0d837657-c5fe-4042-a105-b650361cc289","artifactDescription":"VF license file","artifactChecksum":"MGU5YWY1NzNmZmM3MTEwYmM0YTgzMmQ5NGUyMmUzODQ=","artifactUUID":"0d837657-c5fe-4042-a105-b650361cc289","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vpacketgen0_modules.json","artifactType":"VF_MODULES_METADATA","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/dbcbf1bc-bb8d-43e5-8e77-aec713a2e18c","artifactDescription":"Auto-generated VF Modules information artifact","artifactChecksum":"Zjg5ZWQ0NDIxMTAzOTE1Y2E0MzQ1YmY0Y2MwMmE3YjM=","artifactUUID":"dbcbf1bc-bb8d-43e5-8e77-aec713a2e18c","artifactVersion":"1","artifactLabel":"vfModulesMetadata","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vpkg.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/010c5015-477d-4aba-a57a-540daa1b7af6","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NzI1ZTM5NDU3ZjBhMzQwNmFiNDYzNDBhOWM2NjNmOWU=","artifactUUID":"010c5015-477d-4aba-a57a-540daa1b7af6","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/054e473f-173b-48d5-a4ee-f5ef055c008d","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"054e473f-173b-48d5-a4ee-f5ef055c008d","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vpkg.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/5724e8d3-47ce-4fbc-b8fc-e1407256c6f4","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"NTUzYWFkYWI4NGJlNTU1NWIxMWNlZWQ0ODA5ZDM1MTY=","artifactUUID":"5724e8d3-47ce-4fbc-b8fc-e1407256c6f4","artifactVersion":"2","generatedFromUUID":"2a1233b6-e907-4a1f-8dc8-ead97245afe6.heat1","artifactLabel":"heat1env","artifactGroupType":"DEPLOYMENT"}]}],"artifacts":[{"artifactName":"AAI-vFirewall-resource-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/c55b70c5-5ed5-4ec7-9720-dbc66d47e7cb","artifactDescription":"AAI Resource Model","artifactChecksum":"OGExM2IxZmI5ODQ2Yzk4M2Y3OTY2MjMzNjdjMjA3NjQ=","artifactUUID":"c55b70c5-5ed5-4ec7-9720-dbc66d47e7cb","artifactVersion":"1","artifactLabel":"aairesource796548963","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-vPacketGen-resource-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/2993af7a-c0e3-43db-8a4d-2969df0ba486","artifactDescription":"AAI Resource Model","artifactChecksum":"ZTY3MTE3MTMzYTFjOGFiMDhmNTFjZGVjNWQxZWM1MmI=","artifactUUID":"2993af7a-c0e3-43db-8a4d-2969df0ba486","artifactVersion":"1","artifactLabel":"aairesource913456444","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-vFirewall-service-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/d5af6c6b-0e4b-42cd-a54c-0be081f914a7","artifactDescription":"AAI Service Model","artifactChecksum":"NTRjYzdiYmVlZDI4MDU0OTM5NDE1MTVmY2VlZWZhMzc=","artifactUUID":"d5af6c6b-0e4b-42cd-a54c-0be081f914a7","artifactVersion":"1","artifactLabel":"aaiservice576477880","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vpacketgen..base_vpkg..module-0-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/b583357c-f307-4b22-a4e4-1b99e23f0fc5","artifactDescription":"AAI Resource Model","artifactChecksum":"NmNlNjc0NmViMGRmNWY5MjRjMjliNmMwZGJiNDQxZmU=","artifactUUID":"b583357c-f307-4b22-a4e4-1b99e23f0fc5","artifactVersion":"1","artifactLabel":"aairesource696606042","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vfirewall..base_vfw..module-0-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/a50595b1-77f6-431d-918a-531312771a72","artifactDescription":"AAI Resource Model","artifactChecksum":"Y2E2OTU1NjFiN2U2YmYwMzc2ODE3MWJkMWJmYjVkMDQ=","artifactUUID":"a50595b1-77f6-431d-918a-531312771a72","artifactVersion":"1","artifactLabel":"aairesource1531446144","artifactGroupType":"DEPLOYMENT"}]} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.header
deleted file mode 100644
index b68cd5a9..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=1q39ofwsxq5fv1ceix6aviixab;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "8eaaa9d5-0585-4e48-82a6-932c85afc4fa"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.file
deleted file mode 100644
index 29d8ab70..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"artifactName":"ClosedLoop-2e3d2132-26d4-11e8-826d-0242ac130002.yml","artifactType":"DCAE_INVENTORY_BLUEPRINT","artifactURL":"","artifactDescription":"Description of the Artifact","artifactChecksum":"ZjJlMjVmMWE2M2M1OTM2MDZlODlmNTVmZmYzNjViYzM=","artifactUUID":"13fb13f9-f5d7-4ade-b934-d0da78754a51","artifactVersion":"1"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.header
deleted file mode 100644
index 125a579e..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "323", "Content-Type": "application/json"} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.file
deleted file mode 100644
index bc8d30ce..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.file
+++ /dev/null
@@ -1 +0,0 @@
-{"uuid":"aecb6332-e906-4334-9f04-93ba4926f6c2","invariantUUID":"c95b0e7c-c1f0-4287-9928-7964c5377a46","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED","lastUpdaterFullName":"Joni Mitchell","resources":[{"resourceInstanceName":"vLoadBalancer 0","resourceName":"vLoadBalancer","resourceInvariantUUID":"48504e0e-f3d3-411d-a52b-eda1b8fec073","resourceVersion":"1.0","resoucreType":"VF","resourceUUID":"c041f64d-8d8f-4f89-906f-79dccc63e7f5","artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/51af0540-4863-4900-b3be-0f81abd89194","artifactDescription":"VF license file","artifactChecksum":"ODk5M2NiYzE2ZDk1ZmNkZmRjZDcwMTE1NjExMzViNjA=","artifactUUID":"51af0540-4863-4900-b3be-0f81abd89194","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vloadbalancer0_modules.json","artifactType":"VF_MODULES_METADATA","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/09fd9d5b-c442-4fd5-9430-d222ed9d6072","artifactDescription":"Auto-generated VF Modules information artifact","artifactChecksum":"NGViZWM5NmU3OGJkODI5N2E4OTIxNGU0ZjY4MDIyMGI=","artifactUUID":"09fd9d5b-c442-4fd5-9430-d222ed9d6072","artifactVersion":"1","artifactLabel":"vfModulesMetadata","artifactGroupType":"DEPLOYMENT"},{"artifactName":"dnsscaling.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NmE1MmVmNThmZmFjZmZiZTA4NDY2NzA2OTM4ZmFlMGM=","artifactUUID":"f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vlb.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"ZWZiMDg0M2UxMGZmMjlhYTIxODE5ZDBhNWVhZDk2NTU=","artifactUUID":"3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactVersion":"2","artifactLabel":"heat2","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vlb.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/393157c8-74f5-40f5-ac2c-b8386dc5f763","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"NzMwOTgwYTgyNWY2NThjOTZmNzZkMDdjODJiOGNkN2Y=","artifactUUID":"393157c8-74f5-40f5-ac2c-b8386dc5f763","artifactVersion":"2","generatedFromUUID":"25d2b375-b4ad-4476-a5eb-ceb851d9e536.heat2","artifactLabel":"heat2env","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/28a877c8-2005-43d7-802d-769b5f420608","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"28a877c8-2005-43d7-802d-769b5f420608","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"dnsscaling.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/13a375d2-2926-4b2c-a5a9-f380ac744ffb","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"MWQzY2UxZDQ5MzhiNzA1OTg2NjcwNDIxODczYzhiNjU=","artifactUUID":"13a375d2-2926-4b2c-a5a9-f380ac744ffb","artifactVersion":"2","generatedFromUUID":"25d2b375-b4ad-4476-a5eb-ceb851d9e536.heat1","artifactLabel":"heat1env","artifactGroupType":"DEPLOYMENT"}]}],"artifacts":[{"artifactName":"AAI-vLoadBalancer-service-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/775f9232-0db1-49af-a27b-8cd6f0271d29","artifactDescription":"AAI Service Model","artifactChecksum":"Yjk3NzY2NTFkODU4MWU0YjVhOGViODZjNmUyZGIxODc=","artifactUUID":"775f9232-0db1-49af-a27b-8cd6f0271d29","artifactVersion":"1","artifactLabel":"aaiservice150241483","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vloadbalancer..dnsscaling..module-1-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/4ce04ca0-94cc-4884-a36a-c46cb6b2ae1b","artifactDescription":"AAI Resource Model","artifactChecksum":"ZjhlOGNkNjdmMWM5NWU4MDY0ZWRjYWEzMTEzZGM2ZTI=","artifactUUID":"4ce04ca0-94cc-4884-a36a-c46cb6b2ae1b","artifactVersion":"1","artifactLabel":"aairesource916952801","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vloadbalancer..base_vlb..module-0-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/9200d35b-c50b-4502-9473-33039a1c2454","artifactDescription":"AAI Resource Model","artifactChecksum":"ZTNmZDFlOTBjNGU3ZWY3NWE2MTQ1ZWQ4YzBiYWU4NzE=","artifactUUID":"9200d35b-c50b-4502-9473-33039a1c2454","artifactVersion":"1","artifactLabel":"aairesource1122970540","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-vLoadBalancer-resource-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/faf70850-ea55-4ab6-9648-46a753cdb43f","artifactDescription":"AAI Resource Model","artifactChecksum":"NjBkMDE1YWYwOTY5ZWZkNGUxYmYwYWJkZGNhMTk2MTg=","artifactUUID":"faf70850-ea55-4ab6-9648-46a753cdb43f","artifactVersion":"1","artifactLabel":"aairesource1272484133","artifactGroupType":"DEPLOYMENT"}]} \ No newline at end of file
diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.header
deleted file mode 100644
index fba705b1..00000000
--- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.header
+++ /dev/null
@@ -1 +0,0 @@
-{"Content-Length": "6161", "Set-Cookie": "JSESSIONID=1au1i8ursafcdtpvhzarkul54;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e0ca6465-8984-46aa-9e4e-28f3b0415bb1"} \ No newline at end of file
diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml
index 07e58785..c71bcba8 100644
--- a/src/test/resources/logback.xml
+++ b/src/test/resources/logback.xml
@@ -1,2 +1,91 @@
<!-- Empty Configuration to prevent creating log files by Units Tests (e.g LoggingUtilsTest) ! -->
-<configuration />
+<configuration>
+ <jmxConfigurator />
+ <!-- Example evaluator filter applied against console appender -->
+ <property
+ name="p_tim"
+ value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}" />
+ <property
+ name="p_lvl"
+ value="%level" />
+ <property
+ name="p_log"
+ value="%logger" />
+ <property
+ name="p_mdc"
+ value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}" />
+ <property
+ name="p_msg"
+ value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}" />
+ <property
+ name="p_exc"
+ value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}" />
+ <property
+ name="p_mak"
+ value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}" />
+ <property
+ name="p_thr"
+ value="%thread" />
+ <property
+ name="defaultPattern"
+ value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n" />
+ <property
+ name="debugPattern"
+ value="%nopexception${p_tim}|${p_lvl}|${p_mdc}|${p_exc}|%msg%n" />
+
+ <!-- Example evaluator filter applied against console appender -->
+ <appender
+ name="STDOUT"
+ class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+ <logger
+ name="org.onap.aaf"
+ level="DEBUG">
+ <appender-ref ref="STDOUT" />
+ </logger>
+ <logger
+ name="org.apache"
+ level="DEBUG">
+ <appender-ref ref="STDOUT" />
+ </logger>
+ <!-- Spring related loggers -->
+ <logger
+ name="org.springframework"
+ level="DEBUG">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <!-- CLDS related loggers -->
+ <logger
+ name="org.onap.clamp"
+ level="DEBUG">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <!-- CLDS related loggers -->
+ <logger
+ name="com.att.eelf.error"
+ level="OFF">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger
+ name="ch.qos.logback.classic"
+ level="INFO" />
+ <logger
+ name="ch.qos.logback.core"
+ level="INFO" />
+
+ <!-- logback jms appenders & loggers definition ends here -->
+
+ <root level="DEBUG">
+ <appender-ref ref="STDOUT" />
+ </root>
+</configuration>
diff --git a/src/test/resources/tosca/dcea_blueprint.yml b/src/test/resources/tosca/dcea_blueprint.yml
deleted file mode 100644
index 0d3ea046..00000000
--- a/src/test/resources/tosca/dcea_blueprint.yml
+++ /dev/null
@@ -1,170 +0,0 @@
-#
-# ============LICENSE_START====================================================
-# =============================================================================
-# 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======================================================
-
-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://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.4/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:
- aaiEnrichmentHost:
- type: string
- default: "aai.onap.svc.cluster.local"
- aaiEnrichmentPort:
- type: string
- default: "8443"
- enableAAIEnrichment:
- type: string
- default: true
- dmaap_host:
- type: string
- default: message-router
- dmaap_port:
- type: string
- default: "3904"
- enableRedisCaching:
- type: string
- default: false
- redisHosts:
- type: string
- default: dcae-redis:6379
- tag_version:
- type: string
- default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0"
- consul_host:
- type: string
- default: consul-server
- consul_port:
- type: string
- default: "8500"
- cbs_host:
- type: string
- default:
- test:
- test: test
- 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: "32010"
-
-node_templates:
- tca_k8s:
- type: dcae.nodes.ContainerizedServiceComponent
- relationships:
- - target: tca_policy
- type: cloudify.relationships.depends_on
- properties:
- service_component_type: 'dcaegen2-analytics-tca'
- 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-ak-serv
- 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.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"}]}]}'
- 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:
- policy_id:
- get_input: policy_id
diff --git a/ui-react-lib/package.json b/ui-react-lib/package.json
index 3698484d..39cf63a5 100755
--- a/ui-react-lib/package.json
+++ b/ui-react-lib/package.json
@@ -4,6 +4,9 @@
"description": "ONAP CLAMP UI Reactjs Component Library",
"author": "ONAP Clamp Team",
"license": "Apache-2.0",
+ "publishConfig": {
+ "registry": "${npm.publish.url}"
+ },
"main": "dist/index.js",
"module": "dist/esindex.js",
"scripts": {
diff --git a/version.properties b/version.properties
index e7d853aa..77d05019 100644
--- a/version.properties
+++ b/version.properties
@@ -25,8 +25,8 @@
# Note that these variables cannot be structured (e.g. : version.release or version.snapshot etc... )
# because they are used in Jenkins, whose plug-in doesn't support
-major=4
-minor=2
+major=5
+minor=0
patch=0
base_version=${major}.${minor}.${patch}