Merge "Payload is expected as string in operational policy"
authorSébastien Determe <sebastien.determe@intl.att.com>
Tue, 21 Apr 2020 15:20:04 +0000 (15:20 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 21 Apr 2020 15:20:04 +0000 (15:20 +0000)
49 files changed:
README.md
extra/docker/clamp/clamp.env
extra/sql/dump/test-data.sql
pom.xml
releases/5.0.4-container.yaml [new file with mode: 0644]
releases/5.0.4.yaml [new file with mode: 0644]
src/main/java/org/onap/clamp/clds/Application.java
src/main/java/org/onap/clamp/clds/config/EncodedPasswordBasicDataSource.java [deleted file]
src/main/java/org/onap/clamp/clds/config/spring/CldsConfiguration.java
src/main/java/org/onap/clamp/clds/tosca/JsonEditorSchemaConstants.java
src/main/java/org/onap/clamp/clds/tosca/ToscaSchemaConstants.java
src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java
src/main/java/org/onap/clamp/loop/LoopService.java
src/main/resources/application-noaaf.properties
src/main/resources/application.properties
src/main/resources/clds/camel/rest/clamp-api-v2.xml
src/main/resources/clds/camel/routes/dcae-flows.xml
src/main/resources/clds/camel/routes/policy-flows.xml
src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java
src/test/resources/application.properties
src/test/resources/example/json-editor-schema/tca-policy-json-editor-schema.json
src/test/resources/https/https-test.properties
src/test/resources/tosca/policy-yaml-to-json-with-constraints.json
src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json
src/test/resources/tosca/policy-yaml-to-json.json
src/test/resources/tosca/tosca_metadata_clamp_possible_values_json_schema.json
src/test/resources/tosca/tosca_with_date_time_json_schema.json [new file with mode: 0644]
ui-react-lib/libIndex.js
ui-react/src/api/LoopService.js
ui-react/src/components/dialogs/ConfigurationPolicy/ConfigurationPolicyModal.js
ui-react/src/components/dialogs/Loop/CreateLoopModal.js
ui-react/src/components/dialogs/Loop/DeployLoopModal.js
ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js
ui-react/src/components/dialogs/Loop/ModifyLoopModal.js
ui-react/src/components/dialogs/Loop/OpenLoopModal.js
ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap
ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap
ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap
ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js
ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap
ui-react/src/components/dialogs/OperationalPolicy/OperationalPolicyModal.js
ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js
ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js
ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.js
ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap
ui-react/src/components/dialogs/Tosca/__snapshots__/ViewToscaPolicyModal.test.js.snap
ui-react/src/components/loop_viewer/svg/LoopSvg.js
ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap
version.properties

index 65fc053..e4309aa 100644 (file)
--- a/README.md
+++ b/README.md
@@ -41,9 +41,9 @@ Note that all others configurations can be configured in the JSON as well,
 
 ```json
 {
-    "spring.datasource.cldsdb.url": "jdbc:mysql://anotherDB.onap.org:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3",
-    "spring.datasource.cldsdb.username": "admin",
-    "spring.datasource.cldsdb.password": "password"
+    "spring.datasource.url": "jdbc:mysql://anotherDB.onap.org:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3",
+    "spring.datasource.username": "admin",
+    "spring.datasource.password": "password"
     
     "clamp.config.dcae.inventory.url": "http://dcaegen2.host:8080",
     "clamp.config.dcae.dispatcher.url": "http://dcaegen2.host:8080",
index 3270db2..fc80be5 100644 (file)
@@ -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,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.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"}
index 8268318..9ffb95f 100644 (file)
@@ -26,8 +26,8 @@ USE `cldsdb4`;
 
 LOCK TABLES `dictionary` WRITE;
 /*!40000 ALTER TABLE `dictionary` DISABLE KEYS */;
-INSERT INTO `dictionary` VALUES ('DefaultActors','admin','2020-04-15 00:32:48.087495','admin','2020-04-15 00:32:48.087495',0,'');
-INSERT INTO `dictionary` VALUES ('DefaultOperations','admin','2020-04-15 00:32:48.140423','admin','2020-04-15 00:32:48.140423',0,'');
+INSERT INTO `dictionary` VALUES ('DefaultActors','Not found','2020-04-16 16:49:31.863816','Not found','2020-04-16 16:49:31.863816',0,'');
+INSERT INTO `dictionary` VALUES ('DefaultOperations','Not found','2020-04-16 16:49:31.968970','Not found','2020-04-16 16:49:31.968970',0,'');
 /*!40000 ALTER TABLE `dictionary` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -37,20 +37,20 @@ UNLOCK TABLES;
 
 LOCK TABLES `dictionary_elements` WRITE;
 /*!40000 ALTER TABLE `dictionary_elements` DISABLE KEYS */;
-INSERT INTO `dictionary_elements` VALUES ('APPC','admin','2020-04-15 00:32:48.112834','admin','2020-04-15 00:32:48.112834','APPC component','APPC',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('BandwidthOnDemand (SDNC operation)','admin','2020-04-15 00:32:48.142731','admin','2020-04-15 00:32:48.142731','SDNC operation','BandwidthOnDemand',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('Health-Check (APPC operation)','admin','2020-04-15 00:32:48.164903','admin','2020-04-15 00:32:48.164903','APPC operation','Health-Check',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('Migrate (APPC operation)','admin','2020-04-15 00:32:48.162100','admin','2020-04-15 00:32:48.162100','APPC operation','Migrate',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('ModifyConfig (APPC/VFC operation)','admin','2020-04-15 00:32:48.156400','admin','2020-04-15 00:32:48.156400','APPC/VFC operation','ModifyConfig',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('Rebuild (APPC operation)','admin','2020-04-15 00:32:48.153922','admin','2020-04-15 00:32:48.153922','APPC operation','Rebuild',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('Reroute (SDNC operation)','admin','2020-04-15 00:32:48.148888','admin','2020-04-15 00:32:48.148888','SDNC operation','Reroute',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('Restart (APPC operation)','admin','2020-04-15 00:32:48.159313','admin','2020-04-15 00:32:48.159313','APPC operation','Restart',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('SDNC','admin','2020-04-15 00:32:48.102659','admin','2020-04-15 00:32:48.102659','SDNC component','SDNC',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('SDNR','admin','2020-04-15 00:32:48.099805','admin','2020-04-15 00:32:48.099805','SDNR component','SDNR',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('SO','admin','2020-04-15 00:32:48.108266','admin','2020-04-15 00:32:48.108266','SO component','SO',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('VF Module Create (SO operation)','admin','2020-04-15 00:32:48.151429','admin','2020-04-15 00:32:48.151429','SO operation','VF Module Create',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('VF Module Delete (SO operation)','admin','2020-04-15 00:32:48.145456','admin','2020-04-15 00:32:48.145456','SO operation','VF Module Delete',NULL,'string');
-INSERT INTO `dictionary_elements` VALUES ('VFC','admin','2020-04-15 00:32:48.105059','admin','2020-04-15 00:32:48.105059','VFC component','VFC',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('APPC','Not found','2020-04-16 16:49:31.919100','Not found','2020-04-16 16:49:31.919100','APPC component','APPC',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('BandwidthOnDemand (SDNC operation)','Not found','2020-04-16 16:49:31.970942','Not found','2020-04-16 16:49:31.970942','SDNC operation','BandwidthOnDemand',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('Health-Check (APPC operation)','Not found','2020-04-16 16:49:32.001881','Not found','2020-04-16 16:49:32.001881','APPC operation','Health-Check',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('Migrate (APPC operation)','Not found','2020-04-16 16:49:31.991418','Not found','2020-04-16 16:49:31.991418','APPC operation','Migrate',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('ModifyConfig (APPC/VFC operation)','Not found','2020-04-16 16:49:31.986045','Not found','2020-04-16 16:49:31.986045','APPC/VFC operation','ModifyConfig',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('Rebuild (APPC operation)','Not found','2020-04-16 16:49:31.978401','Not found','2020-04-16 16:49:31.978401','APPC operation','Rebuild',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('Reroute (SDNC operation)','Not found','2020-04-16 16:49:31.974718','Not found','2020-04-16 16:49:31.974718','SDNC operation','Reroute',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('Restart (APPC operation)','Not found','2020-04-16 16:49:31.988714','Not found','2020-04-16 16:49:31.988714','APPC operation','Restart',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('SDNC','Not found','2020-04-16 16:49:31.900260','Not found','2020-04-16 16:49:31.900260','SDNC component','SDNC',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('SDNR','Not found','2020-04-16 16:49:31.896525','Not found','2020-04-16 16:49:31.896525','SDNR component','SDNR',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('SO','Not found','2020-04-16 16:49:31.914906','Not found','2020-04-16 16:49:31.914906','SO component','SO',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('VF Module Create (SO operation)','Not found','2020-04-16 16:49:31.976664','Not found','2020-04-16 16:49:31.976664','SO operation','VF Module Create',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('VF Module Delete (SO operation)','Not found','2020-04-16 16:49:31.972818','Not found','2020-04-16 16:49:31.972818','SO operation','VF Module Delete',NULL,'string');
+INSERT INTO `dictionary_elements` VALUES ('VFC','Not found','2020-04-16 16:49:31.904373','Not found','2020-04-16 16:49:31.904373','VFC component','VFC',NULL,'string');
 /*!40000 ALTER TABLE `dictionary_elements` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -93,7 +93,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-04-15 00:31:24.639981','Not found','2020-04-15 00:31:25.031298',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
+INSERT INTO `loop_element_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2020-04-16 16:48:51.037499','Not found','2020-04-16 16:48:52.538901',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
 /*!40000 ALTER TABLE `loop_element_models` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -112,9 +112,9 @@ UNLOCK TABLES;
 
 LOCK TABLES `loop_templates` WRITE;
 /*!40000 ALTER TABLE `loop_templates` DISABLE KEYS */;
-INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_cnj3j_v1_0_ResourceInstanceName1_tca','Not found','2020-04-15 00:31:24.965503','Not found','2020-04-15 00:31:24.965503','CLOSED','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-03c77564-decf-4b83-b0e3-6a04050a4e91',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-713b00f3-c3d4-40d2-be50-dbc775ec064d\" 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=\"177.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-c4b8458d-4bc4-4118-b2ae-57348e1eaf32\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-57d3e4db-0bd6-4553-840e-00dd089811f5\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_cnj3j_v1_0_ResourceInstanceName1_tca_3','Not found','2020-04-15 00:31:24.811218','Not found','2020-04-15 00:31:24.811218','CLOSED','#\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  - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n  - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml\"\n  - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/clamppolicyplugin/1.1.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.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.2.2\"\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-service\"\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\":\"VM\",\"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          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: \"3904\"\n              DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n              DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n              AAIHOST:\n                { get_input: aaiEnrichmentHost }\n              AAIPORT: \"8443\"\n              CONSUL_HOST:\n                { get_input: consul_host }\n              CONSUL_PORT: \"8500\"\n              CBS_HOST:\n                { get_input: cbs_host }\n              CBS_PORT: \"10000\"\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:\n        get_input: policy_model_id\n','typeId-ee92fa43-ec5d-4d2f-9e6c-ad7f1c4aa7c3',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-6a91e1f7-ee07-40d6-858a-b9cf8997a227\" 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=\"177.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-787780c2-3daa-44ad-912a-185539d749ce\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-3e0c96fd-0b72-49c5-99b5-5b165a3f4f01\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_cnj3j_v1_0_ResourceInstanceName2_tca_2','Not found','2020-04-15 00:31:24.611786','Not found','2020-04-15 00:31:24.611786','CLOSED','#\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-35d7d296-5904-41de-9149-ece825744e7e',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-cd5e4bd6-4818-4ee4-86e7-4ca7df4d28a0\" 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=\"177.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-1bc639f8-2c0d-4d79-b8c6-6321c384b6a3\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-3f54d5e2-08c8-42f8-b850-3905121b12bd\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_klciS_v1_0_ResourceInstanceName1_tca','Not found','2020-04-16 16:48:52.353132','Not found','2020-04-16 16:48:52.353132','CLOSED','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-83c79bbd-0143-47b1-923f-4f393ca7de8f',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-bbd87bf8-2037-40fd-851a-32d8a0025226\" 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=\"177.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-db00a706-5f93-4da6-9b87-8e6aebd622f9\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-1669e5fa-7be9-47ca-a5af-a5b8fad05166\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_klciS_v1_0_ResourceInstanceName1_tca_3','Not found','2020-04-16 16:48:51.732987','Not found','2020-04-16 16:48:51.732987','CLOSED','#\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  - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n  - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml\"\n  - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/clamppolicyplugin/1.1.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.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.2.2\"\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-service\"\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\":\"VM\",\"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          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: \"3904\"\n              DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n              DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n              AAIHOST:\n                { get_input: aaiEnrichmentHost }\n              AAIPORT: \"8443\"\n              CONSUL_HOST:\n                { get_input: consul_host }\n              CONSUL_PORT: \"8500\"\n              CBS_HOST:\n                { get_input: cbs_host }\n              CBS_PORT: \"10000\"\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:\n        get_input: policy_model_id\n','typeId-75023c2f-2850-48b2-b51a-7c8cf3698fe1',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-13ff2cee-7a6c-4f0d-b655-334e868b7fab\" 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=\"177.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-11daba5e-17a5-4129-8fea-20873a8b3745\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-0579c356-e682-4256-950d-993ba644b593\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_klciS_v1_0_ResourceInstanceName2_tca_2','Not found','2020-04-16 16:48:50.910670','Not found','2020-04-16 16:48:50.910670','CLOSED','#\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-7b161f95-fe7e-4e2c-8f32-fd6abd7c2e0b',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-27aa40aa-842c-477e-91ae-e3561cece8b7\" 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=\"177.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-3ae5c2f3-a82f-40c0-b2bc-cfed2a6597ae\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-c8912a1e-1851-4dc6-8fb4-14c5a1ac46d9\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
 /*!40000 ALTER TABLE `loop_templates` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -152,9 +152,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_cnj3j_v1_0_ResourceInstanceName1_tca',0);
-INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_cnj3j_v1_0_ResourceInstanceName1_tca_3',0);
-INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_cnj3j_v1_0_ResourceInstanceName2_tca_2',0);
+INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_klciS_v1_0_ResourceInstanceName1_tca',0);
+INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_klciS_v1_0_ResourceInstanceName1_tca_3',0);
+INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_klciS_v1_0_ResourceInstanceName2_tca_2',0);
 /*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -182,13 +182,13 @@ UNLOCK TABLES;
 
 LOCK TABLES `policy_models` WRITE;
 /*!40000 ALTER TABLE `policy_models` DISABLE KEYS */;
-INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.Blacklist','1.0.0','Not found','2020-04-15 00:31:46.375399','Not found','2020-04-15 00:31:46.844649','Blacklist','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.guard.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            This is the base Policy Type for Guard policies that guard the execution of Operational\n            Policies.\n        properties:\n            actor:\n                type: string\n                description: Specifies the Actor the guard applies to.\n                required: true\n            operation:\n                type: string\n                description: Specified the operation that the actor is performing\n                    the guard applies to.\n                required: true\n            timeRange:\n                type: tosca.datatypes.TimeInterval\n                description: |\n                    An optional range of time during the day the guard policy is valid for.\n                required: false\n            id:\n                type: string\n                description: The Control Loop id this applies to.\n                required: false\n    onap.policies.controlloop.guard.common.Blacklist:\n        derived_from: onap.policies.controlloop.guard.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Supports blacklist of entity id\'s from performing control loop\n            actions on.\n        properties:\n            blacklist:\n                type: list\n                description: List of entity id\'s\n                required: true\n                entry_schema:\n                    type: string\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"xacml\"\n      ]\n    }\n  ]\n}');
-INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.FrequencyLimiter','1.0.0','Not found','2020-04-15 00:31:45.968414','Not found','2020-04-15 00:31:46.860722','FrequencyLimiter','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.guard.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            This is the base Policy Type for Guard policies that guard the execution of Operational\n            Policies.\n        properties:\n            actor:\n                type: string\n                description: Specifies the Actor the guard applies to.\n                required: true\n            operation:\n                type: string\n                description: Specified the operation that the actor is performing\n                    the guard applies to.\n                required: true\n            timeRange:\n                type: tosca.datatypes.TimeInterval\n                description: |\n                    An optional range of time during the day the guard policy is valid for.\n                required: false\n            id:\n                type: string\n                description: The Control Loop id this applies to.\n                required: false\n    onap.policies.controlloop.guard.common.FrequencyLimiter:\n        derived_from: onap.policies.controlloop.guard.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Supports limiting the frequency of actions being taken by a Actor.\n        properties:\n            timeWindow:\n                type: integer\n                description: The time window to count the actions against.\n                required: true\n            timeUnits:\n                type: string\n                description: The units of time the window is counting.\n                constraints:\n                -   valid_values:\n                    - second\n                    - minute\n                    - hour\n                    - day\n                    - week\n                    - month\n                    - year\n            limit:\n                type: integer\n                description: The limit\n                required: true\n                constraints:\n                -   greater_than: 0\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"xacml\"\n      ]\n    }\n  ]\n}');
-INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.MinMax','2.0.0','Not found','2020-04-15 00:31:46.506034','Not found','2020-04-15 00:31:46.506034','MinMax','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.guard.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            This is the base Policy Type for Guard policies that guard the execution of Operational\n            Policies.\n        properties:\n            actor:\n                type: string\n                description: Specifies the Actor the guard applies to.\n                required: true\n            operation:\n                type: string\n                description: Specified the operation that the actor is performing\n                    the guard applies to.\n                required: true\n            timeRange:\n                type: tosca.datatypes.TimeInterval\n                description: |\n                    An optional range of time during the day the guard policy is valid for.\n                required: false\n            id:\n                type: string\n                description: The Control Loop id this applies to.\n                required: false\n    onap.policies.controlloop.guard.common.MinMax:\n        derived_from: onap.policies.controlloop.guard.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Supports Min/Max number of entity for scaling operations\n        properties:\n            min:\n                type: integer\n                required: true\n                description: The minimum instances of this entity\n            max:\n                type: integer\n                required: false\n                description: The maximum instances of this entity\n',NULL);
-INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.Operational','1.0.0','Not found','2020-04-15 00:31:05.532370','Not found','2020-04-15 00:31:46.911526','OperationalPolicyLegacy','','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"apex\",\n        \"drools\"\n      ]\n    }\n  ]\n}');
-INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Apex','1.0.0','Not found','2020-04-15 00:31:45.852324','Not found','2020-04-15 00:31:46.930771','Apex','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.operational.Common:\n        properties:\n            abatement:\n                name: abatement\n                type: boolean\n                typeVersion: 0.0.0\n                description: Whether an abatement event message will be expected for\n                    the control loop from DCAE.\n                default: \'false\'\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            operations:\n                name: operations\n                type: list\n                typeVersion: 0.0.0\n                description: List of operations to be performed when Control Loop\n                    is triggered.\n                required: true\n                constraints: [\n                    ]\n                entry_schema:\n                    type: onap.datatype.controlloop.Operation\n                    typeVersion: 0.0.0\n                    constraints: [\n                        ]\n                metadata: {\n                    }\n            trigger:\n                name: trigger\n                type: string\n                typeVersion: 0.0.0\n                description: Initial operation to execute upon receiving an Onset\n                    event message for the Control Loop.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            timeout:\n                name: timeout\n                type: integer\n                typeVersion: 0.0.0\n                description: |\n                    Overall timeout for executing all the operations. This timeout should equal or exceed the total\n                    timeout for each operation listed.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            id:\n                name: id\n                type: string\n                typeVersion: 0.0.0\n                description: The unique control loop id.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n        name: onap.policies.controlloop.operational.Common\n        version: 1.0.0\n        derived_from: tosca.policies.Root\n        metadata: {\n            }\n        description: |\n            Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n            Policy Types. This does NOT support the legacy Policy YAML policy type.\n    onap.policies.controlloop.operational.common.Apex:\n        properties:\n            engineServiceParameters:\n                name: engineServiceParameters\n                type: string\n                typeVersion: 0.0.0\n                description: The engine parameters like name, instanceCount, policy\n                    implementation, parameters etc.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            eventOutputParameters:\n                name: eventOutputParameters\n                type: string\n                typeVersion: 0.0.0\n                description: The event output parameters.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            javaProperties:\n                name: javaProperties\n                type: string\n                typeVersion: 0.0.0\n                description: Name/value pairs of properties to be set for APEX if\n                    needed.\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            eventInputParameters:\n                name: eventInputParameters\n                type: string\n                typeVersion: 0.0.0\n                description: The event input parameters.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n        name: onap.policies.controlloop.operational.common.Apex\n        version: 1.0.0\n        derived_from: onap.policies.controlloop.operational.Common\n        metadata: {\n            }\n        description: Operational policies for Apex PDP\ndata_types:\n    onap.datatype.controlloop.Actor:\n        constraints: [\n            ]\n        properties:\n            payload:\n                name: payload\n                type: map\n                typeVersion: 0.0.0\n                description: Name/value pairs of payload information passed by Policy\n                    to the actor\n                required: false\n                constraints: [\n                    ]\n                entry_schema:\n                    type: string\n                    typeVersion: 0.0.0\n                    constraints: [\n                        ]\n                metadata:\n                    clamp_possible_values: ClampExecution:CDS/payload\n            target:\n                name: target\n                type: onap.datatype.controlloop.Target\n                typeVersion: 0.0.0\n                description: The resource the operation should be performed on.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            actor:\n                name: actor\n                type: string\n                typeVersion: 0.0.0\n                description: The actor performing the operation.\n                required: true\n                constraints: [\n                    ]\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n            operation:\n                name: operation\n                type: string\n                typeVersion: 0.0.0\n                description: The operation the actor is performing.\n                required: true\n                constraints: [\n                    ]\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operation\n        name: onap.datatype.controlloop.Actor\n        version: 0.0.0\n        derived_from: tosca.datatypes.Root\n        metadata: {\n            }\n        description: An actor/operation/target definition\n    onap.datatype.controlloop.Operation:\n        constraints: [\n            ]\n        properties:\n            failure_retries:\n                name: failure_retries\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the current operation\n                    has exceeded its max retries.\n                default: final_failure_retries\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            id:\n                name: id\n                type: string\n                typeVersion: 0.0.0\n                description: Unique identifier for the operation\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure_timeout:\n                name: failure_timeout\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the time out for\n                    the operation occurs.\n                default: final_failure_timeout\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure:\n                name: failure\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke on Actor operation\n                    failure.\n                default: final_failure\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            operation:\n                name: operation\n                type: onap.datatype.controlloop.Actor\n                typeVersion: 0.0.0\n                description: The definition of the operation to be performed.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure_guard:\n                name: failure_guard\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the current operation\n                    is blocked due to guard policy enforcement.\n                default: final_failure_guard\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            retries:\n                name: retries\n                type: integer\n                typeVersion: 0.0.0\n                description: The number of retries the actor should attempt to perform\n                    the operation.\n                default: \'0\'\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            timeout:\n                name: timeout\n                type: integer\n                typeVersion: 0.0.0\n                description: The amount of time for the actor to perform the operation.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure_exception:\n                name: failure_exception\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the current operation\n                    causes an exception.\n                default: final_failure_exception\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            description:\n                name: description\n                type: string\n                typeVersion: 0.0.0\n                description: A user-friendly description of the intent for the operation\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            success:\n                name: success\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke on success. A value\n                    of \"final_success\" indicates and end to the operation.\n                default: final_success\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n        name: onap.datatype.controlloop.Operation\n        version: 0.0.0\n        derived_from: tosca.datatypes.Root\n        metadata: {\n            }\n        description: An operation supported by an actor\n    onap.datatype.controlloop.Target:\n        constraints: [\n            ]\n        properties:\n            entityIds:\n                name: entityIds\n                type: map\n                typeVersion: 0.0.0\n                description: |\n                    Map of values that identify the resource. If none are provided, it is assumed that the\n                    entity that generated the ONSET event will be the target.\n                required: false\n                constraints: [\n                    ]\n                entry_schema:\n                    type: string\n                    typeVersion: 0.0.0\n                    constraints: [\n                        ]\n                metadata:\n                    clamp_possible_values: ClampExecution:CSAR_RESOURCES\n            targetType:\n                name: targetType\n                type: string\n                typeVersion: 0.0.0\n                description: Category for the target type\n                required: true\n                constraints:\n                -   valid_values:\n                    - VNF\n                    - VM\n                    - VFMODULE\n                    - PNF\n                metadata: {\n                    }\n        name: onap.datatype.controlloop.Target\n        version: 0.0.0\n        derived_from: tosca.datatypes.Root\n        metadata: {\n            }\n        description: Definition for a entity in A&AI to perform a control loop operation\n            on\nname: ToscaServiceTemplateSimple\nversion: 1.0.0\nmetadata: {\n    }\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"drools\"\n      ]\n    }\n  ]\n}');
-INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Drools','1.0.0','Not found','2020-04-15 00:31:45.721470','Not found','2020-04-15 00:31:46.958149','Drools','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.operational.common.Drools:\n        derived_from: onap.policies.controlloop.operational.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Operational policies for Drools PDP\n        properties:\n            controllerName:\n                type: string\n                description: Drools controller properties\n                required: false\n    onap.policies.controlloop.operational.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n            Policy Types. This does NOT support the legacy Policy YAML policy type.\n        properties:\n            id:\n                type: string\n                description: The unique control loop id.\n                required: true\n            timeout:\n                type: integer\n                description: |\n                    Overall timeout for executing all the operations. This timeout should equal or exceed the total\n                    timeout for each operation listed.\n                required: true\n            abatement:\n                type: boolean\n                description: Whether an abatement event message will be expected for\n                    the control loop from DCAE.\n                required: true\n                default: false\n            trigger:\n                type: string\n                description: Initial operation to execute upon receiving an Onset\n                    event message for the Control Loop.\n                required: true\n            operations:\n                type: list\n                description: List of operations to be performed when Control Loop\n                    is triggered.\n                required: true\n                entry_schema:\n                    type: onap.datatype.controlloop.Operation\ndata_types:\n    onap.datatype.controlloop.Target:\n        derived_from: tosca.datatypes.Root\n        description: Definition for a entity in A&AI to perform a control loop operation\n            on\n        properties:\n            targetType:\n                type: string\n                description: Category for the target type\n                required: true\n                constraints:\n                -   valid_values:\n                    - VNF\n                    - VM\n                    - VFMODULE\n                    - PNF\n            entityIds:\n                type: map\n                description: |\n                    Map of values that identify the resource. If none are provided, it is assumed that the\n                    entity that generated the ONSET event will be the target.\n                required: false\n                metadata:\n                    clamp_possible_values: ClampExecution:CSAR_RESOURCES\n                entry_schema:\n                    type: string\n    onap.datatype.controlloop.Actor:\n        derived_from: tosca.datatypes.Root\n        description: An actor/operation/target definition\n        properties:\n            actor:\n                type: string\n                description: The actor performing the operation.\n                required: true\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n            operation:\n                type: string\n                description: The operation the actor is performing.\n                required: true\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations\n            target:\n                type: onap.datatype.controlloop.Target\n                description: The resource the operation should be performed on.\n                required: true\n            payload:\n                type: map\n                description: Name/value pairs of payload information passed by Policy\n                    to the actor\n                required: false\n                metadata:\n                    clamp_possible_values: ClampExecution:CDS/payload\n                entry_schema:\n                    type: string\n    onap.datatype.controlloop.Operation:\n        derived_from: tosca.datatypes.Root\n        description: An operation supported by an actor\n        properties:\n            id:\n                type: string\n                description: Unique identifier for the operation\n                required: true\n            description:\n                type: string\n                description: A user-friendly description of the intent for the operation\n                required: false\n            operation:\n                type: onap.datatype.controlloop.Actor\n                description: The definition of the operation to be performed.\n                required: true\n            timeout:\n                type: integer\n                description: The amount of time for the actor to perform the operation.\n                required: true\n            retries:\n                type: integer\n                description: The number of retries the actor should attempt to perform\n                    the operation.\n                required: true\n                default: 0\n            success:\n                type: string\n                description: Points to the operation to invoke on success. A value\n                    of \"final_success\" indicates and end to the operation.\n                required: false\n                default: final_success\n            failure:\n                type: string\n                description: Points to the operation to invoke on Actor operation\n                    failure.\n                required: false\n                default: final_failure\n            failure_timeout:\n                type: string\n                description: Points to the operation to invoke when the time out for\n                    the operation occurs.\n                required: false\n                default: final_failure_timeout\n            failure_retries:\n                type: string\n                description: Points to the operation to invoke when the current operation\n                    has exceeded its max retries.\n                required: false\n                default: final_failure_retries\n            failure_exception:\n                type: string\n                description: Points to the operation to invoke when the current operation\n                    causes an exception.\n                required: false\n                default: final_failure_exception\n            failure_guard:\n                type: string\n                description: Points to the operation to invoke when the current operation\n                    is blocked due to guard policy enforcement.\n                required: false\n                default: final_failure_guard\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"drools\"\n      ]\n    }\n  ]\n}');
-INSERT INTO `policy_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','Not found','2020-04-15 00:31:24.411872','Not found','2020-04-15 00:31:47.031644','app','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.Monitoring:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: a base policy type for all policies that govern 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: onap.datatypes.monitoring.tca_policy\n                description: TCA Policy JSON\n                required: true\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\n                    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\n                    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\n                    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','{\n  \"supportedPdpGroups\": [\n    {\n      \"monitoring\": [\n        \"xacml\"\n      ]\n    }\n  ]\n}');
+INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.Blacklist','1.0.0','Not found','2020-04-16 16:49:04.887829','Not found','2020-04-16 16:49:05.833609','Blacklist','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.guard.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            This is the base Policy Type for Guard policies that guard the execution of Operational\n            Policies.\n        properties:\n            actor:\n                type: string\n                description: Specifies the Actor the guard applies to.\n                required: true\n            operation:\n                type: string\n                description: Specified the operation that the actor is performing\n                    the guard applies to.\n                required: true\n            timeRange:\n                type: tosca.datatypes.TimeInterval\n                description: |\n                    An optional range of time during the day the guard policy is valid for.\n                required: false\n            id:\n                type: string\n                description: The Control Loop id this applies to.\n                required: false\n    onap.policies.controlloop.guard.common.Blacklist:\n        derived_from: onap.policies.controlloop.guard.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Supports blacklist of entity id\'s from performing control loop\n            actions on.\n        properties:\n            blacklist:\n                type: list\n                description: List of entity id\'s\n                required: true\n                entry_schema:\n                    type: string\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"xacml\"\n      ]\n    }\n  ]\n}');
+INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.FrequencyLimiter','1.0.0','Not found','2020-04-16 16:49:04.674370','Not found','2020-04-16 16:49:05.857855','FrequencyLimiter','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.guard.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            This is the base Policy Type for Guard policies that guard the execution of Operational\n            Policies.\n        properties:\n            actor:\n                type: string\n                description: Specifies the Actor the guard applies to.\n                required: true\n            operation:\n                type: string\n                description: Specified the operation that the actor is performing\n                    the guard applies to.\n                required: true\n            timeRange:\n                type: tosca.datatypes.TimeInterval\n                description: |\n                    An optional range of time during the day the guard policy is valid for.\n                required: false\n            id:\n                type: string\n                description: The Control Loop id this applies to.\n                required: false\n    onap.policies.controlloop.guard.common.FrequencyLimiter:\n        derived_from: onap.policies.controlloop.guard.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Supports limiting the frequency of actions being taken by a Actor.\n        properties:\n            timeWindow:\n                type: integer\n                description: The time window to count the actions against.\n                required: true\n            timeUnits:\n                type: string\n                description: The units of time the window is counting.\n                constraints:\n                -   valid_values:\n                    - second\n                    - minute\n                    - hour\n                    - day\n                    - week\n                    - month\n                    - year\n            limit:\n                type: integer\n                description: The limit\n                required: true\n                constraints:\n                -   greater_than: 0\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"xacml\"\n      ]\n    }\n  ]\n}');
+INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.MinMax','2.0.0','Not found','2020-04-16 16:49:05.330365','Not found','2020-04-16 16:49:05.330365','MinMax','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.guard.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            This is the base Policy Type for Guard policies that guard the execution of Operational\n            Policies.\n        properties:\n            actor:\n                type: string\n                description: Specifies the Actor the guard applies to.\n                required: true\n            operation:\n                type: string\n                description: Specified the operation that the actor is performing\n                    the guard applies to.\n                required: true\n            timeRange:\n                type: tosca.datatypes.TimeInterval\n                description: |\n                    An optional range of time during the day the guard policy is valid for.\n                required: false\n            id:\n                type: string\n                description: The Control Loop id this applies to.\n                required: false\n    onap.policies.controlloop.guard.common.MinMax:\n        derived_from: onap.policies.controlloop.guard.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Supports Min/Max number of entity for scaling operations\n        properties:\n            min:\n                type: integer\n                required: true\n                description: The minimum instances of this entity\n            max:\n                type: integer\n                required: false\n                description: The maximum instances of this entity\n',NULL);
+INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.Operational','1.0.0','Not found','2020-04-16 16:47:23.371101','Not found','2020-04-16 16:49:05.907145','OperationalPolicyLegacy','','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"apex\",\n        \"drools\"\n      ]\n    }\n  ]\n}');
+INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Apex','1.0.0','Not found','2020-04-16 16:49:04.496777','Not found','2020-04-16 16:49:05.960265','Apex','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.operational.Common:\n        properties:\n            abatement:\n                name: abatement\n                type: boolean\n                typeVersion: 0.0.0\n                description: Whether an abatement event message will be expected for\n                    the control loop from DCAE.\n                default: \'false\'\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            operations:\n                name: operations\n                type: list\n                typeVersion: 0.0.0\n                description: List of operations to be performed when Control Loop\n                    is triggered.\n                required: true\n                constraints: [\n                    ]\n                entry_schema:\n                    type: onap.datatype.controlloop.Operation\n                    typeVersion: 0.0.0\n                    constraints: [\n                        ]\n                metadata: {\n                    }\n            trigger:\n                name: trigger\n                type: string\n                typeVersion: 0.0.0\n                description: Initial operation to execute upon receiving an Onset\n                    event message for the Control Loop.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            timeout:\n                name: timeout\n                type: integer\n                typeVersion: 0.0.0\n                description: |\n                    Overall timeout for executing all the operations. This timeout should equal or exceed the total\n                    timeout for each operation listed.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            id:\n                name: id\n                type: string\n                typeVersion: 0.0.0\n                description: The unique control loop id.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n        name: onap.policies.controlloop.operational.Common\n        version: 1.0.0\n        derived_from: tosca.policies.Root\n        metadata: {\n            }\n        description: |\n            Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n            Policy Types. This does NOT support the legacy Policy YAML policy type.\n    onap.policies.controlloop.operational.common.Apex:\n        properties:\n            engineServiceParameters:\n                name: engineServiceParameters\n                type: string\n                typeVersion: 0.0.0\n                description: The engine parameters like name, instanceCount, policy\n                    implementation, parameters etc.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            eventOutputParameters:\n                name: eventOutputParameters\n                type: string\n                typeVersion: 0.0.0\n                description: The event output parameters.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            javaProperties:\n                name: javaProperties\n                type: string\n                typeVersion: 0.0.0\n                description: Name/value pairs of properties to be set for APEX if\n                    needed.\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            eventInputParameters:\n                name: eventInputParameters\n                type: string\n                typeVersion: 0.0.0\n                description: The event input parameters.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n        name: onap.policies.controlloop.operational.common.Apex\n        version: 1.0.0\n        derived_from: onap.policies.controlloop.operational.Common\n        metadata: {\n            }\n        description: Operational policies for Apex PDP\ndata_types:\n    onap.datatype.controlloop.Actor:\n        constraints: [\n            ]\n        properties:\n            payload:\n                name: payload\n                type: map\n                typeVersion: 0.0.0\n                description: Name/value pairs of payload information passed by Policy\n                    to the actor\n                required: false\n                constraints: [\n                    ]\n                entry_schema:\n                    type: string\n                    typeVersion: 0.0.0\n                    constraints: [\n                        ]\n                metadata:\n                    clamp_possible_values: ClampExecution:CDS/payload\n            target:\n                name: target\n                type: onap.datatype.controlloop.Target\n                typeVersion: 0.0.0\n                description: The resource the operation should be performed on.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            actor:\n                name: actor\n                type: string\n                typeVersion: 0.0.0\n                description: The actor performing the operation.\n                required: true\n                constraints: [\n                    ]\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n            operation:\n                name: operation\n                type: string\n                typeVersion: 0.0.0\n                description: The operation the actor is performing.\n                required: true\n                constraints: [\n                    ]\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operation\n        name: onap.datatype.controlloop.Actor\n        version: 0.0.0\n        derived_from: tosca.datatypes.Root\n        metadata: {\n            }\n        description: An actor/operation/target definition\n    onap.datatype.controlloop.Operation:\n        constraints: [\n            ]\n        properties:\n            failure_retries:\n                name: failure_retries\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the current operation\n                    has exceeded its max retries.\n                default: final_failure_retries\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            id:\n                name: id\n                type: string\n                typeVersion: 0.0.0\n                description: Unique identifier for the operation\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure_timeout:\n                name: failure_timeout\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the time out for\n                    the operation occurs.\n                default: final_failure_timeout\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure:\n                name: failure\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke on Actor operation\n                    failure.\n                default: final_failure\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            operation:\n                name: operation\n                type: onap.datatype.controlloop.Actor\n                typeVersion: 0.0.0\n                description: The definition of the operation to be performed.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure_guard:\n                name: failure_guard\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the current operation\n                    is blocked due to guard policy enforcement.\n                default: final_failure_guard\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            retries:\n                name: retries\n                type: integer\n                typeVersion: 0.0.0\n                description: The number of retries the actor should attempt to perform\n                    the operation.\n                default: \'0\'\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            timeout:\n                name: timeout\n                type: integer\n                typeVersion: 0.0.0\n                description: The amount of time for the actor to perform the operation.\n                required: true\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            failure_exception:\n                name: failure_exception\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke when the current operation\n                    causes an exception.\n                default: final_failure_exception\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            description:\n                name: description\n                type: string\n                typeVersion: 0.0.0\n                description: A user-friendly description of the intent for the operation\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n            success:\n                name: success\n                type: string\n                typeVersion: 0.0.0\n                description: Points to the operation to invoke on success. A value\n                    of \"final_success\" indicates and end to the operation.\n                default: final_success\n                required: false\n                constraints: [\n                    ]\n                metadata: {\n                    }\n        name: onap.datatype.controlloop.Operation\n        version: 0.0.0\n        derived_from: tosca.datatypes.Root\n        metadata: {\n            }\n        description: An operation supported by an actor\n    onap.datatype.controlloop.Target:\n        constraints: [\n            ]\n        properties:\n            entityIds:\n                name: entityIds\n                type: map\n                typeVersion: 0.0.0\n                description: |\n                    Map of values that identify the resource. If none are provided, it is assumed that the\n                    entity that generated the ONSET event will be the target.\n                required: false\n                constraints: [\n                    ]\n                entry_schema:\n                    type: string\n                    typeVersion: 0.0.0\n                    constraints: [\n                        ]\n                metadata:\n                    clamp_possible_values: ClampExecution:CSAR_RESOURCES\n            targetType:\n                name: targetType\n                type: string\n                typeVersion: 0.0.0\n                description: Category for the target type\n                required: true\n                constraints:\n                -   valid_values:\n                    - VNF\n                    - VM\n                    - VFMODULE\n                    - PNF\n                metadata: {\n                    }\n        name: onap.datatype.controlloop.Target\n        version: 0.0.0\n        derived_from: tosca.datatypes.Root\n        metadata: {\n            }\n        description: Definition for a entity in A&AI to perform a control loop operation\n            on\nname: ToscaServiceTemplateSimple\nversion: 1.0.0\nmetadata: {\n    }\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"drools\"\n      ]\n    }\n  ]\n}');
+INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Drools','1.0.0','Not found','2020-04-16 16:49:03.958133','Not found','2020-04-16 16:49:06.057670','Drools','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.controlloop.operational.common.Drools:\n        derived_from: onap.policies.controlloop.operational.Common\n        type_version: 1.0.0\n        version: 1.0.0\n        description: Operational policies for Drools PDP\n        properties:\n            controllerName:\n                type: string\n                description: Drools controller properties\n                required: false\n    onap.policies.controlloop.operational.Common:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: |\n            Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n            Policy Types. This does NOT support the legacy Policy YAML policy type.\n        properties:\n            id:\n                type: string\n                description: The unique control loop id.\n                required: true\n            timeout:\n                type: integer\n                description: |\n                    Overall timeout for executing all the operations. This timeout should equal or exceed the total\n                    timeout for each operation listed.\n                required: true\n            abatement:\n                type: boolean\n                description: Whether an abatement event message will be expected for\n                    the control loop from DCAE.\n                required: true\n                default: false\n            trigger:\n                type: string\n                description: Initial operation to execute upon receiving an Onset\n                    event message for the Control Loop.\n                required: true\n            operations:\n                type: list\n                description: List of operations to be performed when Control Loop\n                    is triggered.\n                required: true\n                entry_schema:\n                    type: onap.datatype.controlloop.Operation\ndata_types:\n    onap.datatype.controlloop.Target:\n        derived_from: tosca.datatypes.Root\n        description: Definition for a entity in A&AI to perform a control loop operation\n            on\n        properties:\n            targetType:\n                type: string\n                description: Category for the target type\n                required: true\n                constraints:\n                -   valid_values:\n                    - VNF\n                    - VM\n                    - VFMODULE\n                    - PNF\n            entityIds:\n                type: map\n                description: |\n                    Map of values that identify the resource. If none are provided, it is assumed that the\n                    entity that generated the ONSET event will be the target.\n                required: false\n                metadata:\n                    clamp_possible_values: ClampExecution:CSAR_RESOURCES\n                entry_schema:\n                    type: string\n    onap.datatype.controlloop.Actor:\n        derived_from: tosca.datatypes.Root\n        description: An actor/operation/target definition\n        properties:\n            actor:\n                type: string\n                description: The actor performing the operation.\n                required: true\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n            operation:\n                type: string\n                description: The operation the actor is performing.\n                required: true\n                metadata:\n                    clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations\n            target:\n                type: onap.datatype.controlloop.Target\n                description: The resource the operation should be performed on.\n                required: true\n            payload:\n                type: map\n                description: Name/value pairs of payload information passed by Policy\n                    to the actor\n                required: false\n                metadata:\n                    clamp_possible_values: ClampExecution:CDS/payload\n                entry_schema:\n                    type: string\n    onap.datatype.controlloop.Operation:\n        derived_from: tosca.datatypes.Root\n        description: An operation supported by an actor\n        properties:\n            id:\n                type: string\n                description: Unique identifier for the operation\n                required: true\n            description:\n                type: string\n                description: A user-friendly description of the intent for the operation\n                required: false\n            operation:\n                type: onap.datatype.controlloop.Actor\n                description: The definition of the operation to be performed.\n                required: true\n            timeout:\n                type: integer\n                description: The amount of time for the actor to perform the operation.\n                required: true\n            retries:\n                type: integer\n                description: The number of retries the actor should attempt to perform\n                    the operation.\n                required: true\n                default: 0\n            success:\n                type: string\n                description: Points to the operation to invoke on success. A value\n                    of \"final_success\" indicates and end to the operation.\n                required: false\n                default: final_success\n            failure:\n                type: string\n                description: Points to the operation to invoke on Actor operation\n                    failure.\n                required: false\n                default: final_failure\n            failure_timeout:\n                type: string\n                description: Points to the operation to invoke when the time out for\n                    the operation occurs.\n                required: false\n                default: final_failure_timeout\n            failure_retries:\n                type: string\n                description: Points to the operation to invoke when the current operation\n                    has exceeded its max retries.\n                required: false\n                default: final_failure_retries\n            failure_exception:\n                type: string\n                description: Points to the operation to invoke when the current operation\n                    causes an exception.\n                required: false\n                default: final_failure_exception\n            failure_guard:\n                type: string\n                description: Points to the operation to invoke when the current operation\n                    is blocked due to guard policy enforcement.\n                required: false\n                default: final_failure_guard\n','{\n  \"supportedPdpGroups\": [\n    {\n      \"controlloop\": [\n        \"drools\"\n      ]\n    }\n  ]\n}');
+INSERT INTO `policy_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','Not found','2020-04-16 16:48:46.645494','Not found','2020-04-16 16:49:06.116687','app','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n    onap.policies.Monitoring:\n        derived_from: tosca.policies.Root\n        version: 1.0.0\n        description: a base policy type for all policies that govern 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: onap.datatypes.monitoring.tca_policy\n                description: TCA Policy JSON\n                required: true\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\n                    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\n                    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\n                    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','{\n  \"supportedPdpGroups\": [\n    {\n      \"monitoring\": [\n        \"xacml\"\n      ]\n    }\n  ]\n}');
 /*!40000 ALTER TABLE `policy_models` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -198,7 +198,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `services` WRITE;
 /*!40000 ALTER TABLE `services` DISABLE KEYS */;
-INSERT INTO `services` VALUES ('63cac700-ab9a-4115-a74f-7eac85e3fce0','vLoadBalancerMS','{\n  \"CP\": {},\n  \"VL\": {},\n  \"VF\": {\n    \"vLoadBalancerMS 0\": {\n      \"resourceVendor\": \"Test\",\n      \"name\": \"vLoadBalancerMS\",\n      \"resourceVendorModelNumber\": \"\",\n      \"description\": \"vLBMS\",\n      \"invariantUUID\": \"1a31b9f2-e50d-43b7-89b3-a040250cf506\",\n      \"UUID\": \"b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6\",\n      \"type\": \"VF\",\n      \"category\": \"Application L4+\",\n      \"subcategory\": \"Load Balancer\",\n      \"version\": \"1.0\",\n      \"customizationUUID\": \"465246dc-7748-45f4-a013-308d92922552\",\n      \"resourceVendorRelease\": \"1.0\",\n      \"controllerProperties\": {\n        \"sdnc_model_name\": \"baseconfiguration\",\n        \"sdnc_model_version\": \"1.0.0\",\n        \"workflows\": {\n          \"resource-assignment\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": \"\",\n                \"service-instance-id\": \"\",\n                \"vnf-id\": \"\",\n                \"action-name\": \"\",\n                \"scope-type\": \"\",\n                \"hostname\": \"\",\n                \"vnf_name\": \"\"\n              }\n            }\n          },\n          \"activate\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": \"\",\n                \"service-instance-id\": \"\",\n                \"vnf-id\": \"\",\n                \"action-name\": \"\",\n                \"scope-type\": \"\",\n                \"hostname\": \"\",\n                \"vnf_name\": \"\"\n              }\n            }\n          },\n          \"activate-restconf\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": \"\",\n                \"service-instance-id\": \"\",\n                \"vnf-id\": \"\",\n                \"action-name\": \"\",\n                \"scope-type\": \"\",\n                \"hostname\": \"\",\n                \"vnf_name\": \"\"\n              }\n            }\n          },\n          \"activate-cli\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": \"\",\n                \"service-instance-id\": \"\",\n                \"vnf-id\": \"\",\n                \"action-name\": \"\",\n                \"scope-type\": \"\",\n                \"hostname\": \"\",\n                \"vnf_name\": \"\"\n              }\n            }\n          },\n          \"assign-activate\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": \"\",\n                \"service-instance-id\": \"\",\n                \"vnf-id\": \"\",\n                \"action-name\": \"\",\n                \"scope-type\": \"\",\n                \"hostname\": \"\",\n                \"vnf_name\": \"\"\n              }\n            }\n          },\n          \"imperative-test-wf\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": \"\",\n                \"service-instance-id\": \"\",\n                \"vnf-id\": \"\",\n                \"action-name\": \"\",\n                \"scope-type\": \"\",\n                \"hostname\": \"\",\n                \"vnf_name\": \"\"\n              }\n            }\n          }\n        }\n      }\n    }\n  },\n  \"CR\": {},\n  \"VFC\": {},\n  \"PNF\": {},\n  \"Service\": {},\n  \"CVFC\": {},\n  \"Service Proxy\": {},\n  \"Configuration\": {},\n  \"AllottedResource\": {},\n  \"VFModule\": {\n    \"Vloadbalancerms..vpkg..module-1\": {\n      \"vfModuleModelInvariantUUID\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..vpkg..module-1\",\n      \"vfModuleModelUUID\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n      \"vfModuleModelCustomizationUUID\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n      \"min_vf_module_instances\": 0,\n      \"vf_module_label\": \"vpkg\",\n      \"max_vf_module_instances\": 1,\n      \"vf_module_type\": \"Expansion\",\n      \"isBase\": false,\n      \"initial_count\": 0,\n      \"volume_group\": false\n    },\n    \"Vloadbalancerms..vdns..module-3\": {\n      \"vfModuleModelInvariantUUID\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..vdns..module-3\",\n      \"vfModuleModelUUID\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n      \"vfModuleModelCustomizationUUID\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n      \"min_vf_module_instances\": 0,\n      \"vf_module_label\": \"vdns\",\n      \"max_vf_module_instances\": 50,\n      \"vf_module_type\": \"Expansion\",\n      \"isBase\": false,\n      \"initial_count\": 0,\n      \"volume_group\": false\n    },\n    \"Vloadbalancerms..base_template..module-0\": {\n      \"vfModuleModelInvariantUUID\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..base_template..module-0\",\n      \"vfModuleModelUUID\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n      \"vfModuleModelCustomizationUUID\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n      \"min_vf_module_instances\": 1,\n      \"vf_module_label\": \"base_template\",\n      \"max_vf_module_instances\": 1,\n      \"vf_module_type\": \"Base\",\n      \"isBase\": true,\n      \"initial_count\": 1,\n      \"volume_group\": false\n    },\n    \"Vloadbalancerms..vlb..module-2\": {\n      \"vfModuleModelInvariantUUID\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..vlb..module-2\",\n      \"vfModuleModelUUID\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n      \"vfModuleModelCustomizationUUID\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n      \"min_vf_module_instances\": 0,\n      \"vf_module_label\": \"vlb\",\n      \"max_vf_module_instances\": 1,\n      \"vf_module_type\": \"Expansion\",\n      \"isBase\": false,\n      \"initial_count\": 0,\n      \"volume_group\": false\n    }\n  }\n}','{\n  \"serviceType\": \"\",\n  \"serviceRole\": \"\",\n  \"description\": \"vLBMS\",\n  \"type\": \"Service\",\n  \"instantiationType\": \"A-la-carte\",\n  \"namingPolicy\": \"\",\n  \"serviceEcompNaming\": \"true\",\n  \"environmentContext\": \"General_Revenue-Bearing\",\n  \"name\": \"vLoadBalancerMS\",\n  \"invariantUUID\": \"30ec5b59-4799-48d8-ac5f-1058a6b0e48f\",\n  \"ecompGeneratedNaming\": \"true\",\n  \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\",\n  \"category\": \"Network L4+\"\n}','1.0');
+INSERT INTO `services` VALUES ('63cac700-ab9a-4115-a74f-7eac85e3fce0','vLoadBalancerMS','{\n  \"CP\": {},\n  \"VL\": {},\n  \"VF\": {\n    \"vLoadBalancerMS 0\": {\n      \"resourceVendor\": \"Test\",\n      \"name\": \"vLoadBalancerMS\",\n      \"resourceVendorModelNumber\": \"\",\n      \"description\": \"vLBMS\",\n      \"invariantUUID\": \"1a31b9f2-e50d-43b7-89b3-a040250cf506\",\n      \"UUID\": \"b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6\",\n      \"type\": \"VF\",\n      \"category\": \"Application L4+\",\n      \"subcategory\": \"Load Balancer\",\n      \"version\": \"1.0\",\n      \"customizationUUID\": \"465246dc-7748-45f4-a013-308d92922552\",\n      \"resourceVendorRelease\": \"1.0\",\n      \"controllerProperties\": {\n        \"sdnc_model_name\": \"baseconfiguration\",\n        \"sdnc_model_version\": \"1.0.0\",\n        \"workflows\": {\n          \"resource-assignment\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"service-instance-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"action-name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"scope-type\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"hostname\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf_name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                }\n              }\n            }\n          },\n          \"activate\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"service-instance-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"action-name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"scope-type\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"hostname\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf_name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                }\n              }\n            }\n          },\n          \"activate-restconf\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"service-instance-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"action-name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"scope-type\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"hostname\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf_name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                }\n              }\n            }\n          },\n          \"activate-cli\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"service-instance-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"action-name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"scope-type\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"hostname\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf_name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                }\n              }\n            }\n          },\n          \"assign-activate\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"service-instance-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"action-name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"scope-type\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"hostname\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf_name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                }\n              }\n            }\n          },\n          \"imperative-test-wf\": {\n            \"inputs\": {\n              \"resource-assignment-properties\": {\n                \"request-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"service-instance-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf-id\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"action-name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"scope-type\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"hostname\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                },\n                \"vnf_name\": {\n                  \"required\": true,\n                  \"type\": \"string\"\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  },\n  \"CR\": {},\n  \"VFC\": {},\n  \"PNF\": {},\n  \"Service\": {},\n  \"CVFC\": {},\n  \"Service Proxy\": {},\n  \"Configuration\": {},\n  \"AllottedResource\": {},\n  \"VFModule\": {\n    \"Vloadbalancerms..vpkg..module-1\": {\n      \"vfModuleModelInvariantUUID\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..vpkg..module-1\",\n      \"vfModuleModelUUID\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n      \"vfModuleModelCustomizationUUID\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n      \"min_vf_module_instances\": 0,\n      \"vf_module_label\": \"vpkg\",\n      \"max_vf_module_instances\": 1,\n      \"vf_module_type\": \"Expansion\",\n      \"isBase\": false,\n      \"initial_count\": 0,\n      \"volume_group\": false\n    },\n    \"Vloadbalancerms..vdns..module-3\": {\n      \"vfModuleModelInvariantUUID\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..vdns..module-3\",\n      \"vfModuleModelUUID\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n      \"vfModuleModelCustomizationUUID\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n      \"min_vf_module_instances\": 0,\n      \"vf_module_label\": \"vdns\",\n      \"max_vf_module_instances\": 50,\n      \"vf_module_type\": \"Expansion\",\n      \"isBase\": false,\n      \"initial_count\": 0,\n      \"volume_group\": false\n    },\n    \"Vloadbalancerms..base_template..module-0\": {\n      \"vfModuleModelInvariantUUID\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..base_template..module-0\",\n      \"vfModuleModelUUID\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n      \"vfModuleModelCustomizationUUID\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n      \"min_vf_module_instances\": 1,\n      \"vf_module_label\": \"base_template\",\n      \"max_vf_module_instances\": 1,\n      \"vf_module_type\": \"Base\",\n      \"isBase\": true,\n      \"initial_count\": 1,\n      \"volume_group\": false\n    },\n    \"Vloadbalancerms..vlb..module-2\": {\n      \"vfModuleModelInvariantUUID\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n      \"vfModuleModelVersion\": \"1\",\n      \"vfModuleModelName\": \"Vloadbalancerms..vlb..module-2\",\n      \"vfModuleModelUUID\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n      \"vfModuleModelCustomizationUUID\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n      \"min_vf_module_instances\": 0,\n      \"vf_module_label\": \"vlb\",\n      \"max_vf_module_instances\": 1,\n      \"vf_module_type\": \"Expansion\",\n      \"isBase\": false,\n      \"initial_count\": 0,\n      \"volume_group\": false\n    }\n  }\n}','{\n  \"serviceType\": \"\",\n  \"serviceRole\": \"\",\n  \"description\": \"vLBMS\",\n  \"type\": \"Service\",\n  \"instantiationType\": \"A-la-carte\",\n  \"namingPolicy\": \"\",\n  \"serviceEcompNaming\": \"true\",\n  \"environmentContext\": \"General_Revenue-Bearing\",\n  \"name\": \"vLoadBalancerMS\",\n  \"invariantUUID\": \"30ec5b59-4799-48d8-ac5f-1058a6b0e48f\",\n  \"ecompGeneratedNaming\": \"true\",\n  \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\",\n  \"category\": \"Network L4+\"\n}','1.0');
 /*!40000 ALTER TABLE `services` ENABLE KEYS */;
 UNLOCK TABLES;
 /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -210,4 +210,4 @@ UNLOCK TABLES;
 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
 
--- Dump completed on 2020-04-14 22:34:16
+-- Dump completed on 2020-04-16 14:50:40
diff --git a/pom.xml b/pom.xml
index e2de1e2..f51acac 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
        <modelVersion>4.0.0</modelVersion>
        <groupId>org.onap.clamp</groupId>
        <artifactId>clds</artifactId>
-       <version>5.0.4-SNAPSHOT</version>
+       <version>5.0.5-SNAPSHOT</version>
        <name>clamp</name>
 
 
                        <artifactId>snakeyaml</artifactId>
                        <version>1.26</version>
                </dependency>
+               <dependency>
+                       <groupId>org.dom4j</groupId>
+                       <artifactId>dom4j</artifactId>
+                       <version>2.1.3</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.springframework.security</groupId>
+                       <artifactId>spring-security-web</artifactId>
+                       <version>5.2.3.RELEASE</version>
+               </dependency>
+
                <!-- TESTING -->
                <dependency>
                        <groupId>org.assertj</groupId>
diff --git a/releases/5.0.4-container.yaml b/releases/5.0.4-container.yaml
new file mode 100644 (file)
index 0000000..94e8afa
--- /dev/null
@@ -0,0 +1,10 @@
+distribution_type: 'container'
+container_release_tag: '5.0.4'
+project: 'clamp'
+log_dir: 'clamp-maven-docker-stage-master/389/'
+ref: 9698b59ab5eab72437d8a0f501b21da22b302df3
+containers:
+    - name: 'clamp-backend'
+      version: '5.0-STAGING-20200420T122047Z'
+    - name: 'clamp-frontend'
+      version: '5.0-STAGING-20200420T122047Z'
\ No newline at end of file
diff --git a/releases/5.0.4.yaml b/releases/5.0.4.yaml
new file mode 100644 (file)
index 0000000..335c79c
--- /dev/null
@@ -0,0 +1,5 @@
+---
+distribution_type: 'maven'
+version: '5.0.4'
+project: 'clamp'
+log_dir: 'clamp-maven-stage-master/400/'
index 63320d2..8423299 100644 (file)
@@ -65,8 +65,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @ComponentScan(basePackages = { "org.onap.clamp" })
-@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class,
-    UserDetailsServiceAutoConfiguration.class })
+@SpringBootApplication(exclude = { SecurityAutoConfiguration.class, UserDetailsServiceAutoConfiguration.class })
 @EnableJpaRepositories(basePackages = { "org.onap.clamp" })
 @EntityScan(basePackages = { "org.onap.clamp" })
 @EnableTransactionManagement
diff --git a/src/main/java/org/onap/clamp/clds/config/EncodedPasswordBasicDataSource.java b/src/main/java/org/onap/clamp/clds/config/EncodedPasswordBasicDataSource.java
deleted file mode 100644 (file)
index 0d39cd5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); 
- * you may not use this file except in compliance with the License. 
- * You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software 
- * distributed under the License is distributed on an "AS IS" BASIS, 
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
- * See the License for the specific language governing permissions and 
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- * 
- */
-
-package org.onap.clamp.clds.config;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-import java.security.GeneralSecurityException;
-
-import org.apache.commons.codec.DecoderException;
-import org.apache.commons.dbcp.BasicDataSource;
-import org.onap.clamp.clds.util.CryptoUtils;
-
-/**
- * This class is an extension of the standard datasource, it will be used to
- * decode the encoded password defined in the application.properties.
- *
- */
-public class EncodedPasswordBasicDataSource extends BasicDataSource {
-    protected static final EELFLogger logger        = EELFManager.getInstance()
-            .getLogger(EncodedPasswordBasicDataSource.class);
-    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
-
-    /**
-     * This method is used automatically by Spring to decode the password.
-     */
-    @Override
-    public synchronized void setPassword(String encodedPassword) {
-        try {
-            this.password = CryptoUtils.decrypt(encodedPassword);
-        } catch (GeneralSecurityException e) {
-            logger.error("Unable to decrypt the DB password", e);
-        } catch (DecoderException e) {
-            logger.error("Exception caught when decoding the HEX String Key for encryption", e);
-        }
-    }
-}
\ No newline at end of file
index b247846..14c08c8 100644 (file)
 
 package org.onap.clamp.clds.config.spring;
 
-import javax.sql.DataSource;
-
 import org.onap.clamp.clds.config.ClampProperties;
-import org.onap.clamp.clds.config.EncodedPasswordBasicDataSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.config.PropertiesFactoryBean;
-import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -44,16 +40,6 @@ public class CldsConfiguration {
     @Autowired
     private ClampProperties refProp;
 
-    /**
-     * Clds Identity database DataSource configuration.
-     *
-     * @return encoded password data source
-     */
-    @Bean(name = "cldsDataSource")
-    @ConfigurationProperties(prefix = "spring.datasource.cldsdb")
-    public DataSource cldsDataSource() {
-        return new EncodedPasswordBasicDataSource();
-    }
 
     /**
      * This loads the file system.properties.
index fdc9423..e3c6616 100644 (file)
@@ -28,8 +28,10 @@ public class JsonEditorSchemaConstants {
     //Data types in JSON Schema
     public static final String TYPE_OBJECT = "object";
     public static final String TYPE_ARRAY = "array";
+    public static final String TYPE_MAP = "map";
     public static final String TYPE_STRING = "string";
     public static final String TYPE_INTEGER = "integer";
+    public static final String TYPE_DATE_TIME = "datetime";
 
     //Key elements in JSON Schema
     public static final String TYPE = "type";
@@ -43,6 +45,9 @@ public class JsonEditorSchemaConstants {
     public static final String ITEMS = "items";
     public static final String PROPERTIES = "properties";
     public static final String PROPERTY_ORDER = "propertyOrder";
+    public static final String VALUES = "values";
+    public static final String HEADER_TEMPLATE = "headerTemplate";
+    public static final String HEADER_TEMPLATE_VALUE = "{{self.name}}";
 
     public static final String MINIMUM = "minimum";
     public static final String MAXIMUM = "maximum";
@@ -50,9 +55,13 @@ public class JsonEditorSchemaConstants {
     public static final String MAX_LENGTH = "maxLength";
     public static final String EXCLUSIVE_MINIMUM = "exclusiveMinimum";
     public static final String EXCLUSIVE_MAXIMUM = "exclusiveMaximum";
+    public static final String MINITEMS = "minItems";
+    public static final String MAXITEMS = "maxItems";
 
     public static final String CUSTOM_KEY_FORMAT = "format";
     public static final String CUSTOM_KEY_FORMAT_TABS_TOP = "tabs-top";
+    public static final String CUSTOM_KEY_FORMAT_TABS = "tabs";
+    public static final String CUSTOM_KEY_FORMAT_INPUT = "input";
     public static final String FORMAT_SELECT = "select";
     public static final String UNIQUE_ITEMS = "uniqueItems";
     public static final String TRUE = "true";
@@ -67,5 +76,11 @@ public class JsonEditorSchemaConstants {
     public static final String SCHEMA = "schema";
     public static final String CURRENT_VALUES = "currentValues";
 
+    public static final String PLUGIN = "plugin";
+    public static final String DATE_TIME_PICKER = "datetimepicker";
+    public static final String VALIDATION = "validation";
+    public static final String DATE_TIME_FORMAT = "YYYY/MM/DD HH:mm:ss";
+    public static final String INPUT_EVENT = "input_event";
+    public static final String DP_CHANGE = "dp.change";
 
 }
index 9601649..d00c431 100644 (file)
@@ -30,8 +30,11 @@ public class ToscaSchemaConstants {
     public static final String TYPE_MAP = "map";
     public static final String TYPE_STRING = "string";
     public static final String TYPE_INTEGER = "integer";
+    public static final String TYPE_NUMBER = "number";
+    public static final String TYPE_DATE_TIME = "datetime";
     public static final String TYPE_FLOAT = "float";
     public static final String TYPE_BOOLEAN = "boolean";
+    public static final String TYPE_USER_DEFINED = "userDefined";
 
     // Key elements in Tosca
     public static final String NODE_TYPES = "policy_types";
@@ -46,6 +49,8 @@ public class ToscaSchemaConstants {
     public static final String METADATA = "metadata";
     public static final String METADATA_POLICY_MODEL_TYPE = "policy_model_type";
     public static final String METADATA_ACRONYM = "acronym";
+    public static final String METADATA_ELEMENT_NAME = "element_name";
+    public static final String METADATA_HEADER_TEMPLATE = "header_template";
     public static final String METADATA_CLAMP_POSSIBLE_VALUES = "clamp_possible_values";
 
     // Constraints
index 666ca67..45bb87e 100644 (file)
@@ -38,6 +38,7 @@ import java.util.stream.Collectors;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.onap.clamp.clds.config.ClampProperties;
+import org.onap.clamp.tosca.Dictionary;
 import org.onap.clamp.tosca.DictionaryElement;
 import org.onap.clamp.tosca.DictionaryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -142,6 +143,13 @@ public class ToscaYamlToJsonConvertor {
         parseNodeAndDataType(loadedYaml, nodeTypes, dataNodes);
         populateJsonEditorObject(loadedYaml, nodeTypes, dataNodes, jsonParentObject, jsonTempObject,
             modelTypeToUse);
+
+        String headerTemplate = getValueFromMetadata(validateAndConvertToJson(yamlString),
+            ToscaSchemaConstants.METADATA_HEADER_TEMPLATE);
+        if (headerTemplate != null) {
+            jsonParentObject.put(JsonEditorSchemaConstants.HEADER_TEMPLATE,
+                JsonEditorSchemaConstants.HEADER_TEMPLATE_VALUE);
+        }
         if (jsonTempObject.length() > 0) {
             jsonParentObject = jsonTempObject;
         }
@@ -234,7 +242,7 @@ public class ToscaYamlToJsonConvertor {
                                         jsonTempObject.put(JsonEditorSchemaConstants.ITEMS,
                                             jsonParentObject);
                                         jsonTempObject.put(JsonEditorSchemaConstants.FORMAT,
-                                            JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT_TABS_TOP);
+                                            JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT_TABS);
                                         jsonTempObject.put(JsonEditorSchemaConstants.UNIQUE_ITEMS,
                                             JsonEditorSchemaConstants.TRUE);
                                     }
@@ -652,12 +660,43 @@ public class ToscaYamlToJsonConvertor {
 
                     Optional.ofNullable(cldsDictionaryElements).get().stream().forEach(c -> {
                         JSONObject jsonObject = new JSONObject();
+                        if (c.getSubDictionary() != null) {
+                            Dictionary subDictionary =
+                                dictionaryService.getDictionary(c.getSubDictionary());
+                            if (subDictionary != null
+                                && !subDictionary.getDictionaryElements().isEmpty()) {
+
+                                jsonObject.put(JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT_INPUT,
+                                    JsonEditorSchemaConstants.FORMAT_SELECT);
+
+                                List<String> shortNames = new ArrayList<>();
+                                subDictionary.getDictionaryElements().stream().forEach(c1 -> {
+                                    shortNames.add(c1.getShortName());
+                                });
+                                jsonObject.put(JsonEditorSchemaConstants.VALUES, shortNames);
+                            }
+                        }
                         jsonObject.put(JsonEditorSchemaConstants.TYPE, getJsonType(c.getType()));
+
                         if (c.getType() != null
-                            && c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
+                            && (c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)
+                                || c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_DATE_TIME)
+                                || c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_MAP))) {
                             jsonObject.put(JsonEditorSchemaConstants.MIN_LENGTH, 1);
 
+                            if (c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_DATE_TIME)) {
+                                jsonObject.put(JsonEditorSchemaConstants.PLUGIN,
+                                    JsonEditorSchemaConstants.DATE_TIME_PICKER);
+                                jsonObject.put(JsonEditorSchemaConstants.INPUT_EVENT,
+                                    JsonEditorSchemaConstants.DP_CHANGE);
+                                JSONObject formatJsonObject = new JSONObject();
+                                formatJsonObject.put(JsonEditorSchemaConstants.FORMAT,
+                                    JsonEditorSchemaConstants.DATE_TIME_FORMAT);
+                                jsonObject.put(JsonEditorSchemaConstants.VALIDATION,
+                                    formatJsonObject);
+                            }
                         }
+
                         jsonObject.put(JsonEditorSchemaConstants.ID, c.getName());
                         jsonObject.put(JsonEditorSchemaConstants.LABEL, c.getShortName());
                         jsonObject.put(JsonEditorSchemaConstants.OPERATORS, subCldsDictionaryNames);
@@ -678,32 +717,44 @@ public class ToscaYamlToJsonConvertor {
             String dictionaryKey = dictionaryReference.substring(
                 dictionaryReference.indexOf(ToscaSchemaConstants.DICTIONARY) + 11,
                 dictionaryReference.length());
+
             if (dictionaryKey != null) {
-                List<DictionaryElement> cldsDictionaryElements =
-                    dictionaryService.getDictionary(dictionaryKey).getDictionaryElements().stream()
-                        .collect(Collectors.toList());
-                if (cldsDictionaryElements != null) {
-                    List<String> cldsDictionaryNames = new ArrayList<>();
-                    List<String> cldsDictionaryFullNames = new ArrayList<>();
-                    cldsDictionaryElements.stream().forEach(c -> {
-                        // Json type will be translated before Policy creation
-                        if (c.getType() != null && !c.getType().equalsIgnoreCase("json")) {
-                            cldsDictionaryFullNames.add(c.getName());
+                if (dictionaryKey.contains(ToscaSchemaConstants.TYPE_USER_DEFINED)) {
+                    childObject.put(JsonEditorSchemaConstants.ENUM, new ArrayList<>());
+                    // Add Enum titles for generated translated values during
+                    // JSON instance generation
+                    JSONObject enumTitles = new JSONObject();
+                    enumTitles.put(JsonEditorSchemaConstants.ENUM_TITLES, new ArrayList<>());
+                    childObject.put(JsonEditorSchemaConstants.OPTIONS, enumTitles);
+                } else {
+                    List<DictionaryElement> cldsDictionaryElements =
+                        dictionaryService.getDictionary(dictionaryKey).getDictionaryElements()
+                            .stream().collect(Collectors.toList());
+                    if (cldsDictionaryElements != null) {
+                        List<String> cldsDictionaryNames = new ArrayList<>();
+                        List<String> cldsDictionaryFullNames = new ArrayList<>();
+                        cldsDictionaryElements.stream().forEach(c -> {
+                            // Json type will be translated before Policy creation
+                            if (c.getType() != null && !c.getType().equalsIgnoreCase("json")) {
+                                cldsDictionaryFullNames.add(c.getName());
+                            }
+                            cldsDictionaryNames.add(c.getShortName());
+                        });
+
+                        if (!cldsDictionaryFullNames.isEmpty()) {
+                            childObject.put(JsonEditorSchemaConstants.ENUM,
+                                cldsDictionaryFullNames);
+                            // Add Enum titles for generated translated values during JSON instance
+                            // generation
+                            JSONObject enumTitles = new JSONObject();
+                            enumTitles.put(JsonEditorSchemaConstants.ENUM_TITLES,
+                                cldsDictionaryNames);
+                            childObject.put(JsonEditorSchemaConstants.OPTIONS, enumTitles);
+                        } else {
+                            childObject.put(JsonEditorSchemaConstants.ENUM, cldsDictionaryNames);
                         }
-                        cldsDictionaryNames.add(c.getShortName());
-                    });
 
-                    if (!cldsDictionaryFullNames.isEmpty()) {
-                        childObject.put(JsonEditorSchemaConstants.ENUM, cldsDictionaryFullNames);
-                        // Add Enum titles for generated translated values during JSON instance
-                        // generation
-                        JSONObject enumTitles = new JSONObject();
-                        enumTitles.put(JsonEditorSchemaConstants.ENUM_TITLES, cldsDictionaryNames);
-                        childObject.put(JsonEditorSchemaConstants.OPTIONS, enumTitles);
-                    } else {
-                        childObject.put(JsonEditorSchemaConstants.ENUM, cldsDictionaryNames);
                     }
-
                 }
             }
         }
@@ -711,10 +762,15 @@ public class ToscaYamlToJsonConvertor {
 
     private String getJsonType(String toscaType) {
         String jsonType = null;
-        if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_INTEGER)) {
+        if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_INTEGER)
+            || toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_NUMBER)) {
             jsonType = JsonEditorSchemaConstants.TYPE_INTEGER;
+        } else if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_DATE_TIME)) {
+            jsonType = JsonEditorSchemaConstants.TYPE_DATE_TIME;
         } else if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_LIST)) {
             jsonType = JsonEditorSchemaConstants.TYPE_ARRAY;
+        } else if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_MAP)) {
+            jsonType = JsonEditorSchemaConstants.TYPE_MAP;
         } else {
             jsonType = JsonEditorSchemaConstants.TYPE_STRING;
         }
index ca3681b..3f568a3 100644 (file)
@@ -118,6 +118,12 @@ public class LoopService {
     Loop addOperationalPolicy(String loopName, String policyType, String policyVersion) throws IOException {
         Loop loop = getLoop(loopName);
         PolicyModel policyModel = policyModelsService.getPolicyModel(policyType, policyVersion);
+        Set<OperationalPolicy> opPolicySet = loop.getOperationalPolicies();
+        for (OperationalPolicy opPolicy : opPolicySet) {
+               if (opPolicy.getPolicyModel().equals(policyModel)) {
+                       throw new IllegalArgumentException("This type of Operational Policy is already added to the loop. Please choose another one.");
+               }
+        }
         if (policyModel == null) {
             return null;
         }
index 044fcec..fba4134 100644 (file)
@@ -96,21 +96,21 @@ camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
 #camel.springboot.typeConversion = false
 
 #clds datasource connection details
-spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
-spring.datasource.cldsdb.username=clds
-spring.datasource.cldsdb.password=4c90a0b48204383f4283448d23e0b885a47237b2a23588e7c4651604f51c1067
-spring.datasource.cldsdb.validationQuery=SELECT 1
-spring.datasource.cldsdb.validationQueryTimeout=20000
-spring.datasource.cldsdb.validationInterval=30000
-spring.datasource.cldsdb.testWhileIdle = true
-spring.datasource.cldsdb.minIdle = 0
-spring.datasource.cldsdb.initialSize=0
+spring.datasource.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.url=jdbc:mariadb:sequential://localhost:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
+spring.datasource.username=clds
+spring.datasource.password=sidnnd83K
+spring.datasource.validationQuery=SELECT 1
+spring.datasource.validationQueryTimeout=20000
+spring.datasource.validationInterval=30000
+spring.datasource.testWhileIdle = true
+spring.datasource.minIdle = 0
+spring.datasource.initialSize=0
 # Automatically test whether a connection provided is good or not
-spring.datasource.cldsdb.testOnBorrow=true
-spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
+spring.datasource.testOnBorrow=true
+spring.datasource.ignoreExceptionOnPreLoad=true
 # control the sql db initialization (from schema.sql and data.sql)
-spring.datasource.initialize=false
+spring.datasource..initialize=false
 
 spring.jpa.properties.javax.persistence.schema-generation.database.action=none
 s#pring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
index 3069cf6..c5bab26 100644 (file)
@@ -100,19 +100,19 @@ camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
 #camel.springboot.typeConversion = false
 
 #clds datasource connection details
-spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
-spring.datasource.cldsdb.username=clds
-spring.datasource.cldsdb.password=4c90a0b48204383f4283448d23e0b885a47237b2a23588e7c4651604f51c1067
-spring.datasource.cldsdb.validationQuery=SELECT 1
-spring.datasource.cldsdb.validationQueryTimeout=20000
-spring.datasource.cldsdb.validationInterval=30000
-spring.datasource.cldsdb.testWhileIdle = true
-spring.datasource.cldsdb.minIdle = 0
-spring.datasource.cldsdb.initialSize=0
+spring.datasource.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.url=jdbc:mariadb:sequential://localhost:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
+spring.datasource.username=clds
+spring.datasource.password=sidnnd83K
+spring.datasource.validationQuery=SELECT 1
+spring.datasource.validationQueryTimeout=20000
+spring.datasource.validationInterval=30000
+spring.datasource.testWhileIdle = true
+spring.datasource.minIdle = 0
+spring.datasource.initialSize=0
 # Automatically test whether a connection provided is good or not
-spring.datasource.cldsdb.testOnBorrow=true
-spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
+spring.datasource.testOnBorrow=true
+spring.datasource.ignoreExceptionOnPreLoad=true
 
 spring.jpa.properties.javax.persistence.schema-generation.database.action=none
 #spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
index fc7dbd4..879c9b7 100644 (file)
                                        <to uri="direct:load-loop" />
                                        <to
                                                uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET STATUS request','INFO',${exchangeProperty[loopObject]})" />
-                                       <doTry>
-                                               <to uri="direct:update-policy-status-for-loop" />
-                                               <to uri="direct:update-dcae-status-for-loop" />
-                                               <to uri="direct:update-loop-state" />
+                                       <to uri="direct:update-policy-status-for-loop" />
+                                       <to uri="direct:update-dcae-status-for-loop" />
+                                       <to uri="direct:update-loop-state" />
 
-                                               <to
+                                       <to
                                                        uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET STATUS request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-                                               <to
+                                       <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-                                       </doTry>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
                                                         message="GET STATUS request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
                                                                uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET STATUS request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-                                               <setHeader headerName="CamelHttpResponseCode">
-                                                       <constant>500</constant>
-                                               </setHeader>
-                                               <setBody>
-                                                       <simple>GET STATUS request FAILED</simple>
-                                               </setBody>
                                        </doCatch>
                                        <doFinally>
                                                <setBody>
                                                        <simple>${exchangeProperty[loopObject]}</simple>
                                                </setBody>
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>200</constant>
+                                               </setHeader>
                                        </doFinally>
                                </doTry>
                        </route>
index f40207c..e36f28a 100644 (file)
                                message="Endpoint to query Closed Loop status: ${exchangeProperty[getStatusUrl]}"></log>
                        <toD
                                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" />
+                       <doCatch>
+                               <exception>java.lang.Exception</exception>
+                               <handled>
+                                       <constant>true</constant>
+                               </handled>
+
+                               <log loggingLevel="ERROR"
+                                        message="GET policy request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                               <to
+                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET policy request failed, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})" />
+                       </doCatch>
                        <doFinally>
                                <to uri="direct:reset-raise-http-exception-flag" />
                                <to
index 59772c2..1731308 100644 (file)
                  message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/${exchangeProperty[policyTypeVersion]}/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
             <toD
                     uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/${exchangeProperty[policyTypeVersion]}/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"/>
+            <doCatch>
+                <exception>java.lang.Exception</exception>
+                <handled>
+                    <constant>true</constant>
+                </handled>
+
+                <log loggingLevel="ERROR"
+                     message="GET policy request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                <to
+                        uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET policy request failed, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})" />
+            </doCatch>
             <doFinally>
                 <to uri="direct:reset-raise-http-exception-flag"/>
                 <to
                  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"/>
+            <doCatch>
+                <exception>java.lang.Exception</exception>
+                <handled>
+                    <constant>true</constant>
+                </handled>
+
+                <log loggingLevel="ERROR"
+                     message="GET policy request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                <to
+                        uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET policy request failed, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})" />
+            </doCatch>
             <doFinally>
                 <to uri="direct:reset-raise-http-exception-flag"/>
                 <to
index a32d499..b26f3ed 100644 (file)
@@ -57,7 +57,7 @@ public class ToscaYamlToJsonConvertorTestItCase {
      * Schema.
      *
      * @throws IOException In case of issue when opening the tosca yaml file and
-     *                     converted json file
+     *         converted json file
      */
     @Test
     public final void testParseToscaYaml() throws IOException {
@@ -65,11 +65,11 @@ public class ToscaYamlToJsonConvertorTestItCase {
         ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
 
         String parsedJsonSchema =
-                convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.cdap.tca.hi.lo.app");
+            convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.cdap.tca.hi.lo.app");
         assertNotNull(parsedJsonSchema);
         JSONAssert.assertEquals(
-                ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json.json"),
-                parsedJsonSchema, true);
+            ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json.json"),
+            parsedJsonSchema, true);
     }
 
     /**
@@ -77,20 +77,20 @@ public class ToscaYamlToJsonConvertorTestItCase {
      * based on JSON Editor Schema.
      *
      * @throws IOException In case of issue when opening the tosca yaml file and
-     *                     converted json file
+     *         converted json file
      */
     @Test
     public final void testParseToscaYamlWithConstraints() throws IOException {
         String toscaModelYaml =
-                ResourceFileUtil.getResourceAsString("tosca/tosca-with-constraints.yaml");
+            ResourceFileUtil.getResourceAsString("tosca/tosca-with-constraints.yaml");
         ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
 
         String parsedJsonSchema =
-                convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app");
+            convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app");
         assertNotNull(parsedJsonSchema);
         JSONAssert.assertEquals(
-                ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-constraints.json"),
-                parsedJsonSchema, true);
+            ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-constraints.json"),
+            parsedJsonSchema, true);
     }
 
     /**
@@ -98,20 +98,20 @@ public class ToscaYamlToJsonConvertorTestItCase {
      * conversion based on JSON Editor Schema.
      *
      * @throws IOException In case of issue when opening the tosca yaml file and
-     *                     converted json file
+     *         converted json file
      */
     @Test
     public final void testParseToscaYamlWithTypes() throws IOException {
         String toscaModelYaml =
-                ResourceFileUtil.getResourceAsString("tosca/tosca-with-datatypes.yaml");
+            ResourceFileUtil.getResourceAsString("tosca/tosca-with-datatypes.yaml");
         ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
 
         String parsedJsonSchema =
-                convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app");
+            convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app");
         assertNotNull(parsedJsonSchema);
         JSONAssert.assertEquals(
-                ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-datatypes.json"),
-                parsedJsonSchema, true);
+            ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-datatypes.json"),
+            parsedJsonSchema, true);
     }
 
     /**
@@ -119,11 +119,35 @@ public class ToscaYamlToJsonConvertorTestItCase {
      * parameters which defines the Tosca Policy name and its short name.
      *
      * @throws IOException In case of issue when opening the tosca yaml file and
-     *                     converted json file
+     *         converted json file
      */
     @Test
     @Transactional
     public final void testMetadataClampPossibleValues() throws IOException {
+        setupDictionary();
+        String toscaModelYaml =
+            ResourceFileUtil.getResourceAsString("tosca/tosca_metadata_clamp_possible_values.yaml");
+
+        JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(toscaModelYaml);
+        assertNotNull(jsonObject);
+        String policyModelType = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
+            ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE);
+        String acronym = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
+            ToscaSchemaConstants.METADATA_ACRONYM);
+        String parsedJsonSchema =
+            toscaYamlToJsonConvertor.parseToscaYaml(toscaModelYaml, policyModelType);
+
+        assertNotNull(parsedJsonSchema);
+        assertEquals("onap.policies.monitoring.cdap.tca.hi.lo.app", policyModelType);
+        assertEquals("tca", acronym);
+        JSONAssert.assertEquals(
+            ResourceFileUtil
+                .getResourceAsString("tosca/tosca_metadata_clamp_possible_values_json_schema.json"),
+            parsedJsonSchema, true);
+
+    }
+
+    private void setupDictionary() {
 
         // Set up dictionary elements
         Dictionary dictionaryTest = new Dictionary();
@@ -150,6 +174,15 @@ public class ToscaYamlToJsonConvertorTestItCase {
         element1.setDescription("Alarm Condition");
         dictionaryTest1.addDictionaryElements(element1);
 
+        dictionaryTest1 = dictionaryService.saveOrUpdateDictionary(dictionaryTest1);
+
+        DictionaryElement element3 = new DictionaryElement();
+        element3.setName("timeEpoch");
+        element3.setShortName("timeEpoch");
+        element3.setType("datetime");
+        element3.setDescription("Time Epoch");
+        dictionaryTest1.addDictionaryElements(element3);
+
         dictionaryService.saveOrUpdateDictionary(dictionaryTest1);
 
         Dictionary dictionaryTest2 = new Dictionary();
@@ -159,30 +192,10 @@ public class ToscaYamlToJsonConvertorTestItCase {
         DictionaryElement element2 = new DictionaryElement();
         element2.setName("equals");
         element2.setShortName("equals");
-        element2.setType("string");
+        element2.setType("string|datetime");
         element2.setDescription("equals");
         dictionaryTest2.addDictionaryElements(element2);
         dictionaryService.saveOrUpdateDictionary(dictionaryTest2);
-
-        String toscaModelYaml =
-                ResourceFileUtil.getResourceAsString("tosca/tosca_metadata_clamp_possible_values.yaml");
-
-        JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(toscaModelYaml);
-        assertNotNull(jsonObject);
-        String policyModelType = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
-                ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE);
-        String acronym = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
-                ToscaSchemaConstants.METADATA_ACRONYM);
-        String parsedJsonSchema =
-                toscaYamlToJsonConvertor.parseToscaYaml(toscaModelYaml, policyModelType);
-
-        assertNotNull(parsedJsonSchema);
-        assertEquals("onap.policies.monitoring.cdap.tca.hi.lo.app", policyModelType);
-        assertEquals("tca", acronym);
-        JSONAssert.assertEquals(
-                ResourceFileUtil
-                        .getResourceAsString("tosca/tosca_metadata_clamp_possible_values_json_schema.json"),
-                parsedJsonSchema, true);
     }
 
 }
index ea17836..a8ec7ad 100644 (file)
@@ -85,19 +85,19 @@ camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
 #camel.springboot.typeConversion = false
 
 #clds datasource connection details
-spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:3306,localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
-spring.datasource.cldsdb.username=clds
-spring.datasource.cldsdb.password=4c90a0b48204383f4283448d23e0b885a47237b2a23588e7c4651604f51c1067
-spring.datasource.cldsdb.validationQuery=SELECT 1
-spring.datasource.cldsdb.validationQueryTimeout=20000
-spring.datasource.cldsdb.validationInterval=30000
-spring.datasource.cldsdb.testWhileIdle = true
-spring.datasource.cldsdb.minIdle = 0
-spring.datasource.cldsdb.initialSize=0
+spring.datasource.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.url=jdbc:mariadb:sequential://localhost:3306,localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
+spring.datasource.username=clds
+spring.datasource.password=sidnnd83K
+spring.datasource.validationQuery=SELECT 1
+spring.datasource.validationQueryTimeout=20000
+spring.datasource.validationInterval=30000
+spring.datasource.testWhileIdle = true
+spring.datasource.minIdle = 0
+spring.datasource.initialSize=0
 # Automatically test whether a connection provided is good or not
-spring.datasource.cldsdb.testOnBorrow=true
-spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
+spring.datasource.testOnBorrow=true
+spring.datasource.ignoreExceptionOnPreLoad=true
 
 spring.jpa.properties.javax.persistence.schema-generation.database.action=none
 #spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
index 11b91df..9160397 100644 (file)
@@ -1,7 +1,7 @@
 {
        "schema": {
                "uniqueItems": "true",
-               "format": "tabs-top",
+               "format": "tabs",
                "type": "array",
                "title": "Thresholds",
                "items": {
index 46bca15..df1823f 100644 (file)
@@ -72,19 +72,19 @@ spring.profiles.active=clamp-default, clamp-aaf-authentication,clamp-ssl-config
 
 
 #clds datasource connection details
-spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647
-spring.datasource.cldsdb.username=clds
-spring.datasource.cldsdb.password=4c90a0b48204383f4283448d23e0b885a47237b2a23588e7c4651604f51c1067
-spring.datasource.cldsdb.validationQuery=SELECT 1
-spring.datasource.cldsdb.validationQueryTimeout=20000
-spring.datasource.cldsdb.validationInterval=30000
-spring.datasource.cldsdb.testWhileIdle = true
-spring.datasource.cldsdb.minIdle = 0
-spring.datasource.cldsdb.initialSize=0
+spring.datasource.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647
+spring.datasource.username=clds
+spring.datasource.password=sidnnd83K
+spring.datasource.validationQuery=SELECT 1
+spring.datasource.validationQueryTimeout=20000
+spring.datasource.validationInterval=30000
+spring.datasource.testWhileIdle = true
+spring.datasource.minIdle = 0
+spring.datasource.initialSize=0
 # Automatically test whether a connection provided is good or not
-spring.datasource.cldsdb.testOnBorrow=true
-spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
+spring.datasource.testOnBorrow=true
+spring.datasource.ignoreExceptionOnPreLoad=true
 
 camel.springboot.consumer-template-cache-size=1000
 camel.springboot.producer-template-cache-size=1000
index b257548..fe9b84d 100644 (file)
@@ -1,7 +1,7 @@
 {
     "schema": {
         "uniqueItems": "true",
-        "format": "tabs-top",
+        "format": "tabs",
         "type": "array",
         "title": "Properties with constraints",
         "items": {
index d470d92..ef9c2c0 100644 (file)
@@ -1,7 +1,7 @@
 {
     "schema": {
         "uniqueItems": "true",
-        "format": "tabs-top",
+        "format": "tabs",
         "type": "array",
         "title": "Properties with different types",
         "items": {
index dd6a9ff..b83d3f2 100644 (file)
@@ -1,7 +1,7 @@
 {
        "schema": {
                "uniqueItems": "true",
-               "format": "tabs-top",
+               "format": "tabs",
                "type": "array",
                "title": "TCA Policy JSON",
                "items": {
index af8c1f9..418ee71 100644 (file)
@@ -1,7 +1,7 @@
 {
    "schema":{
       "uniqueItems":"true",
-      "format":"tabs-top",
+      "format":"tabs",
       "type":"array",
       "title":"TCA Policy JSON",
       "items":{
                                        "id":"alarmCondition",
                                        "label":"alarmCondition",
                                        "type":"string"
+                                    },
+                                    {
+                                       "plugin":"datetimepicker",
+                                       "operators":[
+                                          "equals"
+                                       ],
+                                       "minLength":1,
+                                       "id":"timeEpoch",
+                                       "label":"timeEpoch",
+                                       "type":"datetime",
+                                       "input_event":"dp.change",
+                                       "validation":{
+                                          "format":"YYYY/MM/DD HH:mm:ss"
+                                       }
                                     }
                                  ]
                               },
diff --git a/src/test/resources/tosca/tosca_with_date_time_json_schema.json b/src/test/resources/tosca/tosca_with_date_time_json_schema.json
new file mode 100644 (file)
index 0000000..e15942c
--- /dev/null
@@ -0,0 +1,240 @@
+{
+   "schema":{
+      "uniqueItems":"true",
+      "format":"tabs",
+      "type":"array",
+      "title":"TCA Policy JSON",
+      "items":{
+         "type":"object",
+         "title":"TCA Policy JSON",
+         "required":[
+            "domain",
+            "metricsPerEventName"
+         ],
+         "properties":{
+            "domain":{
+               "propertyOrder":1001,
+               "default":"measurementsForVfScaling",
+               "title":"Domain name to which TCA needs to be applied",
+               "type":"string"
+            },
+            "metricsPerEventName":{
+               "propertyOrder":1002,
+               "uniqueItems":"true",
+               "format":"tabs-top",
+               "title":"Contains eventName and threshold details that need to be applied to given eventName",
+               "type":"array",
+               "items":{
+                  "type":"object",
+                  "required":[
+                     "controlLoopSchemaType",
+                     "eventName",
+                     "policyName",
+                     "policyScope",
+                     "policyVersion",
+                     "thresholds",
+                     "context",
+                     "signature"
+                  ],
+                  "properties":{
+                     "policyVersion":{
+                        "propertyOrder":1007,
+                        "title":"TCA Policy Scope Version",
+                        "type":"string"
+                     },
+                     "thresholds":{
+                        "propertyOrder":1008,
+                        "uniqueItems":"true",
+                        "format":"tabs-top",
+                        "title":"Thresholds associated with eventName",
+                        "type":"array",
+                        "items":{
+                           "type":"object",
+                           "required":[
+                              "closedLoopControlName",
+                              "closedLoopEventStatus",
+                              "direction",
+                              "fieldPath",
+                              "severity",
+                              "thresholdValue",
+                              "version"
+                           ],
+                           "properties":{
+                              "severity":{
+                                 "propertyOrder":1013,
+                                 "title":"Threshold Event Severity",
+                                 "type":"string",
+                                 "enum":[
+                                    "CRITICAL",
+                                    "MAJOR",
+                                    "MINOR",
+                                    "WARNING",
+                                    "NORMAL"
+                                 ]
+                              },
+                              "fieldPath":{
+                                 "propertyOrder":1012,
+                                 "title":"Json field Path as per CEF message which needs to be analyzed for TCA",
+                                 "type":"string",
+                                 "enum":[
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
+                                    "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
+                                    "$.event.measurementsForVfScalingFields.meanRequestLatency",
+                                    "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
+                                    "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
+                                    "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
+                                    "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
+                                    "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
+                                    "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
+                                 ]
+                              },
+                              "thresholdValue":{
+                                 "propertyOrder":1014,
+                                 "title":"Threshold value for the field Path inside CEF message",
+                                 "type":"integer"
+                              },
+                              "closedLoopEventStatus":{
+                                 "propertyOrder":1010,
+                                 "title":"Closed Loop Event Status of the threshold",
+                                 "type":"string",
+                                 "enum":[
+                                    "ONSET",
+                                    "ABATED"
+                                 ]
+                              },
+                              "closedLoopControlName":{
+                                 "propertyOrder":1009,
+                                 "title":"Closed Loop Control Name associated with the threshold",
+                                 "type":"string"
+                              },
+                              "version":{
+                                 "propertyOrder":1015,
+                                 "title":"Version number associated with the threshold",
+                                 "type":"string"
+                              },
+                              "direction":{
+                                 "propertyOrder":1011,
+                                 "title":"Direction of the threshold",
+                                 "type":"string",
+                                 "enum":[
+                                    "LESS",
+                                    "LESS_OR_EQUAL",
+                                    "GREATER",
+                                    "GREATER_OR_EQUAL",
+                                    "EQUAL"
+                                 ]
+                              }
+                           }
+                        }
+                     },
+                     "policyName":{
+                        "propertyOrder":1005,
+                        "title":"TCA Policy Scope Name",
+                        "type":"string"
+                     },
+                     "signature":{
+                        "propertyOrder":1017,
+                        "title":"Signature",
+                        "required":[
+                           "filter_clause"
+                        ],
+                        "properties":{
+                           "filter_clause":{
+                              "propertyOrder":30002,
+                              "qschema":{
+                                 "filters":[
+                                    {
+                                       "plugin":"datetimepicker",
+                                       "operators":[
+                                          "equals"
+                                       ],
+                                       "minLength":1,
+                                       "id":"timeEpoch",
+                                       "label":"timeEpoch",
+                                       "type":"datetime",
+                                       "input_event":"dp.change",
+                                       "validation":{
+                                          "format":"YYYY/MM/DD HH:mm:ss"
+                                       }
+                                    }
+                                 ]
+                              },
+                              "minLength":1,
+                              "title":"Filter Clause",
+                              "type":"qbldr"
+                           }
+                        }
+                     },
+                     "controlLoopSchemaType":{
+                        "propertyOrder":1003,
+                        "title":"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
+                        "type":"string",
+                        "enum":[
+                           "VM",
+                           "VNF"
+                        ]
+                     },
+                     "policyScope":{
+                        "propertyOrder":1006,
+                        "title":"TCA Policy Scope",
+                        "type":"string"
+                     },
+                     "context":{
+                        "propertyOrder":1016,
+                        "options":{
+                           "enum_titles":[
+                              "PROD"
+                           ]
+                        },
+                        "title":"TCA Policy Dummy Context",
+                        "type":"string",
+                        "enum":[
+                           "PROD"
+                        ]
+                     },
+                     "eventName":{
+                        "propertyOrder":1004,
+                        "title":"Event name to which thresholds need to be applied",
+                        "type":"string"
+                     }
+                  }
+               }
+            }
+         }
+      }
+   }
+}
\ No newline at end of file
index fae47e7..da98df4 100755 (executable)
@@ -33,13 +33,19 @@ export { default as LoopService } from './src/api/LoopService';
 export { default as LoopStatus } from './src/components/loop_viewer/status/LoopStatus';
 export { default as LoopSvg } from './src/components/loop_viewer/svg/LoopSvg';
 export { default as LoopUI } from './src/LoopUI';
+export { default as ManageDictionaries } from './src/components/dialogs/ManageDictionaries/ManageDictionaries';
 export { default as MenuBar } from './src/components/menu/MenuBar';
+export { default as ModifyLoopModal } from './src/components/dialogs/Loop/ModifyLoopModal';
 export { default as NotFound } from './src/NotFound';
 export { default as OpenLoopModal } from './src/components/dialogs/Loop/OpenLoopModal';
 export { default as CreateLoopModal } from './src/components/dialogs/Loop/CreateLoopModal';
 export { default as OperationalPolicyModal } from './src/components/dialogs/OperationalPolicy/OperationalPolicyModal';
 export { default as PerformActions } from './src/components/dialogs/PerformActions';
+export { default as PolicyToscaService } from './src/api/PolicyToscaService';
 export { default as RefreshStatus } from './src/components/dialogs/RefreshStatus';
+export { default as TemplateService } from './src/api/TemplateService';
 export { default as UserInfoModal } from './src/components/dialogs/UserInfoModal';
 export { default as UserService } from './src/api/UserService';
+export { default as UploadToscaPolicyModal } from './src/components/dialogs/Tosca/UploadToscaPolicyModal';
+export { default as ViewLoopTemplatesModal } from './src/components/dialogs/Tosca/ViewLoopTemplatesModal';
 export { default as ViewToscaPolicyModal } from './src/components/dialogs/Tosca/ViewToscaPolicyModal';
index f10d187..3b9ed86 100644 (file)
@@ -226,18 +226,17 @@ export default class LoopService {
                        credentials: 'same-origin'
                })
                                .then(function (response) {
-                                       console.debug("Add Operational Policy response received: ", response.status);
+                               console.debug("Add Operational Policy response received: ", response.status);
                                if (response.ok) {
                                        return response.json();
                                } else {
-                                       console.error("Add Operational Policy query failed");
-                                       return {};
+                                       return response.text();
                                }
                        })
-                       .catch(function (error) {
-                               console.error("Add Operational Policy error received", error);
-                               return {};
-                       });
+                       .then(function (object) {
+                               console.error("Add Operational Policy query failed");
+                               throw new Error(object);
+                       })
        }
 
        static removeOperationalPolicyType(loopName, policyType, policyVersion, policyName) {
index da65ac9..3ff1ebe 100644 (file)
@@ -104,7 +104,7 @@ export default class ConfigurationPolicyModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose}>
+                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                                <Modal.Header closeButton>
                                        <Modal.Title>Configuration policies</Modal.Title>
                                </Modal.Header>
index 321304a..e98b595 100644 (file)
@@ -34,13 +34,20 @@ import TemplateService from '../../../api/TemplateService';
 const ModalStyled = styled(Modal)`
        background-color: transparent;
 `
-const LoopViewSvgDivStyled = styled.div`
-       overflow: hidden;
+const LoopViewSvgDivStyled = styled.svg`
+       display: flex;
+       flex-direction: row;
+       overflow-x: scroll;
        background-color: ${props => (props.theme.loopViewerBackgroundColor)};
        border-color: ${props => (props.theme.loopViewerHeaderColor)};
+       margin-top: 3em;
        margin-left: auto;
        margin-right:auto;
+       margin-bottom: -1em;
        text-align: center;
+       align-items: center;
+       height: 100%;
+       width: 100%;
 `
 
 export default class CreateLoopModal extends React.Component {
@@ -118,24 +125,28 @@ export default class CreateLoopModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static">
+                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                                <Modal.Header closeButton>
                                        <Modal.Title>Create Model</Modal.Title>
                                </Modal.Header>
                                <Modal.Body>
                                        <Form.Group as={Row} controlId="formPlaintextEmail">
-                                               <Form.Label column sm="2">Template Name</Form.Label>
+                                               <Form.Label column sm="2">Template Name:</Form.Label>
                                                <Col sm="10">
                                                        <Select onChange={this.handleDropdownListChange} options={this.state.templateNames} />
                                                </Col>
                                        </Form.Group>
-                                       <Form.Group controlId="formPlaintextEmail">
-                                               <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.content }} value={this.state.content} >
-                                               </LoopViewSvgDivStyled>
-                                       </Form.Group>
-                                       <Form.Group controlId="formPlaintextEmail">
+                                        <Form.Group as={Row} style={{alignItems: 'center'}} controlId="formSvgPreview">
+                                                <Form.Label column sm="2">Model Preview:</Form.Label>
+                                                <Col sm="10">
+                                                        <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.content }}
+                                                                value={this.state.content} >
+                                                        </LoopViewSvgDivStyled>
+                                                </Col>
+                                        </Form.Group>
+                                       <Form.Group as={Row} controlId="formPlaintextEmail">
                                                <Form.Label column sm="2">Model Name:</Form.Label>
-                                               <input type="text" style={{width: '50%'}}
+                                               <input type="text" style={{width: '50%', marginLeft: '1em' }}
                                                        value={this.state.modelName}
                                                        onChange={this.handleModelName}
                                                />
@@ -148,4 +159,4 @@ export default class CreateLoopModal extends React.Component {
                        </ModalStyled>
                );
        }
-}
\ No newline at end of file
+}
index 853df1c..2155977 100644 (file)
@@ -161,7 +161,7 @@ export default class DeployLoopModal extends React.Component {
        }
        render() {
                return (
-                                       <ModalStyled size="lg" show={this.state.show} onHide={this.handleClose} backdrop="static">
+                                       <ModalStyled size="lg" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                                                <Modal.Header closeButton>
                                                        <Modal.Title>Deployment parameters</Modal.Title>
                                                </Modal.Header>
index 97b7822..c0a2084 100644 (file)
@@ -102,7 +102,7 @@ export default class LoopPropertiesModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="lg" show={this.state.show} onHide={this.handleClose} backdrop="static">
+                       <ModalStyled size="lg" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                                <Modal.Header closeButton>
                                        <Modal.Title>Model Properties</Modal.Title>
                                </Modal.Header>
index 8886dbf..5154a88 100644 (file)
@@ -37,7 +37,7 @@ import Search from '@material-ui/icons/Search';
 import LoopService from '../../../api/LoopService';
 import Tabs from 'react-bootstrap/Tabs';
 import Tab from 'react-bootstrap/Tab';
-
+import Alert from 'react-bootstrap/Alert';
 
 const ModalStyled = styled(Modal)`
        background-color: transparent;
@@ -65,6 +65,7 @@ export default class ModifyLoopModal extends React.Component {
                toscaPolicyModelsData: [],
                selectedPolicyModelsData: [],
                key: 'add',
+               showFailAlert: false,
                toscaColumns: [
                        { title: "#", field: "index", render: rowData => rowData.tableData.id + 1,
                                cellStyle: cellStyle,
@@ -166,10 +167,25 @@ export default class ModifyLoopModal extends React.Component {
                this.props.history.push('/');
        }
 
+       renderAlert() {
+               return (
+                       <div>
+                               <Alert variant="danger" show={this.state.showFailAlert} onClose={this.disableAlert} dismissible>
+                                       {this.state.showMessage}
+                               </Alert>
+                       </div>
+               );
+       }
+
        handleAdd() {
-               LoopService.addOperationalPolicyType(this.state.loopCache.getLoopName(),this.state.selectedRowData.policyModelType,this.state.selectedRowData.version);
-               this.props.loadLoopFunction(this.state.loopCache.getLoopName());
-               this.handleClose();
+               LoopService.addOperationalPolicyType(this.state.loopCache.getLoopName(),this.state.selectedRowData.policyModelType,this.state.selectedRowData.version)
+               .then(pars => {
+                       this.props.loadLoopFunction(this.state.loopCache.getLoopName());
+                       this.handleClose();
+               })
+               .catch(error => {
+                       this.setState({ showFailAlert: true, showMessage: "Adding failed with error: " + error.message});
+               });
        }
 
        handleRemove() {
@@ -180,7 +196,7 @@ export default class ModifyLoopModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static">
+                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                                <Modal.Header closeButton>
                                        <Modal.Title>Modify Loop Operational Policies</Modal.Title>
                                </Modal.Header>
@@ -198,13 +214,14 @@ export default class ModifyLoopModal extends React.Component {
                                                                rowStyle: rowData => ({
                                                                        backgroundColor: (this.state.selectedRowData !== {} && this.state.selectedRowData.tableData !== undefined
                                                                        && this.state.selectedRowData.tableData.id === rowData.tableData.id) ? '#EEE' : '#FFF'
-                                                               })
+                                                                       })
                                                        }}
                                                        />
                                                        <div>
                                                                <TextModal value={this.state.content} onChange={this.handleYamlContent}/>
                                                        </div>
                                                </Modal.Body>
+                                               {this.renderAlert()}
                                        </Tab>
                                        <Tab eventKey="remove" title="Remove Operational Policies">
                                                <Modal.Body>
index 15a7188..c048834 100644 (file)
@@ -37,13 +37,20 @@ const ModalStyled = styled(Modal)`
 const CheckBoxStyled = styled(FormCheck.Input)`
        margin-left:3rem;
 `
-const LoopViewSvgDivStyled = styled.div`
-       overflow: hidden;
+const LoopViewSvgDivStyled = styled.svg`
+       overflow-x: scroll;
+       display: flex;
+       flex-direction: row;
        background-color: ${props => (props.theme.loopViewerBackgroundColor)};
        border-color: ${props => (props.theme.loopViewerHeaderColor)};
+       margin-top: 2em;
        margin-left: auto;
        margin-right:auto;
+       margin-bottom: -3em;
        text-align: center;
+       align-items: center;
+       height: 100%;
+       width: 100%;
 `
 
 export default class OpenLoopModal extends React.Component {
@@ -54,6 +61,7 @@ export default class OpenLoopModal extends React.Component {
                this.handleOpen = this.handleOpen.bind(this);
                this.handleClose = this.handleClose.bind(this);
                this.handleDropdownListChange = this.handleDropdownListChange.bind(this);
+               this.showReadOnly = props.showReadOnly ? props.showReadOnly : true;
                this.state = {
                        show: true,
                        chosenLoopName: '',
@@ -101,28 +109,34 @@ export default class OpenLoopModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static">
+                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                                <Modal.Header closeButton>
                                        <Modal.Title>Open Model</Modal.Title>
                                </Modal.Header>
                                <Modal.Body>
                                        <Form.Group as={Row} controlId="formPlaintextEmail">
-                                               <Form.Label column sm="2">Model Name</Form.Label>
+                                               <Form.Label column sm="2">Model Name:</Form.Label>
                                                <Col sm="10">
                                                        <Select onChange={this.handleDropdownListChange}
                                                        options={this.state.loopNames} />
                                                </Col>
                                        </Form.Group>
-                                       <Form.Group controlId="formPlaintextEmail">
-                         <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.content }}   value={this.state.content} >
-                         </LoopViewSvgDivStyled>
-                    </Form.Group>
-                                       <Form.Group controlId="formBasicChecbox">
-                                               <Form.Check>
-                                                       <FormCheck.Label>Read Only</FormCheck.Label>
-                                                       <CheckBoxStyled type="checkbox" />
-                                               </Form.Check>
+                                       <Form.Group as={Row} style={{alignItems: 'center'}} controlId="formSvgPreview">
+                                               <Form.Label column sm="2">Model Preview:</Form.Label>
+                                               <Col sm="10">
+                                                       <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.content }}
+                                                               value={this.state.content} >
+                                                       </LoopViewSvgDivStyled>
+                                               </Col>
                                        </Form.Group>
+                                       {this.showReadOnly === true ?
+                                               <Form.Group as={Row} controlId="formBasicChecbox">
+                                                       <Form.Check>
+                                                               <FormCheck.Label>Read Only Mode:</FormCheck.Label>
+                                                               <CheckBoxStyled style={{marginLeft: '3.5em'}} type="checkbox" />
+                                                       </Form.Check>
+                                               </Form.Group>
+                                       : null}
                                </Modal.Body>
                                <Modal.Footer>
                                        <Button variant="secondary" type="null" onClick={this.handleClose}>Cancel</Button>
index c9acb9e..8d0faa5 100644 (file)
@@ -3,6 +3,7 @@
 exports[`Verify DeployLoopModal Test the render method 1`] = `
 <Styled(Bootstrap(Modal))
   backdrop="static"
+  keyboard={false}
   onHide={[Function]}
   show={true}
   size="lg"
index 0fde7a5..233c560 100644 (file)
@@ -3,6 +3,7 @@
 exports[`Verify LoopPropertiesModal Test the render method 1`] = `
 <Styled(Bootstrap(Modal))
   backdrop="static"
+  keyboard={false}
   onHide={[Function]}
   show={true}
   size="lg"
index 1c98195..1968544 100644 (file)
@@ -3,6 +3,7 @@
 exports[`Verify OpenLoopModal Test the render method 1`] = `
 <Styled(Bootstrap(Modal))
   backdrop="static"
+  keyboard={false}
   onHide={[Function]}
   show={true}
   size="xl"
@@ -33,7 +34,7 @@ exports[`Verify OpenLoopModal Test the render method 1`] = `
         sm="2"
         srOnly={false}
       >
-        Model Name
+        Model Name:
       </FormLabel>
       <Col
         sm="10"
@@ -48,18 +49,52 @@ exports[`Verify OpenLoopModal Test the render method 1`] = `
       </Col>
     </FormGroup>
     <FormGroup
-      controlId="formPlaintextEmail"
+      as={
+        Object {
+          "$$typeof": Symbol(react.forward_ref),
+          "defaultProps": Object {
+            "noGutters": false,
+          },
+          "render": [Function],
+        }
+      }
+      controlId="formSvgPreview"
+      style={
+        Object {
+          "alignItems": "center",
+        }
+      }
     >
-      <styled.div
-        dangerouslySetInnerHTML={
-          Object {
-            "__html": "",
+      <FormLabel
+        column={true}
+        sm="2"
+        srOnly={false}
+      >
+        Model Preview:
+      </FormLabel>
+      <Col
+        sm="10"
+      >
+        <styled.svg
+          dangerouslySetInnerHTML={
+            Object {
+              "__html": "",
+            }
           }
-        }
-        value=""
-      />
+          value=""
+        />
+      </Col>
     </FormGroup>
     <FormGroup
+      as={
+        Object {
+          "$$typeof": Symbol(react.forward_ref),
+          "defaultProps": Object {
+            "noGutters": false,
+          },
+          "render": [Function],
+        }
+      }
       controlId="formBasicChecbox"
     >
       <FormCheck
@@ -71,9 +106,14 @@ exports[`Verify OpenLoopModal Test the render method 1`] = `
         type="checkbox"
       >
         <FormCheckLabel>
-          Read Only
+          Read Only Mode:
         </FormCheckLabel>
         <Styled(FormCheckInput)
+          style={
+            Object {
+              "marginLeft": "3.5em",
+            }
+          }
           type="checkbox"
         />
       </FormCheck>
index d435036..2af1b7c 100644 (file)
@@ -376,7 +376,7 @@ export default class ManageDictionaries extends React.Component {
     
     render() {
         return (
-            <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static">
+            <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                 <Modal.Header closeButton>
                     <Modal.Title>Manage Dictionaries</Modal.Title>
                 </Modal.Header>
index 149639c..77dce16 100644 (file)
@@ -147,7 +147,7 @@ export default class OperationalPolicyModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose}>
+                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
                                <Modal.Header closeButton>
                                        <Modal.Title>Operational policies</Modal.Title>
                                </Modal.Header>
index ec08058..fa95ca9 100644 (file)
@@ -86,14 +86,14 @@ export default class UploadToscaPolicyModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="lg" show={this.state.show} onHide={this.handleClose} backdrop="static">
+                       <ModalStyled size="lg" show={this.state.show} onHide={this.handleClose} backdrop="static"  keyboard={false} >
                                <Modal.Header closeButton>
                                        <Modal.Title>Upload Tosca Model</Modal.Title>
                                </Modal.Header>
                                <Modal.Body>
                                        <Form.Group as={Row} controlId="formPlaintextEmail">
                                                <Col sm="10">
-                                               <input style={{display: 'none'}} type="file" name="file" accept=".yaml" onChange={this.fileSelectedHandler}
+                                               <input style={{display: 'none'}} type="file" name="file" accept=".yaml,.yml" onChange={this.fileSelectedHandler}
                                                        ref={fileInput => this.fileInput = fileInput}/>
                                                <button onClick={() => this.fileInput.click()}>Pick Tosca File</button>
                                                        <Alert variant="secondary">
index c5a91ea..7cf02f7 100644 (file)
@@ -38,16 +38,24 @@ import MaterialTable from "material-table";
 const ModalStyled = styled(Modal)`
        background-color: transparent;
 `
-const LoopViewSvgDivStyled = styled.div`
-       overflow: hidden;
+const LoopViewSvgDivStyled = styled.svg`
+       overflow-x: scroll;
        background-color: ${props => (props.theme.loopViewerBackgroundColor)};
        border-color: ${props => (props.theme.loopViewerHeaderColor)};
-       margin-left: auto;
+       margin-top: 3em;
+       margin-left: 2em;
        margin-right:auto;
        text-align: center;
-       margin-top: 20px;
+       height: 100%;
+       width: 100%;
+       display: flex;
+       flex-direction: row;
+       align-items: center;
+       
 `
 const SvgContainerDivStyled = styled.div`
+       display: flex;
+       align-items: center;
        border: 1px solid;
 `
 
@@ -133,7 +141,7 @@ export default class ViewLoopTemplatesModal extends React.Component {
 
        render() {
     return (
-               <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static">
+               <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static"  keyboard={false}>
                        <Modal.Header closeButton>
                        </Modal.Header>
                        <Modal.Body>
index 71f371a..d49232f 100644 (file)
@@ -139,7 +139,7 @@ export default class ViewToscalPolicyModal extends React.Component {
 
        render() {
                return (
-                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static">
+                       <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false}>
                                <Modal.Header closeButton>
                                </Modal.Header>
                                <Modal.Body>
index 2926e06..3f6dc94 100644 (file)
@@ -3,6 +3,7 @@
 exports[`Verify ViewLoopTemplatesModal Test the tosca model view render method 1`] = `
 <Styled(Bootstrap(Modal))
   backdrop="static"
+  keyboard={false}
   onHide={[Function]}
   show={true}
   size="xl"
@@ -142,7 +143,7 @@ exports[`Verify ViewLoopTemplatesModal Test the tosca model view render method 1
       title="View Blueprint MicroService Templates"
     />
     <styled.div>
-      <styled.div
+      <styled.svg
         dangerouslySetInnerHTML={
           Object {
             "__html": "Please select a loop template to display it",
index babe597..5f19a9b 100644 (file)
@@ -3,6 +3,7 @@
 exports[`Verify ViewToscaPolicyModal Test the tosca model view render method 1`] = `
 <Styled(Bootstrap(Modal))
   backdrop="static"
+  keyboard={false}
   onHide={[Function]}
   show={true}
   size="xl"
index 4bbf608..048f630 100644 (file)
@@ -27,14 +27,20 @@ import { withRouter } from "react-router-dom";
 import LoopService from '../../../api/LoopService';
 import LoopComponentConverter from './LoopComponentConverter';
 
-const LoopViewSvgDivStyled = styled.div`
-       overflow: hidden;
+const LoopViewSvgDivStyled = styled.svg`
+       display: flex;
+       flex-direction: row;
+       overflow-x: scroll;
        background-color: ${props => (props.theme.loopViewerBackgroundColor)};
        border: 1px solid;
        border-color: ${props => (props.theme.loopViewerHeaderColor)};
+       margin-top: 1em;
        margin-left: auto;
        margin-right:auto;
-       text-align: center;
+       margin-bottom: -3em;
+       align-items: center;
+       height: 100%;
+       width: 100%;
 
 `
 
@@ -101,4 +107,4 @@ class LoopViewSvg extends React.Component {
        }
 }
 
-export default withRouter(LoopViewSvg);
\ No newline at end of file
+export default withRouter(LoopViewSvg);
index cecfb42..e05f1c7 100644 (file)
@@ -1,7 +1,7 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
 exports[`Verify LoopSvg Test the render method 1`] = `
-<styled.div
+<styled.svg
   dangerouslySetInnerHTML={
     Object {
       "__html": "<svg><text x=\\"20\\" y=\\"40\\">No LOOP (SVG)</text></svg>",
@@ -12,7 +12,7 @@ exports[`Verify LoopSvg Test the render method 1`] = `
 `;
 
 exports[`Verify LoopSvg Test the render method no loopName 1`] = `
-<styled.div
+<styled.svg
   dangerouslySetInnerHTML={
     Object {
       "__html": "<svg><text x=\\"20\\" y=\\"40\\">No LOOP (SVG)</text></svg>",
@@ -23,7 +23,7 @@ exports[`Verify LoopSvg Test the render method no loopName 1`] = `
 `;
 
 exports[`Verify LoopSvg Test the render method svg not empty 1`] = `
-<styled.div
+<styled.svg
   dangerouslySetInnerHTML={
     Object {
       "__html": "<svg><text test</text></svg>",
index b425bc6..cdbe71c 100644 (file)
@@ -27,7 +27,7 @@
 
 major=5
 minor=0
-patch=4
+patch=5
 
 base_version=${major}.${minor}.${patch}