From aa4d2f4e49b45db5198604a0765f64b99426826c Mon Sep 17 00:00:00 2001
From: liamfallon
Date: Wed, 9 Nov 2022 18:10:03 +0000
Subject: [PATCH] Remove clamp-backend url forwarding support
The functionality to forward the requests from the UI to the other
microservices has been moved to the gui-server microservice.
Issue-ID: POLICY-4138
Change-Id: I3120e54894ab51194b20098c4c4d63679c15b06f
Signed-off-by: liamfallon
---
runtime/extra/bin-for-dev/start-backend.sh | 28 -
runtime/extra/bin-for-dev/start-db.sh | 35 -
runtime/extra/bin-for-dev/start-emulator.sh | 26 -
runtime/extra/docker/clamp/clamp.env | 2 -
runtime/extra/docker/clamp/docker-compose.yml | 38 -
runtime/extra/docker/mariadb/conf1/my.cnf | 194 --
runtime/extra/docker/mariadb/conf2/my.cnf | 193 --
runtime/extra/docker/mariadb/conf3/my.cnf | 193 --
runtime/extra/sql/bootstrap-database.sh | 28 -
runtime/extra/sql/bulkload/create-db.sql | 15 -
runtime/extra/sql/bulkload/create-tables.sql | 255 --
runtime/extra/sql/dump/backup-data-only.sh | 26 -
runtime/extra/sql/dump/backup-database.sh | 26 -
runtime/extra/sql/dump/load-fake-data.sh | 26 -
runtime/extra/sql/dump/test-data.sql | 218 --
runtime/pom.xml | 939 -------
.../main/resources/META-INF/resources/swagger.html | 454 ----
runtime/src/main/docker/backend/Dockerfile | 61 -
runtime/src/main/docker/backend/backend-files.xml | 43 -
runtime/src/main/docker/backend/suse.Dockerfile | 60 -
.../authorization/AuthorizationController.java | 181 --
.../onap/policy/clamp/authorization/CldsUser.java | 97 -
.../authorization/SecureServicePermission.java | 203 --
.../SecureServicePermissionDeserializer.java | 46 -
.../policy/clamp/authorization/UserService.java | 43 -
.../org/onap/policy/clamp/clds/Application.java | 191 --
.../policy/clamp/clds/ClampInUserAuditorAware.java | 40 -
.../org/onap/policy/clamp/clds/ClampServlet.java | 158 --
...EmbeddedServletContainerFactoryRedirection.java | 53 -
.../onap/policy/clamp/clds/client/CdsServices.java | 228 --
.../clamp/clds/client/DcaeInventoryServices.java | 144 -
.../policy/clamp/clds/config/AafConfiguration.java | 69 -
.../clamp/clds/config/CamelConfiguration.java | 162 --
.../policy/clamp/clds/config/ClampProperties.java | 104 -
.../clamp/clds/config/CldsUserJsonDecoder.java | 74 -
.../clds/config/DefaultDictionaryElements.java | 167 --
.../clds/config/DefaultUserConfiguration.java | 141 -
.../onap/policy/clamp/clds/config/SslConfig.java | 98 -
.../clamp/clds/config/SystemPropertiesLoader.java | 46 -
.../config/sdc/SdcControllersConfiguration.java | 100 -
.../sdc/SdcSingleControllerConfiguration.java | 272 --
.../clds/config/spring/CldsConfiguration.java | 55 -
.../config/spring/SdcControllerConfiguration.java | 110 -
.../clamp/clds/exception/CldsConfigException.java | 61 -
.../clamp/clds/exception/CldsUsersException.java | 61 -
.../clds/exception/NotAuthorizedException.java | 61 -
.../clds/exception/cds/CdsParametersException.java | 53 -
.../exception/dcae/DcaeDeploymentException.java | 61 -
.../sdc/controller/BlueprintParserException.java | 54 -
.../sdc/controller/CsarHandlerException.java | 54 -
.../controller/SdcArtifactInstallerException.java | 54 -
.../sdc/controller/SdcControllerException.java | 54 -
.../sdc/controller/SdcDownloadException.java | 54 -
.../sdc/controller/SdcParametersException.java | 54 -
.../policy/clamp/clds/filter/ClampCadiFilter.java | 189 --
.../policy/clamp/clds/model/ClampInformation.java | 62 -
.../policy/clamp/clds/model/CldsHealthCheck.java | 60 -
.../clds/model/cds/CdsBpWorkFlowListResponse.java | 68 -
.../clamp/clds/model/dcae/DcaeInventoryCache.java | 62 -
.../clds/model/dcae/DcaeInventoryResponse.java | 101 -
.../policy/clamp/clds/model/dcae/DcaeLinks.java | 60 -
.../model/dcae/DcaeOperationStatusResponse.java | 88 -
.../sdc/controller/DistributionStatusMessage.java | 84 -
.../clds/sdc/controller/SdcSingleController.java | 440 ---
.../sdc/controller/SdcSingleControllerStatus.java | 28 -
.../controller/installer/BlueprintArtifact.java | 70 -
.../installer/BlueprintMicroService.java | 93 -
.../sdc/controller/installer/BlueprintParser.java | 224 --
.../sdc/controller/installer/ChainGenerator.java | 92 -
.../clds/sdc/controller/installer/CsarHandler.java | 217 --
.../clamp/clds/service/CldsHealthcheckService.java | 81 -
.../clds/tosca/JsonEditorSchemaConstants.java | 90 -
.../clamp/clds/tosca/ToscaSchemaConstants.java | 87 -
.../ToscaConverterWithDictionarySupport.java | 105 -
.../tosca/update/UnknownComponentException.java | 36 -
.../clds/tosca/update/elements/ArrayField.java | 72 -
.../clds/tosca/update/elements/Constraint.java | 222 --
.../clds/tosca/update/elements/ToscaElement.java | 121 -
.../update/elements/ToscaElementProperty.java | 135 -
.../update/execution/ToscaMetadataExecutor.java | 75 -
.../update/execution/ToscaMetadataProcess.java | 43 -
.../execution/ToscaMetadataTargetProcess.java | 49 -
.../execution/cds/ToscaMetadataCdsProcess.java | 229 --
.../update/parser/ToscaConverterToJsonSchema.java | 364 ---
.../tosca/update/parser/ToscaElementParser.java | 109 -
.../parser/metadata/ToscaMetadataParser.java | 32 -
.../ToscaMetadataParserWithDictionarySupport.java | 212 --
.../clds/tosca/update/templates/JsonTemplate.java | 223 --
.../tosca/update/templates/JsonTemplateField.java | 149 -
.../update/templates/JsonTemplateManager.java | 181 --
.../policy/clamp/clds/util/ClampVersioning.java | 61 -
.../org/onap/policy/clamp/clds/util/JsonUtils.java | 57 -
.../onap/policy/clamp/clds/util/LoggingUtils.java | 417 ---
.../policy/clamp/clds/util/OnapLogConstants.java | 304 ---
.../policy/clamp/clds/util/ResourceFileUtils.java | 89 -
.../clamp/configuration/ClampGsonDataFormat.java | 173 --
.../model/gson/converter/InstantDeserializer.java | 46 -
.../model/gson/converter/InstantSerializer.java | 40 -
.../jsontype/JsonStringSqlTypeDescriptor.java | 108 -
.../dao/model/jsontype/JsonTypeDescriptor.java | 106 -
.../dao/model/jsontype/StringJsonUserType.java | 51 -
.../policy/clamp/flow/log/FlowLogOperation.java | 101 -
.../org/onap/policy/clamp/loop/CsarInstaller.java | 200 --
.../main/java/org/onap/policy/clamp/loop/Loop.java | 389 ---
.../org/onap/policy/clamp/loop/LoopController.java | 204 --
.../org/onap/policy/clamp/loop/LoopService.java | 190 --
.../java/org/onap/policy/clamp/loop/LoopState.java | 28 -
.../onap/policy/clamp/loop/LoopsRepository.java | 36 -
.../policy/clamp/loop/cds/CdsDataInstaller.java | 174 --
.../onap/policy/clamp/loop/common/AuditEntity.java | 139 -
.../loop/components/external/DcaeComponent.java | 270 --
.../components/external/ExternalComponent.java | 58 -
.../external/ExternalComponentState.java | 128 -
.../loop/components/external/PolicyComponent.java | 128 -
.../clamp/loop/deploy/DcaeDeployParameters.java | 115 -
.../org/onap/policy/clamp/loop/log/LogType.java | 28 -
.../org/onap/policy/clamp/loop/log/LoopLog.java | 193 --
.../policy/clamp/loop/log/LoopLogRepository.java | 32 -
.../onap/policy/clamp/loop/log/LoopLogService.java | 51 -
.../clamp/loop/service/CsarServiceInstaller.java | 130 -
.../onap/policy/clamp/loop/service/Service.java | 168 --
.../clamp/loop/service/ServicesRepository.java | 31 -
.../clamp/loop/template/LoopElementModel.java | 194 --
.../loop/template/LoopElementModelsRepository.java | 31 -
.../policy/clamp/loop/template/LoopTemplate.java | 340 ---
.../template/LoopTemplateLoopElementModel.java | 192 --
.../template/LoopTemplateLoopElementModelId.java | 100 -
.../loop/template/LoopTemplatesRepository.java | 36 -
.../clamp/loop/template/LoopTemplatesService.java | 67 -
.../onap/policy/clamp/loop/template/LoopType.java | 42 -
.../clamp/loop/template/LoopTypeConvertor.java | 52 -
.../policy/clamp/loop/template/PolicyModel.java | 281 --
.../policy/clamp/loop/template/PolicyModelId.java | 92 -
.../loop/template/PolicyModelsRepository.java | 37 -
.../clamp/loop/template/PolicyModelsService.java | 138 -
.../java/org/onap/policy/clamp/policy/Policy.java | 247 --
.../policy/clamp/policy/PolicyEngineServices.java | 224 --
.../onap/policy/clamp/policy/PolicyPayload.java | 94 -
.../onap/policy/clamp/policy/PolicyService.java | 35 -
.../policy/downloader/PolicyEngineController.java | 74 -
.../policy/microservice/MicroServicePolicy.java | 275 --
.../microservice/MicroServicePolicyRepository.java | 32 -
.../microservice/MicroServicePolicyService.java | 112 -
.../policy/operational/OperationalPolicy.java | 216 --
.../operational/OperationalPolicyRepository.java | 32 -
.../OperationalPolicyRepresentationBuilder.java | 348 ---
.../operational/OperationalPolicyService.java | 89 -
.../clamp/policy/pdpgroup/PdpGroupPayload.java | 141 -
.../policy/pdpgroup/PdpGroupPayloadException.java | 54 -
.../clamp/policy/pdpgroup/PdpGroupsAnalyzer.java | 179 --
.../clamp/policy/pdpgroup/PoliciesPdpMerger.java | 105 -
.../org/onap/policy/clamp/tosca/Dictionary.java | 220 --
.../onap/policy/clamp/tosca/DictionaryElement.java | 254 --
.../clamp/tosca/DictionaryElementsRepository.java | 32 -
.../policy/clamp/tosca/DictionaryRepository.java | 40 -
.../onap/policy/clamp/tosca/DictionaryService.java | 141 -
.../org/onap/policy/clamp/util/PassDecoder.java | 66 -
.../onap/policy/clamp/util/SemanticVersioning.java | 95 -
.../org/apache/camel/dataformat/clamp-gson | 23 -
.../main/resources/application-noaaf.properties | 198 --
runtime/src/main/resources/application.properties | 208 --
runtime/src/main/resources/boot-message.txt | 16 -
runtime/src/main/resources/clds-version.properties | 24 -
.../main/resources/clds/aaf/org.onap.clamp.keyfile | 27 -
.../main/resources/clds/aaf/truststoreONAPall.jks | Bin 117990 -> 0 bytes
.../resources/clds/camel/rest/clamp-api-v2.xml | 2045 --------------
.../resources/clds/camel/rest/clds-services.xml | 24 -
.../main/resources/clds/camel/routes/acm-flows.xml | 436 ---
.../main/resources/clds/camel/routes/cds-flows.xml | 64 -
.../resources/clds/camel/routes/dcae-flows.xml | 495 ----
.../resources/clds/camel/routes/loop-flows.xml | 256 --
.../resources/clds/camel/routes/policy-flows.xml | 654 -----
.../resources/clds/camel/routes/utils-flows.xml | 28 -
runtime/src/main/resources/clds/clds-users.json | 33 -
.../operational_policies/operational_policy.json | 320 ---
.../resources/clds/sdc-controllers-config.json | 18 -
.../clds/tosca-converter/default-tosca-types.yaml | 87 -
.../resources/clds/tosca-converter/templates.json | 398 ---
runtime/src/main/resources/logback-default.xml | 219 --
runtime/src/main/resources/logback-spring.xml | 19 -
runtime/src/main/resources/logmessages.properties | 27 -
runtime/src/main/resources/system.properties | 27 -
runtime/src/main/script/TagVersion.groovy | 40 -
.../clamp/authorization/AuthorizationTest.java | 64 -
.../policy/clamp/clds/client/CdsServicesTest.java | 56 -
.../clamp/clds/config/CldsUserJsonDecoderTest.java | 100 -
.../sdc/SdcSingleControllerConfigurationTest.java | 108 -
.../clds/it/AuthorizationControllerItTestCase.java | 139 -
.../clds/it/CldsHealthcheckServiceItTestCase.java | 55 -
.../onap/policy/clamp/clds/it/HttpsItTestCase.java | 106 -
.../onap/policy/clamp/clds/it/RobotItTestCase.java | 136 -
.../config/CldsReferencePropertiesItTestCase.java | 64 -
.../SdcControllersConfigurationItTestCase.java | 88 -
.../controller/SdcSingleControllerItTestCase.java | 152 --
.../dcae/DcaeInventoryResponseCacheItTestCase.java | 127 -
.../clds/model/dcae/DcaeInventoryResponseTest.java | 59 -
.../model/jsontype/JsonTypeDescriptorTest.java | 95 -
.../controller/installer/BlueprintParserTest.java | 208 --
.../controller/installer/ChainGeneratorTest.java | 77 -
.../sdc/controller/installer/CsarHandlerTest.java | 198 --
.../DictionaryRepositoriesTestItTestCase.java | 88 -
.../clamp/clds/tosca/update/ArrayFieldTest.java | 56 -
.../clamp/clds/tosca/update/ConstraintTest.java | 108 -
.../clds/tosca/update/JsonTemplateFieldTest.java | 69 -
.../clds/tosca/update/JsonTemplateManagerTest.java | 203 --
.../clamp/clds/tosca/update/JsonTemplateTest.java | 68 -
...caConverterWithDictionarySupportItTestCase.java | 143 -
.../tosca/update/ToscaElementPropertyTest.java | 81 -
.../clamp/clds/tosca/update/ToscaElementTest.java | 52 -
.../onap/policy/clamp/clds/util/JsonUtilsTest.java | 77 -
.../policy/clamp/clds/util/LoggingUtilsTest.java | 139 -
.../onap/policy/clamp/clds/util/TestObject.java | 45 -
.../onap/policy/clamp/clds/util/TestObject2.java | 44 -
.../configuration/ClampGsonDataFormatTest.java | 95 -
.../policy/clamp/flow/FlowLogOperationTest.java | 101 -
.../policy/clamp/loop/CsarInstallerItTestCase.java | 322 ---
.../onap/policy/clamp/loop/DcaeComponentTest.java | 189 --
.../policy/clamp/loop/DeployFlowItTestCase.java | 320 ---
.../clamp/loop/ExternalComponentStateTest.java | 83 -
.../clamp/loop/LoopControllerItTestCase.java | 175 --
.../clamp/loop/LoopLogServiceItTestCase.java | 97 -
.../clamp/loop/LoopRepositoriesItTestCase.java | 258 --
.../policy/clamp/loop/LoopServiceItTestCase.java | 381 ---
.../loop/LoopTemplateLoopElementModelTest.java | 105 -
.../clamp/loop/LoopTemplatesServiceItTestCase.java | 146 -
.../org/onap/policy/clamp/loop/LoopToJsonTest.java | 173 --
.../policy/clamp/loop/PolicyComponentTest.java | 296 --
.../clamp/loop/PolicyModelServiceItTestCase.java | 299 --
.../org/onap/policy/clamp/loop/ServiceTest.java | 54 -
.../loop/deploy/BlueprintInputParametersTest.java | 125 -
.../PolicyEngineControllerItTestCase.java | 118 -
.../microservice/MicroServicePayloadTest.java | 47 -
...OperationalPolicyRepresentationBuilderTest.java | 67 -
.../policy/pdpgroup/PdpGroupAnalyzerTest.java | 230 --
.../pdpgroup/PdpGroupPayloadExceptionTest.java | 32 -
.../clamp/policy/pdpgroup/PdpGroupPayloadTest.java | 75 -
.../policy/pdpgroup/PoliciesPdpMergerTest.java | 99 -
.../RuntimeCommissioningResponseItTestCase.java | 185 --
.../RuntimeInstantiationResponseItTestCase.java | 155 --
.../clamp/tosca/DictionaryServiceItTestCase.java | 248 --
.../onap/policy/clamp/util/PassDecoderTest.java | 55 -
.../policy/clamp/util/SemanticVersioningTest.java | 91 -
runtime/src/test/resources/application.properties | 187 --
.../clds/blueprint-with-microservice-chain.yaml | 202 --
.../test/resources/clds/clds-parse-exception.json | 1 -
.../clds/clds-users-incomplete-permissions.json | 14 -
.../resources/clds/clds-users-no-permission.json | 7 -
.../test/resources/clds/clds-users-two-users.json | 26 -
.../src/test/resources/clds/new-microservice.yaml | 46 -
runtime/src/test/resources/clds/policy-merger.json | 215 --
.../resources/clds/sdc-controller-config-NULL.json | 11 -
.../resources/clds/sdc-controller-config-TLS.json | 14 -
.../resources/clds/sdc-controller-config-bad.json | 13 -
.../sdc-controller-config-empty-encrypted.json | 14 -
.../resources/clds/sdc-controllers-config-bad.json | 26 -
.../clds/sdc-controllers-config-missing-param.json | 13 -
.../resources/clds/sdc-controllers-config.json | 30 -
.../clds/single-microservice-fragment-invalid.yaml | 25 -
...e-microservice-fragment-valid-with-version.yaml | 21 -
.../single-microservice-fragment-without-name.yaml | 22 -
...e-microservice-fragment-without-properties.yaml | 18 -
...icroservice-fragment-without-relationships.yaml | 18 -
.../clds/templates/dcae-deployment-template.json | 9 -
.../resources/clds/templates/dcae-template.json | 26 -
.../resources/clds/templates/globalProperties.json | 104 -
.../clds/templates/sdc-decode-service_ids.json | 1 -
.../resources/clds/templates/sdc-template.json | 1 -
.../clds/templates/tca-policy-template.json | 19 -
.../resources/clds/templates/tca-template.json | 14 -
.../clds/templates/tca-thresholds-template.json | 9 -
.../clds/templates/ui-location-default.json | 5 -
runtime/src/test/resources/clds/util/file.xml | 6 -
.../vFW-CDS-modify-config-wf-expected-result.json | 30 -
.../vFW-CDS-modify-config-workflow.json | 78 -
...CDS-resource-assignment-wf-expected-result.json | 40 -
.../vFW-CDS-resource-assignment-workflow.json | 80 -
.../resources/example/dcae/inventory-response.json | 78 -
.../policy/pdp-deployment-testos-1_0_0.json | 30 -
.../policy/pdp-deployment-testos-2_0_0.json | 204 --
.../policy/pdp-group-multi-policies-payload.json | 74 -
.../example/policy/pdp-group-policy-payload.json | 54 -
.../resources/example/policy/policy-merger.json | 269 --
.../example/policy/single-policy-enriched.json | 47 -
.../example/sdc/blueprint-dcae/tca-bad-policy.yaml | 141 -
.../example/sdc/blueprint-dcae/tca-guilin.yaml | 141 -
.../resources/example/sdc/blueprint-dcae/tca.yaml | 105 -
.../example/sdc/blueprint-dcae/tca_2.yaml | 174 --
.../example/sdc/blueprint-dcae/tca_3.yaml | 171 --
.../deployment-parameters-multi-blueprints.json | 43 -
.../deployment-parameters-single-blueprint.json | 9 -
.../example/sdc/expected-result/policy-data.yaml | 2859 --------------------
.../example/sdc/service-Simsfoimap0112.csar | Bin 52568 -> 0 bytes
.../example/sdc/service-without-policy.csar | Bin 56126 -> 0 bytes
.../example/sdc/service_Vloadbalancerms_cds.csar | Bin 115771 -> 0 bytes
.../sdc/service_Vloadbalancerms_no_cds.csar | Bin 115690 -> 0 bytes
.../api/v1/blueprint-model/workflow-spec/.file | 96 -
.../api/v1/blueprint-model/workflow-spec/.header | 1 -
.../baseconfiguration/version/1.0.0/.file | 12 -
.../baseconfiguration/version/1.0.0/.header | 1 -
.../http-cache/example/node_template.json | 44 -
.../example/policy/api/v1/policies/.file | 197 --
.../example/policy/api/v1/policies/.header | 1 -
.../example/policy/api/v1/policytypes/.file | 53 -
.../example/policy/api/v1/policytypes/.header | 1 -
.../onap.policies.Naming/versions/1.0.0/.file | 101 -
.../onap.policies.Naming/versions/1.0.0/.header | 1 -
.../versions/1.0.0/.file | 38 -
.../versions/1.0.0/.header | 1 -
.../versions/1.0.0/.file | 47 -
.../versions/1.0.0/.header | 1 -
.../versions/1.0.0/.file | 80 -
.../versions/1.0.0/.header | 1 -
.../versions/2.0.0/.file | 40 -
.../versions/2.0.0/.header | 1 -
.../versions/1.0.0/.file | 360 ---
.../versions/1.0.0/.header | 1 -
.../versions/1.0.0/.file | 150 -
.../versions/1.0.0/.header | 1 -
.../versions/1.0.0/.file | 158 --
.../versions/1.0.0/.header | 1 -
.../versions/1.0.0/.file | 160 --
.../versions/1.0.0/.header | 1 -
.../http-cache/example/policy/pap/v1/pdps/.file | 136 -
.../http-cache/example/policy/pap/v1/pdps/.header | 1 -
.../test/resources/http-cache/start_http_cache.sh | 52 -
.../test/resources/http-cache/third_party_proxy.py | 591 ----
.../src/test/resources/https/https-test.properties | 134 -
runtime/src/test/resources/https/keystore-test.jks | Bin 2244 -> 0 bytes
runtime/src/test/resources/logback.xml | 89 -
.../src/test/resources/robotframework/Dockerfile | 6 -
.../test/resources/robotframework/requirements.txt | 6 -
.../robotframework/robotframework-test.properties | 179 --
.../robotframework/tests/01_healthcheck.robot | 19 -
.../robotframework/tests/02_policy_queries.robot | 21 -
.../tosca/micro-service-policy-payload.json | 42 -
.../tosca/micro-service-policy-properties.json | 25 -
.../test/resources/tosca/model-properties-cds.json | 154 --
.../tosca/model-properties-operational-policy.json | 353 ---
.../src/test/resources/tosca/model-properties.json | 353 ---
.../resources/tosca/new-converter/constraints.yaml | 60 -
.../new-converter/sampleOperationalPolicies.yaml | 160 --
.../sampleOperationalPoliciesEXTENTED.yaml | 174 --
.../tosca/new-converter/tca-with-metadata.json | 224 --
.../new-converter/tosca_apex_with_metadata.json | 577 ----
.../tosca_metadata_clamp_possible_values.yaml | 184 --
.../operational-policy-cds-payload-with-list.json | 590 ----
.../tosca/operational-policy-json-schema.json | 936 -------
.../operational-policy-no-guard-properties.json | 35 -
.../tosca/operational-policy-properties.json | 132 -
.../test/resources/tosca/resource-details-cds.json | 336 ---
.../src/test/resources/tosca/resource-details.json | 336 ---
.../src/test/resources/tosca/service-details.json | 15 -
runtime/src/test/resources/tosca/tca_hi_lo.json | 179 --
.../src/test/resources/tosca/tosca_example.yaml | 158 --
.../tosca/tosca_with_date_time_json_schema.json | 240 --
.../test/resources/tosca/tosca_with_metadata.yaml | 162 --
356 files changed, 47032 deletions(-)
delete mode 100755 runtime/extra/bin-for-dev/start-backend.sh
delete mode 100755 runtime/extra/bin-for-dev/start-db.sh
delete mode 100755 runtime/extra/bin-for-dev/start-emulator.sh
delete mode 100644 runtime/extra/docker/clamp/clamp.env
delete mode 100644 runtime/extra/docker/clamp/docker-compose.yml
delete mode 100644 runtime/extra/docker/mariadb/conf1/my.cnf
delete mode 100644 runtime/extra/docker/mariadb/conf2/my.cnf
delete mode 100644 runtime/extra/docker/mariadb/conf3/my.cnf
delete mode 100755 runtime/extra/sql/bootstrap-database.sh
delete mode 100644 runtime/extra/sql/bulkload/create-db.sql
delete mode 100644 runtime/extra/sql/bulkload/create-tables.sql
delete mode 100755 runtime/extra/sql/dump/backup-data-only.sh
delete mode 100755 runtime/extra/sql/dump/backup-database.sh
delete mode 100755 runtime/extra/sql/dump/load-fake-data.sh
delete mode 100644 runtime/extra/sql/dump/test-data.sql
delete mode 100644 runtime/pom.xml
delete mode 100644 runtime/runtime/src/main/resources/META-INF/resources/swagger.html
delete mode 100644 runtime/src/main/docker/backend/Dockerfile
delete mode 100644 runtime/src/main/docker/backend/backend-files.xml
delete mode 100644 runtime/src/main/docker/backend/suse.Dockerfile
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java
delete mode 100644 runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java
delete mode 100644 runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson
delete mode 100644 runtime/src/main/resources/application-noaaf.properties
delete mode 100644 runtime/src/main/resources/application.properties
delete mode 100644 runtime/src/main/resources/boot-message.txt
delete mode 100644 runtime/src/main/resources/clds-version.properties
delete mode 100644 runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile
delete mode 100644 runtime/src/main/resources/clds/aaf/truststoreONAPall.jks
delete mode 100644 runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml
delete mode 100644 runtime/src/main/resources/clds/camel/rest/clds-services.xml
delete mode 100644 runtime/src/main/resources/clds/camel/routes/acm-flows.xml
delete mode 100644 runtime/src/main/resources/clds/camel/routes/cds-flows.xml
delete mode 100644 runtime/src/main/resources/clds/camel/routes/dcae-flows.xml
delete mode 100644 runtime/src/main/resources/clds/camel/routes/loop-flows.xml
delete mode 100644 runtime/src/main/resources/clds/camel/routes/policy-flows.xml
delete mode 100644 runtime/src/main/resources/clds/camel/routes/utils-flows.xml
delete mode 100644 runtime/src/main/resources/clds/clds-users.json
delete mode 100644 runtime/src/main/resources/clds/json-schema/operational_policies/operational_policy.json
delete mode 100644 runtime/src/main/resources/clds/sdc-controllers-config.json
delete mode 100644 runtime/src/main/resources/clds/tosca-converter/default-tosca-types.yaml
delete mode 100644 runtime/src/main/resources/clds/tosca-converter/templates.json
delete mode 100644 runtime/src/main/resources/logback-default.xml
delete mode 100644 runtime/src/main/resources/logback-spring.xml
delete mode 100644 runtime/src/main/resources/logmessages.properties
delete mode 100644 runtime/src/main/resources/system.properties
delete mode 100644 runtime/src/main/script/TagVersion.groovy
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/authorization/AuthorizationTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/it/HttpsItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/configuration/ClampGsonDataFormatTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/DeployFlowItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/LoopServiceItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/runtime/RuntimeCommissioningResponseItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/runtime/RuntimeInstantiationResponseItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItTestCase.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java
delete mode 100644 runtime/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java
delete mode 100644 runtime/src/test/resources/application.properties
delete mode 100644 runtime/src/test/resources/clds/blueprint-with-microservice-chain.yaml
delete mode 100644 runtime/src/test/resources/clds/clds-parse-exception.json
delete mode 100644 runtime/src/test/resources/clds/clds-users-incomplete-permissions.json
delete mode 100644 runtime/src/test/resources/clds/clds-users-no-permission.json
delete mode 100644 runtime/src/test/resources/clds/clds-users-two-users.json
delete mode 100644 runtime/src/test/resources/clds/new-microservice.yaml
delete mode 100644 runtime/src/test/resources/clds/policy-merger.json
delete mode 100644 runtime/src/test/resources/clds/sdc-controller-config-NULL.json
delete mode 100644 runtime/src/test/resources/clds/sdc-controller-config-TLS.json
delete mode 100644 runtime/src/test/resources/clds/sdc-controller-config-bad.json
delete mode 100644 runtime/src/test/resources/clds/sdc-controller-config-empty-encrypted.json
delete mode 100644 runtime/src/test/resources/clds/sdc-controllers-config-bad.json
delete mode 100644 runtime/src/test/resources/clds/sdc-controllers-config-missing-param.json
delete mode 100644 runtime/src/test/resources/clds/sdc-controllers-config.json
delete mode 100644 runtime/src/test/resources/clds/single-microservice-fragment-invalid.yaml
delete mode 100644 runtime/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml
delete mode 100644 runtime/src/test/resources/clds/single-microservice-fragment-without-name.yaml
delete mode 100644 runtime/src/test/resources/clds/single-microservice-fragment-without-properties.yaml
delete mode 100644 runtime/src/test/resources/clds/single-microservice-fragment-without-relationships.yaml
delete mode 100644 runtime/src/test/resources/clds/templates/dcae-deployment-template.json
delete mode 100644 runtime/src/test/resources/clds/templates/dcae-template.json
delete mode 100644 runtime/src/test/resources/clds/templates/globalProperties.json
delete mode 100644 runtime/src/test/resources/clds/templates/sdc-decode-service_ids.json
delete mode 100644 runtime/src/test/resources/clds/templates/sdc-template.json
delete mode 100644 runtime/src/test/resources/clds/templates/tca-policy-template.json
delete mode 100644 runtime/src/test/resources/clds/templates/tca-template.json
delete mode 100644 runtime/src/test/resources/clds/templates/tca-thresholds-template.json
delete mode 100644 runtime/src/test/resources/clds/templates/ui-location-default.json
delete mode 100644 runtime/src/test/resources/clds/util/file.xml
delete mode 100644 runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
delete mode 100644 runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
delete mode 100644 runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
delete mode 100644 runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
delete mode 100644 runtime/src/test/resources/example/dcae/inventory-response.json
delete mode 100644 runtime/src/test/resources/example/policy/pdp-deployment-testos-1_0_0.json
delete mode 100644 runtime/src/test/resources/example/policy/pdp-deployment-testos-2_0_0.json
delete mode 100644 runtime/src/test/resources/example/policy/pdp-group-multi-policies-payload.json
delete mode 100644 runtime/src/test/resources/example/policy/pdp-group-policy-payload.json
delete mode 100644 runtime/src/test/resources/example/policy/policy-merger.json
delete mode 100644 runtime/src/test/resources/example/policy/single-policy-enriched.json
delete mode 100644 runtime/src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml
delete mode 100644 runtime/src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml
delete mode 100644 runtime/src/test/resources/example/sdc/blueprint-dcae/tca.yaml
delete mode 100644 runtime/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml
delete mode 100644 runtime/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml
delete mode 100644 runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json
delete mode 100644 runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json
delete mode 100644 runtime/src/test/resources/example/sdc/expected-result/policy-data.yaml
delete mode 100644 runtime/src/test/resources/example/sdc/service-Simsfoimap0112.csar
delete mode 100644 runtime/src/test/resources/example/sdc/service-without-policy.csar
delete mode 100644 runtime/src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar
delete mode 100644 runtime/src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar
delete mode 100644 runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/node_template.json
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.file
delete mode 100644 runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.header
delete mode 100755 runtime/src/test/resources/http-cache/start_http_cache.sh
delete mode 100644 runtime/src/test/resources/http-cache/third_party_proxy.py
delete mode 100644 runtime/src/test/resources/https/https-test.properties
delete mode 100644 runtime/src/test/resources/https/keystore-test.jks
delete mode 100644 runtime/src/test/resources/logback.xml
delete mode 100644 runtime/src/test/resources/robotframework/Dockerfile
delete mode 100644 runtime/src/test/resources/robotframework/requirements.txt
delete mode 100644 runtime/src/test/resources/robotframework/robotframework-test.properties
delete mode 100644 runtime/src/test/resources/robotframework/tests/01_healthcheck.robot
delete mode 100644 runtime/src/test/resources/robotframework/tests/02_policy_queries.robot
delete mode 100644 runtime/src/test/resources/tosca/micro-service-policy-payload.json
delete mode 100644 runtime/src/test/resources/tosca/micro-service-policy-properties.json
delete mode 100644 runtime/src/test/resources/tosca/model-properties-cds.json
delete mode 100644 runtime/src/test/resources/tosca/model-properties-operational-policy.json
delete mode 100644 runtime/src/test/resources/tosca/model-properties.json
delete mode 100644 runtime/src/test/resources/tosca/new-converter/constraints.yaml
delete mode 100644 runtime/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml
delete mode 100644 runtime/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml
delete mode 100644 runtime/src/test/resources/tosca/new-converter/tca-with-metadata.json
delete mode 100644 runtime/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
delete mode 100644 runtime/src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml
delete mode 100644 runtime/src/test/resources/tosca/operational-policy-cds-payload-with-list.json
delete mode 100644 runtime/src/test/resources/tosca/operational-policy-json-schema.json
delete mode 100644 runtime/src/test/resources/tosca/operational-policy-no-guard-properties.json
delete mode 100644 runtime/src/test/resources/tosca/operational-policy-properties.json
delete mode 100644 runtime/src/test/resources/tosca/resource-details-cds.json
delete mode 100644 runtime/src/test/resources/tosca/resource-details.json
delete mode 100644 runtime/src/test/resources/tosca/service-details.json
delete mode 100644 runtime/src/test/resources/tosca/tca_hi_lo.json
delete mode 100644 runtime/src/test/resources/tosca/tosca_example.yaml
delete mode 100644 runtime/src/test/resources/tosca/tosca_with_date_time_json_schema.json
delete mode 100644 runtime/src/test/resources/tosca/tosca_with_metadata.yaml
diff --git a/runtime/extra/bin-for-dev/start-backend.sh b/runtime/extra/bin-for-dev/start-backend.sh
deleted file mode 100755
index df513d263..000000000
--- a/runtime/extra/bin-for-dev/start-backend.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2019, 2021 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============================================
-# ===================================================================
-#
-###
-
-# Start Clamp backend in DEBUG mode
-mkdir -p /var/log/onap
-java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999 -jar ../../target/policy-clamp-backend.jar --spring.config.name=application-noaaf
diff --git a/runtime/extra/bin-for-dev/start-db.sh b/runtime/extra/bin-for-dev/start-db.sh
deleted file mode 100755
index 97f8de1f5..000000000
--- a/runtime/extra/bin-for-dev/start-db.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2019 AT&T Intellectual Property. All rights
-# reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END============================================
-# ===================================================================
-#
-###
-
-docker-compose -f ../docker/clamp/docker-compose.yml up -d db
-
-if [ "$1" = "test" ]; then
- while ! (docker logs clamp_db_1 2>&1 | grep "socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution" > /dev/null);
- do
- echo "Waiting Mysql to be up with CLDSDB4 db loaded before loading the TEST DATA ..."
- sleep 3
- done
- docker exec -it clamp_db_1 /docker-entrypoint-initdb.d/dump/load-fake-data.sh
-fi;
diff --git a/runtime/extra/bin-for-dev/start-emulator.sh b/runtime/extra/bin-for-dev/start-emulator.sh
deleted file mode 100755
index 274d88939..000000000
--- a/runtime/extra/bin-for-dev/start-emulator.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2019 AT&T Intellectual Property. All rights
-# reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END============================================
-# ===================================================================
-#
-###
-
-docker-compose -f ../docker/clamp/docker-compose.yml up -d third-party-proxy
diff --git a/runtime/extra/docker/clamp/clamp.env b/runtime/extra/docker/clamp/clamp.env
deleted file mode 100644
index be7deaed8..000000000
--- a/runtime/extra/docker/clamp/clamp.env
+++ /dev/null
@@ -1,2 +0,0 @@
-### Be careful, this must be in one line only ###
-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-policy-controller,default-dictionary-elements","clamp.config.policy.api.url":"http://third-party-proxy:8085","clamp.config.policy.pap.url":"http://third-party-proxy:8085","clamp.config.dcae.inventory.url":"http://third-party-proxy:8085","clamp.config.dcae.deployment.url":"http://third-party-proxy:8085","spring.config.location":"optional:classpath:/,optional:classpath:/config/,optional:file:./,optional:file:./config/"}
diff --git a/runtime/extra/docker/clamp/docker-compose.yml b/runtime/extra/docker/clamp/docker-compose.yml
deleted file mode 100644
index 0458070e7..000000000
--- a/runtime/extra/docker/clamp/docker-compose.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-version: '3.1'
-
-services:
- policy-gui:
- image: onap/policy-gui
- depends_on:
- - policy-clamp-backend
- ports:
- - "2443:2443"
- db:
- image: mariadb:10.5.4
- volumes:
- - "/var/lib/mysql"
- - "../mariadb/conf1:/etc/mysql/conf.d:ro"
- - "../../sql/:/docker-entrypoint-initdb.d:rw"
- environment:
- - MYSQL_ROOT_PASSWORD=strong_pitchou
- ports:
- - "3306:3306"
-
- policy-clamp-backend:
- image: onap/policy-clamp-backend
- depends_on:
- - db
- - third-party-proxy
- env_file:
- - clamp.env
- ports:
- - "10443:8443"
-
- third-party-proxy:
- image: python:2-slim
- volumes:
- - "../../../src/test/resources/http-cache/example/:/thirdparty:rw"
- - "../../../src/test/resources/http-cache/:/script/:ro"
- ports:
- - "8085:8085"
- command: /bin/sh -c "pip install --no-cache-dir requests && pip install --no-cache-dir simplejson && python -u /script/third_party_proxy.py -v true --port 8085 --root /thirdparty --proxyaddress third-party-proxy:8085"
diff --git a/runtime/extra/docker/mariadb/conf1/my.cnf b/runtime/extra/docker/mariadb/conf1/my.cnf
deleted file mode 100644
index c6631fb4e..000000000
--- a/runtime/extra/docker/mariadb/conf1/my.cnf
+++ /dev/null
@@ -1,194 +0,0 @@
-# Example MySQL config file for medium systems.
-#
-# This is for a system with memory 8G where MySQL plays
-# an important part, or systems up to 128M where MySQL is used together with
-# other programs (such as a web server)
-#
-# In this file, you can use all long options that a program supports.
-# If you want to know which options a program supports, run the program
-# with the "--help" option.
-
-# The following options will be passed to all MySQL clients
-##[client]
-##user = root
-##port = 3306
-##socket = //opt/app/mysql/mysql.sock
-
-# Here follows entries for some specific programs
-
-# The MySQL server
-[mysqld]
-##performance_schema
-
-slow_query_log =ON
-long_query_time =2
-slow_query_log_file =//var/lib/mysql/slow_query.log
-##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64
-##datadir = //opt/app/mysql/data
-##port = 3306
-##socket = //opt/app/mysql/mysql.sock
-skip-external-locking
-explicit_defaults_for_timestamp = true
-skip-symbolic-links
-local-infile = 0
-#ignore_db_dir=lost+found
-key_buffer_size = 16M
-max_allowed_packet = 4M
-table_open_cache = 100
-sort_buffer_size = 512K
-net_buffer_length = 8K
-read_buffer_size = 256K
-read_rnd_buffer_size = 512K
-myisam_sort_buffer_size = 8M
-max_connections = 500
-lower_case_table_names = 1
-thread_stack = 256K
-thread_cache_size = 25
-query_cache_size = 8M
-query_cache_type = 0
-query_prealloc_size = 512K
-query_cache_limit = 1M
-
-# Password validation
-##plugin-load-add=simple_password_check.so
-##simple_password_check_other_characters=0
-
-# Audit Log settings
-plugin-load-add=server_audit.so
-server_audit=FORCE_PLUS_PERMANENT
-server_audit_file_path=//var/lib/mysql/audit.log
-server_audit_file_rotate_size=50M
-server_audit_events=CONNECT,QUERY,TABLE
-server_audit_logging=on
-
-# Don't listen on a TCP/IP port at all. This can be a security enhancement,
-# if all processes that need to connect to mysqld run on the same host.
-# All interaction with mysqld must be made via Unix sockets or named pipes.
-# Note that using this option without enabling named pipes on Windows
-# (via the "enable-named-pipe" option) will render mysqld useless!
-#
-#skip-networking
-
-# Replication Master Server (default)
-# binary logging is required for replication
-##log-bin=//var/lib/mysql/mysql-bin
-
-# binary logging format - mixed recommended
-binlog_format=row
-
-# required unique id between 1 and 2^32 - 1
-# defaults to 1 if master-host is not set
-# but will not function as a master if omitted
-
-# Replication Slave (comment out master section to use this)
-#
-# To configure this host as a replication slave, you can choose between
-# two methods :
-#
-# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
-# the syntax is:
-#
-# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,
-# MASTER_USER=, MASTER_PASSWORD= ;
-#
-# where you replace , , by quoted strings and
-# by the master's port number (3306 by default).
-#
-# Example:
-#
-# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
-# MASTER_USER='joe', MASTER_PASSWORD='secret';
-#
-# OR
-#
-# 2) Set the variables below. However, in case you choose this method, then
-# start replication for the first time (even unsuccessfully, for example
-# if you mistyped the password in master-password and the slave fails to
-# connect), the slave will create a master.info file, and any later
-# change in this file to the variables' values below will be ignored and
-# overridden by the content of the master.info file, unless you shutdown
-# the slave server, delete master.info and restart the slaver server.
-# For that reason, you may want to leave the lines below untouched
-# (commented) and instead use CHANGE MASTER TO (see above)
-#
-# required unique id between 2 and 2^32 - 1
-# (and different from the master)
-# defaults to 2 if master-host is set
-# but will not function as a slave if omitted
-#server-id = 2
-#
-# The replication master for this slave - required
-#master-host =
-#
-# The username the slave will use for authentication when connecting
-# to the master - required
-#master-user =
-#
-# The password the slave will authenticate with when connecting to
-# the master - required
-#master-password =
-#
-# The port the master is listening on.
-# optional - defaults to 3306
-#master-port =
-#
-# binary logging - not required for slaves, but recommended
-#log-bin=mysql-bin
-
-# Uncomment the following if you are using InnoDB tables
-##innodb_data_home_dir = //opt/app/mysql/data
-##innodb_data_file_path = ibdata1:20M:autoextend:max:32G
-##innodb_log_group_home_dir = //opt/app/mysql/iblogs
-# You can set .._buffer_pool_size up to 50 - 80 %
-# of RAM but beware of setting memory usage too high
-innodb_buffer_pool_size = 128M
-#innodb_additional_mem_pool_size = 2M
-# Set .._log_file_size to 25 % of buffer pool size
-innodb_log_file_size = 10M
-innodb_log_files_in_group = 3
-innodb_log_buffer_size = 8M
-#innodb_flush_log_at_trx_commit = 1
-innodb_lock_wait_timeout = 50
-innodb_autoextend_increment = 100
-expire_logs_days = 8
-open_files_limit = 2000
-transaction-isolation=READ-COMMITTED
-####### Galera parameters #######
-## Galera Provider configuration
-wsrep_provider=/usr/lib/galera/libgalera_smm.so
-wsrep_provider_options="gcache.size=128M; gcache.page_size=10M"
-## Galera Cluster configuration
-wsrep_cluster_name="MSO-automated-tests-cluster"
-wsrep_cluster_address="gcomm://"
-#wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3"
-##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186"
-## Galera Synchronization configuration
-wsrep_sst_method=rsync
-#wsrep_sst_method=xtrabackup-v2
-#wsrep_sst_auth="sstuser:Mon#2o!6"
-## Galera Node configuration
-wsrep_node_name="mariadb1"
-##wsrep_node_address="192.169.3.184"
-wsrep_on=OFF
-## Status notification
-#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify
-#######
-
-
-[mysqldump]
-quick
-max_allowed_packet = 16M
-
-[mysql]
-no-auto-rehash
-# Remove the next comment character if you are not familiar with SQL
-#safe-updates
-
-[myisamchk]
-key_buffer_size = 20971520
-
-##[mysqlhotcopy]
-##interactive-timeout
-##[mysqld_safe]
-##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1
-##log-error=//opt/app/mysql/log/mysqld.log
\ No newline at end of file
diff --git a/runtime/extra/docker/mariadb/conf2/my.cnf b/runtime/extra/docker/mariadb/conf2/my.cnf
deleted file mode 100644
index bf5f9c177..000000000
--- a/runtime/extra/docker/mariadb/conf2/my.cnf
+++ /dev/null
@@ -1,193 +0,0 @@
-# Example MySQL config file for medium systems.
-#
-# This is for a system with memory 8G where MySQL plays
-# an important part, or systems up to 128M where MySQL is used together with
-# other programs (such as a web server)
-#
-# In this file, you can use all long options that a program supports.
-# If you want to know which options a program supports, run the program
-# with the "--help" option.
-
-# The following options will be passed to all MySQL clients
-##[client]
-##user = root
-##port = 3306
-##socket = //opt/app/mysql/mysql.sock
-
-# Here follows entries for some specific programs
-
-# The MySQL server
-[mysqld]
-##performance_schema
-
-slow_query_log =ON
-long_query_time =2
-slow_query_log_file =//var/lib/mysql/slow_query.log
-##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64
-##datadir = //opt/app/mysql/data
-##port = 3306
-##socket = //opt/app/mysql/mysql.sock
-skip-external-locking
-explicit_defaults_for_timestamp = true
-skip-symbolic-links
-local-infile = 0
-#ignore_db_dir=lost+found
-key_buffer_size = 16M
-max_allowed_packet = 4M
-table_open_cache = 100
-sort_buffer_size = 512K
-net_buffer_length = 8K
-read_buffer_size = 256K
-read_rnd_buffer_size = 512K
-myisam_sort_buffer_size = 8M
-max_connections = 500
-lower_case_table_names = 1
-thread_stack = 256K
-thread_cache_size = 25
-query_cache_size = 8M
-query_cache_type = 0
-query_prealloc_size = 512K
-query_cache_limit = 1M
-
-# Password validation
-##plugin-load-add=simple_password_check.so
-##simple_password_check_other_characters=0
-
-# Audit Log settings
-plugin-load-add=server_audit.so
-server_audit=FORCE_PLUS_PERMANENT
-server_audit_file_path=//var/lib/mysql/audit.log
-server_audit_file_rotate_size=50M
-server_audit_events=CONNECT,QUERY,TABLE
-server_audit_logging=on
-
-# Don't listen on a TCP/IP port at all. This can be a security enhancement,
-# if all processes that need to connect to mysqld run on the same host.
-# All interaction with mysqld must be made via Unix sockets or named pipes.
-# Note that using this option without enabling named pipes on Windows
-# (via the "enable-named-pipe" option) will render mysqld useless!
-#
-#skip-networking
-
-# Replication Master Server (default)
-# binary logging is required for replication
-##log-bin=//var/lib/mysql/mysql-bin
-
-# binary logging format - mixed recommended
-binlog_format=row
-
-# required unique id between 1 and 2^32 - 1
-# defaults to 1 if master-host is not set
-# but will not function as a master if omitted
-
-# Replication Slave (comment out master section to use this)
-#
-# To configure this host as a replication slave, you can choose between
-# two methods :
-#
-# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
-# the syntax is:
-#
-# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,
-# MASTER_USER=, MASTER_PASSWORD= ;
-#
-# where you replace , , by quoted strings and
-# by the master's port number (3306 by default).
-#
-# Example:
-#
-# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
-# MASTER_USER='joe', MASTER_PASSWORD='secret';
-#
-# OR
-#
-# 2) Set the variables below. However, in case you choose this method, then
-# start replication for the first time (even unsuccessfully, for example
-# if you mistyped the password in master-password and the slave fails to
-# connect), the slave will create a master.info file, and any later
-# change in this file to the variables' values below will be ignored and
-# overridden by the content of the master.info file, unless you shutdown
-# the slave server, delete master.info and restart the slaver server.
-# For that reason, you may want to leave the lines below untouched
-# (commented) and instead use CHANGE MASTER TO (see above)
-#
-# required unique id between 2 and 2^32 - 1
-# (and different from the master)
-# defaults to 2 if master-host is set
-# but will not function as a slave if omitted
-#server-id = 2
-#
-# The replication master for this slave - required
-#master-host =
-#
-# The username the slave will use for authentication when connecting
-# to the master - required
-#master-user =
-#
-# The password the slave will authenticate with when connecting to
-# the master - required
-#master-password =
-#
-# The port the master is listening on.
-# optional - defaults to 3306
-#master-port =
-#
-# binary logging - not required for slaves, but recommended
-#log-bin=mysql-bin
-
-# Uncomment the following if you are using InnoDB tables
-##innodb_data_home_dir = //opt/app/mysql/data
-##innodb_data_file_path = ibdata1:20M:autoextend:max:32G
-##innodb_log_group_home_dir = //opt/app/mysql/iblogs
-# You can set .._buffer_pool_size up to 50 - 80 %
-# of RAM but beware of setting memory usage too high
-innodb_buffer_pool_size = 6380M
-#innodb_additional_mem_pool_size = 2M
-# Set .._log_file_size to 25 % of buffer pool size
-innodb_log_file_size = 150M
-innodb_log_files_in_group = 3
-innodb_log_buffer_size = 8M
-#innodb_flush_log_at_trx_commit = 1
-innodb_lock_wait_timeout = 50
-innodb_autoextend_increment = 100
-expire_logs_days = 8
-open_files_limit = 2000
-transaction-isolation=READ-COMMITTED
-####### Galera parameters #######
-## Galera Provider configuration
-wsrep_provider=/usr/lib/galera/libgalera_smm.so
-wsrep_provider_options="gcache.size=2G; gcache.page_size=1G"
-## Galera Cluster configuration
-wsrep_cluster_name="MSO-automated-tests-cluster"
-wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3"
-##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186"
-## Galera Synchronization configuration
-wsrep_sst_method=rsync
-#wsrep_sst_method=xtrabackup-v2
-#wsrep_sst_auth="sstuser:Mon#2o!6"
-## Galera Node configuration
-wsrep_node_name="mariadb2"
-##wsrep_node_address="192.169.3.184"
-wsrep_on=ON
-## Status notification
-#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify
-#######
-
-
-[mysqldump]
-quick
-max_allowed_packet = 16M
-
-[mysql]
-no-auto-rehash
-# Remove the next comment character if you are not familiar with SQL
-#safe-updates
-
-[myisamchk]
-key_buffer_size = 20971520
-
-##[mysqlhotcopy]
-##interactive-timeout
-##[mysqld_safe]
-##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1
-##log-error=//opt/app/mysql/log/mysqld.log
\ No newline at end of file
diff --git a/runtime/extra/docker/mariadb/conf3/my.cnf b/runtime/extra/docker/mariadb/conf3/my.cnf
deleted file mode 100644
index 74f7a31b0..000000000
--- a/runtime/extra/docker/mariadb/conf3/my.cnf
+++ /dev/null
@@ -1,193 +0,0 @@
-# Example MySQL config file for medium systems.
-#
-# This is for a system with memory 8G where MySQL plays
-# an important part, or systems up to 128M where MySQL is used together with
-# other programs (such as a web server)
-#
-# In this file, you can use all long options that a program supports.
-# If you want to know which options a program supports, run the program
-# with the "--help" option.
-
-# The following options will be passed to all MySQL clients
-##[client]
-##user = root
-##port = 3306
-##socket = //opt/app/mysql/mysql.sock
-
-# Here follows entries for some specific programs
-
-# The MySQL server
-[mysqld]
-##performance_schema
-
-slow_query_log =ON
-long_query_time =2
-slow_query_log_file =//var/lib/mysql/slow_query.log
-##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64
-##datadir = //opt/app/mysql/data
-##port = 3306
-##socket = //opt/app/mysql/mysql.sock
-skip-external-locking
-explicit_defaults_for_timestamp = true
-skip-symbolic-links
-local-infile = 0
-#ignore_db_dir=lost+found
-key_buffer_size = 16M
-max_allowed_packet = 4M
-table_open_cache = 100
-sort_buffer_size = 512K
-net_buffer_length = 8K
-read_buffer_size = 256K
-read_rnd_buffer_size = 512K
-myisam_sort_buffer_size = 8M
-max_connections = 500
-lower_case_table_names = 1
-thread_stack = 256K
-thread_cache_size = 25
-query_cache_size = 8M
-query_cache_type = 0
-query_prealloc_size = 512K
-query_cache_limit = 1M
-
-# Password validation
-##plugin-load-add=simple_password_check.so
-##simple_password_check_other_characters=0
-
-# Audit Log settings
-plugin-load-add=server_audit.so
-server_audit=FORCE_PLUS_PERMANENT
-server_audit_file_path=//var/lib/mysql/audit.log
-server_audit_file_rotate_size=50M
-server_audit_events=CONNECT,QUERY,TABLE
-server_audit_logging=on
-
-# Don't listen on a TCP/IP port at all. This can be a security enhancement,
-# if all processes that need to connect to mysqld run on the same host.
-# All interaction with mysqld must be made via Unix sockets or named pipes.
-# Note that using this option without enabling named pipes on Windows
-# (via the "enable-named-pipe" option) will render mysqld useless!
-#
-#skip-networking
-
-# Replication Master Server (default)
-# binary logging is required for replication
-##log-bin=//var/lib/mysql/mysql-bin
-
-# binary logging format - mixed recommended
-binlog_format=row
-
-# required unique id between 1 and 2^32 - 1
-# defaults to 1 if master-host is not set
-# but will not function as a master if omitted
-
-# Replication Slave (comment out master section to use this)
-#
-# To configure this host as a replication slave, you can choose between
-# two methods :
-#
-# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
-# the syntax is:
-#
-# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,
-# MASTER_USER=, MASTER_PASSWORD= ;
-#
-# where you replace , , by quoted strings and
-# by the master's port number (3306 by default).
-#
-# Example:
-#
-# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
-# MASTER_USER='joe', MASTER_PASSWORD='secret';
-#
-# OR
-#
-# 2) Set the variables below. However, in case you choose this method, then
-# start replication for the first time (even unsuccessfully, for example
-# if you mistyped the password in master-password and the slave fails to
-# connect), the slave will create a master.info file, and any later
-# change in this file to the variables' values below will be ignored and
-# overridden by the content of the master.info file, unless you shutdown
-# the slave server, delete master.info and restart the slaver server.
-# For that reason, you may want to leave the lines below untouched
-# (commented) and instead use CHANGE MASTER TO (see above)
-#
-# required unique id between 2 and 2^32 - 1
-# (and different from the master)
-# defaults to 2 if master-host is set
-# but will not function as a slave if omitted
-#server-id = 2
-#
-# The replication master for this slave - required
-#master-host =
-#
-# The username the slave will use for authentication when connecting
-# to the master - required
-#master-user =
-#
-# The password the slave will authenticate with when connecting to
-# the master - required
-#master-password =
-#
-# The port the master is listening on.
-# optional - defaults to 3306
-#master-port =
-#
-# binary logging - not required for slaves, but recommended
-#log-bin=mysql-bin
-
-# Uncomment the following if you are using InnoDB tables
-##innodb_data_home_dir = //opt/app/mysql/data
-##innodb_data_file_path = ibdata1:20M:autoextend:max:32G
-##innodb_log_group_home_dir = //opt/app/mysql/iblogs
-# You can set .._buffer_pool_size up to 50 - 80 %
-# of RAM but beware of setting memory usage too high
-innodb_buffer_pool_size = 6380M
-#innodb_additional_mem_pool_size = 2M
-# Set .._log_file_size to 25 % of buffer pool size
-innodb_log_file_size = 150M
-innodb_log_files_in_group = 3
-innodb_log_buffer_size = 8M
-#innodb_flush_log_at_trx_commit = 1
-innodb_lock_wait_timeout = 50
-innodb_autoextend_increment = 100
-expire_logs_days = 8
-open_files_limit = 2000
-transaction-isolation=READ-COMMITTED
-####### Galera parameters #######
-## Galera Provider configuration
-wsrep_provider=/usr/lib/galera/libgalera_smm.so
-wsrep_provider_options="gcache.size=2G; gcache.page_size=1G"
-## Galera Cluster configuration
-wsrep_cluster_name="MSO-automated-tests-cluster"
-wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3"
-##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186"
-## Galera Synchronization configuration
-wsrep_sst_method=rsync
-#wsrep_sst_method=xtrabackup-v2
-#wsrep_sst_auth="sstuser:Mon#2o!6"
-## Galera Node configuration
-wsrep_node_name="mariadb3"
-##wsrep_node_address="192.169.3.184"
-wsrep_on=ON
-## Status notification
-#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify
-#######
-
-
-[mysqldump]
-quick
-max_allowed_packet = 16M
-
-[mysql]
-no-auto-rehash
-# Remove the next comment character if you are not familiar with SQL
-#safe-updates
-
-[myisamchk]
-key_buffer_size = 20971520
-
-##[mysqlhotcopy]
-##interactive-timeout
-##[mysqld_safe]
-##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1
-##log-error=//opt/app/mysql/log/mysqld.log
\ No newline at end of file
diff --git a/runtime/extra/sql/bootstrap-database.sh b/runtime/extra/sql/bootstrap-database.sh
deleted file mode 100755
index 224a813db..000000000
--- a/runtime/extra/sql/bootstrap-database.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-###
-# ============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============================================
-# ===================================================================
-#
-###
-
-mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < /docker-entrypoint-initdb.d/bulkload/create-db.sql
-## New model creation
-mysql -uroot -p$MYSQL_ROOT_PASSWORD -f cldsdb4 < /docker-entrypoint-initdb.d/bulkload/create-tables.sql
diff --git a/runtime/extra/sql/bulkload/create-db.sql b/runtime/extra/sql/bulkload/create-db.sql
deleted file mode 100644
index a9d81d7c5..000000000
--- a/runtime/extra/sql/bulkload/create-db.sql
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Create CLDS database objects (tables, etc.)
-#
-#
-CREATE DATABASE `cldsdb4`;
-USE `cldsdb4`;
-DROP USER 'clds';
-CREATE USER 'clds';
-GRANT ALL on cldsdb4.* to 'clds' identified by 'sidnnd83K' with GRANT OPTION;
-CREATE DATABASE `clampacm`;
-USE `clampacm`;
-DROP USER 'policy';
-CREATE USER 'policy';
-GRANT ALL on clampacm.* to 'policy' identified by 'P01icY' with GRANT OPTION;
-FLUSH PRIVILEGES;
diff --git a/runtime/extra/sql/bulkload/create-tables.sql b/runtime/extra/sql/bulkload/create-tables.sql
deleted file mode 100644
index 111a4058e..000000000
--- a/runtime/extra/sql/bulkload/create-tables.sql
+++ /dev/null
@@ -1,255 +0,0 @@
-
- create table dictionary (
- name varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- dictionary_second_level integer,
- dictionary_type varchar(255),
- primary key (name)
- ) engine=InnoDB;
-
- create table dictionary_elements (
- short_name varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- description varchar(255) not null,
- name varchar(255) not null,
- subdictionary_name varchar(255),
- type varchar(255) not null,
- primary key (short_name)
- ) engine=InnoDB;
-
- create table dictionary_to_dictionaryelements (
- dictionary_name varchar(255) not null,
- dictionary_element_short_name varchar(255) not null,
- primary key (dictionary_name, dictionary_element_short_name)
- ) engine=InnoDB;
-
- create table hibernate_sequence (
- next_val bigint
- ) engine=InnoDB;
-
- insert into hibernate_sequence values ( 1 );
-
- create table loop_element_models (
- name varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- blueprint_yaml MEDIUMTEXT,
- dcae_blueprint_id varchar(255),
- loop_element_type varchar(255) not null,
- short_name varchar(255),
- primary key (name)
- ) engine=InnoDB;
-
- create table loop_logs (
- id bigint not null,
- log_component varchar(255) not null,
- log_instant datetime(6) not null,
- log_type varchar(255) not null,
- message MEDIUMTEXT not null,
- loop_id varchar(255) not null,
- primary key (id)
- ) engine=InnoDB;
-
- create table loop_templates (
- name varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- allowed_loop_type varchar(255),
- blueprint_yaml MEDIUMTEXT,
- dcae_blueprint_id varchar(255),
- maximum_instances_allowed integer,
- unique_blueprint boolean default false,
- service_uuid varchar(255),
- primary key (name)
- ) engine=InnoDB;
-
- create table loopelementmodels_to_policymodels (
- loop_element_name varchar(255) not null,
- policy_model_type varchar(255) not null,
- policy_model_version varchar(255) not null,
- primary key (loop_element_name, policy_model_type, policy_model_version)
- ) engine=InnoDB;
-
- create table loops (
- name varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- dcae_deployment_id varchar(255),
- dcae_deployment_status_url varchar(255),
- global_properties_json json,
- last_computed_state varchar(255) not null,
- loop_template_name varchar(255) not null,
- service_uuid varchar(255),
- primary key (name)
- ) engine=InnoDB;
-
- create table loops_to_microservicepolicies (
- loop_name varchar(255) not null,
- microservicepolicy_name varchar(255) not null,
- primary key (loop_name, microservicepolicy_name)
- ) engine=InnoDB;
-
- create table looptemplates_to_loopelementmodels (
- loop_element_model_name varchar(255) not null,
- loop_template_name varchar(255) not null,
- flow_order integer not null,
- primary key (loop_element_model_name, loop_template_name)
- ) engine=InnoDB;
-
- create table micro_service_policies (
- name varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- configurations_json json,
- json_representation json not null,
- pdp_group varchar(255),
- pdp_sub_group varchar(255),
- context varchar(255),
- dcae_blueprint_id varchar(255),
- dcae_deployment_id varchar(255),
- dcae_deployment_status_url varchar(255),
- device_type_scope varchar(255),
- shared bit not null,
- loop_element_model_id varchar(255),
- policy_model_type varchar(255),
- policy_model_version varchar(255),
- primary key (name)
- ) engine=InnoDB;
-
- create table operational_policies (
- name varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- configurations_json json,
- json_representation json not null,
- pdp_group varchar(255),
- pdp_sub_group varchar(255),
- loop_element_model_id varchar(255),
- policy_model_type varchar(255),
- policy_model_version varchar(255),
- loop_id varchar(255) not null,
- primary key (name)
- ) engine=InnoDB;
-
- create table policy_models (
- policy_model_type varchar(255) not null,
- version varchar(255) not null,
- created_by varchar(255),
- created_timestamp datetime(6) not null,
- updated_by varchar(255),
- updated_timestamp datetime(6) not null,
- policy_acronym varchar(255),
- policy_tosca MEDIUMTEXT,
- policy_pdp_group json,
- primary key (policy_model_type, version)
- ) engine=InnoDB;
-
- create table services (
- service_uuid varchar(255) not null,
- name varchar(255) not null,
- resource_details json,
- service_details json,
- version varchar(255),
- primary key (service_uuid)
- ) engine=InnoDB;
-
- alter table dictionary_to_dictionaryelements
- add constraint FK68hjjinnm8nte2owstd0xwp23
- foreign key (dictionary_element_short_name)
- references dictionary_elements (short_name);
-
- alter table dictionary_to_dictionaryelements
- add constraint FKtqfxg46gsxwlm2gkl6ne3cxfe
- foreign key (dictionary_name)
- references dictionary (name);
-
- alter table loop_logs
- add constraint FK1j0cda46aickcaoxqoo34khg2
- foreign key (loop_id)
- references loops (name);
-
- alter table loop_templates
- add constraint FKn692dk6281wvp1o95074uacn6
- foreign key (service_uuid)
- references services (service_uuid);
-
- alter table loopelementmodels_to_policymodels
- add constraint FK23j2q74v6kaexefy0tdabsnda
- foreign key (policy_model_type, policy_model_version)
- references policy_models (policy_model_type, version);
-
- alter table loopelementmodels_to_policymodels
- add constraint FKjag1iu0olojfwryfkvb5o0rk5
- foreign key (loop_element_name)
- references loop_element_models (name);
-
- alter table loops
- add constraint FK844uwy82wt0l66jljkjqembpj
- foreign key (loop_template_name)
- references loop_templates (name);
-
- alter table loops
- add constraint FK4b9wnqopxogwek014i1shqw7w
- foreign key (service_uuid)
- references services (service_uuid);
-
- alter table loops_to_microservicepolicies
- add constraint FKle255jmi7b065fwbvmwbiehtb
- foreign key (microservicepolicy_name)
- references micro_service_policies (name);
-
- alter table loops_to_microservicepolicies
- add constraint FK8avfqaf7xl71l7sn7a5eri68d
- foreign key (loop_name)
- references loops (name);
-
- alter table looptemplates_to_loopelementmodels
- add constraint FK1k7nbrbugvqa0xfxkq3cj1yn9
- foreign key (loop_element_model_name)
- references loop_element_models (name);
-
- alter table looptemplates_to_loopelementmodels
- add constraint FKj29yxyw0x7ue6mwgi6d3qg748
- foreign key (loop_template_name)
- references loop_templates (name);
-
- alter table micro_service_policies
- add constraint FKqvvdypacbww07fuv8xvlvdjgl
- foreign key (loop_element_model_id)
- references loop_element_models (name);
-
- alter table micro_service_policies
- add constraint FKn17j9ufmyhqicb6cvr1dbjvkt
- foreign key (policy_model_type, policy_model_version)
- references policy_models (policy_model_type, version);
-
- alter table operational_policies
- add constraint FKi9kh7my40737xeuaye9xwbnko
- foreign key (loop_element_model_id)
- references loop_element_models (name);
-
- alter table operational_policies
- add constraint FKlsyhfkoqvkwj78ofepxhoctip
- foreign key (policy_model_type, policy_model_version)
- references policy_models (policy_model_type, version);
-
- alter table operational_policies
- add constraint FK1ddoggk9ni2bnqighv6ecmuwu
- foreign key (loop_id)
- references loops (name);
diff --git a/runtime/extra/sql/dump/backup-data-only.sh b/runtime/extra/sql/dump/backup-data-only.sh
deleted file mode 100755
index 8ebebf91d..000000000
--- a/runtime/extra/sql/dump/backup-data-only.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2019, 2021 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============================================
-# ===================================================================
-#
-###
-
-mysqldump -uroot -p$MYSQL_ROOT_PASSWORD -v --extended-insert=FALSE --complete-insert --no-create-db --no-create-info --databases cldsdb4 > /docker-entrypoint-initdb.d/dump/test-data.sql
\ No newline at end of file
diff --git a/runtime/extra/sql/dump/backup-database.sh b/runtime/extra/sql/dump/backup-database.sh
deleted file mode 100755
index 1ae7ee2b7..000000000
--- a/runtime/extra/sql/dump/backup-database.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2019 AT&T Intellectual Property. All rights
-# reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END============================================
-# ===================================================================
-#
-###
-
-mysqldump -uroot -p$MYSQL_ROOT_PASSWORD -v --extended-insert=FALSE --databases cldsdb4 > $1
\ No newline at end of file
diff --git a/runtime/extra/sql/dump/load-fake-data.sh b/runtime/extra/sql/dump/load-fake-data.sh
deleted file mode 100755
index 572972683..000000000
--- a/runtime/extra/sql/dump/load-fake-data.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2019 AT&T Intellectual Property. All rights
-# reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END============================================
-# ===================================================================
-#
-###
-
-mysql -uroot -p$MYSQL_ROOT_PASSWORD -v -f cldsdb4 < /docker-entrypoint-initdb.d/dump/test-data.sql
\ No newline at end of file
diff --git a/runtime/extra/sql/dump/test-data.sql b/runtime/extra/sql/dump/test-data.sql
deleted file mode 100644
index 5061a60c1..000000000
--- a/runtime/extra/sql/dump/test-data.sql
+++ /dev/null
@@ -1,218 +0,0 @@
--- MariaDB dump 10.17 Distrib 10.5.4-MariaDB, for debian-linux-gnu (x86_64)
---
--- Host: localhost Database: cldsdb4
--- ------------------------------------------------------
--- Server version 10.5.4-MariaDB-1:10.5.4+maria~focal-log
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8mb4 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
---
--- Current Database: `cldsdb4`
---
-
-USE `cldsdb4`;
-
---
--- Dumping data for table `dictionary`
---
-
-LOCK TABLES `dictionary` WRITE;
-/*!40000 ALTER TABLE `dictionary` DISABLE KEYS */;
-INSERT INTO `dictionary` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `dictionary_second_level`, `dictionary_type`) VALUES ('DefaultActors','Not found','2021-06-17 16:15:18.265816','Not found','2021-06-17 16:15:18.265816',0,'');
-INSERT INTO `dictionary` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `dictionary_second_level`, `dictionary_type`) VALUES ('DefaultOperations','Not found','2021-06-17 16:15:18.314468','Not found','2021-06-17 16:15:18.314468',0,'');
-/*!40000 ALTER TABLE `dictionary` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `dictionary_elements`
---
-
-LOCK TABLES `dictionary_elements` WRITE;
-/*!40000 ALTER TABLE `dictionary_elements` DISABLE KEYS */;
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('APPC','Not found','2021-06-17 16:15:18.294511','Not found','2021-06-17 16:15:18.294511','APPC component','APPC',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('BandwidthOnDemand (SDNC operation)','Not found','2021-06-17 16:15:18.318633','Not found','2021-06-17 16:15:18.318633','SDNC operation','BandwidthOnDemand',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Health-Check (APPC operation)','Not found','2021-06-17 16:15:18.367201','Not found','2021-06-17 16:15:18.367201','APPC operation','Health-Check',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Migrate (APPC operation)','Not found','2021-06-17 16:15:18.364272','Not found','2021-06-17 16:15:18.364272','APPC operation','Migrate',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('ModifyConfig (APPC/VFC operation)','Not found','2021-06-17 16:15:18.357911','Not found','2021-06-17 16:15:18.357911','APPC/VFC operation','ModifyConfig',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Rebuild (APPC operation)','Not found','2021-06-17 16:15:18.337034','Not found','2021-06-17 16:15:18.337034','APPC operation','Rebuild',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Reroute (SDNC operation)','Not found','2021-06-17 16:15:18.324244','Not found','2021-06-17 16:15:18.324244','SDNC operation','Reroute',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Restart (APPC operation)','Not found','2021-06-17 16:15:18.361008','Not found','2021-06-17 16:15:18.361008','APPC operation','Restart',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SDNC','Not found','2021-06-17 16:15:18.278680','Not found','2021-06-17 16:15:18.278680','SDNC component','SDNC',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SDNR','Not found','2021-06-17 16:15:18.275761','Not found','2021-06-17 16:15:18.275761','SDNR component','SDNR',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SO','Not found','2021-06-17 16:15:18.284607','Not found','2021-06-17 16:15:18.284607','SO component','SO',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VF Module Create (SO operation)','Not found','2021-06-17 16:15:18.327610','Not found','2021-06-17 16:15:18.327610','SO operation','VF Module Create',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VF Module Delete (SO operation)','Not found','2021-06-17 16:15:18.320380','Not found','2021-06-17 16:15:18.320380','SO operation','VF Module Delete',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VFC','Not found','2021-06-17 16:15:18.281456','Not found','2021-06-17 16:15:18.281456','VFC component','VFC',NULL,'string');
-/*!40000 ALTER TABLE `dictionary_elements` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `dictionary_to_dictionaryelements`
---
-
-LOCK TABLES `dictionary_to_dictionaryelements` WRITE;
-/*!40000 ALTER TABLE `dictionary_to_dictionaryelements` DISABLE KEYS */;
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultActors','APPC');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultActors','SDNC');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultActors','SDNR');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultActors','SO');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultActors','VFC');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','BandwidthOnDemand (SDNC operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','Health-Check (APPC operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','Migrate (APPC operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','ModifyConfig (APPC/VFC operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','Rebuild (APPC operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','Reroute (SDNC operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','Restart (APPC operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','VF Module Create (SO operation)');
-INSERT INTO `dictionary_to_dictionaryelements` (`dictionary_name`, `dictionary_element_short_name`) VALUES ('DefaultOperations','VF Module Delete (SO operation)');
-/*!40000 ALTER TABLE `dictionary_to_dictionaryelements` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `hibernate_sequence`
---
-
-LOCK TABLES `hibernate_sequence` WRITE;
-/*!40000 ALTER TABLE `hibernate_sequence` DISABLE KEYS */;
-INSERT INTO `hibernate_sequence` (`next_val`) VALUES (11);
-/*!40000 ALTER TABLE `hibernate_sequence` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `loop_element_models`
---
-
-LOCK TABLES `loop_element_models` WRITE;
-/*!40000 ALTER TABLE `loop_element_models` DISABLE KEYS */;
-INSERT INTO `loop_element_models` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `blueprint_yaml`, `dcae_blueprint_id`, `loop_element_type`, `short_name`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2021-06-17 16:15:19.343008','Not found','2021-06-17 16:15:19.660502',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
-INSERT INTO `loop_element_models` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `blueprint_yaml`, `dcae_blueprint_id`, `loop_element_type`, `short_name`) VALUES ('onap.policies.monitoring.tcagen2','Not found','2021-06-17 16:15:19.545296','Not found','2021-06-17 16:15:19.545296',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
-/*!40000 ALTER TABLE `loop_element_models` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `loop_logs`
---
-
-LOCK TABLES `loop_logs` WRITE;
-/*!40000 ALTER TABLE `loop_logs` DISABLE KEYS */;
-/*!40000 ALTER TABLE `loop_logs` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `loop_templates`
---
-
-LOCK TABLES `loop_templates` WRITE;
-/*!40000 ALTER TABLE `loop_templates` DISABLE KEYS */;
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca','Not found','2021-06-17 16:15:19.419002','Not found','2021-06-17 16:15:19.419002','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-07dcac66-fa41-4e68-addf-4d6b85313b0b',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca-guilin','Not found','2021-06-17 16:15:19.539831','Not found','2021-06-17 16:15:19.539831','CLOSED','# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (C) 2019-2020 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#k8s-tca-gen2-v3.yaml\n\ntosca_definitions_version: cloudify_dsl_1_3\nimports:\n - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n - plugin:k8splugin?version=3.4.2\n - plugin:clamppolicyplugin?version=1.1.0\ninputs:\n service_name:\n type: string\n default: \'dcae-tcagen2\'\n log_directory:\n type: string\n default: \"/opt/logs/dcae-analytics-tca\"\n replicas:\n type: integer\n description: number of instances\n default: 1\n spring.data.mongodb.uri:\n type: string\n default: \"mongodb://dcae-mongohost/dcae-tcagen2\"\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.2.1\"\n tca.aai.password:\n type: string\n default: \"DCAE\"\n tca.aai.url:\n type: string\n default: \"http://aai.onap.svc.cluster.local\"\n tca.aai.username:\n type: string\n default: \"DCAE\"\n tca_handle_in_subscribe_url:\n type: string\n default: \"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT\"\n tca_handle_out_publish_url:\n type: string\n default: \"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_CL_OUTPUT\"\n tca_consumer_group:\n type: string\n default: \"cg1\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.tcagen2\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\nnode_templates:\n docker.tca:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tcagen2_policy\n type: cloudify.relationships.depends_on\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n ports:\n - concat: [\"9091:\", \"0\"]\n properties:\n application_config:\n service_calls: []\n streams_publishes:\n tca_handle_out:\n dmaap_info:\n topic_url:\n get_input: tca_handle_out_publish_url\n type: message_router\n streams_subscribes:\n tca_handle_in:\n dmaap_info:\n topic_url:\n get_input: tca_handle_in_subscribe_url\n type: message_router\n spring.data.mongodb.uri:\n get_input: spring.data.mongodb.uri\n streams_subscribes.tca_handle_in.consumer_group:\n get_input: tca_consumer_group\n streams_subscribes.tca_handle_in.consumer_ids[0]: c0\n streams_subscribes.tca_handle_in.consumer_ids[1]: c1\n streams_subscribes.tca_handle_in.message_limit: 50000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.max: 60000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.min: 30000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.step_down: 30000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.step_up: 10000\n streams_subscribes.tca_handle_in.polling.fixed_rate: 0\n streams_subscribes.tca_handle_in.timeout: -1\n tca.aai.enable_enrichment: true\n tca.aai.generic_vnf_path: aai/v11/network/generic-vnfs/generic-vnf\n tca.aai.node_query_path: aai/v11/search/nodes-query\n tca.aai.password:\n get_input: tca.aai.password\n tca.aai.url:\n get_input: tca.aai.url\n tca.aai.username:\n get_input: tca.aai.username\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.processing_batch_size: 10000\n tca.enable_abatement: true\n tca.enable_ecomp_logging: true\n docker_config:\n healthcheck:\n endpoint: /actuator/health\n interval: 30s\n timeout: 10s\n type: http\n image:\n get_input: tag_version\n log_info:\n log_directory:\n get_input: log_directory\n tls_info:\n use_tls: true\n cert_directory: \'/etc/tca-gen2/ssl\'\n replicas:\n get_input: replicas\n service_component_type: { get_input: service_name }\n tcagen2_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-ead66350-9f10-43ad-a61a-32000ef93189',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca_3','Not found','2021-06-17 16:15:19.383305','Not found','2021-06-17 16:15:19.383305','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-656704a9-8f99-4fec-94fc-714e20f770f8',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName2_tca_2','Not found','2021-06-17 16:15:19.325982','Not found','2021-06-17 16:15:19.325982','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-7396dd0d-9862-40b4-ac12-0a2884926c47',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-/*!40000 ALTER TABLE `loop_templates` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `loopelementmodels_to_policymodels`
---
-
-LOCK TABLES `loopelementmodels_to_policymodels` WRITE;
-/*!40000 ALTER TABLE `loopelementmodels_to_policymodels` DISABLE KEYS */;
-INSERT INTO `loopelementmodels_to_policymodels` (`loop_element_name`, `policy_model_type`, `policy_model_version`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0');
-INSERT INTO `loopelementmodels_to_policymodels` (`loop_element_name`, `policy_model_type`, `policy_model_version`) VALUES ('onap.policies.monitoring.tcagen2','onap.policies.monitoring.tcagen2','1.0.0');
-/*!40000 ALTER TABLE `loopelementmodels_to_policymodels` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `loops`
---
-
-LOCK TABLES `loops` WRITE;
-/*!40000 ALTER TABLE `loops` DISABLE KEYS */;
-/*!40000 ALTER TABLE `loops` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `loops_to_microservicepolicies`
---
-
-LOCK TABLES `loops_to_microservicepolicies` WRITE;
-/*!40000 ALTER TABLE `loops_to_microservicepolicies` DISABLE KEYS */;
-/*!40000 ALTER TABLE `loops_to_microservicepolicies` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `looptemplates_to_loopelementmodels`
---
-
-LOCK TABLES `looptemplates_to_loopelementmodels` WRITE;
-/*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` DISABLE KEYS */;
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca',0);
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca_3',0);
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName2_tca_2',0);
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.tcagen2','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca-guilin',0);
-/*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `micro_service_policies`
---
-
-LOCK TABLES `micro_service_policies` WRITE;
-/*!40000 ALTER TABLE `micro_service_policies` DISABLE KEYS */;
-/*!40000 ALTER TABLE `micro_service_policies` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `operational_policies`
---
-
-LOCK TABLES `operational_policies` WRITE;
-/*!40000 ALTER TABLE `operational_policies` DISABLE KEYS */;
-/*!40000 ALTER TABLE `operational_policies` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `policy_models`
---
-
-LOCK TABLES `policy_models` WRITE;
-/*!40000 ALTER TABLE `policy_models` DISABLE KEYS */;
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.Blacklist','1.0.0','Not found','2021-06-17 16:15:11.250177','Not found','2021-06-17 16:15:11.450816','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` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.FrequencyLimiter','1.0.0','Not found','2021-06-17 16:15:11.136723','Not found','2021-06-17 16:15:11.452187','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` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.MinMax','2.0.0',NULL,'2021-06-17 16:15:11.511288','Not found','2021-06-17 16:15:11.581900','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` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.operational.common.Apex','1.0.0',NULL,'2021-06-17 16:15:11.035345','Not found','2021-06-17 16:15:12.049476','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 \"apex\",\n \"drools\"\n ]\n }\n ]\n}');
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.operational.common.Drools','1.0.0',NULL,'2021-06-17 16:15:10.801558','Not found','2021-06-17 16:15:11.455427','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 \"apex\",\n \"drools\"\n ]\n }\n ]\n}');
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','Not found','2021-06-17 16:15:19.212725','Not found','2021-06-17 16:15:19.212725','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',NULL);
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.monitoring.tcagen2','1.0.0','Not found','2021-06-17 16:15:19.486012','Not found','2021-06-17 16:15:19.486012','tcagen2','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 name: onap.policies.Monitoring\n description: a base policy type for all policies that govern monitoring provisioning\n onap.policies.monitoring.tcagen2:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n name: onap.policies.monitoring.tcagen2\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',NULL);
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.Naming','1.0.0','Not found','2021-06-17 16:15:11.367029','Not found','2021-06-17 16:15:12.054986','Naming','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Naming:\n derived_from: tosca.policies.Root\n version: 1.0.0\n name: onap.policies.Naming\n description: Virtual policy node for naming\n properties:\n policy-instance-name:\n type: string\n naming-models:\n type: list\n entry_schema:\n type: policy.data.naming-model-entity\ndata_types:\n policy.data.naming-model-entity:\n derived_from: tosca.datatypes.Root\n properties:\n nfRole:\n type: string\n required: false\n metadata:\n matchable: true\n naming-type:\n type: string\n required: true\n metadata:\n matchable: true\n naming-recipe:\n type: string\n required: true\n name-operation:\n type: string\n required: false\n naming-properties:\n type: list\n required: true\n entry_schema:\n type: policy.data.naming-property\n policy.data.naming-property:\n derived_from: tosca.datatypes.Root\n properties:\n property-name:\n type: string\n required: true\n metadata:\n matchable: true\n property-value:\n type: string\n required: false\n property-operation:\n type: string\n required: false\n source-system:\n type: string\n required: false\n source-endpoint:\n type: string\n required: false\n increment-sequence:\n type: policy.data.increment-sequence\n required: false\n policy.data.increment-sequence:\n derived_from: tosca.datatypes.Root\n properties:\n scope:\n type: list\n required: true\n entry_schema:\n type: string\n constraints:\n - valid_values:\n - CLOUD_REGION_ID\n - LOCATION_CLLI\n - VNF\n - VM\n - VFMODULE\n - PRECEEDING\n - TRAILING\n - ENTIRETY\n sequence-type:\n type: string\n require: true\n entry_schema:\n type: string\n constraints:\n - valid_values:\n - numeric\n - alpha-numeric\n start-value:\n type: string\n required: true\n max:\n type: string\n required: false\n increment:\n type: string\n required: true\n length:\n type: string\n required: true\n','{\n \"supportedPdpGroups\": [\n {\n \"monitoring\": [\n \"xacml\"\n ]\n }\n ]\n}');
-/*!40000 ALTER TABLE `policy_models` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping data for table `services`
---
-
-LOCK TABLES `services` WRITE;
-/*!40000 ALTER TABLE `services` DISABLE KEYS */;
-INSERT INTO `services` (`service_uuid`, `name`, `resource_details`, `service_details`, `version`) 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 \"type\": \"object\",\n \"properties\": {\n \"request-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"service-instance-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"hostname\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"request-info\": {\n \"type\": \"object\",\n \"properties\": {\n \"prop1\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"prop2\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n }\n }\n }\n }\n }\n }\n },\n \"activate\": {\n \"inputs\": {\n \"resource-assignment-properties\": {\n \"type\": \"object\",\n \"properties\": {\n \"request-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"service-instance-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"hostname\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"request-info\": {\n \"type\": \"object\",\n \"properties\": {\n \"prop1\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"prop2\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n }\n }\n }\n }\n }\n }\n },\n \"activate-restconf\": {\n \"inputs\": {\n \"resource-assignment-properties\": {\n \"type\": \"object\",\n \"properties\": {\n \"request-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"service-instance-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"hostname\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"request-info\": {\n \"type\": \"object\",\n \"properties\": {\n \"prop1\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"prop2\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n }\n }\n }\n }\n }\n }\n },\n \"activate-cli\": {\n \"inputs\": {\n \"resource-assignment-properties\": {\n \"type\": \"object\",\n \"properties\": {\n \"request-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"service-instance-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"hostname\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"request-info\": {\n \"type\": \"object\",\n \"properties\": {\n \"prop1\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"prop2\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n }\n }\n }\n }\n }\n }\n },\n \"assign-activate\": {\n \"inputs\": {\n \"resource-assignment-properties\": {\n \"type\": \"object\",\n \"properties\": {\n \"request-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"service-instance-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"hostname\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"request-info\": {\n \"type\": \"object\",\n \"properties\": {\n \"prop1\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"prop2\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n }\n }\n }\n }\n }\n }\n },\n \"imperative-test-wf\": {\n \"inputs\": {\n \"resource-assignment-properties\": {\n \"type\": \"object\",\n \"properties\": {\n \"request-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"service-instance-id\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"hostname\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"request-info\": {\n \"type\": \"object\",\n \"properties\": {\n \"prop1\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n },\n \"prop2\": {\n \"required\": true,\n \"type\": \"string\",\n \"input-param\": true\n }\n }\n }\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 */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
--- Dump completed on 2021-06-17 15:15:55
diff --git a/runtime/pom.xml b/runtime/pom.xml
deleted file mode 100644
index 4698b54e0..000000000
--- a/runtime/pom.xml
+++ /dev/null
@@ -1,939 +0,0 @@
-
-
-
- 4.0.0
-
-
- org.onap.policy.clamp
- policy-clamp
- 6.3.1-SNAPSHOT
-
-
- policy-clamp-runtime
- ${project.artifactId}
-
-
- This is the MAVEN project that builds everything for ONAP POLICY-CLAMP.
- Docker engine is normally required to perfom all possible tasks (including integration tests)
-
- It can build:
- - The ONAP POLICY-CLAMP JAR that contains CLAMP back-end code.
- - The DOCKER images for:
- * POLICY-CLAMP backend (Java Spring)
-
- It can test:
- - The POLICY-CLAMP backend, JAVA unit testing
- - The POLICY-CLAMP backend, JAVA integration tests (with Spring + docker mariadb database + docker policy/dcae
- emulator written in python)
-
- The test coverage for dev's can be found after a "clean install" build in:
- - Clamp backend: target/jacoco-dev.exec (unit tests + integration tests merged)
- or separately target/coverage-reports/jacoco.exec and target/coverage-reports/jacoco-it.exec
-
- Useful mvn commands:
- - mvn clean install: Build Clamp backend JAR + unit tests + integration tests (+coverage for all)
- - mvn clean install -DskipITs=true: Build Clamp backend JAR + unit tests (+coverage for all), it
- does not require a DOCKER engine
- - mvn clean install -DskipTests -P docker: Build Clamp backend JAR + all docker images
-
- To start POLICY-CLAMP (Build it before. In order to start frontend, is also required policy/gui repo built):
- - Use docker-compose file in ./extra/docker/clamp/docker-compose.yml
- - Use the scripts located in ./extra/bin-for-dev/: start-db.sh + start-backend.sh
- - Use your IDE to use the Jar or start NVM
-
-
-
-
- yyyyMMdd'T'HHmmss'Z'
- ${project.version}
- ${maven.build.timestamp}
- jacoco
- ${project.build.directory}/surefire-reports
- ${project.build.directory}/jacoco-html-xml-reports/jacoco.xml
-
- ${project.version}
- DEBUG
- true
- src/main
- src/main/resources/**
- true
- src/main/resources/**
- localhost:5000
- nexus3.onap.org:10001
- true
- true
- true
- backend/Dockerfile
- ${project.basedir}/src/main/docker
- false
-
-
-
-
-
-
-
-
-
- without-test
-
-
- maven.test.skip
- true
-
-
-
- true
- true
-
-
-
- without-IT-only
-
-
- skipITs
- true
-
-
-
- true
- true
-
-
-
- without-IT-only2
-
-
- skipTests
- true
-
-
-
- true
- true
-
-
-
-
- docker
-
- true
- false
- false
- false
- false
-
-
-
- dockersuse
-
- true
- false
- false
- false
- false
- backend/suse.Dockerfile
-
-
-
-
-
-
- org.onap.policy.clamp
- policy-clamp-examples
- ${project.version}
-
-
- org.codehaus.janino
- janino
-
-
- org.apache.tomcat.embed
- tomcat-embed-core
-
-
- org.apache.tomcat.embed
- tomcat-embed-el
-
-
- org.apache.tomcat.embed
- tomcat-embed-websocket
-
-
- org.apache.tomcat
- tomcat-annotations-api
-
-
-
- org.apache.camel.springboot
- camel-http-starter
- ${version.camel}
-
-
- org.apache.camel.springboot
- camel-spring-boot-starter
- ${version.camel}
-
-
- org.apache.camel.springboot
- camel-jaxb-starter
- ${version.camel}
-
-
- org.apache.camel.springboot
- camel-servlet-starter
- ${version.camel}
-
-
- org.apache.camel.springboot
- camel-gson-starter
- ${version.camel}
-
-
- org.apache.camel.springboot
- camel-swagger-java-starter
- ${version.camel}
-
-
- javax.ws.rs
- jsr311-api
-
-
- org.slf4j
- slf4j-ext
-
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-json
-
-
-
-
- org.springframework.boot
- spring-boot-starter-tomcat
-
-
- org.glassfish
- jakarta.el
-
-
-
-
- org.springframework
- spring-jdbc
-
-
- org.springframework.boot
- spring-boot-starter-security
-
-
- org.springframework.boot
- spring-boot-autoconfigure
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- com.vaadin.external.google
- android-json
-
-
-
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
-
- org.onap.policy.models
- policy-models-pdp
- ${policy.models.version}
-
-
- org.eclipse.jetty
- jetty-server
-
-
- org.glassfish.jersey.containers
- jersey-container-servlet
-
-
- org.jetbrains.kotlin
- kotlin-reflect
-
-
- org.jetbrains.kotlin
- kotlin-stdlib
-
-
- org.jetbrains.kotlin
- kotlin-stdlib-common
-
-
-
-
-
-
-
- javax.xml.ws
- jaxws-api
-
-
- org.onap.aaf.authz
- aaf-cadi-aaf
-
-
- javax.servlet
- servlet-api
-
-
- log4j
- log4j
-
-
-
-
- commons-io
- commons-io
-
-
- com.googlecode.json-simple
- json-simple
-
-
- org.apache.commons
- commons-vfs2
-
-
- com.squareup.okhttp
- okhttp
-
-
-
-
- org.slf4j
- slf4j-api
-
-
- javax.transaction
- jta
-
-
- javax.persistence
- persistence-api
- 1.0.2
-
-
-
- javax.validation
- validation-api
- 2.0.1.Final
-
-
- commons-codec
- commons-codec
-
-
- org.codehaus.plexus
- plexus-utils
-
-
- org.jboss.spec.javax.ws.rs
- jboss-jaxrs-api_2.0_spec
-
-
-
-
-
- org.mariadb.jdbc
- mariadb-java-client
-
-
-
- org.onap.sdc.sdc-distribution-client
- sdc-distribution-client
-
-
- org.onap.sdc.sdc-tosca
- sdc-tosca
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
-
-
- org.yaml
- snakeyaml
-
-
- org.dom4j
- dom4j
-
-
-
-
- org.junit.vintage
- junit-vintage-engine
- test
-
-
- com.github.docker-java
- docker-java-core
- test
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
-
-
- com.github.docker-java
- docker-java
- test
-
-
-
-
- policy-clamp-backend
-
-
-
- src/main/resources
- true
-
- clds/aaf/**
-
-
-
- src/main/resources
- false
-
- clds/aaf/**
-
-
-
- src/test/resources
-
- **/*.jks
- **/*.csar
-
- true
-
-
- src/test/resources/https
-
- **.jks
-
- false
- https
-
-
- src/test/resources/example/sdc
-
- **.csar
-
- false
- example/sdc
-
-
-
-
-
- src/main/resources
- true
-
- clds/aaf/**
-
-
-
- src/main/resources
- false
-
- clds/aaf/**
-
-
-
-
-
-
- de.jpdigital
- hibernate52-ddl-maven-plugin
- 2.2.0
-
-
- javax.xml.bind
- jaxb-api
- 2.3.0
-
-
-
-
- process-classes
-
- gen-ddl
-
-
-
- org.onap.policy.clamp
-
-
- MARIADB53
-
- ${project.basedir}/extra/sql/bulkload/
- create-tables
-
- true
-
-
-
-
-
-
-
- org.codehaus.groovy.maven
- gmaven-plugin
- 1.0
-
-
- docker-tags
- validate
-
- execute
-
-
- ${project.basedir}/src/main/script/TagVersion.groovy
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
- jar-with-only-classes
- package
-
- jar
-
-
- classes
-
- org/**
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- 3.2.0
-
-
-
- attach-artifact
-
- package
-
-
-
- ${project.build.directory}/policy-clamp-backend-classes.jar
- jar
- classes
-
-
-
-
-
- reserve-port-for-tests
- process-resources
-
- reserve-network-port
-
-
-
- docker.mariadb.port.host
- docker.http-cache.port.host
- clamp.it.tests.http-redirected
- clamp.it.tests.robotframework.http
- clamp.it.tests.https
- clamp.it.tests.http
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- repackage
-
- package
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- **/*Test.java
-
- 1C
- true
- false
- ${surefireArgLine}
-
-
-
-
- org.apache.maven.plugins
- maven-failsafe-plugin
-
-
- integration-tests
-
- integration-test
- verify
-
-
-
- ${project.build.directory}/classes
-
-
-
- **/*ItTestCase.java
-
- 1C
- true
- false
- ${failsafeArgLine}
-
-
-
-
-
-
- io.github.git-commit-id
- git-commit-id-maven-plugin
- 5.0.0
-
-
- get-the-git-infos
-
- revision
-
- initialize
-
-
-
- false
- true
-
- ^git.build.(time|version)$
- ^git.commit.id.abbrev$
-
- full
-
-
-
-
- io.fabric8
- docker-maven-plugin
-
-
- org.apache.httpcomponents
- httpclient
- 4.5.5
-
-
-
- true
- 1.35
-
-
- mariadb:10.5.4
- mariadb
-
-
- strong_pitchou
-
- mariadb
-
-
- ${project.basedir}/extra/sql/:/docker-entrypoint-initdb.d:rw
- ${project.basedir}/extra/docker/mariadb/conf1:/etc/mysql/conf.d
-
-
-
- port: 3306
-
-
- /docker-entrypoint-initdb.d/dump/backup-data-only.sh
-
-
-
- ${docker.mariadb.port.host}:3306
-
-
- bridge
-
-
-
-
- python:2-slim
- python
-
- python
-
-
-
- ${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app
-
-
- ${project.basedir}/src/test/resources/http-cache/example/:/usr/src/http-cache-app/data-cache
-
-
-
-
-
-
- 8080
-
- direct
-
-
-
-
- ${docker.http-cache.port.host}:8080
-
- /usr/src/http-cache-app
-
- ./start_http_cache.sh ${python.http.proxy.param}
- --python_proxyaddress=localhost:${docker.http-cache.port.host}
-
-
-
- bridge
-
-
-
-
- onap/policy-clamp-backend
- onap-policy-clamp-backend
-
- true
-
-
- true
-
- latest
- ${project.docker.latesttagtimestamp.version}
- ${project.docker.latesttag.version}
-
- ${docker.clamp-runtime.dockerFile}
- ${docker.clamp-runtime.contextDir}
-
- backend/backend-files.xml
- onap-policy-clamp-backend
-
-
-
-
-
-
-
-
- generate-images
- install
-
- build
-
-
-
- push-images
- deploy
-
- push
-
-
-
- docker-start-for-it
- pre-integration-test
-
- start
-
-
-
- docker-stop-for-it
- post-integration-test
-
- stop
-
-
-
-
-
-
- org.jacoco
- jacoco-maven-plugin
-
- true
- true
-
- org/onap/policy/clamp/**
-
-
-
-
- pre-unit-test
-
- prepare-agent
-
-
- ${project.build.directory}/coverage-reports/jacoco.exec
- surefireArgLine
-
-
-
-
- pre-integration-test
- pre-integration-test
-
- prepare-agent
-
-
- ${project.build.directory}/coverage-reports/jacoco-it.exec
- failsafeArgLine
-
-
- false
-
-
-
-
- merge
-
- post-integration-test
-
-
-
- ${project.build.directory}/coverage-reports
-
- *.exec
-
-
-
- ${project.build.directory}/jacoco.exec
-
-
-
- report-xml
-
- report
-
-
-
- ${project.build.directory}/jacoco.exec
- ${project.build.directory}/jacoco-html-xml-reports
-
-
-
-
-
-
-
- org.codehaus.mojo
- versions-maven-plugin
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- org.sonarsource.scanner.maven
- sonar-maven-plugin
-
-
-
- org.codehaus.mojo
- keytool-maven-plugin
- 1.5
-
-
- add-certificate-for-dev
-
- ${project.build.directory}/classes/clds/aaf/org.onap.clamp.p12
- China in the Spring
- clamptest
- PKCS12
- RSA
- cn=CN, ou=OU, o=O, c=C
- 365
-
-
- generateKeyPair
-
- generate-resources
-
-
- add-certificate-for-test
-
- ${project.build.directory}/test-classes/clds/aaf/org.onap.clamp.p12
- China in the Spring
- clamptest
- PKCS12
- RSA
- cn=CN, ou=OU, o=O, c=C
- 365
-
-
- generateKeyPair
-
- generate-test-resources
-
-
-
-
-
-
diff --git a/runtime/runtime/src/main/resources/META-INF/resources/swagger.html b/runtime/runtime/src/main/resources/META-INF/resources/swagger.html
deleted file mode 100644
index b6f49a78f..000000000
--- a/runtime/runtime/src/main/resources/META-INF/resources/swagger.html
+++ /dev/null
@@ -1,454 +0,0 @@
-
-
-
-
-
-
-
-Untitled
-
-
-
-
-
-
-
-
-
-
-
Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/overview.adoc[]
-Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/paths.adoc[]
-Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/security.adoc[]
-Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/definitions.adoc[]
-
-
-
-
-
-
-
diff --git a/runtime/src/main/docker/backend/Dockerfile b/runtime/src/main/docker/backend/Dockerfile
deleted file mode 100644
index 7bb335777..000000000
--- a/runtime/src/main/docker/backend/Dockerfile
+++ /dev/null
@@ -1,61 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright (C) 2022 Nordix Foundation.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END============================================
-# ===================================================================
-#
-###
-
-FROM onap/integration-java11:8.0.0
-
-LABEL maintainer="Policy Team"
-LABEL Description="This image contains alpine, openjdk 11 and policy clamp"
-LABEL org.opencontainers.image.title="Policy CLAMP runtime"
-LABEL org.opencontainers.image.description="Policy CLAMP runtime image based on Alpine"
-LABEL org.opencontainers.image.url="https://github.com/onap/policy-clamp"
-LABEL org.opencontainers.image.vendor="ONAP Policy Team"
-LABEL org.opencontainers.image.licenses="Apache-2.0"
-LABEL org.opencontainers.image.created="${git.build.time}"
-LABEL org.opencontainers.image.version="${git.build.version}"
-LABEL org.opencontainers.image.revision="${git.commit.id.abbrev}"
-
-ARG http_proxy
-ARG https_proxy
-ENV HTTP_PROXY=$http_proxy
-ENV HTTPS_PROXY=$https_proxy
-ENV http_proxy=$HTTP_PROXY
-ENV https_proxy=$HTTPS_PROXY
-
-USER root
-
-RUN mkdir -p /opt/policy/clamp && \
- chown -R onap:onap /opt/policy/clamp
-
-VOLUME /opt/policy/clamp/config
-
-COPY --chown=onap:onap onap-policy-clamp-backend/policy-clamp-backend.jar /opt/policy/clamp/policy-clamp-backend.jar
-RUN set -x && \
- apk add --update libintl && \
- apk add --virtual build_deps gettext && \
- cp /usr/bin/envsubst /usr/local/bin/envsubst && \
- apk del build_deps
-
-USER onap
-WORKDIR /opt/policy/clamp/
-ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-XX:MinRAMPercentage=50.0", "-XX:MaxRAMPercentage=75.0","-jar" ,"./policy-clamp-backend.jar"]
-
diff --git a/runtime/src/main/docker/backend/backend-files.xml b/runtime/src/main/docker/backend/backend-files.xml
deleted file mode 100644
index c73c47f64..000000000
--- a/runtime/src/main/docker/backend/backend-files.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- clamp-files
-
-
- tar.gz
-
- false
-
-
-
-
-
- ${project.build.finalName}.jar
-
- ${project.build.directory}
-
-
-
-
-
diff --git a/runtime/src/main/docker/backend/suse.Dockerfile b/runtime/src/main/docker/backend/suse.Dockerfile
deleted file mode 100644
index fd528a9ba..000000000
--- a/runtime/src/main/docker/backend/suse.Dockerfile
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# ============LICENSE_START=======================================================
-# ONAP
-# ================================================================================
-# Copyright (C) 2022 Nordix Foundation.
-# ================================================================================
-# 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-#
-
-FROM opensuse/leap:15.4
-
-LABEL maintainer="Policy Team"
-LABEL Description="This image contains opensuse, openjdk 11 and policy clamp"
-LABEL org.opencontainers.image.title="Policy CLAMP runtime"
-LABEL org.opencontainers.image.description="Policy CLAMP runtime image based on OpenSuse"
-LABEL org.opencontainers.image.url="https://github.com/onap/policy-clamp"
-LABEL org.opencontainers.image.vendor="ONAP Policy Team"
-LABEL org.opencontainers.image.licenses="Apache-2.0"
-LABEL org.opencontainers.image.created="${git.build.time}"
-LABEL org.opencontainers.image.version="${git.build.version}"
-LABEL org.opencontainers.image.revision="${git.commit.id.abbrev}"
-
-ARG http_proxy
-ARG https_proxy
-ENV HTTP_PROXY=$http_proxy
-ENV HTTPS_PROXY=$https_proxy
-ENV http_proxy=$HTTP_PROXY
-ENV https_proxy=$HTTPS_PROXY
-ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
-ENV JAVA_HOME=/usr/lib64/jvm/java-11-openjdk-11
-
-USER root
-
-RUN zypper -n -q install --no-recommends java-11-openjdk-headless netcat-openbsd && \
- zypper -n -q update; zypper -n -q clean --all && \
- groupadd --system onap && \
- useradd --system --shell /bin/sh -G onap onap && \
- mkdir -p /opt/policy/clamp /var/log/onap/clamp && \
- chown -R onap:onap /opt/policy/clamp /var/log/onap/clamp
-
-VOLUME /opt/policy/clamp/config
-
-COPY --chown=onap:onap onap-policy-clamp-backend/policy-clamp-backend.jar /opt/policy/clamp/policy-clamp-backend.jar
-
-USER onap
-WORKDIR /opt/policy/clamp/
-ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-XX:MinRAMPercentage=50.0","-XX:MaxRAMPercentage=75.0","-jar","./policy-clamp-backend.jar"]
diff --git a/runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java
deleted file mode 100644
index cf639a35d..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.authorization;
-
-import java.util.Date;
-import org.apache.camel.Exchange;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.clds.exception.NotAuthorizedException;
-import org.onap.policy.clamp.clds.model.ClampInformation;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.onap.policy.common.utils.logging.LoggerUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.context.SecurityContext;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.stereotype.Component;
-
-/**
- * Verify user has right permissions.
- */
-@Component
-public class AuthorizationController {
-
- protected static final Logger logger = LoggerFactory.getLogger(AuthorizationController.class);
-
- // By default we'll set it to a default handler
- @Autowired
- private ClampProperties refProp;
-
- public static final String PERM_PREFIX = "security.permission.type.";
- private static final String PERM_INSTANCE = "security.permission.instance";
-
- private static String retrieveUserName(SecurityContext securityContext) {
- if (securityContext == null || securityContext.getAuthentication() == null) {
- return null;
- }
- if ((securityContext.getAuthentication().getPrincipal()) instanceof String) {
- // anonymous case
- return ((String) securityContext.getAuthentication().getPrincipal());
- } else {
- return ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
- }
- }
-
- /**
- * Get the principal name.
- *
- * @return The principal name
- */
- public static String getPrincipalName(SecurityContext securityContext) {
- String principal = AuthorizationController.retrieveUserName(securityContext);
- return principal != null ? principal : "Not found";
- }
-
- /**
- * Insert authorize the api based on the permission.
- *
- * @param camelExchange The Camel Exchange object containing the properties
- * @param typeVar The type of the permissions
- * @param instanceVar The instance of the permissions. e.g. dev
- * @param action The action of the permissions. e.g. read
- */
- public void authorize(Exchange camelExchange, String typeVar, String instanceVar,
- String action) {
- var type = refProp.getStringValue(PERM_PREFIX + typeVar);
- var instance = refProp.getStringValue(PERM_INSTANCE);
-
- if (null == type || type.isEmpty()) {
- // authorization is turned off, since the permission is not defined
- return;
- }
- if (null != instanceVar && !instanceVar.isEmpty()) {
- instance = instanceVar;
- }
- String principalName = AuthorizationController.getPrincipalName(SecurityContextHolder.getContext());
- var perm = SecureServicePermission.create(type, instance, action);
- var startTime = new Date();
- LoggingUtils.setTargetContext("Clamp", "authorize");
- LoggingUtils.setTimeContext(startTime, new Date());
- logger.debug(LoggerUtils.SECURITY_LOG_MARKER, "checking if {} has permission: {}", principalName, perm);
-
- if (!isUserPermitted(perm)) {
- String msg = principalName + " does not have permission: " + perm;
- LoggingUtils.setErrorContext("100", "Authorization Error");
- logger.warn(LoggerUtils.SECURITY_LOG_MARKER, msg);
- throw new NotAuthorizedException(msg);
- }
- }
-
- /**
- * Insert authorize the api based on the permission.
- *
- * @param inPermission Security permission in input
- * @return True if user is permitted
- */
- public boolean isUserPermitted(SecureServicePermission inPermission) {
-
- String principalName = AuthorizationController.getPrincipalName(SecurityContextHolder.getContext());
- // check if the user has the permission key or the permission key with a
- // combination of all instance and/or all action.
- if (hasRole(inPermission.getKey()) || hasRole(inPermission.getKeyAllInstance())) {
- logger.info(LoggerUtils.AUDIT_LOG_MARKER,
- "{} authorized because user has permission with * for instance: {}",
- principalName, inPermission.getKey().replace("|", ":"));
- return true;
- // the rest of these don't seem to be required - isUserInRole method
- // appears to take * as a wildcard
- } else if (hasRole(inPermission.getKeyAllInstanceAction())) {
- logger.info(LoggerUtils.AUDIT_LOG_MARKER,
- "{} authorized because user has permission with * for instance and * for action: {}",
- principalName, inPermission.getKey().replace("|", ":"));
- return true;
- } else if (hasRole(inPermission.getKeyAllAction())) {
- logger.info(LoggerUtils.AUDIT_LOG_MARKER,
- "{} authorized because user has permission with * for action: {}",
- principalName, inPermission.getKey().replace("|", ":"));
- return true;
- } else {
- return false;
- }
- }
-
- protected boolean hasRole(String role) {
- var authentication = SecurityContextHolder.getContext().getAuthentication();
- if (authentication == null) {
- return false;
- }
- for (GrantedAuthority auth : authentication.getAuthorities()) {
- if (role.equals(auth.getAuthority())) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Gets clds info. CLDS IFO service will return 3 things 1. User Name 2. CLDS
- * code version that is currently installed from pom.xml file 3. User
- * permissions
- *
- * @return the clds info
- */
- public ClampInformation getClampInformation() {
- var clampInfo = new ClampInformation();
- var authentication = SecurityContextHolder.getContext().getAuthentication();
- if (authentication == null) {
- return new ClampInformation();
- }
- clampInfo.setUserName(AuthorizationController.getPrincipalName(SecurityContextHolder.getContext()));
- for (GrantedAuthority auth : authentication.getAuthorities()) {
- clampInfo.getAllPermissions().add(auth.getAuthority());
- }
- return clampInfo;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java
deleted file mode 100644
index 8f1e2bf67..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.authorization;
-
-import java.util.Arrays;
-
-/**
- * The class represents the CldsUser that can be extracted from cldsusers.json.
- */
-public class CldsUser {
-
- private String user;
- private String password;
- private SecureServicePermission[] permissions;
-
- /**
- * Returns the user.
- *
- * @return the user
- */
- public String getUser() {
- return user;
- }
-
- /**
- * Sets the user.
- *
- * @param user
- * the user to set
- */
- public void setUser(String user) {
- this.user = user;
- }
-
- /**
- * Returns the password.
- *
- * @return the password
- */
- public String getPassword() {
- return password;
- }
-
- /**
- * Sets the password.
- *
- * @param password
- * the password to set
- */
- public void setPassword(String password) {
- this.password = password;
- }
-
- /**
- * Returns the permissions.
- *
- * @return the permissions
- */
- public SecureServicePermission[] getPermissions() {
- return Arrays.copyOf(permissions, permissions.length);
- }
-
- public String[] getPermissionsString() {
- return Arrays.stream(getPermissions()).map(SecureServicePermission::getKey).toArray(String[]::new);
- }
-
- /**
- * Sets the permissions.
- *
- * @param permissionsArray
- * the permissions to set
- */
- public void setPermissions(SecureServicePermission[] permissionsArray) {
- this.permissions = Arrays.copyOf(permissionsArray, permissionsArray.length);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java
deleted file mode 100644
index 41887a315..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java
+++ /dev/null
@@ -1,203 +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.policy.clamp.authorization;
-
-/**
- * Permission class that can be instantiated easily using constructor or factory
- * methods.
- */
-public class SecureServicePermission {
- public static final String ALL = "*";
-
- private String type;
- private String instance;
- private String action;
-
- /**
- * Factory method to create permission given type, instance, and action.
- *
- * @param type type of the permission
- * @param instance instance of the permission
- * @param action action of the permission
- * @return instance of SecureServicePermission with type, instance and action
- */
- public static SecureServicePermission create(String type, String instance, String action) {
- return new SecureServicePermission(type, instance, action);
- }
-
- /**
- * Factory method to create permission given type and instance. Default
- * action to ALL/*.
- *
- * @param type type of the permission
- * @param instance instance of the permission
- * @return instance of SecureServicePermission with type, instance and default action
- */
- public static SecureServicePermission create(String type, String instance) {
- return new SecureServicePermission(type, instance, ALL);
- }
-
- /**
- * Factory method to create permission given type. Default instance and
- * action to ALL/*.
- *
- * @param type type of the permission
- * @return instance of SecureServicePermission with type and default instance and action
- */
- public static SecureServicePermission create(String type) {
- return new SecureServicePermission(type, ALL, ALL);
- }
-
- /**
- * Instantiate permission given type, instance, and action.
- *
- * @param type type of the permission
- * @param instance instance of the permission
- * @param action action of the permission
- */
- public SecureServicePermission(String type, String instance, String action) {
- this.type = type;
- this.instance = instance;
- this.action = action;
- }
-
- /**
- * Instantiate permission given type from concatenated string.
- *
- * @param concatenatedString
- * the string type|instance|action, less than 3 params can be
- * provided (e.g. "permission-type-cl", "permission-type-cl|dev",
- * "permission-type-cl|dev|update" )
- */
- public SecureServicePermission(String concatenatedString) {
- String[] userInfo = concatenatedString.split("[|]");
- // We should have at least 1 string
- this.type = userInfo[0];
- this.instance = (userInfo.length > 1 ? userInfo[1] : ALL);
- this.action = (userInfo.length > 2 ? userInfo[2] : ALL);
- }
-
- /**
- * Override toString - return permission in key format.
- */
- @Override
- public String toString() {
- return getKey();
- }
-
- /**
- * Return Permission in Key format = type, instance, and action separate by
- * pipe character.
- *
- * @return permission in key format
- */
- public String getKey() {
- return type + "|" + instance + "|" + action;
- }
-
- /**
- * Return Permission in Key format = type, all instance, and action separate
- * by pipe character.
- *
- * @return permission in key format
- */
- public String getKeyAllInstance() {
- return type + "|" + ALL + "|" + action;
- }
-
- /**
- * Return Permission in Key format = type, all instance, and all action
- * separate by pipe character.
- *
- * @return permission in key format
- */
- public String getKeyAllInstanceAction() {
- return type + "|" + ALL + "|" + ALL;
- }
-
- /**
- * Return Permission in Key format = type, instance, and all action separate
- * by pipe character.
- *
- * @return permission in key format
- */
- public String getKeyAllAction() {
- return type + "|" + instance + "|" + ALL;
- }
-
- /**
- * Returns the permission type.
- *
- * @return the type
- */
- public String getType() {
- return type;
- }
-
- /**
- * Sets the type of permission.
- *
- * @param type the type to set
- */
- public void setType(String type) {
- this.type = type;
- }
-
- /**
- * Returns the instance of permission.
- *
- * @return the instance
- */
- public String getInstance() {
- return instance;
- }
-
- /**
- * Sets the instance of permission.
- *
- * @param instance the instance to set
- */
- public void setInstance(String instance) {
- this.instance = instance;
- }
-
- /**
- * Returns the action of permission.
- *
- * @return the action
- */
- public String getAction() {
- return action;
- }
-
- /**
- * Sets the action of permission.
- *
- * @param action the action to set
- */
- public void setAction(String action) {
- this.action = action;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java
deleted file mode 100644
index 0b178c256..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.authorization;
-
-
-import com.google.gson.Gson;
-import com.google.gson.JsonDeserializationContext;
-import com.google.gson.JsonDeserializer;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParseException;
-import java.lang.reflect.Type;
-
-public class SecureServicePermissionDeserializer implements JsonDeserializer {
-
- @Override
- public SecureServicePermission deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
- throws JsonParseException {
- if (json.isJsonPrimitive()) {
- return new SecureServicePermission(json.getAsString());
- } else {
- // if not string try default deserialization
- return new Gson().fromJson(json, SecureServicePermission.class);
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java
deleted file mode 100644
index 96347f82f..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- */
-
-package org.onap.policy.clamp.authorization;
-
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Controller;
-
-/**
- * User service used for authorization verification at the login page. Do not
- * remove this class.
- */
-@Controller
-public class UserService {
-
- /**
- * REST service that returns the username.
- *
- * @return the user name
- */
- public String getUser() {
- return AuthorizationController.getPrincipalName(SecurityContextHolder.getContext());
- }
-}
\ No newline at end of file
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java b/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
deleted file mode 100644
index 229d664be..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * Modifications Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * 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.policy.clamp.clds;
-
-import java.io.IOException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.Enumeration;
-import org.apache.camel.component.servlet.springboot.ServletMappingAutoConfiguration;
-import org.apache.catalina.connector.Connector;
-import org.onap.policy.clamp.clds.util.ClampVersioning;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.onap.policy.clamp.util.PassDecoder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
-import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.servlet.ServletRegistrationBean;
-import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-@ComponentScan(basePackages = {"org.onap.policy.clamp"})
-@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, UserDetailsServiceAutoConfiguration.class,
- ServletMappingAutoConfiguration.class})
-@EnableJpaRepositories(basePackages = {"org.onap.policy.clamp"})
-@EntityScan(basePackages = {"org.onap.policy.clamp"})
-@EnableTransactionManagement
-@EnableConfigurationProperties
-@EnableAsync
-@EnableScheduling
-@EnableJpaAuditing
-public class Application extends SpringBootServletInitializer {
-
- protected static final Logger appLogger = LoggerFactory.getLogger(Application.class);
- // This settings is an additional one to Spring config,
- // only if we want to have an additional port automatically redirected to
- // HTTPS
- @Value("${server.http-to-https-redirection.port:#{null}}")
- private String httpRedirectedPort;
- /**
- * This 8080 is the default port used by spring if this parameter is not
- * specified in application.properties.
- */
- @Value("${server.port:8080}")
- private String springServerPort;
-
- @Value("${server.ssl.key-store:#{null}}")
- private String keystoreFile;
-
- @Value("${server.ssl.key-store-password:#{null}}")
- private String keyStorePass;
-
- @Value("${server.ssl.key-store-type:JKS}")
- private String keyStoreType;
-
-
- @Value("${clamp.config.keyFile:classpath:/clds/aaf/org.onap.clamp.keyfile}")
- private String keyFile;
-
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
- return application.sources(Application.class);
- }
-
- /**
- * Main method that starts the Clamp backend.
- *
- * @param args app params
- */
- public static void main(String[] args) {
- // Start the Spring application
- SpringApplication.run(Application.class, args);
- }
-
- /**
- * This method is used to declare the camel servlet.
- *
- * @return A servlet bean
- * @throws IOException IO Exception
- */
- @Bean
- public ServletRegistrationBean camelServletRegistrationBean() throws IOException {
- appLogger.info("{} (v {} ), {}, {}", ResourceFileUtils.getResourceAsString("boot-message.txt"),
- ClampVersioning.getCldsVersionFromProps(), System.getProperty("line.separator"),
- getSslExpirationDate());
- var registration = new ServletRegistrationBean(new ClampServlet(), "/restservices/clds/*");
- registration.setName("CamelServlet");
- return registration;
- }
-
- /**
- * This method is used by Spring to create the servlet container factory.
- *
- * @return The TomcatEmbeddedServletContainerFactory just created
- */
- @Bean
- public ServletWebServerFactory getEmbeddedServletContainerFactory() {
- var tomcat = new TomcatServletWebServerFactory();
- if (httpRedirectedPort != null && keystoreFile != null) {
- // Automatically redirect to HTTPS
- tomcat = new TomcatEmbeddedServletContainerFactoryRedirection();
- var newConnector = createRedirectConnector(Integer.parseInt(springServerPort));
- if (newConnector != null) {
- tomcat.addAdditionalTomcatConnectors(newConnector);
- }
- }
- return tomcat;
- }
-
- private Connector createRedirectConnector(int redirectSecuredPort) {
- if (redirectSecuredPort <= 0) {
- appLogger.warn(
- "HTTP port redirection to HTTPS is disabled because the HTTPS"
- + " port is 0 (random port) or -1 (Connector disabled)");
- return null;
- }
- var connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
- connector.setScheme("http");
- connector.setSecure(false);
- connector.setPort(Integer.parseInt(httpRedirectedPort));
- connector.setRedirectPort(redirectSecuredPort);
- return connector;
- }
-
- private String getSslExpirationDate() throws IOException {
- var result = new StringBuilder(" :: SSL Certificates :: ");
- try {
- if (keystoreFile != null) {
- var keystore = KeyStore.getInstance(keyStoreType);
- keystore.load(ResourceFileUtils.getResourceAsStream(keystoreFile.replace("classpath:", "")),
- PassDecoder.decode(keyStorePass, keyFile).toCharArray());
-
- Enumeration aliases = keystore.aliases();
- while (aliases.hasMoreElements()) {
- String alias = aliases.nextElement();
- if ("X.509".equals(keystore.getCertificate(alias).getType())) {
- result.append("* " + alias + " expires "
- + ((X509Certificate) keystore.getCertificate(alias)).getNotAfter()
- + System.getProperty("line.separator"));
- }
- }
- } else {
- result.append("* NONE HAS been configured");
- }
- } catch (CertificateException | NoSuchAlgorithmException | KeyStoreException e) {
- appLogger.warn("SSL certificate access error", e);
-
- }
- return result.toString();
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java b/runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java
deleted file mode 100644
index 939cea49c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds;
-
-import java.util.Optional;
-import org.onap.policy.clamp.authorization.AuthorizationController;
-import org.springframework.data.domain.AuditorAware;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Component;
-
-@Component
-public class ClampInUserAuditorAware implements AuditorAware {
-
- @Override
- public Optional getCurrentAuditor() {
- return Optional.of(AuthorizationController.getPrincipalName(SecurityContextHolder.getContext()));
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java b/runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
deleted file mode 100644
index 1e5b003f1..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.camel.component.servlet.CamelHttpTransportServlet;
-import org.apache.commons.lang3.StringUtils;
-import org.onap.policy.clamp.authorization.SecureServicePermission;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-import org.springframework.web.context.support.WebApplicationContextUtils;
-
-public class ClampServlet extends CamelHttpTransportServlet {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = -4198841134910211542L;
-
- private static final Logger logger = LoggerFactory.getLogger(ClampServlet.class);
- private static final String PERM_INSTANCE = "clamp.config.security.permission.instance";
- private static final String PERM_CL = "clamp.config.security.permission.type.cl";
- private static final String PERM_TEMPLATE = "clamp.config.security.permission.type.template";
- private static final String PERM_VF = "clamp.config.security.permission.type.filter.vf";
- private static final String PERM_MANAGE = "clamp.config.security.permission.type.cl.manage";
- private static final String PERM_TOSCA = "clamp.config.security.permission.type.tosca";
- private static final String PERM_POLICIES = "clamp.config.security.permission.type.policies";
- private static final String AUTHENTICATION_CLASS = "clamp.config.security.authentication.class";
- private static final String READ = "read";
- private static final String UPDATE = "update";
-
- private static List permissionList;
-
- private synchronized List loadDynamicAuthenticationClasses() {
- var webAppContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
- if (webAppContext != null) {
- String authClassProperty = webAppContext.getEnvironment().getProperty(AUTHENTICATION_CLASS);
- if (!StringUtils.isBlank(authClassProperty)) {
- return Arrays.stream(authClassProperty.split(",")).map(String::trim)
- .collect(Collectors.toList());
- }
- logger.warn(
- "No authentication classes defined in Clamp BE config " + AUTHENTICATION_CLASS
- + " AAF authentication could be broken due to that");
- } else {
- logger.error(
- "WebApplicationContext is NULL, no authentication classes will be loaded in clamp BE"
- + ", AAF authentication could be broken");
- }
- return Collections.emptyList();
- }
-
- private synchronized List getPermissionList() {
- if (permissionList == null) {
- permissionList = new ArrayList<>();
- ApplicationContext applicationContext = WebApplicationContextUtils
- .getWebApplicationContext(getServletContext());
- String cldsPermissionInstance = applicationContext.getEnvironment().getProperty(PERM_INSTANCE);
- permissionList.add(SecureServicePermission.create(applicationContext.getEnvironment().getProperty(PERM_CL),
- cldsPermissionInstance, READ));
- permissionList.add(SecureServicePermission.create(applicationContext.getEnvironment().getProperty(PERM_CL),
- cldsPermissionInstance, UPDATE));
- permissionList.add(SecureServicePermission.create(
- applicationContext.getEnvironment().getProperty(PERM_TEMPLATE), cldsPermissionInstance, READ));
- permissionList.add(SecureServicePermission.create(
- applicationContext.getEnvironment().getProperty(PERM_TEMPLATE), cldsPermissionInstance, UPDATE));
- permissionList.add(SecureServicePermission.create(applicationContext.getEnvironment().getProperty(PERM_VF),
- cldsPermissionInstance, "*"));
- permissionList.add(SecureServicePermission
- .create(applicationContext.getEnvironment().getProperty(PERM_MANAGE), cldsPermissionInstance, "*"));
- permissionList.add(SecureServicePermission
- .create(applicationContext.getEnvironment().getProperty(PERM_TOSCA), cldsPermissionInstance, READ));
- permissionList.add(SecureServicePermission
- .create(applicationContext.getEnvironment().getProperty(PERM_TOSCA), cldsPermissionInstance,
- UPDATE));
- permissionList.add(SecureServicePermission
- .create(applicationContext.getEnvironment().getProperty(PERM_POLICIES), cldsPermissionInstance,
- READ));
- permissionList.add(SecureServicePermission
- .create(applicationContext.getEnvironment().getProperty(PERM_POLICIES), cldsPermissionInstance,
- UPDATE));
- }
- return permissionList;
- }
-
- /**
- * When AAF is enabled, request object will contain a cadi Wrapper, so queries
- * to isUserInRole will invoke a http call to AAF server.
- */
- @Override
- protected void doService(HttpServletRequest request, HttpServletResponse response) {
- var principal = request.getUserPrincipal();
- if (principal != null && loadDynamicAuthenticationClasses().stream()
- .anyMatch(className -> className.equals(principal.getClass().getName()))) {
- // When AAF is enabled, there is a need to provision the permissions to Spring
- // system
- List grantedAuths = new ArrayList<>();
- for (SecureServicePermission perm : getPermissionList()) {
- var permString = perm.toString();
- if (request.isUserInRole(permString)) {
- grantedAuths.add(new SimpleGrantedAuthority(permString));
- }
- }
- Authentication auth = new UsernamePasswordAuthenticationToken(new User(principal.getName(), "",
- grantedAuths), "", grantedAuths);
- SecurityContextHolder.getContext().setAuthentication(auth);
- }
- try {
- super.doService(request, response);
- } catch (ServletException | IOException ioe) {
- logger.error("Exception caught when executing doService in servlet", ioe);
- try {
- response.sendError(HttpStatus.INTERNAL_SERVER_ERROR.value());
- } catch (IOException e) {
- logger.error("Exception caught when executing HTTP sendError in servlet", e);
- }
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java b/runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java
deleted file mode 100644
index 1f71fc843..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017, 2021 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.policy.clamp.clds;
-
-import org.apache.catalina.Context;
-import org.apache.tomcat.util.descriptor.web.SecurityCollection;
-import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
-import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
-
-/**
- * This class is a factory that redirects by default all HTTP to HTTPS
- * connector. It is used by the Application.java class and defined in a Spring
- * Bean.
- * In order to do this, the method postProcessContext has been overridden to
- * provide another behavior.
- */
-public class TomcatEmbeddedServletContainerFactoryRedirection extends TomcatServletWebServerFactory {
-
- /**
- * This method is there to force the automatic redirection of all calls done
- * on the tomcat server to a Secure connection.
- */
- @Override
- protected void postProcessContext(Context context) {
- var securityConstraint = new SecurityConstraint();
- securityConstraint.setUserConstraint("CONFIDENTIAL");
- var collection = new SecurityCollection();
- collection.addPattern("/*");
- securityConstraint.addCollection(collection);
- context.addConstraint(securityConstraint);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java b/runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java
deleted file mode 100644
index 8f492c761..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * Modifications Copyright (C) 2021 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.policy.clamp.clds.client;
-
-import static java.lang.Boolean.parseBoolean;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import java.io.IOException;
-import java.util.Date;
-import java.util.Map;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
-import org.apache.camel.builder.ExchangeBuilder;
-import org.onap.policy.clamp.clds.exception.cds.CdsParametersException;
-import org.onap.policy.clamp.clds.model.cds.CdsBpWorkFlowListResponse;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Component;
-
-/**
- * This class implements the communication with CDS for the service inventory.
- */
-@Component
-public class CdsServices {
-
- @Autowired
- CamelContext camelContext;
-
- protected static final Logger logger = LoggerFactory.getLogger(CdsServices.class);
-
- private static final String TYPE = "type";
- private static final String PROPERTIES = "properties";
- private static final String LIST = "list";
-
- /**
- * Query CDS to get blueprint's workflow list.
- *
- * @param blueprintName CDS blueprint name
- * @param blueprintVersion CDS blueprint version
- * @return CdsBpWorkFlowListResponse CDS blueprint's workflow list
- */
- public CdsBpWorkFlowListResponse getBlueprintWorkflowList(String blueprintName, String blueprintVersion) {
- LoggingUtils.setTargetContext("CDS", "getBlueprintWorkflowList");
-
- try (var producerTemplate = camelContext.createProducerTemplate()) {
- var exchangeResponse =
- producerTemplate.send("direct:get-blueprint-workflow-list", ExchangeBuilder.anExchange(camelContext)
- .withProperty("blueprintName", blueprintName)
- .withProperty("blueprintVersion", blueprintVersion)
- .withProperty("raiseHttpExceptionFlag", false).build());
-
- if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
- .is2xxSuccessful()) {
- String cdsResponse = (String) exchangeResponse.getIn().getBody();
- logger.info("getBlueprintWorkflowList, response from CDS: {}", cdsResponse);
- LoggingUtils.setResponseContext("0", "Get Blueprint workflow list", this.getClass().getName());
- var startTime = new Date();
- LoggingUtils.setTimeContext(startTime, new Date());
- return JsonUtils.GSON_JPA_MODEL.fromJson(cdsResponse, CdsBpWorkFlowListResponse.class);
- } else {
- logger.error("CDS getBlueprintWorkflowList FAILED");
- }
- } catch (IOException e) {
- logger.error("IOException caught when trying to execute get-blueprint-workflow-list flow", e);
- }
- return null;
- }
-
- /**
- * Query CDS to get input properties of workflow.
- *
- * @param blueprintName CDS blueprint name
- * @param blueprintVersion CDS blueprint name
- * @param workflow CDS blueprint's workflow
- * @return input properties in json format
- */
- public JsonObject getWorkflowInputProperties(String blueprintName, String blueprintVersion,
- String workflow) {
- LoggingUtils.setTargetContext("CDS", "getWorkflowInputProperties");
-
- try (var producerTemplate = camelContext.createProducerTemplate()) {
- var exchangeResponse = producerTemplate
- .send("direct:get-blueprint-workflow-input-properties", ExchangeBuilder.anExchange(camelContext)
- .withBody(getCdsPayloadForWorkFlow(blueprintName, blueprintVersion, workflow))
- .withProperty("raiseHttpExceptionFlag", false).build());
- if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
- .is2xxSuccessful()) {
- String cdsResponse = (String) exchangeResponse.getIn().getBody();
- logger.info("getWorkflowInputProperties, response from CDS: {}", cdsResponse);
- LoggingUtils
- .setResponseContext("0", "Get Blueprint workflow input properties", this.getClass().getName());
- var startTime = new Date();
- LoggingUtils.setTimeContext(startTime, new Date());
- return parseCdsResponse(cdsResponse);
- } else {
- logger.error("CDS getWorkflowInputProperties FAILED");
- }
- } catch (IOException e) {
- logger.error("IOException caught when trying to execute get-blueprint-workflow-input-properties flow", e);
- }
- return null;
- }
-
- protected JsonObject parseCdsResponse(String response) {
- var root = JsonParser.parseString(response).getAsJsonObject();
- var inputs = root.getAsJsonObject("workFlowData").getAsJsonObject("inputs");
- var dataTypes = root.getAsJsonObject("dataTypes");
-
- var workFlowProperties = new JsonObject();
- workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes, new JsonObject()));
- return workFlowProperties;
- }
-
- private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes, JsonObject inputObject) {
- if (inputs == null) {
- return inputObject;
- }
-
- for (Map.Entry entry : inputs.entrySet()) {
- String key = entry.getKey();
- var inputProperty = inputs.getAsJsonObject(key);
- var type = inputProperty.get(TYPE).getAsString();
- if (isComplexType(type, dataTypes)) {
- inputObject.add(key, handleComplexType(type, dataTypes));
- } else if (LIST.equalsIgnoreCase(type)) {
- handleListType(key, inputProperty, dataTypes, inputObject);
- } else if (isInputParam(inputProperty)) {
- inputObject.add(key, entry.getValue());
- }
- }
- return inputObject;
- }
-
- private void handleListType(String propertyName,
- JsonObject inputProperty,
- JsonObject dataTypes,
- JsonObject inputObject) {
- if (inputProperty.get("entry_schema") == null) {
- throw new CdsParametersException("Entry schema is null for " + propertyName);
- }
-
- var type = inputProperty.get("entry_schema").getAsJsonObject().get(
- TYPE).getAsString();
- if (dataTypes != null && dataTypes.get(type) != null) {
- var jsonObject = new JsonObject();
- jsonObject.addProperty(TYPE, LIST);
- jsonObject.add(PROPERTIES, getPropertiesObject(type, dataTypes));
- inputObject.add(propertyName, jsonObject);
- } else if (isInputParam(inputProperty)) {
- inputObject.add(propertyName, inputProperty);
- }
- }
-
- private JsonObject handleComplexType(String key, JsonObject dataTypes) {
- var jsonObject = new JsonObject();
- jsonObject.addProperty(TYPE, "object");
- jsonObject.add(PROPERTIES, getPropertiesObject(key, dataTypes));
- return jsonObject;
- }
-
- private JsonObject getPropertiesObject(String key, JsonObject dataTypes) {
- var properties = dataTypes.get(key).getAsJsonObject().get(PROPERTIES).getAsJsonObject();
- var object = new JsonObject();
- getInputProperties(properties, dataTypes, object);
- return object;
- }
-
- private boolean isComplexType(String type, JsonObject dataTypes) {
- if (dataTypes == null) {
- return false;
- }
- return dataTypes.get(type) != null;
- }
-
- private boolean isInputParam(JsonObject inputProperty) {
- JsonElement inputParam = inputProperty.get("input-param");
- if (inputParam == null) {
- return false;
- }
- return parseBoolean(inputParam.getAsString());
- }
-
- /**
- * Creates payload to query CDS to get workflow input properties.
- *
- * @param blueprintName CDS blueprint name
- * @param version CDS blueprint version
- * @param workflow CDS blueprint workflow
- * @return returns payload in json format
- */
- public String getCdsPayloadForWorkFlow(String blueprintName, String version, String workflow) {
- var jsonObject = new JsonObject();
- jsonObject.addProperty("blueprintName", blueprintName);
- jsonObject.addProperty("version", version);
- jsonObject.addProperty("returnContent", "json");
- jsonObject.addProperty("workflowName", workflow);
- jsonObject.addProperty("specType", "TOSCA");
- return jsonObject.toString();
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java b/runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java
deleted file mode 100644
index 387ea8c1f..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 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============================================
- * Modifications copyright (c) 2018 Nokia
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.client;
-
-import java.io.IOException;
-import java.util.Date;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
-import org.apache.camel.builder.ExchangeBuilder;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.onap.policy.common.utils.logging.LoggerUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Component;
-
-/**
- * This class implements the communication with DCAE for the service inventory.
- */
-@Component
-public class DcaeInventoryServices {
-
- @Autowired
- CamelContext camelContext;
-
- protected static final Logger logger = LoggerFactory.getLogger(DcaeInventoryServices.class);
-
- public static final String DCAE_INVENTORY_URL = "dcae.inventory.url";
- public static final String DCAE_INVENTORY_RETRY_INTERVAL = "dcae.intentory.retry.interval";
- public static final String DCAE_INVENTORY_RETRY_LIMIT = "dcae.intentory.retry.limit";
- private final ClampProperties refProp;
-
- /**
- * Constructor.
- */
- @Autowired
- public DcaeInventoryServices(ClampProperties refProp) {
- this.refProp = refProp;
- }
-
- private int getTotalCountFromDcaeInventoryResponse(String responseStr) throws ParseException {
- var parser = new JSONParser();
- Object obj0 = parser.parse(responseStr);
- JSONObject jsonObj = (JSONObject) obj0;
- Long totalCount = (Long) jsonObj.get("totalCount");
- return totalCount.intValue();
- }
-
- private DcaeInventoryResponse getItemsFromDcaeInventoryResponse(String responseStr) throws ParseException {
- var parser = new JSONParser();
- Object obj0 = parser.parse(responseStr);
- JSONObject jsonObj = (JSONObject) obj0;
- JSONArray itemsArray = (JSONArray) jsonObj.get("items");
- JSONObject dcaeServiceType0 = (JSONObject) itemsArray.get(0);
- return JsonUtils.GSON.fromJson(dcaeServiceType0.toString(), DcaeInventoryResponse.class);
- }
-
- /**
- * DO a query to DCAE to get some Information.
- *
- * @param artifactName The artifact Name
- * @param serviceUuid The service UUID
- * @param resourceUuid The resource UUID
- * @return The DCAE inventory for the artifact in DcaeInventoryResponse
- * @throws IOException In case of issues with the stream
- * @throws ParseException In case of issues with the Json parsing
- */
- public DcaeInventoryResponse getDcaeInformation(String artifactName, String serviceUuid, String resourceUuid)
- throws IOException, ParseException, InterruptedException {
- LoggingUtils.setTargetContext("DCAE", "getDcaeInformation");
-
- var retryInterval = 0;
- var retryLimit = 1;
- if (refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT) != null) {
- retryLimit = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT));
- }
- if (refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL) != null) {
- retryInterval = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL));
- }
- for (var i = 0; i < retryLimit; i++) {
- logger.info(LoggerUtils.METRIC_LOG_MARKER, "Attempt n° {} to contact DCAE inventory", i);
- try (var producerTemplate = camelContext.createProducerTemplate()) {
- var exchangeResponse = producerTemplate
- .send("direct:get-dcae-blueprint-inventory", ExchangeBuilder.anExchange(camelContext)
- .withProperty("blueprintResourceId", resourceUuid)
- .withProperty("blueprintServiceId", serviceUuid)
- .withProperty("blueprintName", artifactName)
- .withProperty("raiseHttpExceptionFlag", false).build());
-
- if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
- .is2xxSuccessful()) {
- String dcaeResponse = (String) exchangeResponse.getIn().getBody();
- int totalCount = getTotalCountFromDcaeInventoryResponse(dcaeResponse);
- logger.info(LoggerUtils.METRIC_LOG_MARKER,
- "getDcaeInformation complete: totalCount returned= {}", totalCount);
- if (totalCount > 0) {
- logger.info("getDcaeInformation, answer from DCAE inventory: {}", dcaeResponse);
- LoggingUtils.setResponseContext("0", "Get Dcae Information success", this.getClass().getName());
- var startTime = new Date();
- LoggingUtils.setTimeContext(startTime, new Date());
- return getItemsFromDcaeInventoryResponse(dcaeResponse);
- } else {
- logger.info("Dcae inventory totalCount returned is 0, so waiting {} ms before retrying ...",
- retryInterval);
- // wait for a while and try to connect to DCAE again
- Thread.sleep(retryInterval);
- }
- }
- }
- }
- logger.warn("Dcae inventory totalCount returned is still 0, after {} attempts, returning NULL", retryLimit);
- return null;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
deleted file mode 100644
index bdefdfe6d..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * Modified Copyright (C) 2022 Nordix Foundation.
- * ================================================================================
- * 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.policy.clamp.clds.config;
-
-import javax.servlet.Filter;
-import org.onap.policy.clamp.clds.filter.ClampCadiFilter;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-
-@Configuration
-@Profile("clamp-aaf-authentication")
-public class AafConfiguration {
-
- /**
- * Method to return clamp cadi filter.
- *
- * @return Filter
- */
- @Bean(name = "cadiFilter")
- public Filter cadiFilter() {
- return new ClampCadiFilter();
- }
-
- /**
- * Method to register cadi filter.
- *
- * @return FilterRegistrationBean
- */
- @Bean
- public FilterRegistrationBean cadiFilterRegistration() {
- var registration = new FilterRegistrationBean();
- registration.setFilter(cadiFilter());
- registration.addUrlPatterns("/restservices/clds/v1/user/*");
- registration.addUrlPatterns("/restservices/clds/v2/dictionary/*");
- registration.addUrlPatterns("/restservices/clds/v2/templates/*");
- registration.addUrlPatterns("/restservices/clds/v2/clampInformation/*");
- registration.addUrlPatterns("/restservices/clds/v2/policyToscaModels/*");
- registration.addUrlPatterns("/restservices/clds/v2/policies/*");
- registration.addUrlPatterns("/restservices/clds/v2/loop/*");
- registration.addUrlPatterns("/restservices/clds/v2/acm/*");
- registration.setName("cadiFilter");
- registration.setOrder(0);
- return registration;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
deleted file mode 100644
index b1141ea49..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2018, 2021 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.policy.clamp.clds.config;
-
-import java.io.IOException;
-import java.security.KeyManagementException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import java.util.Objects;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManagerFactory;
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.http.HttpComponent;
-import org.apache.camel.model.rest.RestBindingMode;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.config.Registry;
-import org.apache.http.config.RegistryBuilder;
-import org.apache.http.conn.socket.ConnectionSocketFactory;
-import org.apache.http.conn.socket.PlainConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
-import org.onap.policy.clamp.clds.util.ClampVersioning;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.onap.policy.clamp.util.PassDecoder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Component
-public class CamelConfiguration extends RouteBuilder {
-
- private static final String HTTP = "http";
- private static final String HTTPS = "https";
-
- @Autowired
- CamelContext camelContext;
-
- @Value("${server.ssl.key-store:#{null}}")
- private String keyStore;
-
- @Value("${server.ssl.key-store-type:JKS}")
- private String keyStoreType;
-
- @Value("${server.ssl.key-store-password:#{null}}")
- private String keyStorePass;
-
- @Value("${server.ssl.trust-store:#{null}}")
- private String trustStore;
-
- @Value("${server.ssl.trust-store-password:#{null}}")
- private String trustStorePass;
-
- @Value("${server.ssl.trust-store-type:JKS}")
- private String trustStoreType;
-
- @Value("${server.ssl.trust-store-algorithm:PKIX}")
- private String trustStoreAlgorithm;
-
- @Value("${clamp.config.httpclient.connectTimeout:-1}")
- private int connectTimeout;
-
- @Value("${clamp.config.httpclient.connectRequestTimeout:-1}")
- private int connectRequestTimeout;
-
- @Value("${clamp.config.httpclient.socketTimeout:-1}")
- private int socketTimeout;
-
- @Value("${clamp.config.keyFile:#{null}}")
- private String keyFile;
-
- private void configureDefaultSslProperties() {
- if (trustStore != null) {
- System.setProperty("javax.net.ssl.trustStore", Thread.currentThread().getContextClassLoader()
- .getResource(trustStore.replaceFirst("classpath:", "")).getPath());
- System.setProperty("javax.net.ssl.trustStorePassword", Objects.requireNonNull(
- PassDecoder.decode(trustStorePass, keyFile)));
- System.setProperty("javax.net.ssl.trustStoreType", trustStoreType);
- System.setProperty("ssl.TrustManagerFactory.algorithm", trustStoreAlgorithm);
- }
- if (keyStore != null) {
- System.setProperty("javax.net.ssl.keyStore", Thread.currentThread().getContextClassLoader()
- .getResource(keyStore.replaceFirst("classpath:", "")).getPath());
- System.setProperty("javax.net.ssl.keyStorePassword", Objects.requireNonNull(
- PassDecoder.decode(keyStorePass, keyFile)));
- System.setProperty("javax.net.ssl.keyStoreType", keyStoreType);
- }
-
- }
-
- private void configureCamelHttpComponent()
- throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException, CertificateException,
- IOException {
- var requestConfig = RequestConfig.custom()
- .setConnectTimeout(connectTimeout)
- .setConnectionRequestTimeout(connectRequestTimeout)
- .setSocketTimeout(socketTimeout).build();
-
- if (trustStore != null) {
- var truststore = KeyStore.getInstance(trustStoreType);
- truststore.load(
- ResourceFileUtils.getResourceAsStream(trustStore),
- Objects.requireNonNull(PassDecoder.decode(trustStorePass, keyFile)).toCharArray());
- var trustFactory = TrustManagerFactory.getInstance(trustStoreAlgorithm);
- trustFactory.init(truststore);
- var sslcontext = SSLContext.getInstance("TLS");
- sslcontext.init(null, trustFactory.getTrustManagers(), null);
- camelContext.getComponent(HTTPS, HttpComponent.class).setHttpClientConfigurer(builder -> {
- var factory = new SSLSocketFactory(sslcontext,
- SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
- builder.setSSLSocketFactory(factory);
- builder.setConnectionManager(new BasicHttpClientConnectionManager(
- RegistryBuilder.create().register(HTTPS, factory).build()))
- .setDefaultRequestConfig(requestConfig);
- });
- }
- camelContext.getComponent(HTTP, HttpComponent.class).setHttpClientConfigurer(builder -> {
- Registry registry = RegistryBuilder.create()
- .register(HTTP, PlainConnectionSocketFactory.getSocketFactory()).build();
- builder.setConnectionManager(new BasicHttpClientConnectionManager(registry))
- .setDefaultRequestConfig(requestConfig);
- });
- }
-
- @Override
- public void configure()
- throws KeyManagementException, KeyStoreException, NoSuchAlgorithmException, CertificateException,
- IOException {
- restConfiguration().component("servlet").bindingMode(RestBindingMode.json).jsonDataFormat("clamp-gson")
- .dataFormatProperty("prettyPrint", "true")// .enableCORS(true)
- // turn on swagger api-doc
- .apiContextPath("api-doc").apiVendorExtension(true).apiProperty("api.title", "Clamp Rest API")
- .apiProperty("api.version", ClampVersioning.getCldsVersionFromProps())
- .apiProperty("base.path", "/restservices/clds/");
-
- // Configure httpClient properties for Camel HTTP/HTTPS calls
- configureDefaultSslProperties();
- configureCamelHttpComponent();
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java
deleted file mode 100644
index 0ac58fc80..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 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.policy.clamp.clds.config;
-
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import org.apache.commons.io.IOUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Component;
-
-/**
- * Holds Clamp properties and add some functionalities.
- */
-@Component
-public class ClampProperties {
-
- @Autowired
- private ApplicationContext appContext;
- @Autowired
- private Environment env;
- public static final String CONFIG_PREFIX = "clamp.config.";
-
- /**
- * get property value.
- *
- * @param key The first key
- * @return The string with the value
- */
- public String getStringValue(String key) {
- return env.getProperty(CONFIG_PREFIX + key);
- }
-
- /**
- * get property value for a combo key (key1 + "." + key2). If not found just use
- * key1.
- *
- * @param key1 The first key
- * @param key2 The second key after a dot
- * @return The string with the value
- */
- public String getStringValue(String key1, String key2) {
- var value = getStringValue(key1 + "." + key2);
- if (value == null || value.length() == 0) {
- value = getStringValue(key1);
- }
- return value;
- }
-
- /**
- * Return the file content. The value obtained from the clds-reference file will
- * be used as a filename.
- *
- * @param key The key that will be used to access the clds-reference file
- * @return File content in String
- * @throws IOException In case of issues with the JSON parser
- */
- public String getFileContent(String key) throws IOException {
- var fileReference = getStringValue(key);
- return (fileReference != null) ? getFileContentFromPath(fileReference) : null;
- }
-
- /**
- * Return the file content. First try with combo key (key1 + "." + key2),
- * otherwise default to just key1. The value obtained from the clds-reference
- * file will be used as a filename.
- *
- * @param key1 The first key
- * @param key2 The second key after a dot
- * @return File content in String
- * @throws IOException In case of issues with the JSON parser
- */
- public String getFileContent(String key1, String key2) throws IOException {
- var fileReference = getStringValue(key1, key2);
- return (fileReference != null) ? getFileContentFromPath(fileReference) : null;
- }
-
- private String getFileContentFromPath(String filepath) throws IOException {
- var url = appContext.getResource(filepath).getURL();
- return IOUtils.toString(url, StandardCharsets.UTF_8);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java
deleted file mode 100644
index 20d7143fb..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.config;
-
-import com.google.gson.JsonParseException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import org.apache.commons.io.IOUtils;
-import org.onap.policy.clamp.authorization.CldsUser;
-import org.onap.policy.clamp.clds.exception.CldsUsersException;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-
-public class CldsUserJsonDecoder {
-
- private CldsUserJsonDecoder() {
- }
-
- /**
- * This method decodes the JSON file provided to a CldsUser Array. The stream is
- * closed after this call, this is not possible to reuse it.
- *
- * @param cldsUsersFile
- * The inputStream containing the users json file
- * @return CldsUser[] Array containing a list of the user defined in the JSON
- * file
- */
- public static CldsUser[] decodeJson(InputStream cldsUsersFile) {
- try {
- return decodeJson(IOUtils.toString(cldsUsersFile, StandardCharsets.UTF_8.name()));
- } catch (IOException e) {
- throw new CldsUsersException("Exception occurred during the decoding of the clds-users.json", e);
- }
- }
-
- /**
- * This method decodes the JSON string to a CldsUser Array.
- *
- * @param cldsUsersString JSON string
- * @return CldsUser[] Array containing a list of the user defined in the JSON
- */
- public static CldsUser[] decodeJson(String cldsUsersString) {
- try {
- // the ObjectMapper readValue method closes the stream no need to do
- // it
- return JsonUtils.GSON.fromJson(cldsUsersString, CldsUser[].class);
- } catch (JsonParseException e) {
- throw new CldsUsersException("Exception occurred during the decoding of the clds-users.json", e);
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java
deleted file mode 100644
index 3b0bc68fd..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.clds.config;
-
-import javax.annotation.PostConstruct;
-import org.onap.policy.clamp.tosca.Dictionary;
-import org.onap.policy.clamp.tosca.DictionaryElement;
-import org.onap.policy.clamp.tosca.DictionaryService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-
-@Configuration
-@Profile("default-dictionary-elements")
-public class DefaultDictionaryElements {
-
- @Autowired
- private DictionaryService dictionaryService;
-
- /**
- * Init method.
- */
- @PostConstruct
- public void init() {
- preProvisionDefaultActors();
- preProvisionDefaultOperations();
- }
-
- private void preProvisionDefaultActors() {
- // Set up dictionary elements
- var actorDictionary = new Dictionary();
- actorDictionary.setName("DefaultActors");
- actorDictionary.setSecondLevelDictionary(0);
- actorDictionary.setSubDictionaryType("");
-
- var elementSo = new DictionaryElement();
- elementSo.setName("SO");
- elementSo.setShortName("SO");
- elementSo.setType("string");
- elementSo.setDescription("SO component");
- actorDictionary.addDictionaryElements(elementSo);
-
- var elementSdnc = new DictionaryElement();
- elementSdnc.setName("SDNC");
- elementSdnc.setShortName("SDNC");
- elementSdnc.setType("string");
- elementSdnc.setDescription("SDNC component");
- actorDictionary.addDictionaryElements(elementSdnc);
-
- var elementAppc = new DictionaryElement();
- elementAppc.setName("APPC");
- elementAppc.setShortName("APPC");
- elementAppc.setType("string");
- elementAppc.setDescription("APPC component");
- actorDictionary.addDictionaryElements(elementAppc);
-
- var elementVfc = new DictionaryElement();
- elementVfc.setName("VFC");
- elementVfc.setShortName("VFC");
- elementVfc.setType("string");
- elementVfc.setDescription("VFC component");
- actorDictionary.addDictionaryElements(elementVfc);
-
- var elementSdnr = new DictionaryElement();
- elementSdnr.setName("SDNR");
- elementSdnr.setShortName("SDNR");
- elementSdnr.setType("string");
- elementSdnr.setDescription("SDNR component");
- actorDictionary.addDictionaryElements(elementSdnr);
-
- dictionaryService.saveOrUpdateDictionary(actorDictionary);
- }
-
- private void preProvisionDefaultOperations() {
- // Set up dictionary elements
- var operationDictionary = new Dictionary();
- operationDictionary.setName("DefaultOperations");
- operationDictionary.setSecondLevelDictionary(0);
- operationDictionary.setSubDictionaryType("");
-
- var elementRestart = new DictionaryElement();
- elementRestart.setName("Restart");
- elementRestart.setShortName("Restart (APPC operation)");
- elementRestart.setType("string");
- elementRestart.setDescription("APPC operation");
- operationDictionary.addDictionaryElements(elementRestart);
-
- var elementRebuild = new DictionaryElement();
- elementRebuild.setName("Rebuild");
- elementRebuild.setShortName("Rebuild (APPC operation)");
- elementRebuild.setType("string");
- elementRebuild.setDescription("APPC operation");
- operationDictionary.addDictionaryElements(elementRebuild);
-
- var elementMigrate = new DictionaryElement();
- elementMigrate.setName("Migrate");
- elementMigrate.setShortName("Migrate (APPC operation)");
- elementMigrate.setType("string");
- elementMigrate.setDescription("APPC operation");
- operationDictionary.addDictionaryElements(elementMigrate);
-
- var elementHealthCheck = new DictionaryElement();
- elementHealthCheck.setName("Health-Check");
- elementHealthCheck.setShortName("Health-Check (APPC operation)");
- elementHealthCheck.setType("string");
- elementHealthCheck.setDescription("APPC operation");
- operationDictionary.addDictionaryElements(elementHealthCheck);
-
- var elementModifyConfig = new DictionaryElement();
- elementModifyConfig.setName("ModifyConfig");
- elementModifyConfig.setShortName("ModifyConfig (APPC/VFC operation)");
- elementModifyConfig.setType("string");
- elementModifyConfig.setDescription("APPC/VFC operation");
- operationDictionary.addDictionaryElements(elementModifyConfig);
-
- var elementVfModuleCreate = new DictionaryElement();
- elementVfModuleCreate.setName("VF Module Create");
- elementVfModuleCreate.setShortName("VF Module Create (SO operation)");
- elementVfModuleCreate.setType("string");
- elementVfModuleCreate.setDescription("SO operation");
- operationDictionary.addDictionaryElements(elementVfModuleCreate);
-
- var elementVfModuleDelete = new DictionaryElement();
- elementVfModuleDelete.setName("VF Module Delete");
- elementVfModuleDelete.setShortName("VF Module Delete (SO operation)");
- elementVfModuleDelete.setType("string");
- elementVfModuleDelete.setDescription("SO operation");
- operationDictionary.addDictionaryElements(elementVfModuleDelete);
-
- var elementReroute = new DictionaryElement();
- elementReroute.setName("Reroute");
- elementReroute.setShortName("Reroute (SDNC operation)");
- elementReroute.setType("string");
- elementReroute.setDescription("SDNC operation");
- operationDictionary.addDictionaryElements(elementReroute);
-
- var elementBandwidthOnDemand = new DictionaryElement();
- elementBandwidthOnDemand.setName("BandwidthOnDemand");
- elementBandwidthOnDemand.setShortName("BandwidthOnDemand (SDNC operation)");
- elementBandwidthOnDemand.setType("string");
- elementBandwidthOnDemand.setDescription("SDNC operation");
- operationDictionary.addDictionaryElements(elementBandwidthOnDemand);
-
- dictionaryService.saveOrUpdateDictionary(operationDictionary);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
deleted file mode 100644
index 32040bd50..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.config;
-
-import java.io.IOException;
-import org.onap.policy.clamp.authorization.CldsUser;
-import org.onap.policy.clamp.clds.exception.CldsConfigException;
-import org.onap.policy.clamp.clds.exception.CldsUsersException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-
-/**
- * This class is used to enable the HTTP authentication to login. It requires a
- * specific JSON file containing the user definition
- * (classpath:clds/clds-users.json).
- */
-@Configuration
-@EnableWebSecurity
-@Profile("clamp-default-user")
-public class DefaultUserConfiguration extends WebSecurityConfigurerAdapter {
-
- protected static final Logger logger = LoggerFactory.getLogger(DefaultUserConfiguration.class);
-
- private static final String SETUP_WEB_USERS_EXCEPTION_MSG = "Exception occurred during the "
- + " setup of the Web users in memory";
- @Autowired
- private ClampProperties refProp;
- @Value("${clamp.config.security.permission.type.cl:permission-type-cl}")
- private String cldsPersmissionTypeCl;
- @Value("${CLDS_PERMISSION_INSTANCE:dev}")
- private String cldsPermissionInstance;
- @Value("${clamp.config.security.encoder:bcrypt}")
- private String cldsEncoderMethod;
- @Value("${clamp.config.security.encoder.bcrypt.strength:10}")
- private Integer cldsBcryptEncoderStrength;
-
- /**
- * This method configures on which URL the authorization will be enabled.
- */
- @Override
- protected void configure(HttpSecurity http) {
- try {
- // Do no remove the csrf as recommended by Sonar otherwise Put/post will not work
- // Moreover this default user class is only used by dev, on prod we use AAF and this code will be disabled
- http.csrf().disable().httpBasic().and().authorizeRequests().antMatchers("/restservices/clds/v1/user/**")
- .authenticated().anyRequest().permitAll().and().sessionManagement()
- .maximumSessions(1);
-
- } catch (Exception e) {
- logger.error(SETUP_WEB_USERS_EXCEPTION_MSG, e);
- throw new CldsUsersException(SETUP_WEB_USERS_EXCEPTION_MSG, e);
- }
- }
-
- /**
- * This method is called by the framework and is used to load all the users
- * defined in cldsUsersFile variable (this file path can be configured in the
- * application.properties).
- *
- * @param auth authentication manager builder
- */
- @Autowired
- public void configureGlobal(AuthenticationManagerBuilder auth) {
- // configure algorithm used for password hashing
- final var passwordEncoder = getPasswordEncoder();
-
- try {
- CldsUser[] usersList = loadUsers();
- // no users defined
- if (null == usersList) {
- logger.warn("No users defined. Users should be defined under clds-users.json");
- return;
- }
- for (CldsUser user : usersList) {
- auth.inMemoryAuthentication().withUser(user.getUser()).password(user.getPassword())
- .authorities(user.getPermissionsString()).and().passwordEncoder(passwordEncoder);
- }
- } catch (Exception e) {
- logger.error(SETUP_WEB_USERS_EXCEPTION_MSG, e);
- throw new CldsUsersException(SETUP_WEB_USERS_EXCEPTION_MSG, e);
- }
- }
-
- /**
- * This method loads physically the JSON file and convert it to an Array of
- * CldsUser.
- *
- * @return The array of CldsUser
- * @throws IOException In case of the file is not found
- */
- private CldsUser[] loadUsers() throws IOException {
- logger.info("Load from clds-users.properties");
- return CldsUserJsonDecoder.decodeJson(refProp.getFileContent("files.cldsUsers"));
- }
-
- /**
- * This methods returns the chosen encoder for password hashing.
- */
- private PasswordEncoder getPasswordEncoder() {
- if ("bcrypt".equals(cldsEncoderMethod)) {
- return new BCryptPasswordEncoder(cldsBcryptEncoderStrength);
- } else {
- throw new CldsConfigException(
- "Invalid clamp.config.security.encoder value. 'bcrypt' is the only option at this time.");
- }
- }
-}
-
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java
deleted file mode 100644
index 7ab1e8348..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.clds.config;
-
-import java.io.IOException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.onap.policy.clamp.util.PassDecoder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.web.ServerProperties;
-import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.Ssl;
-import org.springframework.boot.web.server.SslStoreProvider;
-import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.env.Environment;
-import org.springframework.core.io.ResourceLoader;
-
-@Configuration
-@Profile("clamp-ssl-config")
-public class SslConfig {
- @Autowired
- private Environment env;
-
- @Bean
- WebServerFactoryCustomizer tomcatCustomizer(ServerProperties serverProperties,
- ResourceLoader resourceLoader) {
- return tomcat -> tomcat.setSslStoreProvider(new SslStoreProvider() {
- @Override
- public KeyStore getKeyStore() throws KeyStoreException,
- NoSuchAlgorithmException, CertificateException, IOException {
- var keystore = KeyStore.getInstance(env.getProperty("server.ssl.key-store-type"));
- String password = PassDecoder.decode(env.getProperty("server.ssl.key-store-password"),
- env.getProperty("clamp.config.keyFile"));
- keystore.load(ResourceFileUtils.getResourceAsStream(env.getProperty("server.ssl.key-store")),
- password.toCharArray());
- return keystore;
- }
-
- @Override
- public KeyStore getTrustStore() throws KeyStoreException,
- NoSuchAlgorithmException, CertificateException, IOException {
- var truststore = KeyStore.getInstance("JKS");
- String password = PassDecoder.decode(env.getProperty("server.ssl.trust-store-password"),
- env.getProperty("clamp.config.keyFile"));
- truststore.load(
- ResourceFileUtils.getResourceAsStream(env.getProperty("server.ssl.trust-store")),
- password.toCharArray());
- return truststore;
- }
-
- });
- }
-
- @Bean
- WebServerFactoryCustomizer tomcatSslCustomizer(ServerProperties serverProperties,
- ResourceLoader resourceLoader) {
- return tomcat -> tomcat.setSsl(new Ssl() {
- @Override
- public String getKeyPassword() {
- return PassDecoder.decode(env.getProperty("server.ssl.key-password"),
- env.getProperty("clamp.config.keyFile"));
- }
-
- @Override
- public String getKeyAlias() {
- return env.getProperty("server.ssl.key-alias");
- }
- });
- }
-}
-
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java
deleted file mode 100644
index f86b093c8..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.config;
-
-import java.util.Properties;
-import javax.annotation.Resource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.stereotype.Component;
-
-@Component
-public class SystemPropertiesLoader implements ApplicationListener {
- protected static final Logger logger = LoggerFactory.getLogger(SystemPropertiesLoader.class);
-
- @Resource(name = "mapper")
- private Properties myTranslator;
-
- @Override
- public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
- logger.info("Loading additional JVM properties: {}", myTranslator);
- System.getProperties().putAll(myTranslator);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java
deleted file mode 100644
index f871df70e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.config.sdc;
-
-import com.google.gson.JsonObject;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.Map;
-import javax.annotation.PostConstruct;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcParametersException;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.ApplicationContext;
-
-/**
- * This class maps the SDC config JSON file. This JSON can have multiple
- * sdc-controller config. So the json is loaded in a static way and the instance
- * must specify the controller name that it represents.
- */
-public class SdcControllersConfiguration {
-
- private static final String CONTROLLER_SUBTREE_KEY = "sdc-connections";
- @Autowired
- protected ApplicationContext appContext;
-
- @Value("${clamp.config.keyFile:classpath:/clds/aaf/org.onap.clamp.keyfile}")
- private String keyFile;
-
- /**
- * The file name that will be loaded by Spring.
- */
- @Value("${clamp.config.files.sdcController:classpath:/clds/sdc-controllers-config.json}")
- protected String sdcControllerFile;
- /**
- * The root of the JSON.
- */
- private JsonObject jsonRootNode;
-
- /**
- * Loads configuration from SDC controller config file.
- *
- * @throws IOException IO Exception
- */
- @PostConstruct
- public void loadConfiguration() throws IOException {
- try (var controllerFile = new InputStreamReader(
- appContext.getResource(sdcControllerFile).getInputStream(), StandardCharsets.UTF_8)) {
- jsonRootNode = JsonUtils.GSON.fromJson(controllerFile, JsonObject.class);
- }
- }
-
- public SdcSingleControllerConfiguration getSdcSingleControllerConfiguration(String controllerName) {
- return getAllDefinedControllers().get(controllerName);
- }
-
- /**
- * This method reads all Controllers configurations and returns them.
- *
- * @return A list of controller Names defined in the config
- */
- public Map getAllDefinedControllers() {
- Map result = new HashMap<>();
- if (jsonRootNode.get(CONTROLLER_SUBTREE_KEY) != null) {
- jsonRootNode.get(CONTROLLER_SUBTREE_KEY).getAsJsonObject().entrySet().forEach(
- entry -> result.put(entry.getKey(),
- new SdcSingleControllerConfiguration(entry.getValue().getAsJsonObject(), entry.getKey(),
- keyFile)));
- } else {
- throw new SdcParametersException(
- CONTROLLER_SUBTREE_KEY + " key not found in the file: " + sdcControllerFile);
- }
- return result;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java
deleted file mode 100644
index 5119dc86e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2018, 2021 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.policy.clamp.clds.config.sdc;
-
-import com.google.gson.JsonObject;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcParametersException;
-import org.onap.policy.clamp.util.PassDecoder;
-import org.onap.sdc.api.consumer.IConfiguration;
-
-/**
- * This class maps the SDC config JSON for one controller.
- */
-public class SdcSingleControllerConfiguration implements IConfiguration {
-
- private final String keyFile;
-
- /**
- * The sdc Controller name corresponding.
- */
- private String sdcControllerName;
- /**
- * The root of the JSON.
- */
- private JsonObject jsonRootNode;
- // All keys that can be present in the JSON
- public static final String CONSUMER_GROUP_ATTRIBUTE_NAME = "consumerGroup";
- public static final String CONSUMER_ID_ATTRIBUTE_NAME = "consumerId";
- public static final String ENVIRONMENT_NAME_ATTRIBUTE_NAME = "environmentName";
- public static final String SDC_KEY_ATTRIBUTE_NAME = "password";
- public static final String POLLING_INTERVAL_ATTRIBUTE_NAME = "pollingInterval";
- public static final String RELEVANT_ARTIFACT_TYPES_ATTRIBUTE_NAME = "relevantArtifactTypes";
- public static final String USER_ATTRIBUTE_NAME = "user";
- public static final String SDC_ADDRESS_ATTRIBUTE_NAME = "sdcAddress";
- public static final String POLLING_TIMEOUT_ATTRIBUTE_NAME = "pollingTimeout";
- public static final String ACTIVATE_SERVER_TLS_AUTH = "activateServerTLSAuth";
- public static final String KEY_STORE_KEY = "keyStorePassword";
- public static final String KEY_STORE_PATH = "keyStorePath";
- public static final String MESSAGE_BUS_ADDRESSES = "messageBusAddresses";
- private String errorMessageKeyNotFound;
- /**
- * Supported artifact types.
- */
- public static final String HEAT = "HEAT";
- public static final String HEAT_ARTIFACT = "HEAT_ARTIFACT";
- public static final String HEAT_ENV = "HEAT_ENV";
- public static final String HEAT_NESTED = "HEAT_NESTED";
- public static final String HEAT_NET = "HEAT_NET";
- public static final String HEAT_VOL = "HEAT_VOL";
- public static final String OTHER = "OTHER";
- public static final String TOSCA_CSAR = "TOSCA_CSAR";
- public static final String VF_MODULES_METADATA = "VF_MODULES_METADATA";
- private static final String[] SUPPORTED_ARTIFACT_TYPES = {TOSCA_CSAR, VF_MODULES_METADATA};
- public static final List SUPPORTED_ARTIFACT_TYPES_LIST = List.of(SUPPORTED_ARTIFACT_TYPES);
-
- /**
- * This constructor builds a SdcSingleControllerConfiguration from the
- * corresponding json.
- *
- * @param jsonNode The JSON node
- * @param controllerName The controller name that must appear in the JSON
- * @param keyFileLocation The location of the file to decode the password using CADI
- */
- public SdcSingleControllerConfiguration(JsonObject jsonNode, String controllerName, String keyFileLocation) {
- jsonRootNode = jsonNode;
- keyFile = keyFileLocation;
- setSdcControllerName(controllerName);
- testAllRequiredParameters();
- }
-
- public String getSdcControllerName() {
- return sdcControllerName;
- }
-
- /**
- * Sets SDC controller name.
- *
- * @param controllerName SDC controller name
- */
- public void setSdcControllerName(String controllerName) {
- this.sdcControllerName = controllerName;
- errorMessageKeyNotFound = " parameter cannot be found in config file for controller name" + sdcControllerName;
- testAllRequiredParameters();
- }
-
- private String getStringConfig(String key) {
- if (jsonRootNode != null && jsonRootNode.get(key) != null) {
- var config = jsonRootNode.get(key).getAsString();
- return config.isEmpty() ? null : config;
- }
- return null;
- }
-
- private Integer getIntConfig(String key) {
- if (jsonRootNode != null && jsonRootNode.get(key) != null) {
- return jsonRootNode.get(key).getAsInt();
- } else {
- return 0;
- }
- }
-
- private String getEncryptedStringConfig(String key) {
- if (jsonRootNode != null && jsonRootNode.get(key) != null) {
- return jsonRootNode.get(key).getAsString().isEmpty() ? null
- : PassDecoder.decode(jsonRootNode.get(key).getAsString(), keyFile);
- }
- return null;
- }
-
- @Override
- public java.lang.Boolean isUseHttpsWithDmaap() {
- return false;
- }
-
- @Override
- public String getConsumerGroup() {
- if (jsonRootNode != null && jsonRootNode.get(CONSUMER_GROUP_ATTRIBUTE_NAME) != null) {
- var config = jsonRootNode.get(CONSUMER_GROUP_ATTRIBUTE_NAME).getAsString();
- return "NULL".equals(config) || config.isEmpty() ? null : config;
- }
- return null;
- }
-
- @Override
- public String getConsumerID() {
- return getStringConfig(CONSUMER_ID_ATTRIBUTE_NAME);
- }
-
- @Override
- public String getEnvironmentName() {
- return getStringConfig(ENVIRONMENT_NAME_ATTRIBUTE_NAME);
- }
-
- @Override
- public String getPassword() {
- return getEncryptedStringConfig(SDC_KEY_ATTRIBUTE_NAME);
- }
-
- @Override
- public int getPollingInterval() {
- return getIntConfig(POLLING_INTERVAL_ATTRIBUTE_NAME);
- }
-
- @Override
- public List getRelevantArtifactTypes() {
- // DO not return the Static List SUPPORTED_ARTIFACT_TYPES_LIST because
- // the ASDC Client could try to modify it !!!
- return Arrays.asList(SUPPORTED_ARTIFACT_TYPES);
- }
-
- @Override
- public String getUser() {
- return getStringConfig(USER_ATTRIBUTE_NAME);
- }
-
- @Override
- public String getAsdcAddress() {
- return getStringConfig(SDC_ADDRESS_ATTRIBUTE_NAME);
- }
-
- @Override
- public int getPollingTimeout() {
- return getIntConfig(POLLING_TIMEOUT_ATTRIBUTE_NAME);
- }
-
- @Override
- public boolean activateServerTLSAuth() {
- if (jsonRootNode != null && jsonRootNode.get(ACTIVATE_SERVER_TLS_AUTH) != null
- && jsonRootNode.get(ACTIVATE_SERVER_TLS_AUTH).isJsonPrimitive()) {
- return jsonRootNode.get(ACTIVATE_SERVER_TLS_AUTH).getAsBoolean();
- } else {
- return false;
- }
- }
-
- @Override
- public String getKeyStorePassword() {
- return getEncryptedStringConfig(KEY_STORE_KEY);
- }
-
- @Override
- public String getKeyStorePath() {
- return getStringConfig(KEY_STORE_PATH);
- }
-
- /**
- * This method can be used to validate all required parameters are well
- * there.
- */
- public void testAllRequiredParameters() {
- // Special case for this attribute that can be null from
- // getConsumerGroup
- if (jsonRootNode == null) {
- throw new SdcParametersException("Json is null for controller " + this.getSdcControllerName());
- }
- if (this.getConsumerGroup() == null && (jsonRootNode.get(CONSUMER_GROUP_ATTRIBUTE_NAME) == null
- || !"NULL".equals(jsonRootNode.get(CONSUMER_GROUP_ATTRIBUTE_NAME).getAsString()))) {
- throw new SdcParametersException(CONSUMER_GROUP_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getConsumerID() == null || this.getConsumerID().isEmpty()) {
- throw new SdcParametersException(CONSUMER_ID_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getEnvironmentName() == null || this.getEnvironmentName().isEmpty()) {
- throw new SdcParametersException(ENVIRONMENT_NAME_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getAsdcAddress() == null || this.getAsdcAddress().isEmpty()) {
- throw new SdcParametersException(SDC_ADDRESS_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getMsgBusAddress() == null || this.getMsgBusAddress().isEmpty()) {
- throw new SdcParametersException(MESSAGE_BUS_ADDRESSES + errorMessageKeyNotFound);
- }
- if (this.getPassword() == null || this.getPassword().isEmpty()) {
- throw new SdcParametersException(SDC_KEY_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getPollingInterval() == 0) {
- throw new SdcParametersException(POLLING_INTERVAL_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getPollingTimeout() == 0) {
- throw new SdcParametersException(POLLING_TIMEOUT_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getRelevantArtifactTypes() == null || this.getRelevantArtifactTypes().isEmpty()) {
- throw new SdcParametersException(RELEVANT_ARTIFACT_TYPES_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- if (this.getUser() == null || this.getUser().isEmpty()) {
- throw new SdcParametersException(USER_ATTRIBUTE_NAME + errorMessageKeyNotFound);
- }
- }
-
- /**
- * The flag allows the client to receive metadata for all resources of the
- * service regardless of the artifacts associated to them. Setting the flag
- * to false will preserve legacy behavior.
- */
- @Override
- public boolean isFilterInEmptyResources() {
- return false;
- }
-
- @Override
- public List getMsgBusAddress() {
- List addressesList = new ArrayList<>();
- if (jsonRootNode != null && jsonRootNode.get(MESSAGE_BUS_ADDRESSES) != null) {
- jsonRootNode.get(MESSAGE_BUS_ADDRESSES).getAsJsonArray().forEach(k -> addressesList.add(k.getAsString()));
- return addressesList;
- } else {
- return addressesList;
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java
deleted file mode 100644
index 083147211..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 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.policy.clamp.clds.config.spring;
-
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.config.PropertiesFactoryBean;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-
-@Configuration
-@Profile("clamp-default")
-public class CldsConfiguration {
-
- @Autowired
- private ApplicationContext appContext;
- @Autowired
- private ClampProperties refProp;
-
-
- /**
- * This loads the file system.properties.
- *
- * @return The PropertiesFactoryBean
- */
- @Bean(name = "mapper")
- public PropertiesFactoryBean mapper() {
- var bean = new PropertiesFactoryBean();
- bean.setLocation(appContext.getResource(refProp.getStringValue("files.systemProperties")));
- return bean;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java
deleted file mode 100644
index bee1acf2b..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.clds.config.spring;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.clds.config.sdc.SdcControllersConfiguration;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcControllerException;
-import org.onap.policy.clamp.clds.sdc.controller.SdcSingleController;
-import org.onap.policy.clamp.clds.sdc.controller.SdcSingleControllerStatus;
-import org.onap.policy.clamp.loop.CsarInstaller;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.scheduling.annotation.Scheduled;
-
-@Configuration
-@Profile("clamp-sdc-controller")
-public class SdcControllerConfiguration {
-
- private static final Logger logger = LoggerFactory.getLogger(SdcControllerConfiguration.class);
- private List sdcControllersList = new ArrayList<>();
- private final ClampProperties clampProp;
- private final CsarInstaller csarInstaller;
-
- @Autowired
- public SdcControllerConfiguration(ClampProperties clampProp,
- @Qualifier("csarInstaller") CsarInstaller csarInstaller) {
- this.clampProp = clampProp;
- this.csarInstaller = csarInstaller;
- }
-
- /**
- * Loads SDC controller configuration.
- */
- @PostConstruct
- public void loadSdcControllers() {
- var sdcControllersConfig = getSdcControllersConfiguration();
- sdcControllersConfig.getAllDefinedControllers().forEach((key, value) -> {
- logger.info("Creating controller instance: {}", key);
- var sdcController = new SdcSingleController(clampProp, csarInstaller, value, null);
- sdcControllersList.add(sdcController);
- });
- }
-
- /**
- * Checks whether all SDC controllers defined are up and running.
- */
- @Scheduled(fixedRate = 120000)
- public void checkAllSdcControllers() {
- logger.info("Checking that all SDC Controllers defined are up and running");
- for (SdcSingleController controller : sdcControllersList) {
- try {
- if (SdcSingleControllerStatus.STOPPED.equals(controller.getControllerStatus())) {
- controller.initSdc();
- }
- } catch (SdcControllerException e) {
- logger.error("Exception caught when booting sdc controller", e);
- }
- }
- logger.info("SDC Controllers check completed");
- }
-
- /**
- * Closes all SDC Controller and the SDC Client.
- */
- @PreDestroy
- public void killSdcControllers() {
- sdcControllersList.forEach(e -> {
- try {
- e.closeSdc();
- } catch (SdcControllerException e1) {
- logger.error("Exception caught when stopping sdc controller", e1);
- }
- });
- }
-
- @Bean(name = "sdcControllersConfiguration")
- public SdcControllersConfiguration getSdcControllersConfiguration() {
- return new SdcControllersConfiguration();
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java
deleted file mode 100644
index ef1ced0a3..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java
+++ /dev/null
@@ -1,61 +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.policy.clamp.clds.exception;
-
-/**
- * New exception to CldsUser errors.
- *
- */
-public class CldsConfigException extends RuntimeException {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 5958873136187918505L;
-
- /**
- * This constructor can be used to create a new CldsConfigException.
- *
- * @param message
- * A string message detailing the problem
- * @param ex
- * The exception sent by the code
- */
- public CldsConfigException(String message, Throwable ex) {
- super(message, ex);
- }
-
- /**
- * This constructor can be used to create a new CldsConfigException. Use
- * this constructor only if you are creating a new exception stack, not if
- * an exception was already raised by another code.
- *
- * @param message
- * A string message detailing the problem
- */
- public CldsConfigException(String message) {
- super(message);
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java
deleted file mode 100644
index 4d4855b6f..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java
+++ /dev/null
@@ -1,61 +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.policy.clamp.clds.exception;
-
-/**
- * New exception to CldsUser errors.
- *
- */
-public class CldsUsersException extends RuntimeException {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 933535057227505342L;
-
- /**
- * This constructor can be used to create a new CldsUsersException.
- *
- * @param message
- * A string message detailing the problem
- * @param ex
- * The exception sent by the code
- */
- public CldsUsersException(String message, Throwable ex) {
- super(message, ex);
- }
-
- /**
- * This constructor can be used to create a new CldsUsersException. Use this
- * constructor only if you are creating a new exception stack, not if an
- * exception was already raised by another code.
- *
- * @param message
- * A string message detailing the problem
- */
- public CldsUsersException(String message) {
- super(message);
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java
deleted file mode 100644
index 73c117932..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.exception;
-
-/**
- * New exception to request errors.
- *
- */
-public class NotAuthorizedException extends RuntimeException {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = -5738167530541646123L;
-
- /**
- * This constructor can be used to create a new CldsConfigException.
- *
- * @param message
- * A string message detailing the problem
- * @param ex
- * The exception sent by the code
- */
- public NotAuthorizedException(String message, Throwable ex) {
- super(message, ex);
- }
-
- /**
- * This constructor can be used to create a new CldsConfigException. Use this
- * constructor only if you are creating a new exception stack, not if an
- * exception was already raised by another code.
- *
- * @param message
- * A string message detailing the problem
- */
- public NotAuthorizedException(String message) {
- super(message);
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java
deleted file mode 100644
index b4a013eb4..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * 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.policy.clamp.clds.exception.cds;
-
-/**
- * Exception while parsing CDS response.
- */
-public class CdsParametersException extends RuntimeException {
-
- /**
- * serialization id.
- */
- private static final long serialVersionUID = 8425657297510362736L;
-
- /**
- * This constructor can be used to create a new CdsParametersException.
- *
- * @param message The message to dump
- */
- public CdsParametersException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new CdsParametersException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public CdsParametersException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java
deleted file mode 100644
index 78c2c6331..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java
+++ /dev/null
@@ -1,61 +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.policy.clamp.clds.exception.dcae;
-
-/**
- * New exception to capture DCAE communication errors.
- *
- */
-public class DcaeDeploymentException extends RuntimeException {
-
- /**
- * Generated ID.
- */
- private static final long serialVersionUID = 8452294782552680243L;
-
- /**
- * This constructor can be used to create a new DcaeDeploymentException.
- *
- * @param message
- * A string message detailing the problem
- * @param ex
- * The exception sent by the code
- */
- public DcaeDeploymentException(String message, Throwable ex) {
- super(message, ex);
- }
-
- /**
- * This constructor can be used to create a new DcaeDeploymentException. Use
- * this constructor only if you are creating a new exception stack, not if
- * an exception was already raised by another code.
- *
- * @param message
- * A string message detailing the problem
- */
- public DcaeDeploymentException(String message) {
- super(message);
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java
deleted file mode 100644
index 6939fdf06..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.exception.sdc.controller;
-
-/**
- * Exception during blueprint parsing.
- */
-public class BlueprintParserException extends Exception {
-
- /**
- * Serial ID.
- */
- private static final long serialVersionUID = -3044162346353623199L;
-
- /**
- * This constructor can be used to create a new SdcDownloadException.
- *
- * @param message The message to dump
- */
- public BlueprintParserException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new SdcDownloadException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public BlueprintParserException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java
deleted file mode 100644
index e3f16f908..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.exception.sdc.controller;
-
-/**
- * Exception during Csar operations.
- */
-public class CsarHandlerException extends Exception {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = -7628640776124409155L;
-
- /**
- * This constructor can be used to create a new CsarHandlerException.
- *
- * @param message The message to dump
- */
- public CsarHandlerException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new CsarHandlerException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public CsarHandlerException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java
deleted file mode 100644
index 1202ec199..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.exception.sdc.controller;
-
-/**
- * Exception during SDC artifact installation.
- */
-public class SdcArtifactInstallerException extends Exception {
-
- /**
- * serialization id.
- */
- private static final long serialVersionUID = 4095937499475915021L;
-
- /**
- * This constructor can be used to create a new SdcArtifactInstallerException.
- *
- * @param message The message to dump
- */
- public SdcArtifactInstallerException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new SdcArtifactInstallerException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public SdcArtifactInstallerException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java
deleted file mode 100644
index e391ee7e8..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.exception.sdc.controller;
-
-/**
- * Exception of the SDC controller.
- */
-public class SdcControllerException extends Exception {
-
- /**
- * serialization id.
- */
- private static final long serialVersionUID = -4236006447255525130L;
-
- /**
- * This constructor can be used to create a new SdcControllerException.
- *
- * @param message The message to dump
- */
- public SdcControllerException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new SdcControllerException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public SdcControllerException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java
deleted file mode 100644
index 3c0240ef3..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.exception.sdc.controller;
-
-/**
- * Exception during download from SDC.
- */
-public class SdcDownloadException extends Exception {
-
- /**
- * serialization id.
- */
- private static final long serialVersionUID = -5276848693231134901L;
-
- /**
- * This constructor can be used to create a new SdcDownloadException.
- *
- * @param message The message to dump
- */
- public SdcDownloadException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new SdcDownloadException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public SdcDownloadException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java
deleted file mode 100644
index fe573882f..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.exception.sdc.controller;
-
-/**
- * Exception of the SDC controller.
- */
-public class SdcParametersException extends RuntimeException {
-
- /**
- * serialization id.
- */
- private static final long serialVersionUID = 8425657297510362736L;
-
- /**
- * This constructor can be used to create a new SdcParametersException.
- *
- * @param message The message to dump
- */
- public SdcParametersException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new SdcParametersException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public SdcParametersException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java b/runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java
deleted file mode 100644
index 7224493b5..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 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.policy.clamp.clds.filter;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.StandardCopyOption;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.ApplicationContext;
-
-public class ClampCadiFilter extends CadiFilter {
- private static final Logger logger = LoggerFactory.getLogger(ClampCadiFilter.class);
-
- @Autowired
- private ApplicationContext appContext;
-
- @Value("${server.ssl.key-store:#{null}}")
- private String keyStore;
-
- @Value("${server.ssl.key-store-password:#{null}}")
- private String keyStorePass;
-
- @Value("${server.ssl.trust-store:#{null}}")
- private String trustStore;
-
- @Value("${server.ssl.trust-store-password:#{null}}")
- private String trustStorePass;
-
- @Value("${server.ssl.key-alias:clamp@clamp.onap.org}")
- private String alias;
-
- @Value("${clamp.config.keyFile:#{null}}")
- private String keyFile;
-
- @Value("${clamp.config.cadi.cadiLoglevel:#{null}}")
- private String cadiLoglevel;
-
- @Value("${clamp.config.cadi.cadiLatitude:#{null}}")
- private String cadiLatitude;
-
- @Value("${clamp.config.cadi.cadiLongitude:#{null}}")
- private String cadiLongitude;
-
- @Value("${clamp.config.cadi.aafLocateUrl:#{null}}")
- private String aafLocateUrl;
-
- @Value("${clamp.config.cadi.oauthTokenUrl:#{null}}")
- private String oauthTokenUrl;
-
- @Value("${clamp.config.cadi.oauthIntrospectUrl:#{null}}")
- private String oauthIntrospectUrl;
-
- @Value("${clamp.config.cadi.aafEnv:#{null}}")
- private String aafEnv;
-
- @Value("${clamp.config.cadi.aafUrl:#{null}}")
- private String aafUrl;
-
- @Value("${clamp.config.cadi.cadiX509Issuers:#{null}}")
- private String cadiX509Issuers;
-
- @Value("${clamp.config.caCerts:#{null}}")
- private String caCertsPath;
-
- private void checkIfNullProperty(String key, String value) {
- /*
- * When value is null, so not defined in application.properties set nothing in
- * System properties
- */
- if (value != null) {
- /*
- * Ensure that any properties already defined in System.prop by JVM params won't
- * be overwritten by Spring application.properties values
- */
- System.setProperty(key, System.getProperty(key, value));
- }
- }
-
- @Override
- public void init(FilterConfig filterConfig) throws ServletException {
- // set some properties in System so that Cadi filter will find its config
- // The JVM values set will always overwrite the Spring ones.
- checkIfNullProperty(Config.CADI_KEYFILE, convertSpringToPath(keyFile));
- checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
- checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
- checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-
- checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
- checkIfNullProperty(Config.AAF_OAUTH2_TOKEN_URL, oauthTokenUrl);
- checkIfNullProperty(Config.AAF_OAUTH2_INTROSPECT_URL, oauthIntrospectUrl);
-
- checkIfNullProperty(Config.AAF_ENV, aafEnv);
- checkIfNullProperty(Config.AAF_URL, aafUrl);
- checkIfNullProperty(Config.CADI_X509_ISSUERS, cadiX509Issuers);
- checkIfNullProperty(Config.CADI_KEYSTORE, convertSpringToPath(keyStore));
- checkIfNullProperty(Config.CADI_TRUSTSTORE, convertSpringToPath(trustStore));
- checkIfNullProperty(Config.CADI_ALIAS, alias);
- checkIfNullProperty(Config.CADI_KEYSTORE_PASSWORD, keyStorePass);
- checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, trustStorePass);
-
- super.init(filterConfig);
- }
-
- @Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
- throws IOException, ServletException {
- try {
- String certHeader = ((HttpServletRequest) request).getHeader("X-SSL-Cert");
- if (certHeader != null) {
- var certificateFactory = CertificateFactory.getInstance("X.509");
- X509Certificate cert = (X509Certificate) certificateFactory
- .generateCertificate(new ByteArrayInputStream(
- URLDecoder.decode(certHeader, StandardCharsets.UTF_8.toString()).getBytes()));
- X509Certificate caCert = (X509Certificate) certificateFactory
- .generateCertificate(new ByteArrayInputStream(
- ResourceFileUtils.getResourceAsString(this.caCertsPath).getBytes()));
-
- X509Certificate[] certifArray = ((X509Certificate[]) request
- .getAttribute("javax.servlet.request.X509Certificate"));
- if (certifArray == null) {
- certifArray = new X509Certificate[] { cert, caCert };
- request.setAttribute("javax.servlet.request.X509Certificate", certifArray);
- } else {
- certifArray[0] = cert;
- certifArray[1] = caCert;
- }
- }
-
- } catch (CertificateException e) {
- logger.error("Unable to inject the X.509 certificate", e);
- }
- super.doFilter(request, response, chain);
- }
-
- private String convertSpringToPath(String fileName) {
- try (var ioFile = appContext.getResource(fileName).getInputStream()) {
- if (!fileName.contains("file:")) {
- var targetFile = new File(appContext.getResource(fileName).getFilename());
- java.nio.file.Files.copy(ioFile, targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
- return targetFile.getPath();
- } else {
- return appContext.getResource(fileName).getFile().getPath();
- }
- } catch (IOException e) {
- logger.error("Unable to open and copy the file: " + fileName, e);
- return null;
- }
-
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java
deleted file mode 100644
index 5708cb6ec..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.model;
-
-import com.google.gson.annotations.Expose;
-import java.util.ArrayList;
-import java.util.List;
-import org.onap.policy.clamp.clds.util.ClampVersioning;
-
-public class ClampInformation {
- @Expose
- private String userName;
- @Expose
- private String cldsVersion = ClampVersioning.getCldsVersionFromProps();
- @Expose
- List allPermissions = new ArrayList<>();
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-
- public String getCldsVersion() {
- return cldsVersion;
- }
-
- public void setCldsVersion(String cldsVersion) {
- this.cldsVersion = cldsVersion;
- }
-
- public List getAllPermissions() {
- return allPermissions;
- }
-
- public void setAllPermissions(List allPermissions) {
- this.allPermissions = allPermissions;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java
deleted file mode 100644
index c814a628d..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java
+++ /dev/null
@@ -1,60 +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.policy.clamp.clds.model;
-
-import com.google.gson.annotations.Expose;
-
-public class CldsHealthCheck {
- @Expose
- private String healthCheckComponent;
- @Expose
- private String healthCheckStatus;
- @Expose
- private String description;
-
- public String getHealthCheckComponent() {
- return healthCheckComponent;
- }
-
- public void setHealthCheckComponent(String healthCheckComponent) {
- this.healthCheckComponent = healthCheckComponent;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public String getHealthCheckStatus() {
- return healthCheckStatus;
- }
-
- public void setHealthCheckStatus(String healthCheckStatus) {
- this.healthCheckStatus = healthCheckStatus;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java
deleted file mode 100644
index f7945d092..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * Modifications Copyright (c) 2021 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.policy.clamp.clds.model.cds;
-
-import com.google.gson.annotations.Expose;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * This class maps the CDS response to a pojo.
- */
-public class CdsBpWorkFlowListResponse {
-
- @Expose
- private String blueprintName;
-
- @Expose
- private String version;
-
- @Expose
- private List workflows = new LinkedList<>();
-
- public String getBlueprintName() {
- return blueprintName;
- }
-
- public void setBlueprintName(String blueprintName) {
- this.blueprintName = blueprintName;
- }
-
- public String getVersion() {
- return version;
- }
-
- public void setVersion(String version) {
- this.version = version;
- }
-
- public List getWorkflows() {
- return workflows;
- }
-
- public void setWorkflows(List workflows) {
- this.workflows = workflows;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
deleted file mode 100644
index 248fdcaea..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.model.dcae;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * This class stores the multiple DcaeInventoryResponse coming back from DCAE.
- * The structure is a map of list indexed by asdcServiceId. The list is sorted
- * by asdcResourceId. Therefore it's possible to retrieve all the loops defined
- * in the DCAE inventory and created by DCAE Mod.
- */
-public class DcaeInventoryCache {
-
- private static Map> blueprintsMap = new ConcurrentHashMap<>();
-
- /**
- * Add Dcae inventory response.
- *
- * @param inventoryResponse the Dcae inventory response
- */
- public void addDcaeInventoryResponse(DcaeInventoryResponse inventoryResponse) {
- Set responsesSet = blueprintsMap.get(inventoryResponse.getAsdcServiceId());
- if (responsesSet == null) {
- responsesSet = new TreeSet<>();
- blueprintsMap.put(inventoryResponse.getAsdcServiceId(), responsesSet);
- }
- responsesSet.add(inventoryResponse);
- }
-
- public Set getAllLoopIds() {
- return blueprintsMap.keySet();
- }
-
- public Set getAllBlueprintsPerLoopId(String loopId) {
- return blueprintsMap.getOrDefault(loopId, new TreeSet<>());
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java
deleted file mode 100644
index 9862728df..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.clds.model.dcae;
-
-import com.google.gson.annotations.Expose;
-
-/**
- * This class maps the DCAE inventory answer to a nice pojo.
- */
-public class DcaeInventoryResponse implements Comparable {
-
- @Expose
- private String typeName;
-
- @Expose
- private String typeId;
-
- @Expose
- private String blueprintTemplate;
-
- /**
- * This field will be used to know all blueprints associated a loop.
- */
- @Expose
- private String asdcServiceId;
-
- /**
- * This field will be used to know to order of each blueprint microservice in a
- * loop.
- */
- @Expose
- private String asdcResourceId;
-
- public String getTypeName() {
- return typeName;
- }
-
- public void setTypeName(String typeName) {
- this.typeName = typeName;
- }
-
- public String getTypeId() {
- return typeId;
- }
-
- public void setTypeId(String typeId) {
- this.typeId = typeId;
- }
-
- public String getBlueprintTemplate() {
- return blueprintTemplate;
- }
-
- public void setBlueprintTemplate(String blueprintTemplate) {
- this.blueprintTemplate = blueprintTemplate;
- }
-
- public String getAsdcServiceId() {
- return asdcServiceId;
- }
-
- public void setAsdcServiceId(String asdcServiceId) {
- this.asdcServiceId = asdcServiceId;
- }
-
- public String getAsdcResourceId() {
- return asdcResourceId;
- }
-
- public void setAsdcResourceId(String asdcResourceId) {
- this.asdcResourceId = asdcResourceId;
- }
-
- @Override
- public int compareTo(DcaeInventoryResponse otherResponse) {
- var thisResourceId = Integer.parseInt(this.asdcResourceId);
- var otherResourceId = Integer.parseInt(otherResponse.getAsdcResourceId());
- return Integer.compare(thisResourceId, otherResourceId);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java
deleted file mode 100644
index 4d6e544da..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.model.dcae;
-
-import com.google.gson.annotations.Expose;
-
-public class DcaeLinks {
- @Expose
- private String self;
- @Expose
- private String status;
- @Expose
- private String uninstall;
-
- public String getSelf() {
- return self;
- }
-
- public void setSelf(String self) {
- this.self = self;
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
-
- public String getUninstall() {
- return uninstall;
- }
-
- public void setUninstall(String uninstall) {
- this.uninstall = uninstall;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java
deleted file mode 100644
index 9389a51fc..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.model.dcae;
-
-import com.google.gson.annotations.Expose;
-
-/**
- * This class maps the DCAE deployment handler response to a nice pojo.
- */
-public class DcaeOperationStatusResponse {
-
- @Expose
- private String operationType;
-
- @Expose
- private String status;
-
- @Expose
- private String requestId;
-
- @Expose
- private String error;
-
- @Expose
- private DcaeLinks links;
-
- public String getOperationType() {
- return operationType;
- }
-
- public void setOperationType(String operationType) {
- this.operationType = operationType;
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
-
- public String getRequestId() {
- return requestId;
- }
-
- public void setRequestId(String requestId) {
- this.requestId = requestId;
- }
-
- public String getError() {
- return error;
- }
-
- public void setError(String error) {
- this.error = error;
- }
-
- public DcaeLinks getLinks() {
- return links;
- }
-
- public void setLinks(DcaeLinks links) {
- this.links = links;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java
deleted file mode 100644
index ca46c6d31..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.sdc.controller;
-
-import org.onap.sdc.api.consumer.IDistributionStatusMessage;
-import org.onap.sdc.utils.DistributionStatusEnum;
-
-public class DistributionStatusMessage implements IDistributionStatusMessage {
-
- private String artifactUrl;
- private String consumerId;
- private String distributionId;
- private DistributionStatusEnum distributionStatus;
- private long timestamp;
-
- /**
- * Distribution status message constructor.
- *
- * @param artifactUrl
- * Url of specific SDC artifact(resource)
- * @param consumerId
- * Unique ID of SDC component instance
- * @param distributionId
- * Distribution ID published in the distribution notification.
- * @param distributionStatusEnum
- * Status to send in the message
- * @param timestamp
- * Timestamp of the message
- */
- public DistributionStatusMessage(final String artifactUrl, final String consumerId, final String distributionId,
- final DistributionStatusEnum distributionStatusEnum, final long timestamp) {
- this.artifactUrl = artifactUrl;
- this.consumerId = consumerId;
- this.distributionId = distributionId;
- this.distributionStatus = distributionStatusEnum;
- this.timestamp = timestamp;
- }
-
- @Override
- public String getArtifactURL() {
- return artifactUrl;
- }
-
- @Override
- public String getConsumerID() {
- return consumerId;
- }
-
- @Override
- public String getDistributionID() {
- return distributionId;
- }
-
- @Override
- public DistributionStatusEnum getStatus() {
- return distributionStatus;
- }
-
- @Override
- public long getTimestamp() {
- return timestamp;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
deleted file mode 100644
index a2542d51e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
+++ /dev/null
@@ -1,440 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2018-2019, 2021 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============================================
- * Modifications copyright (c) 2018 Nokia
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.sdc.controller;
-
-import java.security.SecureRandom;
-import java.util.Date;
-import java.util.Map.Entry;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.clds.config.sdc.SdcSingleControllerConfiguration;
-import org.onap.policy.clamp.clds.exception.sdc.controller.BlueprintParserException;
-import org.onap.policy.clamp.clds.exception.sdc.controller.CsarHandlerException;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcControllerException;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcDownloadException;
-import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintArtifact;
-import org.onap.policy.clamp.clds.sdc.controller.installer.CsarHandler;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.onap.policy.clamp.loop.CsarInstaller;
-import org.onap.sdc.api.IDistributionClient;
-import org.onap.sdc.api.consumer.IComponentDoneStatusMessage;
-import org.onap.sdc.api.consumer.IDistributionStatusMessage;
-import org.onap.sdc.api.consumer.INotificationCallback;
-import org.onap.sdc.api.notification.IArtifactInfo;
-import org.onap.sdc.api.notification.INotificationData;
-import org.onap.sdc.api.results.IDistributionClientDownloadResult;
-import org.onap.sdc.api.results.IDistributionClientResult;
-import org.onap.sdc.impl.DistributionClientFactory;
-import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
-import org.onap.sdc.utils.DistributionActionResultEnum;
-import org.onap.sdc.utils.DistributionStatusEnum;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class handles one sdc controller defined in the config.
- */
-public class SdcSingleController {
-
- private static final Logger logger = LoggerFactory.getLogger(SdcSingleController.class);
- private boolean isSdcClientAutoManaged = false;
- private CsarInstaller csarInstaller;
- private ClampProperties refProp;
- /**
- * The constant CONFIG_SDC_FOLDER.
- */
- public static final String CONFIG_SDC_FOLDER = "sdc.csarFolder";
- private int nbOfNotificationsOngoing = 0;
- private SdcSingleControllerStatus controllerStatus = SdcSingleControllerStatus.STOPPED;
- private SdcSingleControllerConfiguration sdcConfig;
- private IDistributionClient distributionClient;
-
- /**
- * Inner class for Notification callback.
- */
- private final class SdcNotificationCallBack implements INotificationCallback {
-
- private SdcSingleController sdcController;
-
- /**
- * Instantiates a new Sdc notification call back.
- *
- * @param controller the controller
- */
- SdcNotificationCallBack(SdcSingleController controller) {
- sdcController = controller;
- }
-
- /**
- * This method can be called multiple times at the same moment. The controller
- * must be thread safe !
- */
- @Override
- public void activateCallback(INotificationData notificationData) {
- var startTime = new Date();
- logger.info("Receive a callback notification in SDC, nb of resources: {}",
- notificationData.getResources().size());
- sdcController.treatNotification(notificationData);
- LoggingUtils.setTimeContext(startTime, new Date());
- LoggingUtils.setResponseContext("0", "SDC Notification received and processed successfully",
- this.getClass().getName());
- }
- }
-
- /**
- * Gets nb of notifications ongoing.
- *
- * @return the nb of notifications ongoing
- */
- public int getNbOfNotificationsOngoing() {
- return nbOfNotificationsOngoing;
- }
-
- private void changeControllerStatusIdle() {
- if (this.nbOfNotificationsOngoing > 1) {
- --this.nbOfNotificationsOngoing;
- } else {
- this.nbOfNotificationsOngoing = 0;
- this.controllerStatus = SdcSingleControllerStatus.IDLE;
- }
- }
-
- /**
- * Change controller status.
- *
- * @param newControllerStatus the new controller status
- */
- protected final synchronized void changeControllerStatus(SdcSingleControllerStatus newControllerStatus) {
- switch (newControllerStatus) {
- case BUSY:
- ++this.nbOfNotificationsOngoing;
- this.controllerStatus = newControllerStatus;
- break;
- case IDLE:
- this.changeControllerStatusIdle();
- break;
- default:
- this.controllerStatus = newControllerStatus;
- break;
- }
- }
-
- /**
- * Gets controller status.
- *
- * @return the controller status
- */
- public final synchronized SdcSingleControllerStatus getControllerStatus() {
- return this.controllerStatus;
- }
-
- /**
- * Instantiates a new Sdc single controller.
- *
- * @param clampProp the clamp prop
- * @param csarInstaller the csar installer
- * @param sdcSingleConfig the sdc single config
- * @param distributionClient the distribution client
- */
- public SdcSingleController(ClampProperties clampProp, CsarInstaller csarInstaller,
- SdcSingleControllerConfiguration sdcSingleConfig,
- IDistributionClient distributionClient) {
- this.distributionClient = distributionClient;
- isSdcClientAutoManaged = (distributionClient == null);
- this.sdcConfig = sdcSingleConfig;
- this.refProp = clampProp;
- this.csarInstaller = csarInstaller;
- }
-
- /**
- * This method initializes the SDC Controller and the SDC Client.
- *
- * @throws SdcControllerException It throws an exception if the SDC Client
- * cannot be instantiated or if an init attempt
- * is done when already initialized
- */
- public void initSdc() throws SdcControllerException {
- logger.info("Attempt to initialize the SDC Controller: {}", sdcConfig.getSdcControllerName());
- if (this.getControllerStatus() != SdcSingleControllerStatus.STOPPED) {
- throw new SdcControllerException("The controller is already initialized, call the closeSDC method first");
- }
- if (distributionClient == null) {
- distributionClient = DistributionClientFactory.createDistributionClient();
- }
- IDistributionClientResult result = distributionClient.init(sdcConfig, new SdcNotificationCallBack(this));
- if (!result.getDistributionActionResult().equals(DistributionActionResultEnum.SUCCESS)) {
- logger.error("SDC distribution client init failed with reason: {}", result.getDistributionMessageResult());
- this.changeControllerStatus(SdcSingleControllerStatus.STOPPED);
- throw new SdcControllerException("Initialization of the SDC Controller failed with reason: "
- + result.getDistributionMessageResult());
- }
- logger.info("SDC Controller successfully initialized: {}", sdcConfig.getSdcControllerName());
- logger.info("Attempt to start the SDC Controller: {}", sdcConfig.getSdcControllerName());
- result = this.distributionClient.start();
- if (!result.getDistributionActionResult().equals(DistributionActionResultEnum.SUCCESS)) {
- logger.error("SDC distribution client start failed with reason: {}", result.getDistributionMessageResult());
- this.changeControllerStatus(SdcSingleControllerStatus.STOPPED);
- throw new SdcControllerException(
- "Startup of the SDC Controller failed with reason: " + result.getDistributionMessageResult());
- }
- logger.info("SDC Controller successfully started: {}", sdcConfig.getSdcControllerName());
- this.changeControllerStatus(SdcSingleControllerStatus.IDLE);
- }
-
- /**
- * This method closes the SDC Controller and the SDC Client.
- *
- * @throws SdcControllerException It throws an exception if the SDC Client
- * cannot be closed because it's currently BUSY
- * in processing notifications.
- */
- public void closeSdc() throws SdcControllerException {
- if (this.getControllerStatus() == SdcSingleControllerStatus.BUSY) {
- throw new SdcControllerException("Cannot close the SDC controller as it's currently in BUSY state");
- }
- if (this.distributionClient != null) {
- this.distributionClient.stop();
- // If auto managed we can set it to Null, SdcController controls it.
- // In the other case the client of this class has specified it, so
- // we can't reset it
- if (isSdcClientAutoManaged) {
- // Next init will initialize it with a new SDC Client
- this.distributionClient = null;
- }
- }
- this.changeControllerStatus(SdcSingleControllerStatus.STOPPED);
- }
-
- private void sendAllNotificationForCsarHandler(INotificationData notificationData, CsarHandler csar,
- NotificationType notificationType,
- DistributionStatusEnum distributionStatus, String errorMessage) {
- if (csar != null) {
- // Notify for the CSAR
- this.sendSdcNotification(notificationType, csar.getArtifactElement().getArtifactURL(),
- sdcConfig.getConsumerID(), notificationData.getDistributionID(), distributionStatus, errorMessage,
- System.currentTimeMillis());
- // Notify for all VF resources found
- for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) {
- // Normally always 1 artifact in resource for Clamp as we
- // specified
- // only VF_METADATA type
- this.sendSdcNotification(notificationType,
- blueprint.getValue().getResourceAttached().getArtifacts().get(0).getArtifactURL(),
- sdcConfig.getConsumerID(), notificationData.getDistributionID(), distributionStatus,
- errorMessage, System.currentTimeMillis());
- }
- } else {
- this.sendSdcNotification(notificationType, null, sdcConfig.getConsumerID(),
- notificationData.getDistributionID(), distributionStatus, errorMessage, System.currentTimeMillis());
- }
- }
-
- /**
- * This method processes the notification received from Sdc.
- *
- * @param notificationData The INotificationData
- */
- public void treatNotification(INotificationData notificationData) {
- CsarHandler csar = null;
- try {
- // wait for a random time, so that 2 running Clamp will not treat
- // the same Notification at the same time
- Thread.sleep((new SecureRandom().nextInt(10) + 1) * 1000L);
- logger.info("Notification received for service UUID: {}", notificationData.getServiceUUID());
- this.changeControllerStatus(SdcSingleControllerStatus.BUSY);
- csar = new CsarHandler(notificationData, this.sdcConfig.getSdcControllerName(),
- refProp.getStringValue(CONFIG_SDC_FOLDER));
- csar.save(downloadTheArtifact(csar.getArtifactElement()));
- if (csarInstaller.isCsarAlreadyDeployed(csar)) {
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DOWNLOAD,
- DistributionStatusEnum.ALREADY_DOWNLOADED, null);
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
- DistributionStatusEnum.ALREADY_DEPLOYED, null);
- } else {
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DOWNLOAD,
- DistributionStatusEnum.DOWNLOAD_OK, null);
- csarInstaller.installTheCsar(csar);
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
- DistributionStatusEnum.DEPLOY_OK, null);
- }
- this.sendComponentStatus(notificationData, DistributionStatusEnum.COMPONENT_DONE_OK, null);
- } catch (SdcArtifactInstallerException | SdcToscaParserException e) {
- logger.error("SdcArtifactInstallerException exception caught during the notification processing", e);
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
- DistributionStatusEnum.DEPLOY_ERROR, e.getMessage());
- this.sendComponentStatus(notificationData, DistributionStatusEnum.COMPONENT_DONE_ERROR, e.getMessage());
- } catch (SdcDownloadException | CsarHandlerException e) {
- logger.error("SdcDownloadException exception caught during the notification processing", e);
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DOWNLOAD,
- DistributionStatusEnum.DOWNLOAD_ERROR, e.getMessage());
- this.sendComponentStatus(notificationData, DistributionStatusEnum.COMPONENT_DONE_ERROR, e.getMessage());
- } catch (InterruptedException e) {
- logger.error("Interrupt exception caught during the notification processing", e);
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
- DistributionStatusEnum.DEPLOY_ERROR, e.getMessage());
- this.sendComponentStatus(notificationData, DistributionStatusEnum.COMPONENT_DONE_ERROR, e.getMessage());
- Thread.currentThread().interrupt();
- } catch (BlueprintParserException e) {
- logger.error("BlueprintParser exception caught during the notification processing", e);
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
- DistributionStatusEnum.DEPLOY_ERROR, e.getMessage());
- this.sendComponentStatus(notificationData, DistributionStatusEnum.COMPONENT_DONE_ERROR, e.getMessage());
- } catch (RuntimeException e) {
- logger.error("Unexpected exception caught during the notification processing", e);
- sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY,
- DistributionStatusEnum.DEPLOY_ERROR, e.getMessage());
- this.sendComponentStatus(notificationData, DistributionStatusEnum.COMPONENT_DONE_ERROR, e.getMessage());
- } finally {
- this.changeControllerStatus(SdcSingleControllerStatus.IDLE);
- }
- }
-
- private enum NotificationType {
- /**
- * Download notification type.
- */
- DOWNLOAD,
- /**
- * Deploy notification type.
- */
- DEPLOY
- }
-
- private IDistributionClientDownloadResult downloadTheArtifact(IArtifactInfo artifact) throws SdcDownloadException {
- logger.info("Trying to download the artifact : {} UUID: {}",
- artifact.getArtifactURL(), artifact.getArtifactUUID());
- IDistributionClientDownloadResult downloadResult;
- try {
- downloadResult = distributionClient.download(artifact);
- if (null == downloadResult) {
- logger.info("downloadResult is Null for: {}", artifact.getArtifactUUID());
- return null;
- }
- } catch (RuntimeException e) {
- throw new SdcDownloadException("Exception caught when downloading the artifact", e);
- }
- if (DistributionActionResultEnum.SUCCESS.equals(downloadResult.getDistributionActionResult())) {
- logger.info("Successfully downloaded the artifact {} UUID {} Size of payload {}", artifact.getArtifactURL(),
- artifact.getArtifactUUID(), downloadResult.getArtifactPayload().length);
- } else {
- throw new SdcDownloadException("Artifact " + artifact.getArtifactName()
- + " could not be downloaded from SDC URL " + artifact.getArtifactURL() + " UUID "
- + artifact.getArtifactUUID() + ")" + System.lineSeparator() + "Error message is "
- + downloadResult.getDistributionMessageResult() + System.lineSeparator());
- }
- return downloadResult;
- }
-
- private void sendSdcNotification(NotificationType notificationType, String artifactUrl, String consumerId,
- String distributionId, DistributionStatusEnum status, String errorReason,
- long timestamp) {
- String event = "Sending " + notificationType.name() + "(" + status.name() + ")"
- + " notification to SDC for artifact:" + artifactUrl;
- if (errorReason != null) {
- event = event + "(" + errorReason + ")";
- }
- logger.info(event);
- var action = "";
- try {
- IDistributionStatusMessage message = new DistributionStatusMessage(artifactUrl, consumerId, distributionId,
- status, timestamp);
- switch (notificationType) {
- case DOWNLOAD:
- this.sendDownloadStatus(message, errorReason);
- action = "sendDownloadStatus";
- break;
- case DEPLOY:
- this.sendDeploymentStatus(message, errorReason);
- action = "sendDeploymentdStatus";
- break;
- default:
- break;
- }
- } catch (RuntimeException e) {
- logger.warn("Unable to send the SDC Notification ({}) due to an exception", action, e);
- }
- logger.info("SDC Notification sent successfully ({})", action);
- }
-
- private void sendComponentStatus(INotificationData notificationData, DistributionStatusEnum status,
- String errorReason) {
- try {
- IComponentDoneStatusMessage message = new IComponentDoneStatusMessage() {
-
- @Override
- public String getDistributionID() {
- return notificationData.getDistributionID();
- }
-
- @Override
- public String getConsumerID() {
- return sdcConfig.getConsumerID();
- }
-
- @Override
- public long getTimestamp() {
- return System.currentTimeMillis();
- }
-
- @Override
- public DistributionStatusEnum getStatus() {
- return status;
- }
-
- @Override
- public String getComponentName() {
- return sdcConfig.getUser();
- }
- };
-
- if (errorReason != null) {
- this.distributionClient.sendComponentDoneStatus(message, errorReason);
- } else {
- this.distributionClient.sendComponentDoneStatus(message);
- }
- } catch (RuntimeException e) {
- logger.warn("Unable to send the SDC Notification ({}) due to an exception", status.name(), e);
- }
- if (status.name() != null) {
- logger.info("SDC Notification sent successfully ({})", status.name());
- }
- }
-
- private void sendDownloadStatus(IDistributionStatusMessage message, String errorReason) {
- if (errorReason != null) {
- this.distributionClient.sendDownloadStatus(message, errorReason);
- } else {
- this.distributionClient.sendDownloadStatus(message);
- }
- }
-
- private void sendDeploymentStatus(IDistributionStatusMessage message, String errorReason) {
- if (errorReason != null) {
- this.distributionClient.sendDeploymentStatus(message, errorReason);
- } else {
- this.distributionClient.sendDeploymentStatus(message);
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java
deleted file mode 100644
index fe269c486..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.sdc.controller;
-
-public enum SdcSingleControllerStatus {
- STOPPED, IDLE, BUSY
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
deleted file mode 100644
index df81cfb0c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.sdc.controller.installer;
-
-import org.onap.sdc.api.notification.IResourceInstance;
-
-/**
- * This class is useful to store the information concerning
- * blueprint artifact extracted from SDC CSAR.
- */
-public class BlueprintArtifact {
-
- private String dcaeBlueprint;
- private String blueprintArtifactName;
- private String blueprintInvariantServiceUuid;
- private IResourceInstance resourceAttached;
-
- public String getDcaeBlueprint() {
- return dcaeBlueprint;
- }
-
- public void setDcaeBlueprint(String dcaeBlueprint) {
- this.dcaeBlueprint = dcaeBlueprint;
- }
-
- public String getBlueprintArtifactName() {
- return blueprintArtifactName;
- }
-
- public void setBlueprintArtifactName(String blueprintArtifactName) {
- this.blueprintArtifactName = blueprintArtifactName;
- }
-
- public String getBlueprintInvariantServiceUuid() {
- return blueprintInvariantServiceUuid;
- }
-
- public void setBlueprintInvariantServiceUuid(String blueprintInvariantServiceUuid) {
- this.blueprintInvariantServiceUuid = blueprintInvariantServiceUuid;
- }
-
- public IResourceInstance getResourceAttached() {
- return resourceAttached;
- }
-
- public void setResourceAttached(IResourceInstance resourceAttached) {
- this.resourceAttached = resourceAttached;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java
deleted file mode 100644
index 519a24f46..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * Modifications copyright (c) 2019-2020 AT&T
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.sdc.controller.installer;
-
-import java.util.Objects;
-
-public class BlueprintMicroService {
- private final String name;
- private final String modelType;
- private final String inputFrom;
- private final String modelVersion;
-
- /**
- * The Micro service constructor.
- *
- * @param name The name in String
- * @param modelType The model type
- * @param inputFrom Comes from (single chained)
- */
- public BlueprintMicroService(String name, String modelType, String inputFrom, String modelVersion) {
- this.name = name;
- this.inputFrom = inputFrom;
- this.modelType = modelType;
- this.modelVersion = modelVersion;
- }
-
- public String getName() {
- return name;
- }
-
- public String getModelType() {
- return modelType;
- }
-
- public String getInputFrom() {
- return inputFrom;
- }
-
- /**
- * modelVerrsion getter.
- *
- * @return the modelVersion
- */
- public String getModelVersion() {
- return modelVersion;
- }
-
- @Override
- public String toString() {
- return "MicroService {" + "name='" + name + '\'' + ", modelType='" + modelType + '\'' + ", inputFrom='"
- + inputFrom + '\'' + ", modelVersion='" + modelVersion + '\'' + '}';
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null || getClass() != obj.getClass()) {
- return false;
- }
- BlueprintMicroService that = (BlueprintMicroService) obj;
- return name.equals(that.name) && modelType.equals(that.modelType) && inputFrom.equals(that.inputFrom)
- && modelVersion.equals(that.modelVersion);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(name, modelType, inputFrom, modelVersion);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java
deleted file mode 100644
index d301494d9..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2021 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============================================
- * Modifications copyright (c) 2019 AT&T
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.sdc.controller.installer;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import java.util.AbstractMap;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import org.json.JSONObject;
-import org.onap.policy.clamp.clds.exception.sdc.controller.BlueprintParserException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yaml.snakeyaml.Yaml;
-
-public class BlueprintParser {
-
- static final String TCA = "TCA";
- private static final String NODE_TEMPLATES = "node_templates";
- private static final String DCAE_NODES = "dcae.nodes.";
- private static final String DCAE_NODES_POLICY = ".nodes.policy";
- private static final String TYPE = "type";
- private static final String PROPERTIES = "properties";
- private static final String NAME = "name";
- private static final String INPUT = "inputs";
- private static final String GET_INPUT = "get_input";
- private static final String POLICY_MODEL_ID = "policy_model_id";
- private static final String POLICY_MODEL_VERSION = "policy_model_version";
- private static final String RELATIONSHIPS = "relationships";
- private static final String CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM = "clamp_node.relationships.gets_input_from";
- private static final String TARGET = "target";
- public static final String DEFAULT_VERSION = "1.0.0";
-
- private static final Logger logger = LoggerFactory.getLogger(BlueprintParser.class);
-
- private BlueprintParser() {
-
- }
-
- /**
- * Get all micro services from blueprint.
- *
- * @param blueprintString the blueprint in a String
- * @return A set of MircoService
- * @throws BlueprintParserException In case of issues with the parsing
- */
- public static Set getMicroServices(String blueprintString) throws BlueprintParserException {
- Set microServices = new HashSet<>();
- JsonObject blueprintJson = BlueprintParser.convertToJson(blueprintString);
- var nodeTemplateList = blueprintJson.get(NODE_TEMPLATES).getAsJsonObject();
- var inputList = blueprintJson.get(INPUT).getAsJsonObject();
-
- for (Entry entry : nodeTemplateList.entrySet()) {
- var nodeTemplate = entry.getValue().getAsJsonObject();
- if (!nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES_POLICY)
- && nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) {
- BlueprintMicroService microService = getNodeRepresentation(entry, nodeTemplateList, inputList);
- if (!microService.getModelType().isBlank()) {
- microServices.add(microService);
- } else {
- logger.warn(
- "Microservice {} will NOT be used by CLAMP as the model"
- + "type is not defined or has not been found",
- microService.getName());
- }
- }
- }
- logger.debug("Those microservices have been found in the blueprint: {}", microServices);
- return microServices;
- }
-
- /**
- * Does a fallback to TCA.
- *
- * @return The list of microservices
- */
- public static List fallbackToOneMicroService() {
- return Collections.singletonList(
- new BlueprintMicroService(TCA, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", DEFAULT_VERSION));
- }
-
- static String getName(Entry entry) {
- String microServiceYamlName = entry.getKey();
- var ob = entry.getValue().getAsJsonObject();
- if (ob.has(PROPERTIES)) {
- var properties = ob.get(PROPERTIES).getAsJsonObject();
- if (properties.has(NAME)) {
- return properties.get(NAME).getAsString();
- }
- }
- return microServiceYamlName;
- }
-
- static String getInput(Entry entry) {
- var ob = entry.getValue().getAsJsonObject();
- if (ob.has(RELATIONSHIPS)) {
- var relationships = ob.getAsJsonArray(RELATIONSHIPS);
- for (JsonElement element : relationships) {
- String target = getTarget(element.getAsJsonObject());
- if (!target.isEmpty()) {
- return target;
- }
- }
- }
- return "";
- }
-
- static String findPropertyInRelationshipsArray(String propertyName, JsonArray relationshipsArray,
- JsonObject blueprintNodeTemplateList, JsonObject blueprintInputList) throws BlueprintParserException {
- for (JsonElement elem : relationshipsArray) {
- if (blueprintNodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()) == null) {
- throw new BlueprintParserException(
- "The Target mentioned in the blueprint is not a known entry in the blueprint: "
- + elem.getAsJsonObject().get(TARGET).getAsString());
- } else {
- String property = getPropertyValue(propertyName,
- new AbstractMap.SimpleEntry<>(
- elem.getAsJsonObject().get(TARGET).getAsString(), blueprintNodeTemplateList
- .get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()),
- blueprintNodeTemplateList, blueprintInputList);
- if (!property.isEmpty()) {
- return property;
- }
- }
- }
- return "";
- }
-
- static String getDirectOrInputPropertyValue(String propertyName, JsonObject blueprintInputList,
- JsonObject nodeTemplateContent) {
- var properties = nodeTemplateContent.get(PROPERTIES).getAsJsonObject();
- if (properties.has(propertyName)) {
- if (properties.get(propertyName).isJsonObject()) {
- // it's a blueprint parameter
- return blueprintInputList
- .get(properties.get(propertyName).getAsJsonObject().get(GET_INPUT).getAsString())
- .getAsJsonObject().get("default").getAsString();
- } else {
- // It's a direct value
- return properties.get(propertyName).getAsString();
- }
- }
- return "";
- }
-
- static String getPropertyValue(String propertyName, Entry nodeTemplateEntry,
- JsonObject blueprintNodeTemplateList, JsonObject blueprintIputList) throws BlueprintParserException {
- var nodeTemplateContent = nodeTemplateEntry.getValue().getAsJsonObject();
- // Search first in this node template
- if (nodeTemplateContent.has(PROPERTIES)) {
- String propValue = getDirectOrInputPropertyValue(propertyName, blueprintIputList, nodeTemplateContent);
- if (!propValue.isBlank()) {
- return propValue;
- }
- }
- // Or it's may be defined in a relationship
- if (nodeTemplateContent.has(RELATIONSHIPS)) {
- return findPropertyInRelationshipsArray(propertyName,
- nodeTemplateContent.get(RELATIONSHIPS).getAsJsonArray(), blueprintNodeTemplateList,
- blueprintIputList);
- }
- return "";
- }
-
- static BlueprintMicroService getNodeRepresentation(Entry nodeTemplateEntry,
- JsonObject blueprintNodeTemplateList, JsonObject blueprintInputList) throws BlueprintParserException {
- String modelIdFound = getPropertyValue(POLICY_MODEL_ID, nodeTemplateEntry, blueprintNodeTemplateList,
- blueprintInputList);
- String versionFound = getPropertyValue(POLICY_MODEL_VERSION, nodeTemplateEntry, blueprintNodeTemplateList,
- blueprintInputList);
- if (modelIdFound.isBlank()) {
- logger.warn("policy_model_id is not defined for the node template: {}", nodeTemplateEntry.getKey());
- }
- if (versionFound.isBlank()) {
- logger.warn("policy_model_version is not defined (setting it to a default value) for the node template: {}",
- nodeTemplateEntry.getKey());
- }
- return new BlueprintMicroService(getName(nodeTemplateEntry), modelIdFound, getInput(nodeTemplateEntry),
- !versionFound.isBlank() ? versionFound : DEFAULT_VERSION);
- }
-
- private static String getTarget(JsonObject elementObject) {
- if (elementObject.has(TYPE) && elementObject.has(TARGET)
- && elementObject.get(TYPE).getAsString().equals(CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM)) {
- return elementObject.get(TARGET).getAsString();
- }
- return "";
- }
-
- private static JsonObject convertToJson(String yamlString) {
- Map map = new Yaml().load(yamlString);
- return new Gson().fromJson(new JSONObject(map).toString(), JsonObject.class);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java
deleted file mode 100644
index 745d4768d..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2021 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.policy.clamp.clds.sdc.controller.installer;
-
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.springframework.stereotype.Component;
-
-@Component
-public class ChainGenerator {
-
- ChainGenerator() {
- }
-
- /**
- * Get list of microservices chain.
- *
- * @param input A set of microservices
- * @return The list of microservice chained
- */
- public List getChainOfMicroServices(Set input) {
- LinkedList returnList = new LinkedList<>();
- if (preValidate(input)) {
- LinkedList theList = new LinkedList<>();
- for (BlueprintMicroService ms : input) {
- insertNodeTemplateIntoChain(ms, theList);
- }
- if (postValidate(theList)) {
- returnList = theList;
- }
- }
- return returnList;
- }
-
- private boolean preValidate(Set input) {
- List noInputs = input.stream().filter(ms -> "".equals(ms.getInputFrom()))
- .collect(Collectors.toList());
- return noInputs.size() == 1;
- }
-
- private boolean postValidate(LinkedList microServices) {
- for (var i = 1; i < microServices.size() - 1; i++) {
- BlueprintMicroService prev = microServices.get(i - 1);
- BlueprintMicroService current = microServices.get(i);
- if (!current.getInputFrom().equals(prev.getName())) {
- return false;
- }
- }
- return true;
- }
-
- private void insertNodeTemplateIntoChain(BlueprintMicroService microServicetoInsert,
- LinkedList chainOfMicroServices) {
- var insertIndex = 0;
- for (var i = 0; i < chainOfMicroServices.size(); i++) {
- BlueprintMicroService current = chainOfMicroServices.get(i);
- if (microServicetoInsert.getName().equals(current.getInputFrom())) {
- insertIndex = i;
- break;
- } else if (current.getName().equals(microServicetoInsert.getInputFrom())) {
- insertIndex = i + 1;
- break;
- }
- }
- chainOfMicroServices.add(insertIndex, microServicetoInsert);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java
deleted file mode 100644
index 2ca463ede..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018, 2021 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.policy.clamp.clds.sdc.controller.installer;
-
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.apache.commons.io.IOUtils;
-import org.codehaus.plexus.util.StringUtils;
-import org.onap.policy.clamp.clds.exception.sdc.controller.CsarHandlerException;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException;
-import org.onap.sdc.api.notification.IArtifactInfo;
-import org.onap.sdc.api.notification.INotificationData;
-import org.onap.sdc.api.notification.IResourceInstance;
-import org.onap.sdc.api.results.IDistributionClientDownloadResult;
-import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
-import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
-import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * CsarDescriptor that will be used to deploy file in CLAMP file system. Some
- * methods can also be used to get some data from it.
- */
-public class CsarHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(CsarHandler.class);
- private IArtifactInfo artifactElement;
- private String csarFilePath;
- private String controllerName;
- private SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();
- private ISdcCsarHelper sdcCsarHelper;
- private Map mapOfBlueprints = new HashMap<>();
- public static final String CSAR_TYPE = "TOSCA_CSAR";
- public static final String BLUEPRINT_TYPE = "DCAE_INVENTORY_BLUEPRINT";
- private INotificationData sdcNotification;
- public static final String RESOURCE_INSTANCE_NAME_PREFIX = "/Artifacts/Resources/";
- public static final String RESOURCE_INSTANCE_NAME_SUFFIX = "/Deployment/";
- public static final String POLICY_DEFINITION_NAME_SUFFIX = "Definitions/policies.yml";
- public static final String DATA_DEFINITION_NAME_SUFFIX = "Definitions/data.yml";
- public static final String DATA_DEFINITION_KEY = "data_types:";
-
- /**
- * Constructor for CsarHandler taking sdc notification in input.
- */
- public CsarHandler(INotificationData data, String controller, String clampCsarPath) throws CsarHandlerException {
- this.sdcNotification = data;
- this.controllerName = controller;
- this.artifactElement = searchForUniqueCsar(data);
- this.csarFilePath = buildFilePathForCsar(artifactElement, clampCsarPath);
- }
-
- private String buildFilePathForCsar(IArtifactInfo artifactElement, String clampCsarPath) {
- return clampCsarPath + "/" + controllerName + "/" + artifactElement.getArtifactName();
- }
-
- private IArtifactInfo searchForUniqueCsar(INotificationData notificationData) throws CsarHandlerException {
- List serviceArtifacts = notificationData.getServiceArtifacts();
- for (IArtifactInfo artifact : serviceArtifacts) {
- if (artifact.getArtifactType().equals(CSAR_TYPE)) {
- return artifact;
- }
- }
- throw new CsarHandlerException("Unable to find a CSAR in the Sdc Notification");
- }
-
- /**
- * This saves the notification to disk and database.
- *
- * @param resultArtifact The artifact to install
- * @throws SdcArtifactInstallerException In case of issues with the installation
- * @throws SdcToscaParserException In case of issues with the parsing of
- * the CSAR
- */
- public synchronized void save(IDistributionClientDownloadResult resultArtifact)
- throws SdcArtifactInstallerException, SdcToscaParserException {
- try {
- logger.info("Writing CSAR file to: {} UUID {}", csarFilePath, artifactElement.getArtifactUUID());
- var path = Paths.get(csarFilePath);
- Files.createDirectories(path.getParent());
- // Create or replace the file
- try (var out = Files.newOutputStream(path)) {
- out.write(resultArtifact.getArtifactPayload(), 0, resultArtifact.getArtifactPayload().length);
- }
- sdcCsarHelper = factory.getSdcCsarHelper(csarFilePath);
- this.loadDcaeBlueprint();
- } catch (IOException e) {
- throw new SdcArtifactInstallerException(
- "Exception caught when trying to write the CSAR on the file system to " + csarFilePath, e);
- }
- }
-
- private IResourceInstance searchForResourceByInstanceName(String blueprintResourceInstanceName)
- throws SdcArtifactInstallerException {
- for (IResourceInstance resource : this.sdcNotification.getResources()) {
- var filteredString = resource.getResourceInstanceName().replace("-", "");
- filteredString = filteredString.replace(" ", "");
- if (filteredString.equalsIgnoreCase(blueprintResourceInstanceName)) {
- return resource;
- }
- }
- throw new SdcArtifactInstallerException("Error when searching for " + blueprintResourceInstanceName
- + " as ResourceInstanceName in Sdc notification and did not find it");
- }
-
- private void loadDcaeBlueprint() throws IOException, SdcArtifactInstallerException {
- try (var zipFile = new ZipFile(csarFilePath)) {
- Enumeration extends ZipEntry> entries = zipFile.entries();
- while (entries.hasMoreElements()) {
- ZipEntry entry = entries.nextElement();
- if (!entry.isDirectory() && entry.getName().contains(BLUEPRINT_TYPE)) {
- var blueprintArtifact = new BlueprintArtifact();
- blueprintArtifact.setBlueprintArtifactName(
- entry.getName().substring(entry.getName().lastIndexOf('/') + 1, entry.getName().length()));
- blueprintArtifact
- .setBlueprintInvariantServiceUuid(this.getSdcNotification().getServiceInvariantUUID());
- try (var stream = zipFile.getInputStream(entry)) {
- blueprintArtifact.setDcaeBlueprint(IOUtils.toString(stream, StandardCharsets.UTF_8));
- }
- blueprintArtifact.setResourceAttached(searchForResourceByInstanceName(entry.getName().substring(
- entry.getName().indexOf(RESOURCE_INSTANCE_NAME_PREFIX)
- + RESOURCE_INSTANCE_NAME_PREFIX.length(),
- entry.getName().indexOf(RESOURCE_INSTANCE_NAME_SUFFIX))));
- this.mapOfBlueprints.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact);
- logger.info("Found a blueprint entry in the CSAR {} for resource instance Name {}",
- blueprintArtifact.getBlueprintArtifactName(),
- blueprintArtifact.getResourceAttached().getResourceInstanceName());
- }
- }
- logger.info("{} blueprint(s) will be converted to closed loop", this.mapOfBlueprints.size());
- }
- }
-
- public IArtifactInfo getArtifactElement() {
- return artifactElement;
- }
-
- public String getFilePath() {
- return csarFilePath;
- }
-
- public String setFilePath(String newPath) {
- csarFilePath = newPath;
- return csarFilePath;
- }
-
- public synchronized ISdcCsarHelper getSdcCsarHelper() {
- return sdcCsarHelper;
- }
-
- public INotificationData getSdcNotification() {
- return sdcNotification;
- }
-
- public Map getMapOfBlueprints() {
- return mapOfBlueprints;
- }
-
- /**
- * Get the whole policy model Yaml. It combines the content of policies.yaml and
- * data.yaml.
- *
- * @return The whole policy model yaml
- * @throws IOException The IO Exception
- */
- public Optional getPolicyModelYaml() throws IOException {
- String result = null;
- try (var zipFile = new ZipFile(csarFilePath)) {
- ZipEntry entry = zipFile.getEntry(POLICY_DEFINITION_NAME_SUFFIX);
- if (entry != null) {
- ZipEntry data = zipFile.getEntry(DATA_DEFINITION_NAME_SUFFIX);
- if (data != null) {
- var dataStr = IOUtils.toString(zipFile.getInputStream(data), StandardCharsets.UTF_8);
- var dataStrWithoutHeader = dataStr.substring(dataStr.indexOf(DATA_DEFINITION_KEY));
- var policyStr = IOUtils.toString(zipFile.getInputStream(entry), StandardCharsets.UTF_8);
- StringUtils.chomp(policyStr);
- result = policyStr.concat(dataStrWithoutHeader);
- } else {
- result = IOUtils.toString(zipFile.getInputStream(entry), StandardCharsets.UTF_8);
- }
- } else {
- logger.info("Policy model not found inside the CSAR file: {}", csarFilePath);
- }
- return Optional.ofNullable(result);
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java b/runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java
deleted file mode 100644
index 43852f9dc..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018, 2021 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.policy.clamp.clds.service;
-
-import java.util.Date;
-import org.onap.policy.clamp.clds.model.CldsHealthCheck;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.onap.policy.clamp.clds.util.OnapLogConstants;
-import org.onap.policy.clamp.loop.LoopController;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.event.Level;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Component;
-
-/**
- * Service to retrieve the Health Check of the clds application.
- *
- */
-@Component
-public class CldsHealthcheckService {
-
- @Autowired
- private LoopController loopController;
-
- protected static final Logger logger = LoggerFactory.getLogger(CldsHealthcheckService.class);
-
- /**
- * REST service that retrieves clds healthcheck information.
- *
- * @return CldsHealthCheck class containing healthcheck info
- */
- public CldsHealthCheck gethealthcheck() {
- var cldsHealthCheck = new CldsHealthCheck();
- var startTime = new Date();
- var util = new LoggingUtils(logger);
- LoggingUtils.setRequestContext("CldsService: GET healthcheck", "Clamp-Health-Check");
- LoggingUtils.setTimeContext(startTime, new Date());
- try {
- loopController.getLoopNames();
- cldsHealthCheck.setHealthCheckComponent("CLDS-APP");
- cldsHealthCheck.setHealthCheckStatus("UP");
- cldsHealthCheck.setDescription("OK");
- LoggingUtils.setResponseContext("0", "Get healthcheck success",
- this.getClass().getName());
- util.exiting(HttpStatus.OK.value(), "Healthcheck success", Level.INFO,
- OnapLogConstants.ResponseStatus.COMPLETE);
- } catch (Exception e) {
- logger.error("CLAMP application Heath check failed", e);
- LoggingUtils.setResponseContext("999", "Get healthcheck failed",
- this.getClass().getName());
- cldsHealthCheck.setHealthCheckComponent("CLDS-APP");
- cldsHealthCheck.setHealthCheckStatus("DOWN");
- cldsHealthCheck.setDescription("NOT-OK");
- util.exiting(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Healthcheck failed", Level.INFO,
- OnapLogConstants.ResponseStatus.ERROR);
- }
- return cldsHealthCheck;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java
deleted file mode 100644
index add6ed4bd..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018-2019, 2021 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.policy.clamp.clds.tosca;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final 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";
- public static final String TITLE = "title";
- public static final String REQUIRED = "required";
- public static final String DEFAULT = "default";
- public static final String ENUM = "enum";
- public static final String ENUM_TITLES = "enum_titles";
- public static final String OPTIONS = "options";
- public static final String FORMAT = "format";
- 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";
- public static final String MIN_LENGTH = "minLength";
- 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";
- public static final String QSSCHEMA = "qschema";
- public static final String TYPE_QBLDR = "qbldr";
-
- public static final String ID = "id";
- public static final String LABEL = "label";
- public static final String OPERATORS = "operators";
- public static final String FILTERS = "filters";
-
- 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";
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java
deleted file mode 100644
index d8f7bf837..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018, 2021 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.policy.clamp.clds.tosca;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ToscaSchemaConstants {
-
- // Data types in TOSCA Schema
- public static final String TYPE_LIST = "list";
- 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";
- public static final String DATA_TYPES = "data_types";
- public static final String TYPE = "type";
- public static final String DESCRIPTION = "description";
- public static final String DEFAULT = "default";
- public static final String PROPERTIES = "properties";
- public static final String REQUIRED = "required";
- public static final String ENTRY_SCHEMA = "entry_schema";
-
- 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
- public static final String CONSTRAINTS = "constraints";
- public static final String VALID_VALUES = "valid_values";
- public static final String EQUAL = "equal";
- public static final String GREATER_THAN = "greater_than";
- public static final String GREATER_OR_EQUAL = "greater_or_equal";
- public static final String LESS_THAN = "less_than";
- public static final String LESS_OR_EQUAL = "less_or_equal";
- public static final String IN_RANGE = "in_range";
- public static final String LENGTH = "length";
- public static final String MIN_LENGTH = "min_length";
- public static final String MAX_LENGTH = "max_length";
- public static final String PATTERN = "pattern";
-
- // Prefix for policy nodes
- public static final String POLICY_NODE = "onap.policies.";
-
- // Prefix for data nodes
- public static final String POLICY_DATA = "onap.datatypes.";
-
- // Prefix for dictionary elements
- public static final String DICTIONARY = "Dictionary:";
-
- // Custom Elements that must exist in the Tosca models
- public static final String NAME = "name";
- public static final String CONTEXT = "context";
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java
deleted file mode 100644
index 5834586c2..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.clds.tosca.update;
-
-import com.google.gson.JsonObject;
-import java.io.IOException;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.clds.tosca.update.parser.metadata.ToscaMetadataParser;
-import org.onap.policy.clamp.clds.tosca.update.parser.metadata.ToscaMetadataParserWithDictionarySupport;
-import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.loop.service.Service;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * This is the main class that must be used to convert a tosca to a json schema.
- * This class adds feature to support the dictionary mechanism that enables json possible values extracted
- * from the dictionary DB table.
- *
- * @see org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport#convertToscaToJsonSchemaObject
- */
-@Component
-public class ToscaConverterWithDictionarySupport {
-
- private static final Logger logger =
- LoggerFactory.getLogger(ToscaConverterWithDictionarySupport.class);
-
- private ClampProperties clampProperties;
- private ToscaMetadataParser metadataParser;
-
- /**
- * Constructor with Spring support.
- *
- * @param clampProperties Clamp Spring properties
- * @param metadataParser Metadata parser
- */
- @Autowired
- public ToscaConverterWithDictionarySupport(ClampProperties clampProperties,
- ToscaMetadataParserWithDictionarySupport metadataParser) {
- this.clampProperties = clampProperties;
- this.metadataParser = metadataParser;
- }
-
- /**
- * This method converts a tosca file to a json schema.
- * It uses some parameters specified in the application.properties.
- *
- * @param toscaFile The tosca file as String
- * @param policyTypeToDecode The policy type to decode
- * @param serviceModel The service model associated so that the clamp enrichment could be done if required by
- * the tosca model
- * @return A json object being a json schema
- */
- public JsonObject convertToscaToJsonSchemaObject(String toscaFile, String policyTypeToDecode,
- Service serviceModel) {
- try {
- return new JsonTemplateManager(toscaFile,
- clampProperties.getFileContent("tosca.converter.default.datatypes"),
- clampProperties.getFileContent("tosca.converter.json.schema.templates"))
- .getJsonSchemaForPolicyType(policyTypeToDecode, Boolean.parseBoolean(clampProperties.getStringValue(
- "tosca.converter.dictionary.support.enabled")) ? metadataParser : null, serviceModel);
- } catch (IOException | UnknownComponentException e) {
- logger.error("Unable to convert the tosca properly, exception caught during the decoding",
- e);
- return new JsonObject();
- }
- }
-
- /**
- * This method converts a tosca file to a json schema.
- * It uses some parameters specified in the application.properties.
- *
- * @param toscaFile The tosca file as String
- * @param policyTypeToDecode The policy type to decode
- * @param serviceModel The service Model so that clamp enrichment could be done if required by tosca model
- * @return A String containing the json schema
- */
- public String convertToscaToJsonSchemaString(String toscaFile, String policyTypeToDecode, Service serviceModel) {
- return JsonUtils.GSON.toJson(this.convertToscaToJsonSchemaObject(toscaFile, policyTypeToDecode, serviceModel));
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
deleted file mode 100644
index d1d45a37d..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.tosca.update;
-
-public class UnknownComponentException extends Exception {
- private static final long serialVersionUID = 1187337836071750628L;
-
- public UnknownComponentException(String nameEntry) {
- this.getWrongName(nameEntry);
- }
-
- public String getWrongName(String nameEntry) {
- return "Unknown Component: " + nameEntry;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java
deleted file mode 100644
index 7ff0117d3..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.clds.tosca.update.elements;
-
-import com.google.gson.JsonArray;
-import java.util.ArrayList;
-
-public class ArrayField {
-
- private ArrayList
- */
- public static final String ENTRY_TIMESTAMP = "EntryTimestamp";
-
- /** MDC recording timestamp at the start of the current invocation. */
- public static final String INVOKE_TIMESTAMP = "InvokeTimestamp";
-
- /** MDC recording elapsed time. */
- public static final String ELAPSED_TIME = "ElapsedTime";
-
- /** MDC recording log timestamp. */
- public static final String LOG_TIMESTAMP = "LogTimestamp";
-
- // Outcomes. ///////////////////////////////////////////////////////////
-
- /** MDC reporting outcome code. */
- public static final String RESPONSE_CODE = "ResponseCode";
-
- /** MDC reporting outcome description. */
- public static final String RESPONSE_DESCRIPTION = "ResponseDesc";
-
- /** MDC reporting severity. */
- public static final String RESPONSE_SEVERITY = "Severity";
-
- /** MDC reporting response status code. */
- public static final String RESPONSE_STATUS_CODE = "StatusCode";
-
- /** MDC recording error code. */
- public static final String ERROR_CODE = "ErrorCode";
-
- /** MDC recording error description. */
- public static final String ERROR_DESC = "ErrorDesc";
-
- // Unsorted. ///////////////////////////////////////////////////////////
-
- /**
- * Hide and forbid construction.
- */
- private Mdcs() {
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Header name constants.
- */
- public static final class Headers {
-
- /** HTTP X-ONAP-RequestID header. */
- public static final String REQUEST_ID = "X-ONAP-RequestID";
-
- /** HTTP X-InvocationID header. */
- public static final String INVOCATION_ID = "X-ONAP-InvocationID";
-
- /** HTTP X-ONAP-PartnerName header. */
- public static final String PARTNER_NAME = "X-ONAP-PartnerName";
-
- /**
- * Hide and forbid construction.
- */
- private Headers() {
- throw new UnsupportedOperationException();
- }
- }
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // Enums.
- //
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- /**
- * Response success or not, for setting StatusCode.
- */
- public enum ResponseStatus {
-
- /** Success. */
- COMPLETE,
-
- /** Not. */
- ERROR,
-
- /** In Progress. */
- INPROGRESS
- }
-
- /**
- * Synchronous or asynchronous execution, for setting invocation marker.
- */
- public enum InvocationMode {
-
- /** Synchronous, blocking. */
- SYNCHRONOUS("SYNCHRONOUS", Markers.INVOKE_SYNCHRONOUS),
-
- /** Asynchronous, non-blocking. */
- ASYNCHRONOUS("ASYNCHRONOUS", Markers.INVOKE_ASYNCHRONOUS);
-
- /** Enum value. */
- private String enumValue;
-
- /** Corresponding marker. */
- private Marker marker;
-
- /**
- * Construct enum.
- *
- * @param enumValue enum value.
- * @param marker corresponding Marker.
- */
- InvocationMode(final String enumValue, final Marker marker) {
- this.enumValue = enumValue;
- this.marker = marker;
- }
-
- /**
- * Get Marker for enum.
- *
- * @return Marker.
- */
- public Marker getMarker() {
- return this.marker;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return this.enumValue;
- }
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
deleted file mode 100644
index ab33984da..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2017, 2021 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.policy.clamp.clds.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Scanner;
-
-/**
- * Utility methods supporting resources accesses.
- */
-public final class ResourceFileUtils {
-
- /**
- * getResourceAsStram supports the "file:" prefix as they use URL.
- * So here we want to eliminate classpath: prefix, so that this class can get
- * files from jar resource or file system.
- */
-
- private static final String CLASSPATH_PREFIX = "classpath:";
-
- /**
- * Private constructor to avoid creating instances of util class.
- */
- private ResourceFileUtils() {
- }
-
- /**
- * Method to access a file from the jar resource folder or file system.
- * Give the prefix "classpath:" so that it accesses the jar resource folder (default case)
- * or the prefix "file:" so that it accesses the file system.
- *
- * @param fileName The path of the resource (no prefix it will be a classpath access,
- * "classpath:/myfilename" or "file:/myfilename")
- * @return The file as inputStream
- */
- public static InputStream getResourceAsStream(String fileName) {
- InputStream is = Thread.currentThread().getContextClassLoader()
- .getResourceAsStream(fileName.replaceFirst("^" + CLASSPATH_PREFIX, ""));
- if (is == null) {
- throw new IllegalArgumentException("Unable to find resource: " + fileName);
- }
- return is;
- }
-
- /**
- * Method to access a resource file as a string.
- * Give the prefix "classpath:" so that it accesses the jar resource folder (default case)
- * or the prefix "file:" so that it accesses the file system.
- *
- * @param fileName The path of the resource (no prefix it will be a classpath access,
- * "classpath:/myfilename" or "file:/myfilename")
- * @return The file as String
- * @throws IOException In case of failure to find the file.
- */
- public static String getResourceAsString(String fileName) throws IOException {
- try (InputStream is = getResourceAsStream(fileName)) {
- return streamToString(is);
- }
- }
-
- private static String streamToString(InputStream inputStream) {
- try (var scanner = new Scanner(inputStream)) {
- var delimitedScanner = scanner.useDelimiter("\\A");
- return delimitedScanner.hasNext() ? delimitedScanner.next() : "";
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java b/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
deleted file mode 100644
index 5cb5e143f..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.configuration;
-
-import com.google.gson.Gson;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.lang.reflect.Type;
-import java.nio.charset.StandardCharsets;
-import org.apache.camel.Exchange;
-import org.apache.camel.spi.DataFormat;
-import org.apache.camel.spi.DataFormatName;
-import org.apache.camel.support.service.ServiceSupport;
-import org.apache.camel.util.IOHelper;
-import org.apache.commons.io.IOUtils;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-
-public class ClampGsonDataFormat extends ServiceSupport implements DataFormat, DataFormatName {
- private Gson gson;
- private Class> unmarshalType;
- private Type unmarshalGenericType;
- private boolean contentTypeHeader = true;
-
- public ClampGsonDataFormat() {
- this(Object.class);
- }
-
- /**
- * Use the default Gson {@link Gson} and with a custom unmarshal type.
- *
- * @param unmarshalType the custom unmarshal type
- */
- public ClampGsonDataFormat(Class> unmarshalType) {
- this(null, unmarshalType);
- }
-
- /**
- * Use a custom Gson mapper and and unmarshal type.
- *
- * @param gson the custom mapper
- * @param unmarshalType the custom unmarshal type
- */
- public ClampGsonDataFormat(Gson gson, Class> unmarshalType) {
- this.gson = gson;
- this.unmarshalType = unmarshalType;
- }
-
- /**
- * Use the default Gson {@link Gson} and with a custom unmarshal generic type.
- *
- * @param unmarshalGenericType the custom unmarshal generic type
- */
- public ClampGsonDataFormat(Type unmarshalGenericType) {
- this(null, unmarshalGenericType);
- }
-
- /**
- * Use a custom Gson mapper and and unmarshal token type.
- *
- * @param gson the custom mapper
- * @param unmarshalGenericType the custom unmarshal generic type
- */
- public ClampGsonDataFormat(Gson gson, Type unmarshalGenericType) {
- this.gson = gson;
- this.unmarshalGenericType = unmarshalGenericType;
- }
-
- @Override
- public String getDataFormatName() {
- return "clamp-gson";
- }
-
- @Override
- public void marshal(final Exchange exchange, final Object graph, final OutputStream stream) throws Exception {
- try (final var osw = new OutputStreamWriter(stream, StandardCharsets.UTF_8);
- final BufferedWriter writer = IOHelper.buffered(osw)) {
- gson.toJson(graph, writer);
- }
-
- if (contentTypeHeader) {
- if (exchange.hasOut()) {
- exchange.getOut().setHeader(Exchange.CONTENT_TYPE, "application/json");
- } else {
- exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "application/json");
- }
- }
- }
-
- @Override
- public Object unmarshal(final Exchange exchange, final InputStream stream) throws Exception {
- try (final var isr = new InputStreamReader(stream, StandardCharsets.UTF_8);
- final BufferedReader reader = IOHelper.buffered(isr)) {
- if (unmarshalType.equals(String.class)) {
- return IOUtils.toString(reader);
- } else if (unmarshalGenericType == null) {
- return gson.fromJson(reader, unmarshalType);
- } else {
- return gson.fromJson(reader, unmarshalGenericType);
- }
- }
- }
-
- @Override
- protected void doStart() throws Exception {
- if (gson == null) {
- gson = JsonUtils.GSON_JPA_MODEL;
- }
- }
-
- @Override
- protected void doStop() throws Exception {
- // noop
- }
-
- // Properties
- // -------------------------------------------------------------------------
-
- public Class> getUnmarshalType() {
- return this.unmarshalType;
- }
-
- public void setUnmarshalType(Class> unmarshalType) {
- this.unmarshalType = unmarshalType;
- }
-
- public Type getUnmarshalGenericType() {
- return this.unmarshalGenericType;
- }
-
- public void setUnmarshalGenericType(Type unmarshalGenericType) {
- this.unmarshalGenericType = unmarshalGenericType;
- }
-
- public boolean isContentTypeHeader() {
- return contentTypeHeader;
- }
-
- /**
- * If enabled then Gson will set the Content-Type header to
- * application/json when marshalling.
- */
- public void setContentTypeHeader(boolean contentTypeHeader) {
- this.contentTypeHeader = contentTypeHeader;
- }
-
- public Gson getGson() {
- return this.gson;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java
deleted file mode 100644
index db024e07a..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.dao.model.gson.converter;
-
-import com.google.gson.JsonDeserializationContext;
-import com.google.gson.JsonDeserializer;
-import com.google.gson.JsonElement;
-import java.lang.reflect.Type;
-import java.time.Instant;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.time.format.FormatStyle;
-import java.util.Locale;
-
-public class InstantDeserializer implements JsonDeserializer {
-
- DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT).withLocale(Locale.US)
- .withZone(ZoneId.systemDefault());
-
- @Override
- public Instant deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) {
- return Instant.parse(json.getAsString());
-
- }
-}
\ No newline at end of file
diff --git a/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java
deleted file mode 100644
index 7208a472c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.dao.model.gson.converter;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import java.lang.reflect.Type;
-import java.time.Instant;
-import java.time.format.DateTimeFormatter;
-
-public class InstantSerializer implements JsonSerializer {
-
- @Override
- public JsonElement serialize(Instant src, Type typeOfSrc, JsonSerializationContext context) {
- return new JsonPrimitive(DateTimeFormatter.ISO_INSTANT.format(src));
- }
-}
\ No newline at end of file
diff --git a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java
deleted file mode 100644
index d3aaa32a9..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.dao.model.jsontype;
-
-import java.sql.CallableStatement;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Types;
-import org.hibernate.type.descriptor.ValueBinder;
-import org.hibernate.type.descriptor.ValueExtractor;
-import org.hibernate.type.descriptor.WrapperOptions;
-import org.hibernate.type.descriptor.java.JavaTypeDescriptor;
-import org.hibernate.type.descriptor.sql.BasicBinder;
-import org.hibernate.type.descriptor.sql.BasicExtractor;
-import org.hibernate.type.descriptor.sql.SqlTypeDescriptor;
-
-public class JsonStringSqlTypeDescriptor implements SqlTypeDescriptor {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 1103168570216921981L;
-
- public static final JsonStringSqlTypeDescriptor INSTANCE = new JsonStringSqlTypeDescriptor();
-
- @Override
- public int getSqlType() {
- return Types.OTHER;
- }
-
- @Override
- public boolean canBeRemapped() {
- return true;
- }
-
- @Override
- public ValueBinder getBinder(JavaTypeDescriptor javaTypeDescriptor) {
- return new BasicBinder(javaTypeDescriptor, this) {
- @Override
- protected void doBind(PreparedStatement st, X value, int index, WrapperOptions options)
- throws SQLException {
- st.setString(index, javaTypeDescriptor.unwrap(value, String.class, options));
- }
-
- @Override
- protected void doBind(CallableStatement st, X value, String name, WrapperOptions options)
- throws SQLException {
- st.setString(name, javaTypeDescriptor.unwrap(value, String.class, options));
- }
- };
- }
-
- @Override
- public ValueExtractor getExtractor(JavaTypeDescriptor javaTypeDescriptor) {
- return new BasicExtractor(javaTypeDescriptor, this) {
- @Override
- protected X doExtract(ResultSet rs, String name, WrapperOptions options) throws SQLException {
- return javaTypeDescriptor.wrap(extractJson(rs, name), options);
- }
-
- @Override
- protected X doExtract(CallableStatement statement, int index, WrapperOptions options) throws SQLException {
- return javaTypeDescriptor.wrap(extractJson(statement, index), options);
- }
-
- @Override
- protected X doExtract(CallableStatement statement, String name, WrapperOptions options)
- throws SQLException {
- return javaTypeDescriptor.wrap(extractJson(statement, name), options);
- }
- };
- }
-
- protected Object extractJson(ResultSet rs, String name) throws SQLException {
- return rs.getObject(name);
- }
-
- protected Object extractJson(CallableStatement statement, int index) throws SQLException {
- return statement.getObject(index);
- }
-
- protected Object extractJson(CallableStatement statement, String name) throws SQLException {
- return statement.getObject(name);
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
deleted file mode 100644
index ddc39599c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.dao.model.jsontype;
-
-import com.google.gson.JsonObject;
-import java.io.Serializable;
-import org.hibernate.type.descriptor.WrapperOptions;
-import org.hibernate.type.descriptor.java.AbstractTypeDescriptor;
-import org.hibernate.type.descriptor.java.ImmutableMutabilityPlan;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-
-public class JsonTypeDescriptor extends AbstractTypeDescriptor {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = -3439698221196089003L;
-
- public static final JsonTypeDescriptor INSTANCE = new JsonTypeDescriptor();
-
- /**
- * Creates an instance of JsonTypeDescriptor.
- */
- public JsonTypeDescriptor() {
- super(JsonObject.class, new ImmutableMutabilityPlan() {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 1169396106518110214L;
-
- @Override
- public Serializable disassemble(JsonObject value) {
- return JsonUtils.GSON_JPA_MODEL.toJson(value);
- }
-
- @Override
- public JsonObject assemble(Serializable cached) {
- return JsonUtils.GSON_JPA_MODEL.fromJson((String) cached, JsonObject.class);
- }
-
- });
- }
-
- @Override
- public String toString(JsonObject value) {
- return JsonUtils.GSON_JPA_MODEL.toJson(value);
- }
-
- @Override
- public JsonObject fromString(String string) {
- return JsonUtils.GSON_JPA_MODEL.fromJson(string, JsonObject.class);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public X unwrap(JsonObject value, Class type, WrapperOptions options) {
- if (value == null) {
- return null;
- }
-
- if (String.class.isAssignableFrom(type)) {
- return (X) toString(value);
- }
-
- if (JsonObject.class.isAssignableFrom(type)) {
- return (X) JsonUtils.GSON_JPA_MODEL.toJson(toString(value));
- }
- throw unknownUnwrap(type);
- }
-
- @Override
- public JsonObject wrap(X value, WrapperOptions options) {
- if (value == null) {
- return null;
- }
-
- if (value instanceof String) {
- return JsonUtils.GSON_JPA_MODEL.fromJson((String) value, JsonObject.class);
- }
-
- throw unknownWrap(value.getClass());
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java
deleted file mode 100644
index 4a7b65bb4..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.dao.model.jsontype;
-
-import com.google.gson.JsonObject;
-import org.hibernate.type.AbstractSingleColumnStandardBasicType;
-import org.hibernate.type.descriptor.java.JavaTypeDescriptor;
-import org.hibernate.type.descriptor.sql.SqlTypeDescriptor;
-
-public class StringJsonUserType extends AbstractSingleColumnStandardBasicType {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = -7929809808079327767L;
-
- public StringJsonUserType() {
- super(JsonStringSqlTypeDescriptor.INSTANCE, JsonTypeDescriptor.INSTANCE);
- }
-
- public StringJsonUserType(SqlTypeDescriptor sqlTypeDescriptor, JavaTypeDescriptor javaTypeDescriptor) {
- super(sqlTypeDescriptor, javaTypeDescriptor);
- }
-
- @Override
- public String getName() {
- return "json";
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java b/runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java
deleted file mode 100644
index d54b23b21..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.flow.log;
-
-import javax.servlet.http.HttpServletRequest;
-import org.apache.camel.Exchange;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.onap.policy.clamp.clds.util.OnapLogConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.event.Level;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Component;
-
-/**
- * The Flow log operations.
- */
-@Component
-public class FlowLogOperation {
-
- protected static final Logger logger = LoggerFactory.getLogger(FlowLogOperation.class);
- private LoggingUtils util = new LoggingUtils(logger);
-
- @Autowired
- private HttpServletRequest request;
-
- /**
- * Generate the entry log.
- *
- * @param serviceDesc
- * The service description the loop name
- */
- public void startLog(Exchange exchange, String serviceDesc) {
- util.entering(request, serviceDesc);
- exchange.setProperty(OnapLogConstants.Headers.REQUEST_ID,
- util.getProperties(OnapLogConstants.Mdcs.REQUEST_ID));
- exchange.setProperty(OnapLogConstants.Headers.INVOCATION_ID,
- util.getProperties(OnapLogConstants.Mdcs.INVOCATION_ID));
- exchange.setProperty(OnapLogConstants.Headers.PARTNER_NAME,
- util.getProperties(OnapLogConstants.Mdcs.PARTNER_NAME));
- }
-
- /**
- * Generate the exiting log.
- */
- public void endLog() {
- util.exiting(HttpStatus.OK.value(), "Successful", Level.INFO,
- OnapLogConstants.ResponseStatus.COMPLETE);
- }
-
- /**
- * Generate the error exiting log.
- */
- public void errorLog() {
- util.exiting(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Failed", Level.INFO,
- OnapLogConstants.ResponseStatus.ERROR);
- }
-
- /**
- * Generate the error exiting log.
- */
- public void httpErrorLog() {
-
- }
-
- /**
- * Generate the invoke log.
- */
- public void invokeLog(String targetEntity, String targetServiceName) {
- util.invoke(targetEntity, targetServiceName);
- }
-
- /**
- * Generate the invoke return marker.
- */
- public void invokeReturnLog() {
- util.invokeReturn();
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java b/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
deleted file mode 100644
index 1542d9736..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop;
-
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map.Entry;
-import org.json.simple.parser.ParseException;
-import org.onap.policy.clamp.clds.client.DcaeInventoryServices;
-import org.onap.policy.clamp.clds.exception.sdc.controller.BlueprintParserException;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException;
-import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;
-import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintArtifact;
-import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintMicroService;
-import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintParser;
-import org.onap.policy.clamp.clds.sdc.controller.installer.ChainGenerator;
-import org.onap.policy.clamp.clds.sdc.controller.installer.CsarHandler;
-import org.onap.policy.clamp.loop.cds.CdsDataInstaller;
-import org.onap.policy.clamp.loop.service.CsarServiceInstaller;
-import org.onap.policy.clamp.loop.service.Service;
-import org.onap.policy.clamp.loop.template.LoopElementModel;
-import org.onap.policy.clamp.loop.template.LoopTemplate;
-import org.onap.policy.clamp.loop.template.LoopTemplatesRepository;
-import org.onap.policy.clamp.policy.PolicyEngineServices;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-/**
- * This class will be instantiated by spring config, and used by Sdc Controller.
- * There is no state kept by the bean. It's used to deploy the csar/notification
- * received from SDC in DB.
- */
-@Component
-@Qualifier("csarInstaller")
-public class CsarInstaller {
-
- private static final Logger logger = LoggerFactory.getLogger(CsarInstaller.class);
-
- @Autowired
- private LoopTemplatesRepository loopTemplatesRepository;
-
- @Autowired
- private ChainGenerator chainGenerator;
-
- @Autowired
- private DcaeInventoryServices dcaeInventoryService;
-
- @Autowired
- private CsarServiceInstaller csarServiceInstaller;
-
- @Autowired
- private CdsDataInstaller cdsDataInstaller;
-
- @Autowired
- private PolicyEngineServices policyEngineServices;
-
- /**
- * Verify whether Csar is deployed.
- *
- * @param csar The Csar Handler
- * @return The flag indicating whether Csar is deployed
- * @throws SdcArtifactInstallerException The SdcArtifactInstallerException
- */
- public boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException {
- boolean alreadyInstalled = csarServiceInstaller.isServiceAlreadyDeployed(csar);
-
- for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) {
- alreadyInstalled =
- alreadyInstalled && loopTemplatesRepository.existsById(LoopTemplate.generateLoopTemplateName(
- csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(),
- blueprint.getValue().getResourceAttached().getResourceInstanceName(),
- blueprint.getValue().getBlueprintArtifactName()));
- }
- return alreadyInstalled;
- }
-
- /**
- * Install the service and loop templates from the csar.
- *
- * @param csar The Csar Handler
- * @throws SdcArtifactInstallerException The SdcArtifactInstallerException
- * @throws InterruptedException The InterruptedException
- * @throws BlueprintParserException In case of issues with the blueprint
- * parsing
- */
- public void installTheCsar(CsarHandler csar)
- throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException {
- logger.info("Installing the CSAR {}", csar.getFilePath());
- var associatedService = csarServiceInstaller.installTheService(csar);
- cdsDataInstaller.installCdsServiceProperties(csar, associatedService);
-
- installTheLoopTemplates(csar, associatedService);
- logger.info("Successfully installed the CSAR {}", csar.getFilePath());
- }
-
- /**
- * Install the loop templates from the csar.
- *
- * @param csar The Csar Handler
- * @param service The service object that is related to the loop
- * @throws SdcArtifactInstallerException The SdcArtifactInstallerException
- * @throws InterruptedException The InterruptedException
- * @throws BlueprintParserException In case of issues with the blueprint
- * parsing
- */
- public void installTheLoopTemplates(CsarHandler csar, Service service)
- throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException {
- try {
- logger.info("Installing the Loops");
- for (Entry blueprint : csar.getMapOfBlueprints().entrySet()) {
- logger.info("Processing blueprint {}", blueprint.getValue().getBlueprintArtifactName());
- loopTemplatesRepository.save(createLoopTemplateFromBlueprint(csar, blueprint.getValue(), service));
- }
- logger.info("Successfully installed the Loops ");
- } catch (IOException e) {
- throw new SdcArtifactInstallerException("Exception caught during the Loop installation in database", e);
- } catch (ParseException e) {
- throw new SdcArtifactInstallerException("Exception caught during the Dcae query to get ServiceTypeId", e);
- }
- }
-
- private LoopTemplate createLoopTemplateFromBlueprint(CsarHandler csar, BlueprintArtifact blueprintArtifact,
- Service service) throws IOException, ParseException, InterruptedException, BlueprintParserException,
- SdcArtifactInstallerException {
- var newLoopTemplate = new LoopTemplate();
- newLoopTemplate.setBlueprint(blueprintArtifact.getDcaeBlueprint());
- newLoopTemplate.setName(LoopTemplate.generateLoopTemplateName(csar.getSdcNotification().getServiceName(),
- csar.getSdcNotification().getServiceVersion(),
- blueprintArtifact.getResourceAttached().getResourceInstanceName(),
- blueprintArtifact.getBlueprintArtifactName()));
- List microServicesChain = chainGenerator
- .getChainOfMicroServices(BlueprintParser.getMicroServices(blueprintArtifact.getDcaeBlueprint()));
- if (microServicesChain.isEmpty()) {
- microServicesChain = BlueprintParser.fallbackToOneMicroService();
- }
- newLoopTemplate.setModelService(service);
- newLoopTemplate.addLoopElementModels(createMicroServiceModels(blueprintArtifact, microServicesChain));
- newLoopTemplate.setMaximumInstancesAllowed(0);
- DcaeInventoryResponse dcaeResponse = queryDcaeToGetServiceTypeId(blueprintArtifact);
- newLoopTemplate.setDcaeBlueprintId(dcaeResponse.getTypeId());
- return newLoopTemplate;
- }
-
- private HashSet createMicroServiceModels(BlueprintArtifact blueprintArtifact,
- List microServicesChain) throws SdcArtifactInstallerException {
- HashSet newSet = new HashSet<>();
- for (BlueprintMicroService microService : microServicesChain) {
- var loopElementModel =
- new LoopElementModel(microService.getModelType(), LoopElementModel.MICRO_SERVICE_TYPE, null);
- newSet.add(loopElementModel);
- var newPolicyModel = policyEngineServices.createPolicyModelFromPolicyEngine(microService);
- if (newPolicyModel != null) {
- loopElementModel.addPolicyModel(newPolicyModel);
- } else {
- throw new SdcArtifactInstallerException("Unable to find the policy specified in the blueprint "
- + blueprintArtifact.getBlueprintArtifactName() + ") on the Policy Engine:"
- + microService.getModelType() + "/" + microService.getModelVersion());
- }
- }
- return newSet;
- }
-
- /**
- * Get the service blueprint Id in the Dcae inventory using the SDC UUID.
- *
- * @return The DcaeInventoryResponse object containing the dcae values
- */
- private DcaeInventoryResponse queryDcaeToGetServiceTypeId(BlueprintArtifact blueprintArtifact)
- throws IOException, ParseException, InterruptedException {
- return dcaeInventoryService.getDcaeInformation(blueprintArtifact.getBlueprintArtifactName(),
- blueprintArtifact.getBlueprintInvariantServiceUuid(),
- blueprintArtifact.getResourceAttached().getResourceInvariantUUID());
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java b/runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java
deleted file mode 100644
index b4c9d348c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java
+++ /dev/null
@@ -1,389 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop;
-
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import org.hibernate.annotations.SortNatural;
-import org.hibernate.annotations.Type;
-import org.hibernate.annotations.TypeDef;
-import org.hibernate.annotations.TypeDefs;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.dao.model.jsontype.StringJsonUserType;
-import org.onap.policy.clamp.loop.common.AuditEntity;
-import org.onap.policy.clamp.loop.components.external.DcaeComponent;
-import org.onap.policy.clamp.loop.components.external.ExternalComponent;
-import org.onap.policy.clamp.loop.components.external.PolicyComponent;
-import org.onap.policy.clamp.loop.deploy.DcaeDeployParameters;
-import org.onap.policy.clamp.loop.log.LoopLog;
-import org.onap.policy.clamp.loop.service.Service;
-import org.onap.policy.clamp.loop.template.LoopElementModel;
-import org.onap.policy.clamp.loop.template.LoopTemplate;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.policy.clamp.policy.operational.OperationalPolicy;
-
-@Entity
-@Table(name = "loops")
-@TypeDefs({@TypeDef(name = "json", typeClass = StringJsonUserType.class)})
-public class Loop extends AuditEntity implements Serializable {
-
- /**
- * The serial version id.
- */
- private static final long serialVersionUID = -286522707701388642L;
-
- @Id
- @Expose
- @Column(nullable = false, name = "name", unique = true)
- private String name;
-
- @Expose
- @Column(name = "dcae_deployment_id")
- private String dcaeDeploymentId;
-
- @Expose
- @Column(name = "dcae_deployment_status_url")
- private String dcaeDeploymentStatusUrl;
-
- @Expose
- @Type(type = "json")
- @Column(columnDefinition = "json", name = "global_properties_json")
- private JsonObject globalPropertiesJson;
-
- @Expose
- @ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
- @JoinColumn(name = "service_uuid")
- private Service modelService;
-
- @Expose
- @Column(nullable = false, name = "last_computed_state")
- @Enumerated(EnumType.STRING)
- private LoopState lastComputedState;
-
- @Expose
- @Transient
- private final Map components = new HashMap<>();
-
- @Expose
- @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loop", orphanRemoval = true)
- private Set operationalPolicies = new HashSet<>();
-
- @Expose
- @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.EAGER)
- @JoinTable(name = "loops_to_microservicepolicies", joinColumns = @JoinColumn(name = "loop_name"),
- inverseJoinColumns = @JoinColumn(name = "microservicepolicy_name"))
- private Set microServicePolicies = new HashSet<>();
-
- @Expose
- @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loop", orphanRemoval = true)
- @SortNatural
- private SortedSet loopLogs = new TreeSet<>();
-
- @Expose
- @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.EAGER)
- @JoinColumn(name = "loop_template_name", nullable = false)
- private LoopTemplate loopTemplate;
-
- private void initializeExternalComponents() {
- this.addComponent(new PolicyComponent());
- this.addComponent(new DcaeComponent());
- }
-
- /**
- * Public constructor.
- */
- public Loop() {
- initializeExternalComponents();
- }
-
- /**
- * Constructor.
- */
- public Loop(String name) {
- this.name = name;
- this.lastComputedState = LoopState.DESIGN;
- this.globalPropertiesJson = new JsonObject();
- initializeExternalComponents();
- }
-
- /**
- * This constructor creates a loop from a loop template.
- *
- * @param name The loop name
- * @param loopTemplate The loop template from which a new loop instance must be created
- */
- public Loop(String name, LoopTemplate loopTemplate, ToscaConverterWithDictionarySupport toscaConverter) {
- this(name);
- this.setLoopTemplate(loopTemplate);
- this.setModelService(loopTemplate.getModelService());
- loopTemplate.getLoopElementModelsUsed().forEach(element -> {
- if (LoopElementModel.MICRO_SERVICE_TYPE.equals(element.getLoopElementModel().getLoopElementType())) {
- this.addMicroServicePolicy((MicroServicePolicy) element.getLoopElementModel()
- .createPolicyInstance(this, toscaConverter));
- } else if (LoopElementModel.OPERATIONAL_POLICY_TYPE
- .equals(element.getLoopElementModel().getLoopElementType())) {
- this.addOperationalPolicy((OperationalPolicy) element.getLoopElementModel()
- .createPolicyInstance(this, toscaConverter));
- }
- });
- this.setGlobalPropertiesJson(DcaeDeployParameters.getDcaeDeploymentParametersInJson(this));
- }
-
- public String getName() {
- return name;
- }
-
- void setName(String name) {
- this.name = name;
- }
-
- public String getDcaeDeploymentId() {
- return dcaeDeploymentId;
- }
-
- void setDcaeDeploymentId(String dcaeDeploymentId) {
- this.dcaeDeploymentId = dcaeDeploymentId;
- }
-
- public String getDcaeDeploymentStatusUrl() {
- return dcaeDeploymentStatusUrl;
- }
-
- void setDcaeDeploymentStatusUrl(String dcaeDeploymentStatusUrl) {
- this.dcaeDeploymentStatusUrl = dcaeDeploymentStatusUrl;
- }
-
- public LoopState getLastComputedState() {
- return lastComputedState;
- }
-
- void setLastComputedState(LoopState lastComputedState) {
- this.lastComputedState = lastComputedState;
- }
-
- public Set getOperationalPolicies() {
- return operationalPolicies;
- }
-
- void setOperationalPolicies(Set operationalPolicies) {
- this.operationalPolicies = operationalPolicies;
- }
-
- public Set getMicroServicePolicies() {
- return microServicePolicies;
- }
-
- void setMicroServicePolicies(Set microServicePolicies) {
- this.microServicePolicies = microServicePolicies;
- }
-
- public JsonObject getGlobalPropertiesJson() {
- return globalPropertiesJson;
- }
-
- void setGlobalPropertiesJson(JsonObject globalPropertiesJson) {
- this.globalPropertiesJson = globalPropertiesJson;
- }
-
- public Set getLoopLogs() {
- return loopLogs;
- }
-
- void setLoopLogs(SortedSet loopLogs) {
- this.loopLogs = loopLogs;
- }
-
- /**
- * This method adds an operational policy to the loop.
- *
- * @param opPolicy the operationalPolicy to add
- */
- public void addOperationalPolicy(OperationalPolicy opPolicy) {
- operationalPolicies.add(opPolicy);
- opPolicy.setLoop(this);
- }
-
- /**
- * This method removes an operational policy to the loop.
- *
- * @param opPolicy the operationalPolicy to add
- */
- public void removeOperationalPolicy(OperationalPolicy opPolicy) {
- operationalPolicies.remove(opPolicy);
- }
-
- /**
- * This method adds an micro service policy to the loop.
- *
- * @param microServicePolicy the micro service to add
- */
- public void addMicroServicePolicy(MicroServicePolicy microServicePolicy) {
- microServicePolicies.add(microServicePolicy);
- microServicePolicy.getUsedByLoops().add(this);
- }
-
- public void addLog(LoopLog log) {
- log.setLoop(this);
- this.loopLogs.add(log);
- }
-
- public Service getModelService() {
- return modelService;
- }
-
- void setModelService(Service modelService) {
- this.modelService = modelService;
- }
-
- public Map getComponents() {
- refreshDcaeComponents();
- return components;
- }
-
- public ExternalComponent getComponent(String componentName) {
- refreshDcaeComponents();
- return this.components.get(componentName);
- }
-
- public void addComponent(ExternalComponent component) {
- this.components.put(component.getComponentName(), component);
- }
-
- public LoopTemplate getLoopTemplate() {
- return loopTemplate;
- }
-
- public void setLoopTemplate(LoopTemplate loopTemplate) {
- this.loopTemplate = loopTemplate;
- }
-
- private void refreshDcaeComponents() {
- if (!this.loopTemplate.getUniqueBlueprint()) {
- this.components.remove("DCAE");
- for (MicroServicePolicy policy : this.microServicePolicies) {
- if (!this.components.containsKey("DCAE_" + policy.getName())) {
- this.addComponent(new DcaeComponent(policy.getName()));
- }
- }
- }
- }
-
- /**
- * Return the operationalPolicy object with the opPolicyName.
- *
- * @param opPolicyName The operationalPolicy name
- * @return The OperationalPolicy object found in loop object
- */
- public OperationalPolicy getOperationalPolicy(String opPolicyName) {
- for (OperationalPolicy operationalPolicy : this.getOperationalPolicies()) {
- if (operationalPolicy.getName().equals(opPolicyName)) {
- return operationalPolicy;
- }
- }
- return null;
- }
-
- /**
- * Return the microServicePolicy object with the msPolicyName.
- *
- * @param msPolicyName The microServicePolicy name
- * @return The MicroServicePolicy object found in loop object
- */
- public MicroServicePolicy getMicroServicePolicy(String msPolicyName) {
- for (MicroServicePolicy microServicePolicy : this.getMicroServicePolicies()) {
- if (microServicePolicy.getName().equals(msPolicyName)) {
- return microServicePolicy;
- }
- }
- return null;
- }
-
- /**
- * Generate the loop name.
- *
- * @param serviceName The service name
- * @param serviceVersion The service version
- * @param resourceName The resource name
- * @param blueprintFileName The blueprint file name
- * @return The generated loop name
- */
- public static String generateLoopName(String serviceName, String serviceVersion, String resourceName,
- String blueprintFileName) {
- StringBuilder buffer = new StringBuilder("LOOP_").append(serviceName).append("_v").append(serviceVersion)
- .append("_").append(resourceName).append("_").append(blueprintFileName.replaceAll(".yaml", ""));
- return buffer.toString().replace('.', '_').replaceAll(" ", "");
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- Loop other = (Loop) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java
deleted file mode 100644
index 98459c909..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import com.google.gson.reflect.TypeToken;
-import java.io.IOException;
-import java.lang.reflect.Type;
-import java.util.List;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicyService;
-import org.onap.policy.clamp.policy.operational.OperationalPolicy;
-import org.onap.policy.clamp.policy.operational.OperationalPolicyService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-
-@Controller
-public class LoopController {
-
- private final LoopService loopService;
-
- private final ToscaConverterWithDictionarySupport toscaConverter;
-
- private final OperationalPolicyService operationalPolicyService;
-
- private final MicroServicePolicyService microServicePolicyService;
-
- private static final Type OPERATIONAL_POLICY_TYPE = new TypeToken>() {
- }.getType();
-
- private static final Type MICROSERVICE_POLICY_TYPE = new TypeToken>() {
- }.getType();
-
-
- /**
- * Constructor.
- *
- * @param loopService loopService
- * @param operationalPolicyService operationalPolicyService
- * @param microServicePolicyService microServicePolicyService
- * @param toscaConverter toscaConverter
- */
- @Autowired
- public LoopController(LoopService loopService, OperationalPolicyService operationalPolicyService,
- MicroServicePolicyService microServicePolicyService,
- ToscaConverterWithDictionarySupport toscaConverter) {
- this.loopService = loopService;
- this.toscaConverter = toscaConverter;
- this.operationalPolicyService = operationalPolicyService;
- this.microServicePolicyService = microServicePolicyService;
- }
-
- public Loop createLoop(String loopName, String templateName) {
- return loopService.createLoopFromTemplate(loopName, templateName);
- }
-
- public List getLoopNames() {
- return loopService.getClosedLoopNames();
- }
-
- public Loop getLoop(String loopName) {
- return loopService.getLoop(loopName);
- }
-
- /**
- * Update the Operational Policy properties.
- *
- * @param loopName The loop name
- * @param operationalPoliciesJson The new Operational Policy properties
- * @return The updated loop
- */
- public Loop updateOperationalPolicies(String loopName, JsonArray operationalPoliciesJson) {
- List operationalPolicies = JsonUtils.GSON_JPA_MODEL.fromJson(operationalPoliciesJson,
- OPERATIONAL_POLICY_TYPE);
- return loopService.updateAndSaveOperationalPolicies(loopName, operationalPolicies);
- }
-
- /**
- * Update the whole array of MicroService policies properties.
- *
- * @param loopName The loop name
- * @param microServicePoliciesJson The array of all MicroService policies
- * properties
- * @return The updated loop
- */
- public Loop updateMicroservicePolicies(String loopName, JsonArray microServicePoliciesJson) {
- List microservicePolicies = JsonUtils.GSON_JPA_MODEL.fromJson(microServicePoliciesJson,
- MICROSERVICE_POLICY_TYPE);
- return loopService.updateAndSaveMicroservicePolicies(loopName, microservicePolicies);
- }
-
- /**
- * Update the global properties.
- *
- * @param loopName The loop name
- * @param globalProperties The updated global properties
- * @return The updated loop
- */
- public Loop updateGlobalPropertiesJson(String loopName, JsonObject globalProperties) {
- return loopService.updateAndSaveGlobalPropertiesJson(loopName, globalProperties);
- }
-
- /**
- * This method add an operational policy to a loop instance.
- *
- * @param loopName The loop name
- * @param policyType The policy model type
- * @param policyVersion The policy model version
- * @return The loop modified
- */
- public Loop addOperationalPolicy(String loopName, String policyType, String policyVersion) throws IOException {
- return loopService.addOperationalPolicy(loopName, policyType, policyVersion);
- }
-
- /**
- * This method removes an operational policy from a loop instance.
- *
- * @param loopName The loop name
- * @param policyType The policy model type
- * @param policyVersion The policy model version
- * @return The loop modified
- */
- public Loop removeOperationalPolicy(String loopName, String policyType, String policyVersion) {
- return loopService.removeOperationalPolicy(loopName, policyType, policyVersion);
- }
-
- /**
- * This method deletes the loop.
- *
- * @param loopName The loop Name
- */
- public void deleteLoop(String loopName) {
- loopService.deleteLoop(loopName);
- }
-
- /**
- * Update one MicroService policy properties.
- *
- * @param loopName The loop name
- * @param newMicroservicePolicy The new MicroService policy properties
- * @return The updated MicroService policy
- */
- public MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) {
- return loopService.updateMicroservicePolicy(loopName, newMicroservicePolicy);
- }
-
- /**
- * Refresh the Operational Policy Json representation of the loop.
- *
- * @param loop The loop
- * @param operationalPolicyName The operational policy name that needs a refresh
- * @return The loop object
- */
- public Loop refreshOperationalPolicyJsonRepresentation(Loop loop, String operationalPolicyName) {
- for (OperationalPolicy operationalPolicy : loop.getOperationalPolicies()) {
- if (operationalPolicy.getName().equals(operationalPolicyName)) {
- this.operationalPolicyService
- .refreshOperationalPolicyJsonRepresentation(operationalPolicy, toscaConverter);
- }
- }
- return loop;
- }
-
- /**
- * Refresh the Config Policy Json representation of the loop.
- *
- * @param loop The loop
- * @param microServicePolicyName The microservice policy name that needs a refresh
- * @return The loop object
- */
- public Loop refreshMicroServicePolicyJsonRepresentation(Loop loop, String microServicePolicyName) {
- for (MicroServicePolicy microServicePolicy : loop.getMicroServicePolicies()) {
- if (microServicePolicy.getName().equals(microServicePolicyName)) {
- this.microServicePolicyService
- .refreshMicroServicePolicyJsonRepresentation(microServicePolicy, toscaConverter, loop);
- }
- }
- return loop;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java
deleted file mode 100644
index 9449c25eb..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (C) 2021 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.policy.clamp.loop;
-
-import com.google.gson.JsonObject;
-import java.util.List;
-import java.util.Set;
-import javax.persistence.EntityNotFoundException;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.loop.template.LoopTemplatesService;
-import org.onap.policy.clamp.loop.template.PolicyModelsService;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicyService;
-import org.onap.policy.clamp.policy.operational.OperationalPolicy;
-import org.onap.policy.clamp.policy.operational.OperationalPolicyService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class LoopService {
-
- @Autowired
- private LoopsRepository loopsRepository;
-
- @Autowired
- private MicroServicePolicyService microservicePolicyService;
-
- @Autowired
- private OperationalPolicyService operationalPolicyService;
-
- @Autowired
- private PolicyModelsService policyModelsService;
-
- @Autowired
- private LoopTemplatesService loopTemplateService;
-
- @Autowired
- private ToscaConverterWithDictionarySupport toscaConverter;
-
- Loop saveOrUpdateLoop(Loop loop) {
- return loopsRepository.save(loop);
- }
-
- List getClosedLoopNames() {
- return loopsRepository.getAllLoopNames();
- }
-
- public Loop getLoop(String loopName) {
- return loopsRepository.findById(loopName).orElse(null);
- }
-
- public void deleteLoop(String loopName) {
- loopsRepository.deleteById(loopName);
- }
-
- /**
- * Creates a Loop Instance from Loop Template Name.
- *
- * @param loopName Name of the Loop to be created
- * @param templateName Loop Template to used for Loop
- * @return Loop Instance
- */
- public Loop createLoopFromTemplate(String loopName, String templateName) {
- return loopsRepository
- .save(new Loop(loopName, loopTemplateService.getLoopTemplate(templateName), toscaConverter));
- }
-
- /**
- * This method is used to refresh the DCAE deployment status fields.
- *
- * @param loop The loop instance to be modified
- * @param deploymentId The deployment ID as returned by DCAE
- * @param deploymentUrl The Deployment URL as returned by DCAE
- */
- public void updateDcaeDeploymentFields(Loop loop, String deploymentId, String deploymentUrl) {
- loop.setDcaeDeploymentId(deploymentId);
- loop.setDcaeDeploymentStatusUrl(deploymentUrl);
- loopsRepository.saveAndFlush(loop);
- }
-
- public void updateLoopState(Loop loop, String newState) {
- loop.setLastComputedState(LoopState.valueOf(newState));
- loopsRepository.save(loop);
- }
-
- /**
- * This method add an operational policy to a loop instance.
- * This creates an operational policy from the policy model info and not the loop element model
- *
- * @param loopName The loop name
- * @param policyType The policy model type
- * @param policyVersion The policy model version
- * @return The loop modified
- */
- Loop addOperationalPolicy(String loopName, String policyType, String policyVersion) {
- var loop = getLoop(loopName);
- var policyModel = policyModelsService.getPolicyModel(policyType, policyVersion);
- Set 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;
- }
- loop.addOperationalPolicy(
- new OperationalPolicy(loop, loop.getModelService(), policyModel, toscaConverter));
- return loopsRepository.saveAndFlush(loop);
- }
-
- /**
- * This method remove an operational policy to a loop instance.
- *
- * @param loopName The loop name
- * @param policyType The policy model type
- * @param policyVersion The policy model version
- * @return The loop modified
- */
- Loop removeOperationalPolicy(String loopName, String policyType, String policyVersion) {
- var loop = getLoop(loopName);
- var policyModel = policyModelsService.getPolicyModel(policyType, policyVersion);
- if (policyModel == null) {
- return null;
- }
- for (OperationalPolicy opPolicy : loop.getOperationalPolicies()) {
- if (opPolicy.getPolicyModel().getPolicyModelType().equals(policyType)
- && opPolicy.getPolicyModel().getVersion().equals(policyVersion)) {
- loop.removeOperationalPolicy(opPolicy);
- break;
- }
- }
- return loopsRepository.saveAndFlush(loop);
- }
-
- Loop updateAndSaveOperationalPolicies(String loopName, List newOperationalPolicies) {
- var loop = findClosedLoopByName(loopName);
- Set newPolicies = operationalPolicyService.updatePolicies(loop, newOperationalPolicies);
- loop.setOperationalPolicies(newPolicies);
- return loopsRepository.save(loop);
- }
-
- Loop updateAndSaveMicroservicePolicies(String loopName, List newMicroservicePolicies) {
- var loop = findClosedLoopByName(loopName);
- Set newPolicies = microservicePolicyService.updatePolicies(loop, newMicroservicePolicies);
- loop.setMicroServicePolicies(newPolicies);
- return loopsRepository.save(loop);
- }
-
- Loop updateAndSaveGlobalPropertiesJson(String loopName, JsonObject newGlobalPropertiesJson) {
- var loop = findClosedLoopByName(loopName);
- loop.setGlobalPropertiesJson(newGlobalPropertiesJson);
- return loopsRepository.save(loop);
- }
-
- MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) {
- var loop = findClosedLoopByName(loopName);
- return microservicePolicyService.getAndUpdateMicroServicePolicy(loop, newMicroservicePolicy);
- }
-
- private Loop findClosedLoopByName(String loopName) {
- return loopsRepository.findById(loopName)
- .orElseThrow(() -> new EntityNotFoundException("Couldn't find closed loop named: " + loopName));
- }
-}
-
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java
deleted file mode 100644
index 48d4487f0..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop;
-
-public enum LoopState {
- DESIGN, SUBMITTED, DEPLOYED, RUNNING, STOPPED, IN_ERROR, WAITING;
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java
deleted file mode 100644
index 7b92ed584..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop;
-
-import java.util.List;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface LoopsRepository extends JpaRepository {
-
- @Query("SELECT loop.name FROM Loop as loop")
- List getAllLoopNames();
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java b/runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java
deleted file mode 100644
index d41f5359c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * 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.policy.clamp.loop.cds;
-
-import com.google.gson.JsonObject;
-import org.onap.policy.clamp.clds.client.CdsServices;
-import org.onap.policy.clamp.clds.model.cds.CdsBpWorkFlowListResponse;
-import org.onap.policy.clamp.clds.sdc.controller.installer.CsarHandler;
-import org.onap.policy.clamp.loop.service.Service;
-import org.onap.policy.clamp.loop.service.ServicesRepository;
-import org.onap.sdc.tosca.parser.enums.SdcTypes;
-import org.onap.sdc.toscaparser.api.NodeTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * This class installs the cds data in the service model properties.
- * This can be refreshed later on by clicking on the button refresh, when recomputing the json schema.
- */
-@Component
-public class CdsDataInstaller {
-
- private static final Logger logger = LoggerFactory.getLogger(CdsDataInstaller.class);
-
- @Autowired
- CdsServices cdsServices;
-
- @Autowired
- ServicesRepository serviceRepository;
-
- public static final String CONTROLLER_PROPERTIES = "controllerProperties";
- public static final String SDNC_MODEL_NAME = "sdnc_model_name";
- public static final String SDNC_MODEL_VERSION = "sdnc_model_version";
-
- /**
- * This method installs the service model properties for CDS in the service object given in input.
- *
- * @param csar The csar from sdc
- * @param service the service object already provisioned with csar data
- */
- @Transactional(propagation = Propagation.REQUIRES_NEW)
- public Service installCdsServiceProperties(CsarHandler csar, Service service) {
- // Iterate on all types defined in the tosca lib
- for (SdcTypes type : SdcTypes.values()) {
- JsonObject resourcesPropByType = service.getResourceByType(type.getValue());
- // For each type, get the metadata of each nodetemplate
- for (NodeTemplate nodeTemplate : csar.getSdcCsarHelper().getServiceNodeTemplateBySdcType(type)) {
- // get cds artifact information and save in resources Prop
- if (SdcTypes.PNF == type || SdcTypes.VF == type) {
- JsonObject controllerProperties = createCdsArtifactProperties(
- String.valueOf(nodeTemplate.getPropertyValue(SDNC_MODEL_NAME)),
- String.valueOf(nodeTemplate.getPropertyValue(SDNC_MODEL_VERSION)));
- if (controllerProperties != null) {
- resourcesPropByType.getAsJsonObject(nodeTemplate.getName())
- .add(CONTROLLER_PROPERTIES, controllerProperties);
- logger.info("Successfully installed the CDS data in Service");
- } else {
- logger.warn(
- "Skipping CDS data installation in Service, as sdnc_model_name"
- + " and sdnc_model_version are not provided in the CSAR");
- }
- }
- }
- }
- serviceRepository.save(service);
-
- return service;
- }
-
- /**
- * This method updates the service model properties for CDS in the service object given in input.
- *
- * @param service the service object already provisioned with csar data
- */
- @Transactional(propagation = Propagation.REQUIRES_NEW)
- public Service updateCdsServiceProperties(Service service) {
- // Iterate on all types defined in the tosca lib
- for (SdcTypes type : SdcTypes.values()) {
- JsonObject resourcesPropByType = service.getResourceByType(type.getValue());
- for (String resourceName : resourcesPropByType.keySet()) {
- // get cds artifact information and save in resources Prop
- if ((SdcTypes.PNF == type || SdcTypes.VF == type) && resourcesPropByType.getAsJsonObject(resourceName)
- .getAsJsonObject(CONTROLLER_PROPERTIES) != null) {
- JsonObject controllerProperties =
- createCdsArtifactProperties(resourcesPropByType.getAsJsonObject(resourceName)
- .getAsJsonObject(CONTROLLER_PROPERTIES).get(SDNC_MODEL_NAME)
- .getAsString(),
- resourcesPropByType.getAsJsonObject(resourceName)
- .getAsJsonObject(CONTROLLER_PROPERTIES).get(SDNC_MODEL_VERSION)
- .getAsString());
- if (controllerProperties != null) {
- resourcesPropByType.getAsJsonObject(resourceName)
- .add(CONTROLLER_PROPERTIES, controllerProperties);
- }
- }
- }
- }
- serviceRepository.save(service);
- logger.info("Successfully updated the CDS data in Service");
- return service;
- }
-
- /**
- * Retrieve CDS artifacts information from node template and save in resource object.
- *
- * @param sdncModelName sdnc model name
- * @param sdncModelVersion sdnc model version
- * @return Returns CDS artifacts information
- */
- private JsonObject createCdsArtifactProperties(String sdncModelName, String sdncModelVersion) {
- if (sdncModelName != null && !"null".equals(sdncModelName)
- && sdncModelVersion != null && !"null".equals(sdncModelVersion)) {
- var controllerProperties = new JsonObject();
- controllerProperties.addProperty(SDNC_MODEL_NAME, sdncModelName);
- controllerProperties.addProperty(SDNC_MODEL_VERSION, sdncModelVersion);
-
- CdsBpWorkFlowListResponse response =
- queryCdsToGetWorkFlowList(sdncModelName, sdncModelVersion);
- if (response == null) {
- return controllerProperties;
- }
-
- var workFlowProps = new JsonObject();
- for (String workFlow : response.getWorkflows()) {
- logger.info("Found CDS workflow {} for model name {} and version {}",
- workFlow, sdncModelName, sdncModelVersion);
- JsonObject inputs = queryCdsToGetWorkFlowInputProperties(response.getBlueprintName(),
- response.getVersion(), workFlow);
- workFlowProps.add(workFlow, inputs);
- }
-
- controllerProperties.add("workflows", workFlowProps);
- return controllerProperties;
- }
- return null;
- }
-
-
- private CdsBpWorkFlowListResponse queryCdsToGetWorkFlowList(String artifactName, String artifactVersion) {
- return cdsServices.getBlueprintWorkflowList(artifactName, artifactVersion);
- }
-
- private JsonObject queryCdsToGetWorkFlowInputProperties(String artifactName, String artifactVersion,
- String workFlow) {
- return cdsServices.getWorkflowInputProperties(artifactName, artifactVersion, workFlow);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java b/runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java
deleted file mode 100644
index fd7adaacc..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.loop.common;
-
-import com.google.gson.annotations.Expose;
-import java.time.Instant;
-import java.time.temporal.ChronoUnit;
-import javax.persistence.Column;
-import javax.persistence.EntityListeners;
-import javax.persistence.MappedSuperclass;
-import org.springframework.data.annotation.CreatedBy;
-import org.springframework.data.annotation.CreatedDate;
-import org.springframework.data.annotation.LastModifiedBy;
-import org.springframework.data.annotation.LastModifiedDate;
-import org.springframework.data.jpa.domain.support.AuditingEntityListener;
-
-/**
- * This class is the parent of the hibernate entities requiring to be audited.
- */
-@MappedSuperclass
-@EntityListeners(AuditingEntityListener.class)
-public class AuditEntity {
-
- @Expose
- @CreatedDate
- @Column(name = "created_timestamp", nullable = false, updatable = false)
- private Instant createdDate;
-
- @Expose
- @LastModifiedDate
- @Column(name = "updated_timestamp", nullable = false)
- private Instant updatedDate;
-
- @Expose
- @LastModifiedBy
- @Column(name = "updated_by")
- private String updatedBy;
-
- @Expose
- @CreatedBy
- @Column(name = "created_by")
- private String createdBy;
-
- public Instant getCreatedDate() {
- return createdDate;
- }
-
- /**
- * createdDate setter.
- *
- * @param createdDate The created Date object
- */
- public void setCreatedDate(Instant createdDate) {
- if (createdDate != null) {
- this.createdDate = createdDate.truncatedTo(ChronoUnit.SECONDS);
- } else {
- this.createdDate = null;
- }
- }
-
- /**
- * updatedDate getter.
- *
- * @return the updatedDate
- */
- public Instant getUpdatedDate() {
- return updatedDate;
- }
-
- /**
- * updatedDate setter.
- *
- * @param updatedDate updatedDate to set
- */
- public void setUpdatedDate(Instant updatedDate) {
- if (updatedDate != null) {
- this.updatedDate = updatedDate.truncatedTo(ChronoUnit.SECONDS);
- } else {
- this.updatedDate = null;
- }
- }
-
- /**
- * updatedBy getter.
- *
- * @return the updatedBy
- */
- public String getUpdatedBy() {
- return updatedBy;
- }
-
- /**
- * updatedBy setter.
- *
- * @param updatedBy the updatedBy
- */
- public void setUpdatedBy(String updatedBy) {
- this.updatedBy = updatedBy;
- }
-
- /**
- * createdBy getter.
- *
- * @return the createdBy
- */
- public String getCreatedBy() {
- return createdBy;
- }
-
- /**
- * createdBy setter.
- *
- * @param createdBy the createdBy to set
- */
- public void setCreatedBy(String createdBy) {
- this.createdBy = createdBy;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
deleted file mode 100644
index 424a81989..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.components.external;
-
-import com.google.gson.JsonObject;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.UUID;
-import javax.persistence.Transient;
-import org.apache.camel.Exchange;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;
-import org.onap.policy.clamp.clds.model.dcae.DcaeOperationStatusResponse;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DcaeComponent extends ExternalComponent {
- private static final String INSTALL = "install";
- private static final String PROCESSING = "processing";
- private static final String SUCCEEDED = "succeeded";
- private static final String UNINSTALL = "uninstall";
-
- @Transient
- private static final Logger logger = LoggerFactory.getLogger(DcaeComponent.class);
-
- private static final String DCAE_DEPLOYMENT_PREFIX = "CLAMP_";
- private static final String DEPLOYMENT_PARAMETER = "dcaeDeployParameters";
- private static final String DCAE_SERVICETYPE_ID = "serviceTypeId";
- private static final String DCAE_INPUTS = "inputs";
- public static final String UNIQUE_BLUEPRINT_PARAMETERS = "uniqueBlueprintParameters";
-
- private String name;
-
- public static final ExternalComponentState BLUEPRINT_DEPLOYED = new ExternalComponentState("BLUEPRINT_DEPLOYED",
- "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop");
- public static final ExternalComponentState PROCESSING_MICROSERVICE_INSTALLATION = new ExternalComponentState(
- "PROCESSING_MICROSERVICE_INSTALLATION", "Clamp has requested DCAE to install the microservices "
- + "defined in the DCAE blueprint and it's currently processing the request");
- public static final ExternalComponentState MICROSERVICE_INSTALLATION_FAILED = new ExternalComponentState(
- "MICROSERVICE_INSTALLATION_FAILED",
- "Clamp has requested DCAE to install the microservices defined in the DCAE blueprint and it failed");
- public static final ExternalComponentState MICROSERVICE_INSTALLED_SUCCESSFULLY = new ExternalComponentState(
- "MICROSERVICE_INSTALLED_SUCCESSFULLY",
- "Clamp has requested DCAE to install the DCAE blueprint and it has been installed successfully");
- public static final ExternalComponentState PROCESSING_MICROSERVICE_UNINSTALLATION = new ExternalComponentState(
- "PROCESSING_MICROSERVICE_UNINSTALLATION", "Clamp has requested DCAE to uninstall the microservices "
- + "defined in the DCAE blueprint and it's currently processing the request");
- public static final ExternalComponentState MICROSERVICE_UNINSTALLATION_FAILED = new ExternalComponentState(
- "MICROSERVICE_UNINSTALLATION_FAILED",
- "Clamp has requested DCAE to uninstall the microservices defined in the DCAE blueprint and it failed");
- public static final ExternalComponentState MICROSERVICE_UNINSTALLED_SUCCESSFULLY = new ExternalComponentState(
- "MICROSERVICE_UNINSTALLED_SUCCESSFULLY",
- "Clamp has requested DCAE to uninstall the DCAE blueprint and it has been uninstalled successfully");
- public static final ExternalComponentState IN_ERROR = new ExternalComponentState("IN_ERROR",
- "There was an error during the request done to DCAE, look at the logs or try again");
-
- public DcaeComponent() {
- super(BLUEPRINT_DEPLOYED);
- this.name = "DCAE";
- }
-
- public DcaeComponent(String name) {
- super(BLUEPRINT_DEPLOYED);
- this.name = "DCAE_" + name;
- }
-
- @Override
- public String getComponentName() {
- return name;
- }
-
-
- /**
- * Convert the json response to a DcaeOperationStatusResponse.
- *
- * @param responseBody The DCAE response Json paylaod
- * @return The dcae object provisioned
- */
- public static DcaeOperationStatusResponse convertDcaeResponse(String responseBody) {
- if (responseBody != null && !responseBody.isEmpty()) {
- return JsonUtils.GSON_JPA_MODEL.fromJson(responseBody, DcaeOperationStatusResponse.class);
- } else {
- return null;
- }
- }
-
- /**
- * Generate the deployment id, it's random.
- *
- * @return The deployment id
- */
- public static String generateDeploymentId() {
- return DCAE_DEPLOYMENT_PREFIX + UUID.randomUUID();
- }
-
- /**
- * This method prepare the url returned by DCAE to check the status if fine. It
- * extracts it from the dcaeResponse.
- *
- * @param dcaeResponse The dcae response object
- * @return the Right Url modified if needed
- */
- public static String getStatusUrl(DcaeOperationStatusResponse dcaeResponse) {
- return dcaeResponse.getLinks().getStatus();
- }
-
- /**
- * Return the deploy payload for DCAE.
- *
- * @param loop The loop object
- * @return The payload used to send deploy closed loop request
- */
- public static String getDeployPayload(Loop loop) {
- JsonObject globalProp = loop.getGlobalPropertiesJson();
- var deploymentProp = globalProp.getAsJsonObject(DEPLOYMENT_PARAMETER).getAsJsonObject(
- UNIQUE_BLUEPRINT_PARAMETERS);
-
- String serviceTypeId = loop.getLoopTemplate().getDcaeBlueprintId();
-
- var rootObject = new JsonObject();
- rootObject.addProperty(DCAE_SERVICETYPE_ID, serviceTypeId);
- if (deploymentProp != null) {
- rootObject.add(DCAE_INPUTS, deploymentProp);
- }
- logger.info("DCAE Deploy payload for unique blueprint: {}", rootObject);
- return rootObject.toString();
- }
-
- /**
- * Return the deploy payload for DCAE.
- *
- * @param loop The loop object
- * @param microServicePolicy The micro service policy
- * @return The payload used to send deploy closed loop request
- */
- public static String getDeployPayload(Loop loop, MicroServicePolicy microServicePolicy) {
- JsonObject globalProp = loop.getGlobalPropertiesJson();
- var deploymentProp =
- globalProp.getAsJsonObject(DEPLOYMENT_PARAMETER).getAsJsonObject(microServicePolicy.getName());
-
- String serviceTypeId = microServicePolicy.getDcaeBlueprintId();
-
- var rootObject = new JsonObject();
- rootObject.addProperty(DCAE_SERVICETYPE_ID, serviceTypeId);
- if (deploymentProp != null) {
- rootObject.add(DCAE_INPUTS, deploymentProp);
- }
- logger.info("DCAE Deploy payload for multiple blueprints: {}", rootObject);
- return rootObject.toString();
- }
-
- /**
- * Return the uninstallation payload for DCAE.
- *
- * @param loop The loop object
- * @return The payload in string (json)
- */
- public static String getUndeployPayload(Loop loop) {
- var rootObject = new JsonObject();
- rootObject.addProperty(DCAE_SERVICETYPE_ID, loop.getLoopTemplate().getDcaeBlueprintId());
- logger.info("DCAE Undeploy payload for unique blueprint: {}", rootObject);
- return rootObject.toString();
- }
-
- /**
- * Return the uninstallation payload for DCAE.
- *
- * @param policy The microServicePolicy object
- * @return The payload in string (json)
- */
- public static String getUndeployPayload(MicroServicePolicy policy) {
- var rootObject = new JsonObject();
- rootObject.addProperty(DCAE_SERVICETYPE_ID, policy.getDcaeBlueprintId());
- logger.info("DCAE Undeploy payload for multiple blueprints: {}", rootObject);
- return rootObject.toString();
- }
-
- @Override
- public ExternalComponentState computeState(Exchange camelExchange) {
-
- DcaeOperationStatusResponse dcaeResponse = (DcaeOperationStatusResponse) camelExchange.getIn().getExchange()
- .getProperty("dcaeResponse");
-
- if (dcaeResponse == null) {
- setState(BLUEPRINT_DEPLOYED);
- } else {
- if (dcaeResponse.getOperationType().equals(INSTALL) && dcaeResponse.getStatus().equals(SUCCEEDED)) {
- setState(MICROSERVICE_INSTALLED_SUCCESSFULLY);
- } else {
- if (dcaeResponse.getOperationType().equals(INSTALL) && dcaeResponse.getStatus()
- .equals(PROCESSING)) {
- setState(PROCESSING_MICROSERVICE_INSTALLATION);
- } else {
- if (dcaeResponse.getOperationType().equals(INSTALL) && dcaeResponse.getStatus()
- .equals("failed")) {
- setState(MICROSERVICE_INSTALLATION_FAILED);
- } else {
- if (dcaeResponse.getOperationType().equals(UNINSTALL)
- && dcaeResponse.getStatus().equals(SUCCEEDED)) {
- setState(MICROSERVICE_UNINSTALLED_SUCCESSFULLY);
- } else {
- if (dcaeResponse.getOperationType().equals(UNINSTALL)
- && dcaeResponse.getStatus().equals(PROCESSING)) {
- setState(PROCESSING_MICROSERVICE_UNINSTALLATION);
- } else {
- if (dcaeResponse.getOperationType().equals(UNINSTALL) && dcaeResponse.getStatus()
- .equals("failed")) {
- setState(MICROSERVICE_UNINSTALLATION_FAILED);
- } else {
- setState(IN_ERROR);
- }
- }
- }
- }
- }
- }
- }
- return this.getState();
- }
-
- /**
- * Convert the json response to a DcaeInventoryResponse.
- *
- * @param responseBody The DCAE response Json paylaod
- * @return list of DcaeInventoryResponse
- * @throws ParseException In case of issues with the Json parsing
- */
- public static List convertToDcaeInventoryResponse(String responseBody)
- throws ParseException {
- var parser = new JSONParser();
- JSONObject jsonObj = (JSONObject) parser.parse(responseBody);
- JSONArray itemsArray = (JSONArray) jsonObj.get("items");
- Iterator> it = itemsArray.iterator();
- List inventoryResponseList = new LinkedList<>();
- while (it.hasNext()) {
- JSONObject item = (JSONObject) it.next();
- DcaeInventoryResponse response = JsonUtils.GSON.fromJson(item.toString(), DcaeInventoryResponse.class);
- inventoryResponseList.add(response);
- }
- return inventoryResponseList;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java
deleted file mode 100644
index ce7efe494..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.components.external;
-
-import com.google.gson.annotations.Expose;
-import org.apache.camel.Exchange;
-
-/**
- * Should be abstract but Gson can't instantiate it if it's an abstract.
- */
-public class ExternalComponent {
- @Expose
- private ExternalComponentState componentState;
-
- public void setState(ExternalComponentState newState) {
- this.componentState = newState;
- }
-
- public ExternalComponentState getState() {
- return this.componentState;
- }
-
- public String getComponentName() {
- return null;
- }
-
- public ExternalComponentState computeState(Exchange camelExchange) {
- return new ExternalComponentState("INIT", "no desc", 0);
- }
-
- public ExternalComponent(ExternalComponentState initialState) {
- setState(initialState);
- }
-
- public ExternalComponent() {
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java
deleted file mode 100644
index 4f83ffa76..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.components.external;
-
-import com.google.gson.annotations.Expose;
-
-/**
- * This is a transient state reflecting the deployment status of a component. It
- * can be Policy, DCAE, or whatever... This is object is generic. Clamp is now
- * stateless, so it triggers the different components at runtime, the status per
- * component is stored here. The state level is used to re-compute the global
- * state when multiple sub states are required for that computation (generally
- * provided sequentially to the method computeState from the camel routes.
- *
- */
-public class ExternalComponentState implements Comparable {
- @Expose
- private String stateName;
- @Expose
- private String description;
- private int stateLevel;
-
- /**
- * Constructor taking stateName, description and its level.
- *
- * @param stateName The stateName in string
- * @param description The description in string
- * @param level The level, higher value has higher priority and can't be
- * down-graded
- */
- public ExternalComponentState(String stateName, String description, int level) {
- this.stateName = stateName;
- this.description = description;
- this.stateLevel = level;
- }
-
- public ExternalComponentState(String stateName, String description) {
- this(stateName, description, 0);
- }
-
- public ExternalComponentState() {
- }
-
- public String getStateName() {
- return stateName;
- }
-
- public String getDescription() {
- return description;
- }
-
- @Override
- public String toString() {
- return stateName;
- }
-
- public int getLevel() {
- return stateLevel;
- }
-
- public void setLevel(int priority) {
- this.stateLevel = priority;
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((stateName == null) ? 0 : stateName.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- ExternalComponentState other = (ExternalComponentState) obj;
- if (stateName == null) {
- if (other.stateName != null) {
- return false;
- }
- } else if (!stateName.equals(other.stateName)) {
- return false;
- }
- return true;
- }
-
- /**
- * This method compares this object by using the level of them.
- *
- * @param stateToCompare The state to compare to the current object
- * @return If the one given in input has a higher level than the current object
- * it returns -1, 1 otherwise and 0 if equals.
- */
- @Override
- public int compareTo(ExternalComponentState stateToCompare) {
- return Integer.compare(this.getLevel(), stateToCompare.getLevel());
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java
deleted file mode 100644
index dd6526344..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.components.external;
-
-import javax.persistence.Transient;
-import org.apache.camel.Exchange;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.policy.pdpgroup.PdpGroupPayload;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class represents the policy state according to all policies involved in the control loop.
- * It can compute it with all policy queries result.
- * It contains also the method to generate the PDP payload used for the policies deployment.
- */
-public class PolicyComponent extends ExternalComponent {
-
- @Transient
- private static final Logger logger = LoggerFactory.getLogger(PolicyComponent.class);
-
- public static final ExternalComponentState IN_ERROR = new ExternalComponentState("IN_ERROR",
- "There was an error during the sending to policy, the policy engine may be corrupted or inconsistent", 100);
- public static final ExternalComponentState NOT_SENT = new ExternalComponentState("NOT_SENT",
- "The policies defined have NOT yet been created on the policy engine", 90);
- public static final ExternalComponentState SENT = new ExternalComponentState("SENT",
- "The policies defined have been created but NOT deployed on the policy engine", 50);
- public static final ExternalComponentState SENT_AND_DEPLOYED = new ExternalComponentState("SENT_AND_DEPLOYED",
- "The policies defined have been created and deployed on the policy engine", 10);
- public static final ExternalComponentState UNKNOWN = new ExternalComponentState("UNKNOWN",
- "The current status is not clear. Need to refresh the status to get the current status.", 0);
-
- /**
- * Default constructor.
- */
- public PolicyComponent() {
- /*
- * We assume it's good by default as we will receive the state for each policy
- * on by one, each time we increase the level we can't decrease it anymore.
- * That's why it starts with the lowest one SENT_AND_DEPLOYED.
- */
- super(UNKNOWN);
- }
-
- @Override
- public String getComponentName() {
- return "POLICY";
- }
-
- /**
- * Generates the Json that must be sent to policy to add all policies to Active
- * PDP group.
- *
- * @param loop the loop object
- * @param action POST (to add policy to group) or DELETE (to delete policy from group)
- * @return The json, payload to send
- */
- public static String createPoliciesPayloadPdpGroup(Loop loop, String action) {
- var pdpGroupPayload = new PdpGroupPayload();
- loop.getOperationalPolicies().stream().forEach(opPolicy -> pdpGroupPayload
- .updatePdpGroupMap(opPolicy.getPdpGroup(), opPolicy.getPdpSubgroup(), opPolicy.getName(), "1.0.0",
- action));
-
- loop.getMicroServicePolicies().stream().forEach(msPolicy -> pdpGroupPayload
- .updatePdpGroupMap(msPolicy.getPdpGroup(), msPolicy.getPdpSubgroup(), msPolicy.getName(), "1.0.0",
- action));
- return pdpGroupPayload.generatePdpGroupPayload();
- }
-
- private static ExternalComponentState findNewState(boolean found, boolean deployed) {
-
- ExternalComponentState newState = NOT_SENT;
- if (found && deployed) {
- newState = SENT_AND_DEPLOYED;
- } else {
- if (found) {
- newState = SENT;
- } else {
- if (deployed) {
- newState = IN_ERROR;
- }
- }
- }
- return newState;
- }
-
- private static ExternalComponentState mergeStates(ExternalComponentState oldState,
- ExternalComponentState newState) {
- return (oldState.compareTo(newState) < 0) ? newState : oldState;
- }
-
- /**
- * This is a method that expect the results of the queries getPolicy and
- * getPolicyDeployed for a unique policy (op, config, etc ...). It
- * re-computes the global policy state for each policy results given. Therefore
- * this method is called multiple times from the camel route and must be reset
- * for a new global policy state retrieval. The state to compute the global
- * policy state is stored in this class.
- */
- @Override
- public ExternalComponentState computeState(Exchange camelExchange) {
- this.setState(mergeStates(this.getState(),
- findNewState((boolean) camelExchange.getIn().getExchange().getProperty("policyFound"),
- (boolean) camelExchange.getIn().getExchange().getProperty("policyDeployed"))));
- return this.getState();
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java b/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
deleted file mode 100644
index d4b80e509..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.deploy;
-
-import com.google.gson.JsonObject;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.loop.components.external.DcaeComponent;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
-import org.yaml.snakeyaml.Yaml;
-
-/**
- * To decode the bluprint input parameters.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class DcaeDeployParameters {
- private static LinkedHashMap init(Loop loop) {
- LinkedHashMap deploymentParamMap = new LinkedHashMap<>();
- Set microServiceList = loop.getMicroServicePolicies();
-
- for (MicroServicePolicy microService : microServiceList) {
- deploymentParamMap.put(microService.getName(),
- generateDcaeDeployParameter(microService));
- }
- return deploymentParamMap;
- }
-
- private static JsonObject generateDcaeDeployParameter(MicroServicePolicy microService) {
- return generateDcaeDeployParameter(microService.getLoopElementModel().getBlueprint(),
- microService.getName());
- }
-
- @SuppressWarnings("unchecked")
- private static JsonObject generateDcaeDeployParameter(String blueprint, String policyId) {
- var deployJsonBody = new JsonObject();
- var yaml = new Yaml();
- Map inputsNodes = ((Map) ((Map) yaml
- .load(blueprint)).get("inputs"));
- inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> {
- Object defaultValue = ((Map) elem.getValue()).get("default");
- if (defaultValue != null) {
- addPropertyToNode(deployJsonBody, elem.getKey(), defaultValue);
- } else {
- deployJsonBody.addProperty(elem.getKey(), "");
- }
- });
- deployJsonBody.addProperty("policy_id", policyId);
- return deployJsonBody;
- }
-
- private static void addPropertyToNode(JsonObject node, String key, Object value) {
- if (value instanceof String) {
- node.addProperty(key, (String) value);
- } else if (value instanceof Number) {
- node.addProperty(key, (Number) value);
- } else if (value instanceof Boolean) {
- node.addProperty(key, (Boolean) value);
- } else if (value instanceof Character) {
- node.addProperty(key, (Character) value);
- } else {
- node.addProperty(key, JsonUtils.GSON.toJson(value));
- }
- }
-
- /**
- * Convert the object in Json.
- *
- * @return The deploymentParameters in Json
- */
- public static JsonObject getDcaeDeploymentParametersInJson(Loop loop) {
- var globalProperties = new JsonObject();
- var deployParamJson = new JsonObject();
- if (loop.getLoopTemplate().getUniqueBlueprint()) {
- // Normally the unique blueprint could contain multiple microservices but then we can't guess
- // the policy id params that will be used, so here we expect only one by default.
- deployParamJson.add(DcaeComponent.UNIQUE_BLUEPRINT_PARAMETERS,
- generateDcaeDeployParameter(loop.getLoopTemplate().getBlueprint(),
- ((MicroServicePolicy) loop.getMicroServicePolicies().toArray()[0]).getName()));
-
- } else {
- LinkedHashMap deploymentParamMap = init(loop);
- for (Map.Entry mapElement : deploymentParamMap.entrySet()) {
- deployParamJson.add(mapElement.getKey(), mapElement.getValue());
- }
- }
- globalProperties.add("dcaeDeployParameters", deployParamJson);
- return globalProperties;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java
deleted file mode 100644
index 50f6571d6..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.log;
-
-public enum LogType {
- INFO, WARNING, ERROR;
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java
deleted file mode 100644
index 4540d2280..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.log;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.time.Instant;
-import java.time.temporal.ChronoUnit;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-import org.onap.policy.clamp.loop.Loop;
-
-/**
- * This class holds the logs created by the Clamp Backend. The Instant is always
- * rounded to the nearest second as the nano seconds can't be stored in the
- * database. The logs can be therefore exposed to the UI or the client doing
- * some GET Loop on the backend.
- *
- */
-@Entity
-@Table(name = "loop_logs")
-public class LoopLog implements Serializable, Comparable {
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 1988276670074437631L;
-
- @Expose
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private Long id;
-
- @Expose
- @Column(name = "log_type", nullable = false)
- @Enumerated(EnumType.STRING)
- private LogType logType;
-
- @Expose
- @Column(name = "log_component", nullable = false)
- private String logComponent;
-
- @Expose
- @Column(name = "message", columnDefinition = "MEDIUMTEXT", nullable = false)
- private String message;
-
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "loop_id", nullable = false)
- private Loop loop;
-
- @Expose
- @Column(name = "log_instant", nullable = false)
- private Instant logInstant = Instant.now().truncatedTo(ChronoUnit.SECONDS);
-
- public LoopLog() {
- }
-
- /**
- * Constructor For LoopLog taking message and logtype, logComponent and loop
- * reference.
- *
- * @param message The message as string
- * @param logType Type like INFO, WARN, DEBUG
- * @param logComponent A String with DCAE, POLICY, CLAMP ,etc...
- * @param loop The loop object that this log is about
- */
- public LoopLog(String message, LogType logType, String logComponent, Loop loop) {
- this.message = message;
- this.logType = logType;
- this.loop = loop;
- this.logComponent = logComponent;
- }
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public LogType getLogType() {
- return logType;
- }
-
- public void setLogType(LogType logType) {
- this.logType = logType;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public Loop getLoop() {
- return loop;
- }
-
- public void setLoop(Loop loop) {
- this.loop = loop;
- }
-
- public Instant getLogInstant() {
- return logInstant;
- }
-
- public void setLogInstant(Instant logInstant) {
- this.logInstant = logInstant.truncatedTo(ChronoUnit.SECONDS);
- }
-
- public String getLogComponent() {
- return logComponent;
- }
-
- public void setLogComponent(String logComponent) {
- this.logComponent = logComponent;
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((id == null) ? 0 : id.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- LoopLog other = (LoopLog) obj;
- if (id == null) {
- if (other.id != null) {
- return false;
- }
- } else if (!id.equals(other.id)) {
- return false;
- }
- return true;
- }
-
- @Override
- public int compareTo(LoopLog arg0) {
- // Reverse it, so that by default we have the latest
- if (getId() == null) {
- return 1;
- }
- if (arg0.getId() == null) {
- return -1;
- }
- return arg0.getId().compareTo(this.getId());
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java
deleted file mode 100644
index df1f3919e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.log;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface LoopLogRepository extends JpaRepository {
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java
deleted file mode 100644
index a2f133f2f..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.log;
-
-import org.onap.policy.clamp.loop.Loop;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class LoopLogService {
-
- private final LoopLogRepository repository;
-
- @Autowired
- public LoopLogService(LoopLogRepository repository) {
- this.repository = repository;
- }
-
- public void addLog(String message, String logType, Loop loop) {
- this.addLogForComponent(message, logType, "CLAMP", loop);
- }
-
- public void addLogForComponent(String message, String logType, String component, Loop loop) {
- loop.addLog(repository.save(new LoopLog(message, LogType.valueOf(logType), component, loop)));
- }
-
- public boolean isExisting(Long logId) {
- return repository.existsById(logId);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java b/runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java
deleted file mode 100644
index 10d98e362..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * 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.policy.clamp.loop.service;
-
-import com.google.gson.JsonObject;
-import java.util.Map.Entry;
-import org.onap.policy.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException;
-import org.onap.policy.clamp.clds.sdc.controller.installer.CsarHandler;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.sdc.tosca.parser.api.IEntityDetails;
-import org.onap.sdc.tosca.parser.elements.queries.EntityQuery;
-import org.onap.sdc.tosca.parser.elements.queries.TopologyTemplateQuery;
-import org.onap.sdc.tosca.parser.enums.EntityTemplateType;
-import org.onap.sdc.tosca.parser.enums.SdcTypes;
-import org.onap.sdc.toscaparser.api.NodeTemplate;
-import org.onap.sdc.toscaparser.api.Property;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-@Component
-@Qualifier("csarInstaller")
-public class CsarServiceInstaller {
- private static final Logger logger = LoggerFactory.getLogger(CsarServiceInstaller.class);
-
- @Autowired
- ServicesRepository serviceRepository;
-
- /**
- * Install the Service from the csar.
- *
- * @param csar The Csar Handler
- * @return The service object
- */
- @Transactional(propagation = Propagation.REQUIRES_NEW)
- public Service installTheService(CsarHandler csar) {
- logger.info("Start to install the Service from csar");
- JsonObject serviceDetails = JsonUtils.GSON.fromJson(
- JsonUtils.GSON.toJson(csar.getSdcCsarHelper().getServiceMetadataAllProperties()), JsonObject.class);
-
- // Add properties details for each type, VfModule, VF, VFC, ....
- JsonObject resourcesProp = createServicePropertiesByType(csar);
- resourcesProp.add("VFModule", createVfModuleProperties(csar));
-
- var modelService = new Service(serviceDetails, resourcesProp,
- csar.getSdcNotification().getServiceVersion());
-
- serviceRepository.save(modelService);
- logger.info("Successfully installed the Service");
- return modelService;
- }
-
- private JsonObject createServicePropertiesByType(CsarHandler csar) {
- var resourcesProp = new JsonObject();
- // Iterate on all types defined in the tosca lib
- for (SdcTypes type : SdcTypes.values()) {
- var resourcesPropByType = new JsonObject();
- // For each type, get the metadata of each nodetemplate
- for (NodeTemplate nodeTemplate : csar.getSdcCsarHelper().getServiceNodeTemplateBySdcType(type)) {
- resourcesPropByType.add(nodeTemplate.getName(),
- JsonUtils.GSON.toJsonTree(nodeTemplate.getMetaData().getAllProperties()));
- }
- resourcesProp.add(type.getValue(), resourcesPropByType);
- }
- return resourcesProp;
- }
-
- private static JsonObject createVfModuleProperties(CsarHandler csar) {
- var vfModuleProps = new JsonObject();
- // Loop on all Groups defined in the service (VFModule entries type:
- // org.openecomp.groups.VfModule)
- for (IEntityDetails entity : csar.getSdcCsarHelper().getEntity(
- EntityQuery.newBuilder(EntityTemplateType.GROUP).build(),
- TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE).build(), false)) {
- // Get all metadata info
- JsonObject allVfProps = (JsonObject) JsonUtils.GSON.toJsonTree(entity.getMetadata().getAllProperties());
- vfModuleProps.add(entity.getMetadata().getAllProperties().get("vfModuleModelName"), allVfProps);
- // now append the properties section so that we can also have isBase,
- // volume_group, etc ... fields under the VFmodule name
- for (Entry additionalProp : entity.getProperties().entrySet()) {
- allVfProps.add(additionalProp.getValue().getName(),
- JsonUtils.GSON.toJsonTree(additionalProp.getValue().getValue()));
- }
- }
- return vfModuleProps;
- }
-
- /**
- * Verify whether Service in Csar is deployed.
- *
- * @param csar The Csar Handler
- * @return The flag indicating whether Service is deployed
- * @throws SdcArtifactInstallerException The SdcArtifactInstallerException
- */
- public boolean isServiceAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException {
- var alreadyInstalled = true;
- var serviceDetails = JsonUtils.GSON.fromJson(
- JsonUtils.GSON.toJson(csar.getSdcCsarHelper().getServiceMetadataAllProperties()), JsonObject.class);
- alreadyInstalled = serviceRepository.existsById(serviceDetails.get("UUID").getAsString());
-
- return alreadyInstalled;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java b/runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java
deleted file mode 100644
index c955d2696..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.service;
-
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import org.hibernate.annotations.Type;
-import org.hibernate.annotations.TypeDef;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.dao.model.jsontype.StringJsonUserType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Entity
-@Table(name = "services")
-@TypeDef(name = "json", typeClass = StringJsonUserType.class)
-public class Service implements Serializable {
-
- /**
- * The serial version id.
- */
- private static final long serialVersionUID = 1331119060272760758L;
-
- @Transient
- private static final Logger logger = LoggerFactory.getLogger(Service.class);
-
- @Id
- @Column(name = "service_uuid", unique = true)
- private String serviceUuid;
-
- @Column(nullable = false, name = "name")
- private String name;
-
- @Column(name = "version")
- private String version;
-
- @Expose
- @Type(type = "json")
- @Column(columnDefinition = "json", name = "service_details")
- private JsonObject serviceDetails;
-
- @Expose
- @Type(type = "json")
- @Column(columnDefinition = "json", name = "resource_details")
- private JsonObject resourceDetails;
-
- /**
- * Default constructor for serialization.
- */
- public Service() {
- }
-
- /**
- * Constructor with string.
- */
- public Service(String serviceDetails, String resourceDetails) {
- JsonObject serviceDetailsJson = JsonUtils.GSON.fromJson(serviceDetails, JsonObject.class);
- this.name = serviceDetailsJson.get("name").getAsString();
- this.serviceUuid = serviceDetailsJson.get("UUID").getAsString();
- this.serviceDetails = serviceDetailsJson;
- this.resourceDetails = JsonUtils.GSON.fromJson(resourceDetails, JsonObject.class);
- }
-
- /**
- * Constructor with Json Object.
- */
- public Service(JsonObject serviceDetails, JsonObject resourceDetails, String version) {
- this.name = serviceDetails.get("name").getAsString();
- this.serviceUuid = serviceDetails.get("UUID").getAsString();
- this.serviceDetails = serviceDetails;
- this.resourceDetails = resourceDetails;
- this.version = version;
- }
-
- public String getServiceUuid() {
- return serviceUuid;
- }
-
- public JsonObject getServiceDetails() {
- return serviceDetails;
- }
-
- public JsonObject getResourceDetails() {
- return resourceDetails;
- }
-
- public JsonObject getResourceByType(String type) {
- return (JsonObject) resourceDetails.get(type);
- }
-
- /**
- * Name getter.
- *
- * @return the name
- */
- public String getName() {
- return name;
- }
-
- /**
- * Version getter.
- *
- * @return the version
- */
- public String getVersion() {
- return version;
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((serviceUuid == null) ? 0 : serviceUuid.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- Service other = (Service) obj;
- if (serviceUuid == null) {
- if (other.serviceUuid != null) {
- return false;
- }
- } else {
- if (!serviceUuid.equals(other.serviceUuid)) {
- return false;
- }
- }
- return true;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java
deleted file mode 100644
index 62596a08e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.service;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface ServicesRepository extends JpaRepository {
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java
deleted file mode 100644
index e15731fc7..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * 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.policy.clamp.loop.template;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import lombok.Getter;
-import lombok.Setter;
-import org.hibernate.annotations.SortNatural;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.loop.common.AuditEntity;
-import org.onap.policy.clamp.policy.Policy;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.policy.clamp.policy.operational.OperationalPolicy;
-
-/**
- * This class represents a micro service/operational/... model for a loop template.
- * So it's an element in the flow (a box shown in the loop).
- */
-@Getter
-@Setter
-@Entity
-@Table(name = "loop_element_models")
-public class LoopElementModel extends AuditEntity implements Serializable {
- /**
- * The serial version id.
- */
- private static final long serialVersionUID = -286522707701376645L;
-
- @Id
- @Expose
- @Column(nullable = false, name = "name", unique = true)
- private String name;
-
- @Expose
- @Column(name = "dcae_blueprint_id")
- private String dcaeBlueprintId;
-
- /**
- * Here we store the blueprint coming from DCAE, it can be null if this is not a micro service model.
- */
- @Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml")
- private String blueprint;
-
- public static final String MICRO_SERVICE_TYPE = "MICRO_SERVICE_TYPE";
- public static final String OPERATIONAL_POLICY_TYPE = "OPERATIONAL_POLICY_TYPE";
- /**
- * The type of element.
- */
- @Expose
- @Column(nullable = false, name = "loop_element_type")
- private String loopElementType;
-
- /**
- * This variable is used to display the micro-service name in the SVG.
- */
- @Expose
- @Column(name = "short_name")
- private String shortName;
-
- /**
- * This variable is used to store the type mentioned in the micro-service
- * blueprint.
- */
- @Expose
- @ManyToMany(
- fetch = FetchType.EAGER,
- cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
- @JoinTable(
- name = "loopelementmodels_to_policymodels",
- joinColumns = @JoinColumn(name = "loop_element_name", referencedColumnName = "name"),
- inverseJoinColumns = {
- @JoinColumn(name = "policy_model_type", referencedColumnName = "policy_model_type"),
- @JoinColumn(name = "policy_model_version", referencedColumnName = "version")})
- @SortNatural
- private SortedSet policyModels = new TreeSet<>();
-
- @OneToMany(fetch = FetchType.LAZY, mappedBy = "loopElementModel", orphanRemoval = true)
- private Set usedByLoopTemplates = new HashSet<>();
-
- /**
- * Method to add a new policyModel to the list.
- *
- * @param policyModel The policy model
- */
- public void addPolicyModel(PolicyModel policyModel) {
- policyModels.add(policyModel);
- policyModel.getUsedByElementModels().add(this);
- }
-
- /**
- * Default constructor for serialization.
- */
- public LoopElementModel() {
- }
-
- /**
- * Constructor.
- *
- * @param name The name id
- * @param loopElementType The type of loop element
- * @param blueprint The blueprint defined for dcae that contains the
- * policy type to use
- */
- public LoopElementModel(String name, String loopElementType, String blueprint) {
- this.name = name;
- this.loopElementType = loopElementType;
- this.blueprint = blueprint;
- }
-
- /**
- * Create a policy instance from the current loop element model.
- *
- * @return A Policy object.
- */
- public Policy createPolicyInstance(Loop loop, ToscaConverterWithDictionarySupport toscaConverter) {
- if (LoopElementModel.MICRO_SERVICE_TYPE.equals(this.getLoopElementType())) {
- return new MicroServicePolicy(loop, loop.getModelService(), this, toscaConverter);
- } else if (LoopElementModel.OPERATIONAL_POLICY_TYPE.equals(this.getLoopElementType())) {
- return new OperationalPolicy(loop, loop.getModelService(), this, toscaConverter);
- } else {
- return null;
- }
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- LoopElementModel other = (LoopElementModel) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java
deleted file mode 100644
index d9b879d0f..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface LoopElementModelsRepository extends JpaRepository {
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java
deleted file mode 100644
index abedf1896..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.template;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Convert;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import org.hibernate.annotations.SortNatural;
-import org.onap.policy.clamp.loop.common.AuditEntity;
-import org.onap.policy.clamp.loop.service.Service;
-
-@Entity
-@Table(name = "loop_templates")
-public class LoopTemplate extends AuditEntity implements Serializable {
-
- /**
- * The serial version id.
- */
- private static final long serialVersionUID = -286522707701388642L;
-
- @Id
- @Expose
- @Column(nullable = false, name = "name", unique = true)
- private String name;
-
- @Expose
- @Column(name = "dcae_blueprint_id")
- private String dcaeBlueprintId;
-
- /**
- * This field is used when we have a blueprint defining all microservices. The
- * other option would be to have independent blueprint for each microservices.
- * In that case they are stored in each MicroServiceModel
- */
- @Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml")
- private String blueprint;
-
- @Expose
- @OneToMany(
- cascade = CascadeType.ALL,
- fetch = FetchType.EAGER,
- mappedBy = "loopTemplate",
- orphanRemoval = true)
- @SortNatural
- private SortedSet loopElementModelsUsed = new TreeSet<>();
-
- @Expose
- @ManyToOne(
- fetch = FetchType.EAGER,
- cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
- @JoinColumn(name = "service_uuid")
- private Service modelService;
-
- @Expose
- @Column(name = "maximum_instances_allowed")
- private Integer maximumInstancesAllowed;
-
- @Expose
- @Column(name = "unique_blueprint", columnDefinition = "boolean default false")
- private boolean uniqueBlueprint;
-
- /**
- * Type of Loop allowed to be created.
- */
- @Expose
- @Column(name = "allowed_loop_type")
- @Convert(converter = LoopTypeConvertor.class)
- private LoopType allowedLoopType = LoopType.CLOSED;
-
- /**
- * name getter.
- *
- * @return the name
- */
- public String getName() {
- return name;
- }
-
- /**
- * name setter.
- *
- * @param name the name to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * blueprint getter.
- *
- * @return the blueprint
- */
- public String getBlueprint() {
- return blueprint;
- }
-
- /**
- * dcaeBlueprintId getter.
- *
- * @return the dcaeBlueprintId
- */
- public String getDcaeBlueprintId() {
- return dcaeBlueprintId;
- }
-
- /**
- * dcaeBlueprintId setter.
- *
- * @param dcaeBlueprintId the dcaeBlueprintId to set
- */
- public void setDcaeBlueprintId(String dcaeBlueprintId) {
- this.dcaeBlueprintId = dcaeBlueprintId;
- }
-
- /**
- * blueprint setter.
- *
- * @param blueprint the blueprint to set
- */
- public void setBlueprint(String blueprint) {
- this.blueprint = blueprint;
- if (blueprint == null) {
- this.uniqueBlueprint = false;
- } else {
- this.uniqueBlueprint = true;
- }
- }
-
- /**
- * loopElementModelsUsed getter.
- *
- * @return the loopElementModelsUsed
- */
- public SortedSet getLoopElementModelsUsed() {
- return loopElementModelsUsed;
- }
-
- /**
- * maximumInstancesAllowed getter.
- *
- * @return the maximumInstancesAllowed
- */
- public Integer getMaximumInstancesAllowed() {
- return maximumInstancesAllowed;
- }
-
- /**
- * maximumInstancesAllowed setter.
- *
- * @param maximumInstancesAllowed the maximumInstancesAllowed to set
- */
- public void setMaximumInstancesAllowed(Integer maximumInstancesAllowed) {
- this.maximumInstancesAllowed = maximumInstancesAllowed;
- }
-
- /**
- * allowedLoopType getter.
- *
- * @return the allowedLoopType Type of Loop allowed to be created
- */
- public LoopType getAllowedLoopType() {
- return allowedLoopType;
- }
-
- /**
- * allowedLoopType setter.
- *
- * @param allowedLoopType the allowedLoopType to set
- */
- public void setAllowedLoopType(LoopType allowedLoopType) {
- this.allowedLoopType = allowedLoopType;
- }
-
- /**
- * Add list of loopElements to the current template, each loopElementModel is
- * added at the end of the list so the flowOrder is computed automatically.
- *
- * @param loopElementModels The loopElementModel set to add
- */
- public void addLoopElementModels(Set loopElementModels) {
- for (LoopElementModel loopElementModel : loopElementModels) {
- addLoopElementModel(loopElementModel);
- }
- }
-
- /**
- * Add a loopElement to the current template, the loopElementModel is added at
- * the end of the list so the flowOrder is computed automatically.
- *
- * @param loopElementModel The loopElementModel to add
- */
- public void addLoopElementModel(LoopElementModel loopElementModel) {
- this.addLoopElementModel(loopElementModel, this.loopElementModelsUsed.size());
- }
-
- /**
- * Add a loopElement model to the current template, the flow order must be
- * specified manually.
- *
- * @param loopElementModel The loopElementModel to add
- * @param listPosition The position in the flow
- */
- public void addLoopElementModel(LoopElementModel loopElementModel, Integer listPosition) {
- var jointEntry = new LoopTemplateLoopElementModel(this, loopElementModel, listPosition);
- this.loopElementModelsUsed.add(jointEntry);
- loopElementModel.getUsedByLoopTemplates().add(jointEntry);
- }
-
- /**
- * modelService getter.
- *
- * @return the modelService
- */
- public Service getModelService() {
- return modelService;
- }
-
- /**
- * modelService setter.
- *
- * @param modelService the modelService to set
- */
- public void setModelService(Service modelService) {
- this.modelService = modelService;
- }
-
- /**
- * uniqueBlueprint getter.
- *
- * @return the uniqueBlueprint
- */
- public boolean getUniqueBlueprint() {
- return uniqueBlueprint;
- }
-
- /**
- * Default constructor for serialization.
- */
- public LoopTemplate() {
-
- }
-
- /**
- * Constructor.
- *
- * @param name The loop template name id
- * @param blueprint The blueprint containing all microservices (legacy
- * case)
- * @param maxInstancesAllowed The maximum number of instances that can be
- * created from that template
- * @param service The service associated to that loop template
- */
- public LoopTemplate(String name, String blueprint, Integer maxInstancesAllowed, Service service) {
- this.name = name;
- this.setBlueprint(blueprint);
-
- this.maximumInstancesAllowed = maxInstancesAllowed;
- this.modelService = service;
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- LoopTemplate other = (LoopTemplate) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- return true;
- }
-
- /**
- * Generate the loop template name.
- *
- * @param serviceName The service name
- * @param serviceVersion The service version
- * @param resourceName The resource name
- * @param blueprintFileName The blueprint file name
- * @return The generated loop template name
- */
- public static String generateLoopTemplateName(String serviceName, String serviceVersion,
- String resourceName, String blueprintFileName) {
- StringBuilder buffer = new StringBuilder("LOOP_TEMPLATE_").append(serviceName).append("_v")
- .append(serviceVersion).append("_").append(resourceName).append("_")
- .append(blueprintFileName.replaceAll(".yaml", ""));
- return buffer.toString().replace('.', '_').replace(" ", "");
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java
deleted file mode 100644
index 80c8e447e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.template;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.MapsId;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = "looptemplates_to_loopelementmodels")
-public class LoopTemplateLoopElementModel implements Serializable, Comparable {
-
- /**
- * Serial ID.
- */
- private static final long serialVersionUID = 5924989899078094245L;
-
- @EmbeddedId
- private LoopTemplateLoopElementModelId loopTemplateLoopElementModelId;
-
- @ManyToOne(fetch = FetchType.LAZY)
- @MapsId("loopTemplateName")
- @JoinColumn(name = "loop_template_name")
- private LoopTemplate loopTemplate;
-
- @Expose
- @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
- @MapsId("loopElementModelName")
- @JoinColumn(name = "loop_element_model_name")
- private LoopElementModel loopElementModel;
-
- @Expose
- @Column(nullable = false, name = "flow_order")
- private Integer flowOrder;
-
- /**
- * Default constructor for serialization.
- */
- public LoopTemplateLoopElementModel() {
-
- }
-
- /**
- * Constructor.
- *
- * @param loopTemplate The loop template object
- * @param loopElementModel The loopElementModel object
- * @param flowOrder The position of the micro service in the flow
- */
- public LoopTemplateLoopElementModel(LoopTemplate loopTemplate, LoopElementModel loopElementModel,
- Integer flowOrder) {
- this.loopTemplate = loopTemplate;
- this.loopElementModel = loopElementModel;
- this.flowOrder = flowOrder;
- this.loopTemplateLoopElementModelId = new LoopTemplateLoopElementModelId(loopTemplate.getName(),
- loopElementModel.getName());
- }
-
- /**
- * loopTemplate getter.
- *
- * @return the loopTemplate
- */
- public LoopTemplate getLoopTemplate() {
- return loopTemplate;
- }
-
- /**
- * loopTemplate setter.
- *
- * @param loopTemplate the loopTemplate to set
- */
- public void setLoopTemplate(LoopTemplate loopTemplate) {
- this.loopTemplate = loopTemplate;
- }
-
- /**
- * loopElementModel getter.
- *
- * @return the loopElementModel
- */
- public LoopElementModel getLoopElementModel() {
- return loopElementModel;
- }
-
- /**
- * loopElementModel setter.
- *
- * @param loopElementModel the loopElementModel to set
- */
- public void setLoopElementModel(LoopElementModel loopElementModel) {
- this.loopElementModel = loopElementModel;
- }
-
- /**
- * flowOrder getter.
- *
- * @return the flowOrder
- */
- public Integer getFlowOrder() {
- return flowOrder;
- }
-
- /**
- * flowOrder setter.
- *
- * @param flowOrder the flowOrder to set
- */
- public void setFlowOrder(Integer flowOrder) {
- this.flowOrder = flowOrder;
- }
-
- @Override
- public int compareTo(LoopTemplateLoopElementModel arg0) {
- // Reverse it, so that by default we have the latest
- if (getFlowOrder() == null) {
- return 1;
- }
- if (arg0.getFlowOrder() == null) {
- return -1;
- }
- return arg0.getFlowOrder().compareTo(this.getFlowOrder());
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((loopTemplate == null) ? 0 : loopTemplate.hashCode());
- result = prime * result + ((loopElementModel == null) ? 0 : loopElementModel.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- LoopTemplateLoopElementModel other = (LoopTemplateLoopElementModel) obj;
- if (loopTemplate == null) {
- if (other.loopTemplate != null) {
- return false;
- }
- } else if (!loopTemplate.equals(other.loopTemplate)) {
- return false;
- }
- if (loopElementModel == null) {
- if (other.loopElementModel != null) {
- return false;
- }
- } else if (!loopElementModel.equals(other.loopElementModel)) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java
deleted file mode 100644
index 9da8272bd..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-
-@Embeddable
-public class LoopTemplateLoopElementModelId implements Serializable {
-
- /**
- * Serial ID.
- */
- private static final long serialVersionUID = 4089888115504914773L;
-
- @Expose
- @Column(name = "loop_template_name")
- private String loopTemplateName;
-
- @Expose
- @Column(name = "loop_element_model_name")
- private String loopElementModelName;
-
- /**
- * Default constructor for serialization.
- */
- public LoopTemplateLoopElementModelId() {
-
- }
-
- /**
- * Constructor.
- *
- * @param loopTemplateName The loop template name id
- * @param microServiceModelName THe micro Service name id
- */
- public LoopTemplateLoopElementModelId(String loopTemplateName, String microServiceModelName) {
- this.loopTemplateName = loopTemplateName;
- this.loopElementModelName = microServiceModelName;
- }
-
- /**
- * loopTemplateName getter.
- *
- * @return the loopTemplateName
- */
- public String getLoopTemplateName() {
- return loopTemplateName;
- }
-
- /**
- * loopTemplateName setter.
- *
- * @param loopTemplateName the loopTemplateName to set
- */
- public void setLoopTemplateName(String loopTemplateName) {
- this.loopTemplateName = loopTemplateName;
- }
-
- /**
- * microServiceModelName getter.
- *
- * @return the microServiceModelName
- */
- public String getLoopElementModelName() {
- return loopElementModelName;
- }
-
- /**
- * loopElementModelName setter.
- *
- * @param loopElementModelName the loopElementModelName to set
- */
- public void setLoopElementModelName(String loopElementModelName) {
- this.loopElementModelName = loopElementModelName;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java
deleted file mode 100644
index 3993dee34..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-import java.util.List;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface LoopTemplatesRepository extends JpaRepository {
-
- @Query("SELECT looptemplate.name FROM LoopTemplate as looptemplate")
- List getAllLoopTemplateNames();
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java
deleted file mode 100644
index 974cf3b5c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-import java.util.List;
-import org.onap.policy.clamp.clds.sdc.controller.installer.ChainGenerator;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class LoopTemplatesService {
-
- private final LoopTemplatesRepository loopTemplatesRepository;
-
- @Autowired
- ChainGenerator chainGenerator;
-
- /**
- * Constructor.
- */
- @Autowired
- public LoopTemplatesService(LoopTemplatesRepository loopTemplatesRepository) {
- this.loopTemplatesRepository = loopTemplatesRepository;
-
- }
-
- public LoopTemplate saveOrUpdateLoopTemplate(LoopTemplate loopTemplate) {
- return loopTemplatesRepository.save(loopTemplate);
- }
-
- public List getLoopTemplateNames() {
- return loopTemplatesRepository.getAllLoopTemplateNames();
- }
-
- public List getAllLoopTemplates() {
- return loopTemplatesRepository.findAll();
- }
-
- public LoopTemplate getLoopTemplate(String name) {
- return loopTemplatesRepository.findById(name).orElse(null);
- }
-
- public void deleteLoopTemplate(String name) {
- loopTemplatesRepository.deleteById(name);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java
deleted file mode 100644
index eacfecb5e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-/**
- * Enums for AllowedLoopType in LoopTemplate enity.
- *
- */
-public enum LoopType {
- OPEN("OPEN"), CLOSED("CLOSED"), HYBRID("HYBRID");
-
- private String value;
-
- private LoopType(String value) {
- this.value = value;
- }
-
- public String getValue() {
- return value;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java
deleted file mode 100644
index 81ca18d57..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-import java.util.stream.Stream;
-import javax.persistence.AttributeConverter;
-
-/**
- * Attribute Converter to allow using LoopType Enum values in DB and Java classes.
- *
- */
-public class LoopTypeConvertor implements AttributeConverter {
-
- @Override
- public String convertToDatabaseColumn(LoopType loopType) {
- if (loopType == null) {
- return null;
- }
- return loopType.getValue();
- }
-
- @Override
- public LoopType convertToEntityAttribute(String value) {
- if (value == null) {
- return null;
- }
-
- return Stream.of(LoopType.values()).filter(c -> c.getValue().equals(value)).findFirst()
- .orElseThrow(IllegalArgumentException::new);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java
deleted file mode 100644
index 741530e99..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.loop.template;
-
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Set;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.IdClass;
-import javax.persistence.ManyToMany;
-import javax.persistence.Table;
-import org.hibernate.annotations.Type;
-import org.hibernate.annotations.TypeDef;
-import org.onap.policy.clamp.dao.model.jsontype.StringJsonUserType;
-import org.onap.policy.clamp.loop.common.AuditEntity;
-import org.onap.policy.clamp.util.SemanticVersioning;
-
-/**
- * This class represents the policy model tosca revision that we can have to a
- * specific microservice.
- */
-@Entity
-@Table(name = "policy_models")
-@IdClass(PolicyModelId.class)
-@TypeDef(name = "json", typeClass = StringJsonUserType.class)
-public class PolicyModel extends AuditEntity implements Serializable, Comparable {
-
- /**
- * The serial version id.
- */
- private static final long serialVersionUID = -286522705701376645L;
-
- /**
- * This variable is used to store the type mentioned in the micro-service
- * blueprint.
- */
- @Id
- @Expose
- @Column(nullable = false, name = "policy_model_type")
- private String policyModelType;
-
- /**
- * Semantic versioning on policy side.
- */
- @Id
- @Expose
- @Column(name = "version", nullable = false)
- private String version;
-
- @Column(columnDefinition = "MEDIUMTEXT", name = "policy_tosca")
- private String policyModelTosca;
-
- @Expose
- @Column(name = "policy_acronym")
- private String policyAcronym;
-
- @ManyToMany(mappedBy = "policyModels", fetch = FetchType.EAGER)
- private Set usedByElementModels = new HashSet<>();
-
- @Expose
- @Type(type = "json")
- @Column(columnDefinition = "json", name = "policy_pdp_group")
- private JsonObject policyPdpGroup;
-
- /**
- * usedByElementModels getter.
- *
- * @return the usedByElementModels
- */
- public Set getUsedByElementModels() {
- return usedByElementModels;
- }
-
- /**
- * policyPdpGroup getter.
- *
- * @return the policyPdpGroup
- */
- public JsonObject getPolicyPdpGroup() {
- return policyPdpGroup;
- }
-
- /**
- * policyPdpGroup setter.
- *
- * @param policyPdpGroup the policyPdpGroup to set
- */
- public void setPolicyPdpGroup(JsonObject policyPdpGroup) {
- this.policyPdpGroup = policyPdpGroup;
- }
-
- /**
- * policyModelTosca getter.
- *
- * @return the policyModelTosca
- */
- public String getPolicyModelTosca() {
- return policyModelTosca;
- }
-
- /**
- * policyModelTosca setter.
- *
- * @param policyModelTosca the policyModelTosca to set
- */
- public void setPolicyModelTosca(String policyModelTosca) {
- this.policyModelTosca = policyModelTosca;
- }
-
- /**
- * policyModelType getter.
- *
- * @return the modelType
- */
- public String getPolicyModelType() {
- return policyModelType;
- }
-
- /**
- * policyModelType setter.
- *
- * @param modelType the modelType to set
- */
- public void setPolicyModelType(String modelType) {
- this.policyModelType = modelType;
- }
-
- /**
- * version getter.
- *
- * @return the version
- */
- public String getVersion() {
- return version;
- }
-
- /**
- * version setter.
- *
- * @param version the version to set
- */
- public void setVersion(String version) {
- // Try to convert it before
- this.version = version;
- }
-
- /**
- * policyAcronym getter.
- *
- * @return the policyAcronym value
- */
- public String getPolicyAcronym() {
- return policyAcronym;
- }
-
- /**
- * policyAcronym setter.
- *
- * @param policyAcronym The policyAcronym to set
- */
- public void setPolicyAcronym(String policyAcronym) {
- this.policyAcronym = policyAcronym;
- }
-
- /**
- * Default constructor for serialization.
- */
- public PolicyModel() {
- }
-
- /**
- * Constructor.
- *
- * @param policyType The policyType (referenced in the blueprint
- * @param policyModelTosca The policy tosca model in yaml
- * @param version the version like 1.0.0
- * @param policyAcronym Subtype for policy if it exists (could be used by UI)
- */
- public PolicyModel(String policyType, String policyModelTosca, String version,
- String policyAcronym) {
- this.policyModelType = policyType;
- this.policyModelTosca = policyModelTosca;
- this.version = version;
- this.policyAcronym = policyAcronym;
- if (this.policyAcronym == null) {
- this.policyAcronym = createDefaultPolicyAcronym(policyType);
- }
- }
-
- /**
- * Constructor with acronym generated by default from policyType.
- *
- * @param policyType The policyType (referenced in the blueprint
- * @param policyModelTosca The policy tosca model in yaml
- * @param version the version like 1.0.0
- */
- public PolicyModel(String policyType, String policyModelTosca, String version) {
- this(policyType, policyModelTosca, version, null);
- }
-
- public static String createDefaultPolicyAcronym(String policyType) {
- String[] policyNameArray = policyType.split("\\.");
- return policyNameArray[policyNameArray.length - 1];
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((policyModelType == null) ? 0 : policyModelType.hashCode());
- result = prime * result + ((version == null) ? 0 : version.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- PolicyModel other = (PolicyModel) obj;
- if (policyModelType == null) {
- if (other.policyModelType != null) {
- return false;
- }
- } else if (!policyModelType.equals(other.policyModelType)) {
- return false;
- }
- if (version == null) {
- if (other.version != null) {
- return false;
- }
- } else if (!version.equals(other.version)) {
- return false;
- }
- return true;
- }
-
- @Override
- public int compareTo(PolicyModel arg0) {
-
- if (this.getPolicyModelType().equals(arg0.getPolicyModelType())) {
- // Reverse it, so that by default we have the latest in they are same model type
- return SemanticVersioning.compare(arg0.getVersion(), this.version);
- } else {
- return this.getPolicyModelType().compareTo(arg0.getPolicyModelType());
- }
-
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java
deleted file mode 100644
index 2591bd174..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-
-public class PolicyModelId implements Serializable {
-
- /**
- * Serial Id.
- */
- private static final long serialVersionUID = -2846526482064334745L;
-
- @Expose
- private String policyModelType;
-
- @Expose
- private String version;
-
- /**
- * Default constructor for serialization.
- */
- public PolicyModelId() {
-
- }
-
- /**
- * Constructor.
- */
- public PolicyModelId(String policyModelType, String version) {
- this.policyModelType = policyModelType;
- this.version = version;
- }
-
- /**
- * policyModelType getter.
- *
- * @return the policyModelType
- */
- public String getPolicyModelType() {
- return policyModelType;
- }
-
- /**
- * policyModelType setter.
- *
- * @param policyModelType the policyModelType to set
- */
- public void setPolicyModelType(String policyModelType) {
- this.policyModelType = policyModelType;
- }
-
- /**
- * version getter.
- *
- * @return the version
- */
- public String getVersion() {
- return version;
- }
-
- /**
- * version setter.
- *
- * @param version the version to set
- */
- public void setVersion(String version) {
- this.version = version;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java
deleted file mode 100644
index 6ff7e3d0c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop.template;
-
-import java.util.List;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface PolicyModelsRepository extends JpaRepository {
- @Query("SELECT policymodel.policyModelType FROM PolicyModel as policymodel")
- List getAllPolicyModelType();
-
- List findByPolicyModelType(String policyModelType);
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
deleted file mode 100644
index ba0429fb1..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.loop.template;
-
-import com.google.gson.JsonObject;
-import java.util.List;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.policy.pdpgroup.PdpGroupsAnalyzer;
-import org.onap.policy.models.pdp.concepts.PdpGroups;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * This class contains the methods to access the policyModel object in db.
- */
-@Service
-public class PolicyModelsService {
- private final PolicyModelsRepository policyModelsRepository;
-
- /**
- * This is the new tosca converter that must be used in clamp.
- */
- @Autowired
- private ToscaConverterWithDictionarySupport toscaConverterWithDictionarySupport;
-
- @Autowired
- public PolicyModelsService(PolicyModelsRepository policyModelrepo) {
- policyModelsRepository = policyModelrepo;
- }
-
- /**
- * Save or Update Policy Model.
- *
- * @param policyModel The policyModel
- * @return The Policy Model
- */
- public PolicyModel saveOrUpdatePolicyModel(PolicyModel policyModel) {
- return policyModelsRepository.saveAndFlush(policyModel);
- }
-
- /**
- * Verify whether Policy Model exist by ID.
- *
- * @param policyModelId The policyModel Id
- * @return The flag indicates whether Policy Model exist
- */
- public boolean existsById(PolicyModelId policyModelId) {
- return policyModelsRepository.existsById(policyModelId);
- }
-
- /**
- * This method retrieves the tosca model and convert it to a Json schema.
- * That json schema is normally used by the UI.
- *
- * @param policyType The policy model type id
- * @param policyTypeVersion The policy model type version
- * @return A JsonObject with the json schema describing the tosca
- */
- public JsonObject getPolicyModelJson(String policyType, String policyTypeVersion) {
- var thePolicyModel = getPolicyModel(policyType, policyTypeVersion);
- // In the following use case we are not in the context of a closed loop, so the enrichment
- // of the json cannot be done, that's why the serviceModel provided is NULL.
- return toscaConverterWithDictionarySupport
- .convertToscaToJsonSchemaObject(thePolicyModel.getPolicyModelTosca(), policyType, null);
- }
-
- public List getAllPolicyModelTypes() {
- return policyModelsRepository.getAllPolicyModelType();
- }
-
- public Iterable getAllPolicyModels() {
- return policyModelsRepository.findAll();
- }
-
- public PolicyModel getPolicyModel(String type, String version) {
- return policyModelsRepository.findById(new PolicyModelId(type, version)).orElse(null);
- }
-
- public Iterable getAllPolicyModelsByType(String type) {
- return policyModelsRepository.findByPolicyModelType(type);
- }
-
- /**
- * Retrieves the Tosca model Yaml string.
- *
- * @param type The Policy Model Type
- * @param version The policy model version
- * @return The Tosca model Yaml string
- */
- public String getPolicyModelTosca(String type, String version) {
- return policyModelsRepository.findById(new PolicyModelId(type, version))
- .orElse(new PolicyModel()).getPolicyModelTosca();
- }
-
- /**
- * This method creates an PolicyModel in Db if it does not exist.
- *
- * @param policyModel The policyModel to save
- */
- @Transactional(propagation = Propagation.REQUIRES_NEW)
- public PolicyModel savePolicyModelInNewTransaction(PolicyModel policyModel) {
- return policyModelsRepository.saveAndFlush(policyModel);
- }
-
- /**
- * Update the Pdp Group info in Policy Model DB.
- *
- * @param pdpGroups The list of Pdp Group info received from Policy Engine
- */
- public void updatePdpGroupInfo(PdpGroups pdpGroups) {
- List policyModelsList = policyModelsRepository.findAll();
- PdpGroupsAnalyzer.updatePdpGroupOfPolicyModels(policyModelsList, pdpGroups);
- this.policyModelsRepository.saveAll(policyModelsList);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java b/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
deleted file mode 100644
index 1f2e304bc..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (C) 2021 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.policy.clamp.policy;
-
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.Expose;
-import java.io.UnsupportedEncodingException;
-import javax.persistence.Column;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.MappedSuperclass;
-import javax.persistence.Transient;
-import org.hibernate.annotations.Type;
-import org.hibernate.annotations.TypeDef;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.dao.model.jsontype.StringJsonUserType;
-import org.onap.policy.clamp.loop.common.AuditEntity;
-import org.onap.policy.clamp.loop.service.Service;
-import org.onap.policy.clamp.loop.template.LoopElementModel;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@MappedSuperclass
-@TypeDef(name = "json", typeClass = StringJsonUserType.class)
-public abstract class Policy extends AuditEntity {
-
- @Transient
- private static final Logger logger = LoggerFactory.getLogger(Policy.class);
-
- @Expose
- @Type(type = "json")
- @Column(columnDefinition = "json", name = "json_representation", nullable = false)
- private JsonObject jsonRepresentation;
-
- @Expose
- @Type(type = "json")
- @Column(columnDefinition = "json", name = "configurations_json")
- private JsonObject configurationsJson;
-
- /**
- * This attribute can be null when the user add a policy on the loop instance, not the template.
- * When null, It therefore indicates that this policy is not by default in the loop template.
- */
- @Expose
- @ManyToOne(fetch = FetchType.EAGER)
- @JoinColumn(name = "loop_element_model_id")
- private LoopElementModel loopElementModel;
-
- @Expose
- @Column(name = "pdp_group")
- private String pdpGroup;
-
- @Expose
- @Column(name = "pdp_sub_group")
- private String pdpSubgroup;
-
- @Expose
- @ManyToOne(fetch = FetchType.EAGER)
- @JoinColumn(name = "policy_model_type", referencedColumnName = "policy_model_type")
- @JoinColumn(name = "policy_model_version", referencedColumnName = "version")
- private PolicyModel policyModel;
-
- /**
- * This method create the policy payload that must be sent to PEF.
- *
- * @return A String containing the payload
- * @throws UnsupportedEncodingException In case of failure
- */
- public String createPolicyPayload() throws UnsupportedEncodingException {
- return PolicyPayload
- .createPolicyPayload(this.getPolicyModel().getPolicyModelType(), this.getPolicyModel().getVersion(),
- this.getName(), this.getPolicyModel().getVersion(), this.getConfigurationsJson(),
- this.getPolicyModel() != null ? this.getPolicyModel().getPolicyModelTosca() : "");
- }
-
- /**
- * Name getter.
- *
- * @return the name
- */
- public abstract String getName();
-
- /**
- * Name setter.
- */
- public abstract void setName(String name);
-
- /**
- * jsonRepresentation getter.
- *
- * @return the jsonRepresentation
- */
- public JsonObject getJsonRepresentation() {
- return jsonRepresentation;
- }
-
- /**
- * jsonRepresentation setter.
- *
- * @param jsonRepresentation The jsonRepresentation to set
- */
- public void setJsonRepresentation(JsonObject jsonRepresentation) {
- this.jsonRepresentation = jsonRepresentation;
- }
-
- /**
- * Regenerate the Policy Json Representation.
- *
- * @param toscaConverter The tosca converter required to regenerate the json schema
- * @param serviceModel The service model associated
- */
- public abstract void updateJsonRepresentation(ToscaConverterWithDictionarySupport toscaConverter,
- Service serviceModel);
-
- /**
- * policyModel getter.
- *
- * @return the policyModel
- */
- public PolicyModel getPolicyModel() {
- return policyModel;
- }
-
- /**
- * policyModel setter.
- *
- * @param policyModel The new policyModel
- */
- public void setPolicyModel(PolicyModel policyModel) {
- this.policyModel = policyModel;
- }
-
- /**
- * configurationsJson getter.
- *
- * @return The configurationsJson
- */
- public JsonObject getConfigurationsJson() {
- return configurationsJson;
- }
-
- /**
- * configurationsJson setter.
- *
- * @param configurationsJson the configurationsJson to set
- */
- public void setConfigurationsJson(JsonObject configurationsJson) {
- this.configurationsJson = configurationsJson;
- }
-
- /**
- * loopElementModel getter.
- *
- * @return the loopElementModel
- */
- public LoopElementModel getLoopElementModel() {
- return loopElementModel;
- }
-
- /**
- * loopElementModel setter.
- *
- * @param loopElementModel the loopElementModel to set
- */
- public void setLoopElementModel(LoopElementModel loopElementModel) {
- this.loopElementModel = loopElementModel;
- }
-
- /**
- * pdpGroup getter.
- *
- * @return the pdpGroup
- */
- public String getPdpGroup() {
- return pdpGroup;
- }
-
- /**
- * pdpGroup setter.
- *
- * @param pdpGroup the pdpGroup to set
- */
- public void setPdpGroup(String pdpGroup) {
- this.pdpGroup = pdpGroup;
- }
-
- /**
- * pdpSubgroup getter.
- *
- * @return the pdpSubgroup
- */
- public String getPdpSubgroup() {
- return pdpSubgroup;
- }
-
- /**
- * pdpSubgroup setter.
- *
- * @param pdpSubgroup the pdpSubgroup to set
- */
- public void setPdpSubgroup(String pdpSubgroup) {
- this.pdpSubgroup = pdpSubgroup;
- }
-
- /**
- * Generate the policy name.
- *
- * @param policyType The policy type
- * @param serviceName The service name
- * @param serviceVersion The service version
- * @param resourceName The resource name
- * @param blueprintFilename The blueprint file name
- * @return The generated policy name
- */
- public static String generatePolicyName(String policyType, String serviceName, String serviceVersion,
- String resourceName, String blueprintFilename) {
- StringBuilder buffer = new StringBuilder(policyType).append("_").append(serviceName).append("_v")
- .append(serviceVersion).append("_").append(resourceName).append("_")
- .append(blueprintFilename.replaceAll(".yaml", ""));
- return buffer.toString().replace('.', '_').replace(" ", "");
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
deleted file mode 100644
index 066d88724..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.policy;
-
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
-import org.apache.camel.builder.ExchangeBuilder;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintMicroService;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.onap.policy.clamp.loop.template.PolicyModelsService;
-import org.onap.policy.models.pdp.concepts.PdpGroups;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Component;
-import org.yaml.snakeyaml.DumperOptions;
-import org.yaml.snakeyaml.Yaml;
-
-
-/**
- * The class implements the communication with the Policy Engine to retrieve
- * policy models (tosca). It mainly delegates the physical calls to Camel
- * engine.
- * It supports a retry mechanism for these calls, configurations can be specified in the
- * application.properties "policy.retry.interval"(default 0) and "policy.retry.limit"(default 1).
- */
-@Component
-public class PolicyEngineServices {
- private final CamelContext camelContext;
-
- private final PolicyModelsService policyModelsService;
-
- private static final String RAISE_EXCEPTION_FLAG = "raiseHttpExceptionFlag";
-
- private static final Logger logger = LoggerFactory.getLogger(PolicyEngineServices.class);
- private int retryInterval = 0;
- private int retryLimit = 1;
-
- public static final String POLICY_RETRY_INTERVAL = "policy.retry.interval";
- public static final String POLICY_RETRY_LIMIT = "policy.retry.limit";
-
- /**
- * Default constructor.
- *
- * @param camelContext Camel context bean
- * @param clampProperties ClampProperties bean
- * @param policyModelsService policyModel service
- */
- @Autowired
- public PolicyEngineServices(CamelContext camelContext, ClampProperties clampProperties,
- PolicyModelsService policyModelsService) {
- this.camelContext = camelContext;
- this.policyModelsService = policyModelsService;
- if (clampProperties.getStringValue(POLICY_RETRY_LIMIT) != null) {
- retryLimit = Integer.parseInt(clampProperties.getStringValue(POLICY_RETRY_LIMIT));
- }
- if (clampProperties.getStringValue(POLICY_RETRY_INTERVAL) != null) {
- retryInterval = Integer.parseInt(clampProperties.getStringValue(POLICY_RETRY_INTERVAL));
- }
- }
-
- /**
- * This method query Policy engine and create a PolicyModel object with type and version.
- * If the policy already exist in the db it returns the existing one.
- *
- * @param policyType The policyType id
- * @param policyVersion The policy version of that type
- * @return A PolicyModel created from policyEngine data or null if nothing is found on policyEngine
- */
- public PolicyModel createPolicyModelFromPolicyEngine(String policyType, String policyVersion) {
- var policyModelFound = policyModelsService.getPolicyModel(policyType, policyVersion);
- if (policyModelFound == null) {
- String policyTosca = this.downloadOnePolicyToscaModel(policyType, policyVersion);
- if (policyTosca != null && !policyTosca.isEmpty()) {
- return policyModelsService.savePolicyModelInNewTransaction(
- new PolicyModel(policyType, policyTosca, policyVersion));
- } else {
- logger.error("Policy not found in the Policy Engine, returning null: {} / {}",
- policyType, policyVersion);
- return null;
- }
- } else {
- logger.info("Skipping policy model download as it exists already in the database {} / {}",
- policyType, policyVersion);
- return policyModelFound;
- }
- }
-
- /**
- * This method query Policy engine and create a PolicyModel object with type and version.
- *
- * @param microService microservice object instance
- * @return A PolicyModel created from policyEngine data
- */
- public PolicyModel createPolicyModelFromPolicyEngine(BlueprintMicroService microService) {
- return createPolicyModelFromPolicyEngine(microService.getModelType(), microService.getModelVersion());
- }
-
- /**
- * This method synchronize the clamp database and the policy engine.
- * So it creates the required PolicyModel.
- */
- @SuppressWarnings("unchecked")
- public void synchronizeAllPolicies() {
- LinkedHashMap loadedYaml;
- loadedYaml = new Yaml().load(downloadAllPolicyModels());
- if (loadedYaml == null || loadedYaml.isEmpty()) {
- logger.warn("getAllPolicyType yaml returned by policy engine could not be decoded, as it's null or empty");
- return;
- }
-
- LinkedHashMap policyTypesMap = (LinkedHashMap) loadedYaml.get("policy_types");
- policyTypesMap.forEach((key, value) ->
- this.createPolicyModelFromPolicyEngine(key,
- ((String) ((LinkedHashMap) value).get("version"))));
- }
-
- /**
- * This method can be used to download all policy types + data types defined in
- * policy engine.
- *
- * @return A yaml containing all policy Types and all data types
- */
- public String downloadAllPolicyModels() {
- return callCamelRoute(
- ExchangeBuilder.anExchange(camelContext).withProperty(RAISE_EXCEPTION_FLAG, true).build(),
- "direct:get-all-policy-models", "Get all policies models");
- }
-
- /**
- * This method can be used to download a policy tosca model on the engine.
- *
- * @param policyType The policy type (id)
- * @param policyVersion The policy version
- * @return A string with the whole policy tosca model
- */
- public String downloadOnePolicyToscaModel(String policyType, String policyVersion) {
- logger.info("Downloading the policy tosca model {} / {}",
- policyType, policyVersion);
- var options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
- options.setIndent(4);
- options.setPrettyFlow(true);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- var yamlParser = new Yaml(options);
- String responseBody = callCamelRoute(
- ExchangeBuilder.anExchange(camelContext).withProperty("policyModelType", policyType)
- .withProperty("policyModelVersion", policyVersion).withProperty(RAISE_EXCEPTION_FLAG, false)
- .build(), "direct:get-policy-tosca-model",
- "Get one policy");
-
- if (responseBody == null || responseBody.isEmpty()) {
- logger.warn("getPolicyToscaModel returned by policy engine could not be decoded, as it's null or empty");
- return null;
- }
-
- return yamlParser.dump(yamlParser.load(responseBody));
- }
-
- /**
- * This method can be used to download all Pdp Groups data from policy engine.
- */
- public void downloadPdpGroups() {
- String responseBody =
- callCamelRoute(
- ExchangeBuilder.anExchange(camelContext).withProperty(RAISE_EXCEPTION_FLAG, false).build(),
- "direct:get-all-pdp-groups", "Get Pdp Groups");
-
- if (responseBody == null || responseBody.isEmpty()) {
- logger.warn("getPdpGroups returned by policy engine could not be decoded, as it's null or empty");
- return;
- }
-
- policyModelsService.updatePdpGroupInfo(JsonUtils.GSON.fromJson(responseBody, PdpGroups.class));
- }
-
- private String callCamelRoute(Exchange exchange, String camelFlow, String logMsg) {
- for (var i = 0; i < retryLimit; i++) {
- try (var producerTemplate = camelContext.createProducerTemplate()) {
- var exchangeResponse = producerTemplate.send(camelFlow, exchange);
- if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
- .is2xxSuccessful()) {
- return (String) exchangeResponse.getIn().getBody();
- } else {
- logger.info("{} query ms before retrying {} ...", logMsg, retryInterval);
- // wait for a while and try to connect to DCAE again
- Thread.sleep(retryInterval);
-
- }
- } catch (IOException e) {
- logger.error("IOException caught when trying to call Camel flow: {}", camelFlow, e);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- return "";
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java
deleted file mode 100644
index 3e53e1295..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2021 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.policy.clamp.policy;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import java.io.UnsupportedEncodingException;
-import java.util.Map;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.json.JSONObject;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yaml.snakeyaml.Yaml;
-
-/**
- * This class is a utility class to create the policy payload.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class PolicyPayload {
-
- private static final Logger logger = LoggerFactory.getLogger(PolicyPayload.class);
-
- private static JsonObject createJsonFromPolicyTosca(String toscaContent) {
- Map map =
- new Yaml().load(!StringUtils.isEmpty(toscaContent) ? toscaContent : "");
- return JsonUtils.GSON.fromJson(new JSONObject(map).toString(), JsonObject.class);
- }
-
- /**
- * This method create the policy payload that must be sent to PEF.
- *
- * @return A String containing the payload
- * @throws UnsupportedEncodingException In case of failure
- */
- public static String createPolicyPayload(String policyModelType, String policyModelVersion, String policyName,
- String policyVersion, JsonObject policyProperties, String toscaContent)
- throws UnsupportedEncodingException {
- var policyPayloadResult = new JsonObject();
-
- policyPayloadResult.add("tosca_definitions_version",
- createJsonFromPolicyTosca(toscaContent).get("tosca_definitions_version"));
-
- var topologyTemplateNode = new JsonObject();
- policyPayloadResult.add("topology_template", topologyTemplateNode);
-
- var policiesArray = new JsonArray();
- topologyTemplateNode.add("policies", policiesArray);
-
- var thisPolicy = new JsonObject();
- policiesArray.add(thisPolicy);
-
- var policyDetails = new JsonObject();
- thisPolicy.add(policyName, policyDetails);
- policyDetails.addProperty("type", policyModelType);
- policyDetails.addProperty("type_version", policyModelVersion);
- policyDetails.addProperty("version", policyVersion);
- policyDetails.addProperty("name", policyName);
-
- var policyMetadata = new JsonObject();
- policyDetails.add("metadata", policyMetadata);
- policyMetadata.addProperty("policy-id", policyName);
- policyMetadata.addProperty("policy-version", policyVersion);
-
- policyDetails.add("properties", policyProperties);
-
- String policyPayload = JsonUtils.GSON.toJson(policyPayloadResult);
- logger.info("Policy payload: {}", policyPayload);
- return policyPayload;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java
deleted file mode 100644
index 35ffa2443..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy;
-
-import java.util.List;
-import java.util.Set;
-import org.onap.policy.clamp.loop.Loop;
-
-public interface PolicyService {
-
- Set updatePolicies(Loop loop, List newPolicies);
-
- boolean isExisting(String policyName);
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java b/runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java
deleted file mode 100644
index 774ba0992..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.policy.downloader;
-
-import java.time.Instant;
-import org.json.simple.parser.ParseException;
-import org.onap.policy.clamp.loop.template.PolicyModelsRepository;
-import org.onap.policy.clamp.policy.PolicyEngineServices;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.scheduling.annotation.Scheduled;
-
-/**
- * This class implements a periodic job that is done in the background to
- * synchronize policy models available on the policy engine and the clamp
- * database table PolicyModel.
- */
-@Configuration
-@Profile("clamp-policy-controller")
-public class PolicyEngineController {
-
- protected static final Logger logger = LoggerFactory.getLogger(PolicyEngineController.class);
- public static final String POLICY_RETRY_INTERVAL = "policy.retry.interval";
- public static final String POLICY_RETRY_LIMIT = "policy.retry.limit";
-
- private final PolicyEngineServices policyEngineServices;
-
- private Instant lastInstantExecuted;
-
- @Autowired
- public PolicyEngineController(PolicyEngineServices policyEngineService,
- PolicyModelsRepository policyModelsRepository) {
- this.policyEngineServices = policyEngineService;
- }
-
- @Scheduled(fixedRate = 300000)
- public synchronized void synchronizeAllPolicies() {
- policyEngineServices.synchronizeAllPolicies();
- lastInstantExecuted = Instant.now();
- }
-
- public Instant getLastInstantExecuted() {
- return lastInstantExecuted;
- }
-
- @Scheduled(fixedRate = 300000)
- public synchronized void downloadPdpGroups() throws ParseException {
- policyEngineServices.downloadPdpGroups();
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
deleted file mode 100644
index 3f0f4e7b9..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.policy.microservice;
-
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.security.SecureRandom;
-import java.util.HashSet;
-import java.util.Set;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.ManyToMany;
-import javax.persistence.Table;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.hibernate.annotations.TypeDef;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.dao.model.jsontype.StringJsonUserType;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.loop.service.Service;
-import org.onap.policy.clamp.loop.template.LoopElementModel;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.onap.policy.clamp.policy.Policy;
-
-@Entity
-@Table(name = "micro_service_policies")
-@TypeDef(name = "json", typeClass = StringJsonUserType.class)
-public class MicroServicePolicy extends Policy implements Serializable {
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 6271238288583332616L;
-
- @Expose
- @Id
- @Column(nullable = false, name = "name", unique = true)
- private String name;
-
- @Expose
- @Column(name = "context")
- private String context;
-
- @Expose
- @Column(name = "device_type_scope")
- private String deviceTypeScope;
-
- @Expose
- @Column(name = "shared", nullable = false)
- private Boolean shared;
-
- @ManyToMany(mappedBy = "microServicePolicies", fetch = FetchType.EAGER)
- private Set usedByLoops = new HashSet<>();
-
- @Expose
- @Column(name = "dcae_deployment_id")
- private String dcaeDeploymentId;
-
- @Expose
- @Column(name = "dcae_deployment_status_url")
- private String dcaeDeploymentStatusUrl;
-
- @Expose
- @Column(name = "dcae_blueprint_id")
- private String dcaeBlueprintId;
-
- /**
- * Constructor for serialization.
- */
- public MicroServicePolicy() {
- }
-
- /**
- * The constructor that does not make use of ToscaYamlToJsonConvertor but take
- * the jsonRepresentation instead.
- *
- * @param name The name of the MicroService
- * @param policyModel The policy model type of the MicroService
- * @param shared The flag indicate whether the MicroService is
- * shared
- * @param jsonRepresentation The UI representation in json format
- * @param loopElementModel The loop element model from which this instance should be created
- * @param pdpGroup The Pdp Group info
- * @param pdpSubgroup The Pdp Subgroup info
- */
- public MicroServicePolicy(String name, PolicyModel policyModel, Boolean shared,
- JsonObject jsonRepresentation, LoopElementModel loopElementModel, String pdpGroup,
- String pdpSubgroup) {
- this.name = name;
- this.setPolicyModel(policyModel);
- this.shared = shared;
- this.setJsonRepresentation(jsonRepresentation);
- this.setLoopElementModel(loopElementModel);
- this.setPdpGroup(pdpGroup);
- this.setPdpSubgroup(pdpSubgroup);
- }
-
- /**
- * Constructor with tosca converter.
- *
- * @param loop The loop instance
- * @param service The service model object
- * @param loopElementModel The loop element model from which this microservice instance is created
- * @param toscaConverter The tosca converter that will used to convert the tosca policy model
- */
- public MicroServicePolicy(Loop loop, Service service, LoopElementModel loopElementModel,
- ToscaConverterWithDictionarySupport toscaConverter) {
- this(Policy.generatePolicyName("MICROSERVICE", service.getName(), service.getVersion(),
- loopElementModel.getPolicyModels().first().getPolicyAcronym() + '_'
- + loopElementModel.getPolicyModels().first().getVersion(),
- RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())),
- loopElementModel.getPolicyModels().first(), false, new JsonObject(), loopElementModel, null, null);
- this.updateJsonRepresentation(toscaConverter, service);
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- /**
- * name setter.
- *
- * @param name the name to set
- */
- @Override
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public void updateJsonRepresentation(ToscaConverterWithDictionarySupport toscaConverter, Service serviceModel) {
- this.setJsonRepresentation(
- toscaConverter.convertToscaToJsonSchemaObject(this.getPolicyModel().getPolicyModelTosca(),
- this.getPolicyModel().getPolicyModelType(), serviceModel));
- }
-
- public Boolean getShared() {
- return shared;
- }
-
- void setShared(Boolean shared) {
- this.shared = shared;
- }
-
- public Set getUsedByLoops() {
- return usedByLoops;
- }
-
- void setUsedByLoops(Set usedBy) {
- this.usedByLoops = usedBy;
- }
-
- public String getContext() {
- return context;
- }
-
- public void setContext(String context) {
- this.context = context;
- }
-
- public String getDeviceTypeScope() {
- return deviceTypeScope;
- }
-
- public void setDeviceTypeScope(String deviceTypeScope) {
- this.deviceTypeScope = deviceTypeScope;
- }
-
- /**
- * dcaeDeploymentId getter.
- *
- * @return the dcaeDeploymentId
- */
- public String getDcaeDeploymentId() {
- return dcaeDeploymentId;
- }
-
- /**
- * dcaeDeploymentId setter.
- *
- * @param dcaeDeploymentId the dcaeDeploymentId to set
- */
- public void setDcaeDeploymentId(String dcaeDeploymentId) {
- this.dcaeDeploymentId = dcaeDeploymentId;
- }
-
- /**
- * dcaeDeploymentStatusUrl getter.
- *
- * @return the dcaeDeploymentStatusUrl
- */
- public String getDcaeDeploymentStatusUrl() {
- return dcaeDeploymentStatusUrl;
- }
-
- /**
- * dcaeDeploymentStatusUrl setter.
- *
- * @param dcaeDeploymentStatusUrl the dcaeDeploymentStatusUrl to set
- */
- public void setDcaeDeploymentStatusUrl(String dcaeDeploymentStatusUrl) {
- this.dcaeDeploymentStatusUrl = dcaeDeploymentStatusUrl;
- }
-
- /**
- * dcaeBlueprintId getter.
- *
- * @return the dcaeBlueprintId
- */
- public String getDcaeBlueprintId() {
- return dcaeBlueprintId;
- }
-
- /**
- * dcaeBlueprintId setter.
- *
- * @param dcaeBlueprintId the dcaeBlueprintId to set
- */
- void setDcaeBlueprintId(String dcaeBlueprintId) {
- this.dcaeBlueprintId = dcaeBlueprintId;
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- MicroServicePolicy other = (MicroServicePolicy) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- return true;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java
deleted file mode 100644
index 2ce2c4f17..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.microservice;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface MicroServicePolicyRepository extends JpaRepository {
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java
deleted file mode 100644
index b9871049e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.microservice;
-
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.policy.PolicyService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class MicroServicePolicyService implements PolicyService {
-
- private final MicroServicePolicyRepository microServiceRepository;
-
- @Autowired
- public MicroServicePolicyService(MicroServicePolicyRepository microServiceRepository) {
- this.microServiceRepository = microServiceRepository;
- }
-
- @Override
- public Set updatePolicies(Loop loop, List newMicroservicePolicies) {
- return newMicroservicePolicies.stream().map(policy -> getAndUpdateMicroServicePolicy(loop, policy))
- .collect(Collectors.toSet());
- }
-
- @Override
- public boolean isExisting(String policyName) {
- return microServiceRepository.existsById(policyName);
- }
-
- /**
- * Get and update the MicroService policy properties.
- *
- * @param loop The loop
- * @param policy The new MicroService policy
- * @return The updated MicroService policy
- */
- public MicroServicePolicy getAndUpdateMicroServicePolicy(Loop loop, MicroServicePolicy policy) {
- return microServiceRepository.save(
- microServiceRepository
- .findById(policy.getName()).map(p -> updateMicroservicePolicyProperties(p, policy, loop))
- .orElse(new MicroServicePolicy(policy.getName(), policy.getPolicyModel(),
- policy.getShared(), policy.getJsonRepresentation(), null, policy.getPdpGroup(),
- policy.getPdpSubgroup())));
- }
-
- private MicroServicePolicy updateMicroservicePolicyProperties(MicroServicePolicy oldPolicy,
- MicroServicePolicy newPolicy, Loop loop) {
- oldPolicy.setConfigurationsJson(newPolicy.getConfigurationsJson());
- if (!oldPolicy.getUsedByLoops().contains(loop)) {
- oldPolicy.getUsedByLoops().add(loop);
- }
- oldPolicy.setPdpGroup(newPolicy.getPdpGroup());
- oldPolicy.setPdpSubgroup(newPolicy.getPdpSubgroup());
- return oldPolicy;
- }
-
- /**
- * Update the MicroService policy deployment related parameters.
- *
- * @param microServicePolicy The micro service policy
- * @param deploymentId The deployment ID as returned by DCAE
- * @param deploymentUrl The Deployment URL as returned by DCAE
- */
- public void updateDcaeDeploymentFields(MicroServicePolicy microServicePolicy, String deploymentId,
- String deploymentUrl) {
- microServicePolicy.setDcaeDeploymentId(deploymentId);
- microServicePolicy.setDcaeDeploymentStatusUrl(deploymentUrl);
- microServiceRepository.saveAndFlush(microServicePolicy);
- }
-
-
- /**
- * Api to refresh the MicroService Policy UI window.
- *
- * @param microServicePolicy The micro Service policy object
- * @param toscaConverter The tosca converter required to convert the tosca model to json schema
- * @param loop As a microservice object can belong to multiple loops, we need it here
- */
- public void refreshMicroServicePolicyJsonRepresentation(MicroServicePolicy microServicePolicy,
- ToscaConverterWithDictionarySupport toscaConverter,
- Loop loop) {
- microServicePolicy.updateJsonRepresentation(toscaConverter, loop.getModelService());
- this.microServiceRepository.saveAndFlush(microServicePolicy);
-
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
deleted file mode 100644
index 203f2771e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * 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.policy.clamp.policy.operational;
-
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.security.SecureRandom;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.hibernate.annotations.TypeDef;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.dao.model.jsontype.StringJsonUserType;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.loop.service.Service;
-import org.onap.policy.clamp.loop.template.LoopElementModel;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.onap.policy.clamp.policy.Policy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Entity
-@Table(name = "operational_policies")
-@TypeDef(name = "json", typeClass = StringJsonUserType.class)
-public class OperationalPolicy extends Policy implements Serializable {
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 6117076450841538255L;
-
- @Transient
- private static final Logger logger = LoggerFactory.getLogger(OperationalPolicy.class);
-
- @Id
- @Expose
- @Column(nullable = false, name = "name", unique = true)
- private String name;
-
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "loop_id", nullable = false)
- private Loop loop;
-
- /**
- * Constructor for serialization.
- */
- public OperationalPolicy() {
- }
-
- /**
- * The constructor.
- *
- * @param name The name of the operational policy
- * @param configurationsJson The operational policy property in the format of
- * json
- * @param jsonRepresentation The jsonObject defining the json schema
- * @param policyModel The policy model associated if any, can be null
- * @param loopElementModel The loop element from which this instance is supposed to be created
- * @param pdpGroup The Pdp Group info
- * @param pdpSubgroup The Pdp Subgroup info
- */
- public OperationalPolicy(String name, JsonObject configurationsJson,
- JsonObject jsonRepresentation, PolicyModel policyModel,
- LoopElementModel loopElementModel, String pdpGroup, String pdpSubgroup) {
- this.name = name;
- this.setPolicyModel(policyModel);
- this.setConfigurationsJson(configurationsJson);
- this.setPdpGroup(pdpGroup);
- this.setPdpSubgroup(pdpSubgroup);
- this.setLoopElementModel(loopElementModel);
- this.setJsonRepresentation(jsonRepresentation);
-
- }
-
- /**
- * Create an operational policy from a loop element model.
- *
- * @param loop The parent loop
- * @param service The loop service
- * @param loopElementModel The loop element model
- * @param toscaConverter The tosca converter that must be used to create the Json representation
- */
- public OperationalPolicy(Loop loop, Service service, LoopElementModel loopElementModel,
- ToscaConverterWithDictionarySupport toscaConverter) {
- this(Policy.generatePolicyName("OPERATIONAL", service.getName(), service.getVersion(),
- loopElementModel.getPolicyModels().first().getPolicyAcronym() + '_'
- + loopElementModel.getPolicyModels().first().getVersion(),
- RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())), new JsonObject(),
- new JsonObject(), loopElementModel.getPolicyModels().first(), loopElementModel, null, null);
- this.setLoop(loop);
- this.updateJsonRepresentation(toscaConverter, service);
- }
-
- /**
- * Create an operational policy from a policy model.
- *
- * @param loop The parent loop
- * @param service The loop service
- * @param policyModel The policy model
- * @param toscaConverter The tosca converter that must be used to create the Json representation
- */
- public OperationalPolicy(Loop loop, Service service, PolicyModel policyModel,
- ToscaConverterWithDictionarySupport toscaConverter) {
- this(Policy.generatePolicyName("OPERATIONAL", service.getName(), service.getVersion(),
- policyModel.getPolicyAcronym() + '_' + policyModel.getVersion(),
- RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())),
- new JsonObject(),
- new JsonObject(), policyModel, null, null, null);
- this.setLoop(loop);
- this.updateJsonRepresentation(toscaConverter, service);
- }
-
- public void setLoop(Loop loopName) {
- this.loop = loopName;
- }
-
- public Loop getLoop() {
- return loop;
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- /**
- * name setter.
- *
- * @param name the name to set
- */
- @Override
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public void updateJsonRepresentation(ToscaConverterWithDictionarySupport toscaConverter, Service serviceModel) {
- this.setJsonRepresentation(new JsonObject());
- if (this.getPolicyModel() == null) {
- return;
- }
-
- // Generic Case
- this.setJsonRepresentation(toscaConverter.convertToscaToJsonSchemaObject(
- this.getPolicyModel().getPolicyModelTosca(),
- this.getPolicyModel().getPolicyModelType(), serviceModel));
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- OperationalPolicy other = (OperationalPolicy) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else {
- if (!name.equals(other.name)) {
- return false;
- }
- }
- return true;
- }
-
- @Override
- public String createPolicyPayload() throws UnsupportedEncodingException {
- return super.createPolicyPayload();
-
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java
deleted file mode 100644
index b0a33669a..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.operational;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface OperationalPolicyRepository extends JpaRepository {
- void deleteByName(String policyName);
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
deleted file mode 100644
index 00713f78e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * Modifications Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * 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.policy.clamp.policy.operational;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import java.io.IOException;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.onap.policy.clamp.loop.service.Service;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class OperationalPolicyRepresentationBuilder {
-
- private static final Logger logger =
- LoggerFactory.getLogger(OperationalPolicyRepresentationBuilder.class);
-
- public static final String PROPERTIES = "properties";
- public static final String ITEMS = "items";
- public static final String ANY_OF = "anyOf";
- public static final String TITLE = "title";
- public static final String RECIPE = "recipe";
- public static final String DEFAULT = "default";
- public static final String STRING = "string";
- public static final String TYPE = "type";
- public static final String TYPE_LIST = "list";
- public static final String TYPE_OBJECT = "object";
- public static final String TYPE_ARRAY = "array";
-
- private OperationalPolicyRepresentationBuilder() {
- throw new IllegalStateException("This is Utility class, not supposed to be initiated.");
- }
-
- /**
- * This method generates the operational policy json representation that will be
- * used by ui for rendering. It uses the model (VF and VFModule) defined in the
- * loop object to do so, so it's dynamic. It also uses the operational policy
- * schema template defined in the resource folder.
- *
- * @param modelJson The loop model json
- * @return The json representation
- */
- public static JsonObject generateOperationalPolicySchema(Service modelJson) {
-
- JsonObject jsonSchema = null;
- try {
- jsonSchema = JsonUtils.GSON.fromJson(
- ResourceFileUtils
- .getResourceAsString("clds/json-schema/operational_policies/operational_policy.json"),
- JsonObject.class);
- jsonSchema.get(PROPERTIES).getAsJsonObject()
- .get("operational_policy").getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("policies")
- .getAsJsonObject().get(ITEMS).getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("target")
- .getAsJsonObject().get(ANY_OF).getAsJsonArray().addAll(createAnyOfArray(modelJson, true));
-
- // update CDS recipe and payload information to schema
- for (JsonElement actor : jsonSchema.get(PROPERTIES).getAsJsonObject()
- .get("operational_policy").getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("policies")
- .getAsJsonObject().get(ITEMS).getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("actor")
- .getAsJsonObject().get(ANY_OF).getAsJsonArray()) {
- if ("CDS".equalsIgnoreCase(actor.getAsJsonObject().get(TITLE).getAsString())) {
- actor.getAsJsonObject().get(PROPERTIES).getAsJsonObject().get(RECIPE).getAsJsonObject()
- .get(ANY_OF).getAsJsonArray()
- .addAll(createAnyOfArrayForCdsRecipe(modelJson));
- }
- }
- return jsonSchema;
- } catch (IOException e) {
- logger.error("Unable to generate the json schema because of an exception", e);
- return new JsonObject();
- }
- }
-
- private static JsonObject createSchemaProperty(String title, String type, String defaultValue, String readOnlyFlag,
- String[] enumArray) {
- var property = new JsonObject();
- property.addProperty(TITLE, title);
- property.addProperty(TYPE, type);
- property.addProperty(DEFAULT, defaultValue);
- property.addProperty("readOnly", readOnlyFlag);
-
- if (enumArray != null) {
- var jsonArray = new JsonArray();
- property.add("enum", jsonArray);
- for (String val : enumArray) {
- jsonArray.add(val);
- }
- }
- return property;
- }
-
- private static JsonArray createVnfSchema(Service modelService, boolean generateType) {
- var vnfSchemaArray = new JsonArray();
- JsonObject modelVnfs = modelService.getResourceByType("VF");
-
- for (Entry entry : modelVnfs.entrySet()) {
- var vnfOneOfSchema = new JsonObject();
- vnfOneOfSchema.addProperty(TITLE, "VNF" + "-" + entry.getKey());
- var properties = new JsonObject();
- if (generateType) {
- properties.add(TYPE, createSchemaProperty("Type", STRING, "VNF", "True", null));
- }
- properties.add("resourceID", createSchemaProperty("Resource ID", STRING,
- modelVnfs.get(entry.getKey()).getAsJsonObject().get("invariantUUID").getAsString(), "True", null));
-
- vnfOneOfSchema.add(PROPERTIES, properties);
- vnfSchemaArray.add(vnfOneOfSchema);
- }
- return vnfSchemaArray;
- }
-
- private static JsonArray createBlankEntry() {
- var result = new JsonArray();
- var blankObject = new JsonObject();
- blankObject.addProperty(TITLE, "User defined");
- blankObject.add(PROPERTIES, new JsonObject());
- result.add(blankObject);
- return result;
- }
-
- private static JsonArray createVfModuleSchema(Service modelService, boolean generateType) {
- var vfModuleOneOfSchemaArray = new JsonArray();
- JsonObject modelVfModules = modelService.getResourceByType("VFModule");
-
- for (Entry entry : modelVfModules.entrySet()) {
- var vfModuleOneOfSchema = new JsonObject();
- vfModuleOneOfSchema.addProperty(TITLE, "VFMODULE" + "-" + entry.getKey());
- var properties = new JsonObject();
- if (generateType) {
- properties.add(TYPE, createSchemaProperty("Type", STRING, "VFMODULE", "True", null));
- }
- properties.add("resourceID",
- createSchemaProperty("Resource ID", STRING,
- modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelName").getAsString(),
- "True", null));
- properties.add("modelInvariantId",
- createSchemaProperty("Model Invariant Id (ModelInvariantUUID)", STRING,
- modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelInvariantUUID")
- .getAsString(),
- "True", null));
- properties.add("modelVersionId",
- createSchemaProperty("Model Version Id (ModelUUID)", STRING,
- modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelUUID").getAsString(),
- "True", null));
- properties.add("modelName",
- createSchemaProperty("Model Name", STRING,
- modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelName").getAsString(),
- "True", null));
- properties.add("modelVersion", createSchemaProperty("Model Version", STRING,
- modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelVersion").getAsString(),
- "True", null));
- properties
- .add("modelCustomizationId",
- createSchemaProperty("Customization ID", STRING,
- modelVfModules.get(entry.getKey()).getAsJsonObject()
- .get("vfModuleModelCustomizationUUID").getAsString(), "True",
- null));
-
- vfModuleOneOfSchema.add(PROPERTIES, properties);
- vfModuleOneOfSchemaArray.add(vfModuleOneOfSchema);
- }
- return vfModuleOneOfSchemaArray;
- }
-
- /**
- * Create an anyOf array of possible structure we may have for Target.
- *
- * @param modelJson The service object
- * @return A JsonArray with everything inside
- */
- public static JsonArray createAnyOfArray(Service modelJson, boolean generateType) {
- var targetOneOfStructure = new JsonArray();
- // First entry must be user defined
- targetOneOfStructure.addAll(createBlankEntry());
- targetOneOfStructure.addAll(createVnfSchema(modelJson, generateType));
- targetOneOfStructure.addAll(createVfModuleSchema(modelJson, generateType));
- return targetOneOfStructure;
- }
-
- private static JsonArray createAnyOfArrayForCdsRecipe(Service modelJson) {
- var anyOfStructure = new JsonArray();
- anyOfStructure.addAll(createAnyOfCdsRecipe(modelJson.getResourceDetails().getAsJsonObject("VF")));
- anyOfStructure.addAll(createAnyOfCdsRecipe(modelJson.getResourceDetails().getAsJsonObject("PNF")));
- return anyOfStructure;
- }
-
- private static JsonArray createAnyOfCdsRecipe(JsonObject jsonObject) {
- var schemaArray = new JsonArray();
- for (Entry entry : jsonObject.entrySet()) {
- var controllerProperties = entry.getValue().getAsJsonObject()
- .getAsJsonObject("controllerProperties");
-
- if (controllerProperties != null && controllerProperties.getAsJsonObject("workflows") != null) {
- var workflows = controllerProperties.getAsJsonObject("workflows");
- for (Entry workflowsEntry : workflows.entrySet()) {
- var obj = new JsonObject();
- obj.addProperty(TITLE, workflowsEntry.getKey());
- obj.addProperty(TYPE, TYPE_OBJECT);
- obj.add(PROPERTIES, createPayloadProperty(workflowsEntry.getValue().getAsJsonObject(),
- controllerProperties, workflowsEntry.getKey()));
- schemaArray.add(obj);
- }
-
- }
- }
- return schemaArray;
- }
-
- private static JsonObject createPayloadProperty(JsonObject workFlow,
- JsonObject controllerProperties, String workFlowName) {
- var payload = new JsonObject();
- payload.addProperty(TITLE, "Payload");
- payload.addProperty(TYPE, TYPE_OBJECT);
- payload.add(PROPERTIES, createInputPropertiesForPayload(workFlow, controllerProperties,
- workFlowName));
- var properties = new JsonObject();
- properties.add(RECIPE, createRecipeForCdsWorkflow(workFlowName));
- properties.add("payload", payload);
- return properties;
- }
-
- private static JsonObject createRecipeForCdsWorkflow(String workflow) {
- var recipe = new JsonObject();
- recipe.addProperty(TITLE, RECIPE);
- recipe.addProperty(TYPE, STRING);
- recipe.addProperty(DEFAULT, workflow);
- var options = new JsonObject();
- options.addProperty("hidden", true);
- recipe.add("options", options);
- return recipe;
- }
-
- /**
- * Returns the properties of payload based on the cds work flows.
- *
- * @param workFlow cds work flows to update payload
- * @param controllerProperties cds properties to get blueprint name and
- * version
- * @param workFlowName work flow name
- * @return returns the properties of payload
- */
- public static JsonObject createInputPropertiesForPayload(JsonObject workFlow,
- JsonObject controllerProperties,
- String workFlowName) {
- var artifactName = controllerProperties.get("sdnc_model_name").getAsString();
- var artifactVersion = controllerProperties.get("sdnc_model_version").getAsString();
- var inputs = workFlow.getAsJsonObject("inputs");
- var jsonObject = new JsonObject();
- jsonObject.add("artifact_name", createSchemaProperty(
- "artifact name", STRING, artifactName, "True", null));
- jsonObject.add("artifact_version", createSchemaProperty(
- "artifact version", STRING, artifactVersion, "True", null));
- jsonObject.add("mode", createCdsInputProperty(
- "mode", STRING, "async", null));
- jsonObject.add("data", createDataProperty(inputs, workFlowName));
- return jsonObject;
- }
-
- private static JsonObject createDataProperty(JsonObject inputs, String workflowName) {
- var data = new JsonObject();
- data.addProperty(TITLE, "data");
- var dataObj = new JsonObject();
- addDataFields(inputs, dataObj, workflowName);
- data.add(PROPERTIES, dataObj);
- return data;
- }
-
- private static void addDataFields(JsonObject inputs,
- JsonObject dataObj,
- String workFlowName) {
- Set> entrySet = inputs.entrySet();
- for (Map.Entry entry : entrySet) {
- String key = entry.getKey();
- var inputProperty = inputs.getAsJsonObject(key);
- if (key.equalsIgnoreCase(workFlowName + "-properties")) {
- addDataFields(entry.getValue().getAsJsonObject().get(PROPERTIES).getAsJsonObject(),
- dataObj, workFlowName);
- } else {
- dataObj.add(entry.getKey(),
- createCdsInputProperty(key, inputProperty.get(TYPE).getAsString(), null,
- entry.getValue().getAsJsonObject()));
- }
- }
- }
-
- private static JsonObject createCdsInputProperty(String title,
- String type,
- String defaultValue,
- JsonObject cdsProperty) {
- var property = new JsonObject();
- property.addProperty(TITLE, title);
-
- if (TYPE_LIST.equalsIgnoreCase(type)) {
- property.addProperty(TYPE, TYPE_ARRAY);
- if (cdsProperty != null && cdsProperty.get(PROPERTIES) != null) {
- var listProperties = new JsonObject();
- listProperties.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
- property.add(ITEMS, listProperties);
- }
- } else if (cdsProperty != null && TYPE_OBJECT.equalsIgnoreCase(type)) {
- property.addProperty(TYPE, TYPE_OBJECT);
- property.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
- } else {
- property.addProperty(TYPE, type);
- }
-
- if (defaultValue != null) {
- property.addProperty(DEFAULT, defaultValue);
- }
- return property;
- }
-
- private static JsonObject getProperties(JsonObject inputProperties) {
- if (inputProperties == null) {
- return null;
- }
- var dataObject = new JsonObject();
- addDataFields(inputProperties, dataObject, null);
- return dataObject;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java
deleted file mode 100644
index 84bf72b62..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 Nokia Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (C) 2021 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.policy.clamp.policy.operational;
-
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.loop.template.PolicyModelsRepository;
-import org.onap.policy.clamp.policy.PolicyService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class OperationalPolicyService implements PolicyService {
-
- private final OperationalPolicyRepository operationalPolicyRepository;
-
- @Autowired
- public OperationalPolicyService(OperationalPolicyRepository repository,
- PolicyModelsRepository policyModelsRepository) {
- this.operationalPolicyRepository = repository;
- }
-
- @Override
- public Set updatePolicies(Loop loop, List operationalPolicies) {
- return operationalPolicies
- .parallelStream()
- .map(policy ->
- operationalPolicyRepository
- .findById(policy.getName())
- .map(p -> setConfiguration(p, policy))
- .orElse(initializeMissingFields(loop, policy)))
- .collect(Collectors.toSet());
- }
-
- @Override
- public boolean isExisting(String policyName) {
- return operationalPolicyRepository.existsById(policyName);
- }
-
- private OperationalPolicy initializeMissingFields(Loop loop, OperationalPolicy policy) {
- policy.setLoop(loop);
- return policy;
- }
-
- private OperationalPolicy setConfiguration(OperationalPolicy policy, OperationalPolicy newPolicy) {
- policy.setConfigurationsJson(newPolicy.getConfigurationsJson());
- policy.setPdpGroup(newPolicy.getPdpGroup());
- policy.setPdpSubgroup(newPolicy.getPdpSubgroup());
- return policy;
- }
-
- /**
- * Api to refresh the Operational Policy UI window.
- *
- * @param operationalPolicy The operational policy object
- * @param toscaConverter the tosca converter required to convert the tosca model to json schema
- */
- public void refreshOperationalPolicyJsonRepresentation(OperationalPolicy operationalPolicy,
- ToscaConverterWithDictionarySupport toscaConverter) {
- operationalPolicy.updateJsonRepresentation(toscaConverter, operationalPolicy.getLoop().getModelService());
- this.operationalPolicyRepository.saveAndFlush(operationalPolicy);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
deleted file mode 100644
index a161860ad..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2021 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.policy.clamp.policy.pdpgroup;
-
-import com.google.gson.JsonElement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.models.pdp.concepts.DeploymentGroup;
-import org.onap.policy.models.pdp.concepts.DeploymentGroups;
-import org.onap.policy.models.pdp.concepts.DeploymentSubGroup;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This is an utility class that build the PDP group policy payload.
- * This is used when policies have to be deployed to PDP group/subgroups on the Policy Engine.
- * Currently it does not group the queries per pdpgroup/subgroups/action.
- * This is currently NOT thread safe, do not use parallel streams to update the structure.
- */
-public class PdpGroupPayload {
-
- private static final Logger logger = LoggerFactory.getLogger(PdpGroupPayload.class);
-
- /**
- * The default node that will contain the actions array.
- */
- public static final String PDP_ACTIONS = "PdpActions";
-
- private final DeploymentGroups deploymentGroups = new DeploymentGroups();
-
- /**
- * Default constructor.
- */
- public PdpGroupPayload() {
- deploymentGroups.setGroups(new ArrayList<>());
- }
-
- /**
- * Constructor that takes a list of actions in input.
- *
- * @param listOfPdpActions The list of actions that needs to be done.
- * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
- * @throws PdpGroupPayloadException in case of issues to read the listOfActions
- */
- public PdpGroupPayload(final JsonElement listOfPdpActions) throws PdpGroupPayloadException {
- this();
- this.readListOfActions(listOfPdpActions);
- }
-
- /**
- * This method converts the list of actions directly to the pdp payload query as String.
- *
- * @param listOfPdpActions The list of actions that needs to be done.
- * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
- * @return The string containing the PDP payload that can be sent directly
- * @throws PdpGroupPayloadException in case of issues to read the listOfActions
- */
- public static String generatePdpGroupPayloadFromList(final JsonElement listOfPdpActions)
- throws PdpGroupPayloadException {
- return new PdpGroupPayload(listOfPdpActions).generatePdpGroupPayload();
- }
-
-
- private void readListOfActions(final JsonElement listOfPdpActions) throws PdpGroupPayloadException {
- for (JsonElement action : listOfPdpActions.getAsJsonObject().getAsJsonArray(PDP_ACTIONS)) {
- String[] opParams = action.getAsString().split("/");
- if (opParams.length == 5) {
- this.updatePdpGroupMap(opParams[1], opParams[2], opParams[3], opParams[4], opParams[0]);
- } else {
- logger.error("One PDP push command does not contain the right number of arguments: {}", action);
- throw new PdpGroupPayloadException(
- "One PDP push command does not contain the right number of arguments: " + action);
- }
- }
- }
-
- /**
- * This method updates the pdpGroupMap structure for a specific policy/version/pdpdGroup/PdpSubGroup.
- *
- * @param pdpGroup The pdp Group in String
- * @param pdpSubGroup The pdp Sub Group in String
- * @param policyName The policy name
- * @param policyVersion The policy Version
- * @param action DELETE or POST
- */
- public void updatePdpGroupMap(String pdpGroup,
- String pdpSubGroup,
- String policyName,
- String policyVersion, String action) {
- // create subgroup
- var newSubGroup = new DeploymentSubGroup();
- newSubGroup.setPdpType(pdpSubGroup);
- newSubGroup.setAction(DeploymentSubGroup.Action.valueOf(action));
- newSubGroup.setPolicies(Arrays.asList(new ToscaConceptIdentifier(policyName, policyVersion)));
- // Add to deployment Groups structure
- this.deploymentGroups.getGroups().stream().filter(group ->
- group.getName().equals(pdpGroup)).findFirst()
- .ifPresentOrElse(group -> group.getDeploymentSubgroups().add(newSubGroup),
- () -> {
- var newGroup = new DeploymentGroup();
- newGroup.setName(pdpGroup);
- newGroup.setDeploymentSubgroups(new ArrayList<>(Arrays.asList(newSubGroup)));
- this.deploymentGroups.getGroups().add(newGroup);
- });
- }
-
- /**
- * This method generates the Payload in Json from the pdp Group structure containing the policies/versions
- * that must be sent to the policy framework.
- *
- * @return The Json that can be sent to policy framework as String
- */
- public String generatePdpGroupPayload() {
- String payload = JsonUtils.GSON.toJson(this.deploymentGroups);
- logger.info("PdpGroup policy payload: {}", payload);
- return payload;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java
deleted file mode 100644
index 4ce0721b2..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2021 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.policy.clamp.policy.pdpgroup;
-
-/**
- * Exception during Pdp Group payload construction.
- */
-public class PdpGroupPayloadException extends Exception {
-
- /**
- * serialization id.
- */
- private static final long serialVersionUID = -5676848693241134101L;
-
- /**
- * This constructor can be used to create a new PdpGroupPayloadException.
- *
- * @param message The message to dump
- */
- public PdpGroupPayloadException(final String message) {
- super(message);
- }
-
- /**
- * This constructor can be used to create a new PdpGroupPayloadException.
- *
- * @param message The message to dump
- * @param cause The Throwable cause object
- */
- public PdpGroupPayloadException(final String message, final Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
deleted file mode 100644
index 38425fe93..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2021 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.policy.clamp.policy.pdpgroup;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.ConcurrentHashMap;
-import org.apache.commons.collections4.CollectionUtils;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.onap.policy.models.pdp.concepts.PdpGroup;
-import org.onap.policy.models.pdp.concepts.PdpGroups;
-import org.onap.policy.models.pdp.concepts.PdpSubGroup;
-import org.onap.policy.models.pdp.enums.PdpState;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-/**
- * This is an utility class to do searching in pdp groups and create json object describing the result.
- */
-public class PdpGroupsAnalyzer {
-
- public static final String ASSIGNED_PDP_GROUPS_INFO = "pdpGroupInfo";
- public static final String SUPPORTED_PDP_GROUPS_INFO = "supportedPdpGroups";
-
- /**
- * This structure holds the map of PdpGroups per policies, policies are identifed by ToscaConceptIdentifier.
- */
- private final Map> pdpGroupsDeploymentPerPolicy =
- new ConcurrentHashMap<>();
-
- /**
- * Constructor taking he PDPGroups info from the PEF.
- * It then caches the groups per policies and per types.
- *
- * @param pdpGroups The pdpgroup info from the PEF
- */
- public PdpGroupsAnalyzer(PdpGroups pdpGroups) {
- this.analyzePdpGroups(pdpGroups);
- }
-
- /**
- * Getter of the GroupDeploymentPerPolicy structure.
- *
- * @return The map of policies.
- */
- public Map> getPdpGroupsDeploymentPerPolicy() {
- return pdpGroupsDeploymentPerPolicy;
- }
-
- private static void addInfoToPdpGroupsStructure(ToscaConceptIdentifier toscaId,
- Map> pdpGroupsDeploymentPerToscaIdentifier,
- PdpGroup pdpGroupSource,
- PdpSubGroup pdpSubGroupSource) {
- // Copy the subgroup but empty the policies & types
- pdpGroupsDeploymentPerToscaIdentifier.computeIfAbsent(toscaId, toscaKey -> new ConcurrentHashMap<>())
- .computeIfAbsent(pdpGroupSource.getName(), pdpGroupName -> {
- var pdpGroupCopy = new PdpGroup(pdpGroupSource);
- pdpGroupCopy.setPdpSubgroups(new ArrayList<>());
- return pdpGroupCopy;
- }).getPdpSubgroups().add(new PdpSubGroup(pdpSubGroupSource));
- }
-
- private void analyzePdpGroups(PdpGroups pdpGroups) {
- CollectionUtils.emptyIfNull(pdpGroups.getGroups()).stream()
- .forEach(group -> CollectionUtils.emptyIfNull(group.getPdpSubgroups()).stream().forEach(subGroup ->
- CollectionUtils.emptyIfNull(subGroup.getPolicies()).parallelStream().forEach(policy ->
- PdpGroupsAnalyzer.addInfoToPdpGroupsStructure(policy, this.pdpGroupsDeploymentPerPolicy,
- group, subGroup))));
- }
-
- /**
- * This method retrieves all pdpGroups and subgroups where a specific policy name/version is deployed.
- *
- * @param policyName The policy name that must be used for searching
- * @param version THe policy version that must be used for searching
- * @return It returns a JsonObject containing each pdpGroup and subgroups associated
- */
- public JsonObject getPdpGroupsForPolicy(String policyName, String version) {
- Map mapOfGroups =
- this.pdpGroupsDeploymentPerPolicy.get(new ToscaConceptIdentifier(policyName, version));
- if (mapOfGroups != null) {
- var policyPdpGroups = new JsonObject();
- var pdpGroupsArray = new JsonArray();
- policyPdpGroups.add(ASSIGNED_PDP_GROUPS_INFO, pdpGroupsArray);
- pdpGroupsArray.add(JsonUtils.GSON
- .toJsonTree(mapOfGroups));
- return policyPdpGroups;
- }
- return null;
- }
-
- /**
- * Get supported subGroups based on the defined policy type and version for specific PDPGroup.
- * It returns null if the Group is TERMINATED or if the policytype/version has not been found in the PDPSubgroups.
- *
- * @param pdpGroup The pdpGroup that must be analyzed
- * @param policyType The policy type
- * @param version The version
- * @return The supported subGroups list in Json format
- * @see org.onap.policy.models.pdp.concepts.PdpGroup
- * @see org.onap.policy.models.pdp.enums.PdpState
- */
- private static JsonObject getSupportedPdpSubgroupsForModelType(PdpGroup pdpGroup, String policyType,
- String version) {
- if (PdpState.TERMINATED.equals(pdpGroup.getPdpGroupState())) {
- return null;
- }
- var supportedPdpGroup = new JsonObject();
- var supportedSubgroups = new JsonArray();
- supportedPdpGroup.add(pdpGroup.getName(), supportedSubgroups);
- pdpGroup.getPdpSubgroups().stream().forEach(pdpSubGroup -> {
- if (pdpSubGroup.getSupportedPolicyTypes().stream().anyMatch(policyTypeIdentifier ->
- policyType.matches(policyTypeIdentifier.getName().replace(".", "\\.").replace("*", ".*"))
- && version.equals(policyTypeIdentifier.getVersion()))) {
- supportedSubgroups.add(pdpSubGroup.getPdpType());
- }
- });
- return supportedSubgroups.size() == 0 ? null : supportedPdpGroup;
- }
-
- /**
- * This method retrieves all supported pdpGroups and subgroups for a specific policy type/version.
- *
- * @param pdpGroups The PdpGroups object containing all PEF pdp groups info
- * @param policyType The policy type that must be used for searching
- * @param version THe policy type version that must be used for searching
- * @return It returns a JsonObject containing each pdpGroup and subgroups associated
- */
- public static JsonObject getSupportedPdpGroupsForModelType(PdpGroups pdpGroups, String policyType, String version) {
- var supportedPdpGroups = new JsonObject();
- var pdpGroupsArray = new JsonArray();
- supportedPdpGroups.add(SUPPORTED_PDP_GROUPS_INFO, pdpGroupsArray);
-
- pdpGroups.getGroups().stream().map(pdpGroup -> PdpGroupsAnalyzer.getSupportedPdpSubgroupsForModelType(pdpGroup,
- policyType, version)).filter(Objects::nonNull)
- .forEach(pdpGroupsArray::add);
-
- return pdpGroupsArray.size() != 0 ? supportedPdpGroups : null;
- }
-
- /**
- * This method updates each element in the policyModelsList given in argument based on the pdpGroups given.
- *
- * @param policyModelsList The list of Policy Models where each PolicyModel will be updated
- * @param pdpGroups The PdpGroups containing all PDP group definition
- */
- public static void updatePdpGroupOfPolicyModels(List policyModelsList, PdpGroups pdpGroups) {
- policyModelsList.parallelStream().forEach(policyModel -> policyModel
- .setPolicyPdpGroup(getSupportedPdpGroupsForModelType(pdpGroups, policyModel.getPolicyModelType(),
- policyModel.getVersion())));
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java
deleted file mode 100644
index 8eca11c66..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2021 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.policy.clamp.policy.pdpgroup;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import java.util.stream.StreamSupport;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.models.pdp.concepts.PdpGroups;
-
-/**
- * This is an utility class that contains methods to work on the different results provided by the PEF.
- * Mainly used to aggregate the results.
- */
-public class PoliciesPdpMerger {
-
- private PoliciesPdpMerger() {}
-
- /**
- * This method extract the content of a policy without knowing the key (policy Id).
- * This JsonElement normally contains only the policy ID then the content,
- * there is only one member in the Json element.
- * As this is not really practical to use this method remove that
- * nested Json.
- *
- * @param policyJsonElement The policy as JsonElement
- * @return It return the content as JsonObject
- */
- public static JsonObject getPolicyContentOutOfJsonElement(JsonElement policyJsonElement) {
- mergeJsonElement(policyJsonElement.getAsJsonObject(), policyJsonElement.getAsJsonObject()
- .remove(((String) policyJsonElement.getAsJsonObject().keySet().toArray()[0])).getAsJsonObject());
- return policyJsonElement.getAsJsonObject();
- }
-
- /**
- * This method merges 2 JsonElement together. If the jsonToMerge is null nothing is changed.
- *
- * @param json The initial json that will received the data
- * @param jsonToMerge The json that will be added to the first json object
- */
- public static void mergeJsonElement(JsonObject json, JsonObject jsonToMerge) {
- if (jsonToMerge != null) {
- jsonToMerge.entrySet().stream().forEach(entry -> json.add(entry.getKey(), entry.getValue()));
- }
- }
-
- /**
- * This method merges the result of the policy listing and the associated Pdp Group info.
- * It can be seen as an enrichment of the policy listing.
- *
- * @param jsonPoliciesList The Json containing the policies from the PEF
- * @param pdpGroupsJson The json containing the PDP groups info from the PEF
- * @return It returns a JsonObject containing the policies list enriched with PdpGroup info
- */
- public static JsonObject mergePoliciesAndPdpGroupStates(String jsonPoliciesList, String pdpGroupsJson) {
- var pdpGroups = JsonUtils.GSON.fromJson(pdpGroupsJson, PdpGroups.class);
- var policiesListJson =
- JsonUtils.GSON.fromJson(jsonPoliciesList, JsonObject.class).get("topology_template")
- .getAsJsonObject();
- StreamSupport.stream(policiesListJson.get("policies").getAsJsonArray().spliterator(), true)
- .forEach(policyJson -> enrichOnePolicy(pdpGroups, getPolicyContentOutOfJsonElement(policyJson)));
- return policiesListJson;
- }
-
- /**
- * Enrich one policy json node object with pdpGroup info.
- *
- * @param pdpGroups The pdpGroups from PEF to search the policy
- * @param policyJsonNode The policy json node that must be enriched
- */
- private static void enrichOnePolicy(PdpGroups pdpGroups, JsonObject policyJsonNode) {
- var pdpGroupAnalyzer = new PdpGroupsAnalyzer(pdpGroups);
- JsonObject deploymentPdpJson = pdpGroupAnalyzer
- .getPdpGroupsForPolicy(policyJsonNode.get("name").getAsString(),
- policyJsonNode.get("version").getAsString());
- mergeJsonElement(policyJsonNode, deploymentPdpJson);
-
- JsonObject supportedPdpGroupsJson = PdpGroupsAnalyzer
- .getSupportedPdpGroupsForModelType(pdpGroups, policyJsonNode.get("type").getAsString(),
- policyJsonNode.get("type_version").getAsString());
- mergeJsonElement(policyJsonNode, supportedPdpGroupsJson);
- }
-}
-
diff --git a/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
deleted file mode 100644
index da6454a44..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * Modifications Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * 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.policy.clamp.tosca;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Set;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.Table;
-import org.onap.policy.clamp.loop.common.AuditEntity;
-
-/**
- * Represents Dictionary.
- */
-
-@Entity
-@Table(name = "dictionary")
-public class Dictionary extends AuditEntity implements Serializable {
-
- /**
- * The serial version id.
- */
- private static final long serialVersionUID = -286522707701388645L;
-
- @Id
- @Expose
- @Column(nullable = false, name = "name", unique = true)
- private String name;
-
- @Expose
- @Column(name = "dictionary_second_level")
- private int secondLevelDictionary = 0;
-
- @Expose
- @Column(name = "dictionary_type")
- private String subDictionaryType;
-
- @Expose
- @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
- @JoinTable(
- name = "dictionary_to_dictionaryelements",
- joinColumns = @JoinColumn(name = "dictionary_name", referencedColumnName = "name"),
- inverseJoinColumns = {@JoinColumn(
- name = "dictionary_element_short_name",
- referencedColumnName = "short_name")})
- private Set dictionaryElements = new HashSet<>();
-
- /**
- * name getter.
- *
- * @return the name
- */
- public String getName() {
- return name;
- }
-
- /**
- * name setter.
- *
- * @param name the name to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * secondLevelDictionary getter.
- *
- * @return the secondLevelDictionary
- */
- public int getSecondLevelDictionary() {
- return secondLevelDictionary;
- }
-
- /**
- * secondLevelDictionary setter.
- *
- * @param secondLevelDictionary the secondLevelDictionary to set
- */
- public void setSecondLevelDictionary(int secondLevelDictionary) {
- this.secondLevelDictionary = secondLevelDictionary;
- }
-
- /**
- * subDictionaryType getter.
- *
- * @return the subDictionaryType
- */
- public String getSubDictionaryType() {
- return subDictionaryType;
- }
-
- /**
- * subDictionaryType setter.
- *
- * @param subDictionaryType the subDictionaryType to set
- */
- public void setSubDictionaryType(String subDictionaryType) {
- this.subDictionaryType = subDictionaryType;
- }
-
- /**
- * dictionaryElements getter.
- *
- * @return the dictionaryElements List of dictionary element
- */
- public Set getDictionaryElements() {
- return dictionaryElements;
- }
-
- /**
- * Method to add a new dictionaryElement to the list.
- *
- * @param dictionaryElement The dictionary element
- */
- public void addDictionaryElements(DictionaryElement dictionaryElement) {
- dictionaryElements.add(dictionaryElement);
- dictionaryElement.getUsedByDictionaries().add(this);
- }
-
- /**
- * Method to set dictionaryElements.
- *
- * @param dictionaryElements The dictionary elements set
- */
- public void setDictionaryElements(Set dictionaryElements) {
- this.dictionaryElements = dictionaryElements;
- }
-
- /**
- * Method to delete a dictionaryElement from the list.
- *
- * @param dictionaryElement The dictionary element
- */
- public void removeDictionaryElement(DictionaryElement dictionaryElement) {
- dictionaryElements.remove(dictionaryElement);
- dictionaryElement.getUsedByDictionaries().remove(this);
- }
-
- /**
- * Default Constructor.
- */
- public Dictionary() {
-
- }
-
- /**
- * Constructor.
- *
- * @param name The Dictionary name
- * @param secondLevelDictionary defines if dictionary is a secondary level
- * @param subDictionaryType defines the type of secondary level dictionary
- */
- public Dictionary(String name, int secondLevelDictionary, String subDictionaryType) {
- this.name = name;
- this.secondLevelDictionary = secondLevelDictionary;
- this.subDictionaryType = subDictionaryType;
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- Dictionary other = (Dictionary) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java
deleted file mode 100644
index d4d314305..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.tosca;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Set;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.ManyToMany;
-import javax.persistence.Table;
-import org.onap.policy.clamp.loop.common.AuditEntity;
-
-/**
- * Represents a Dictionary Item.
- */
-@Entity
-@Table(name = "dictionary_elements")
-public class DictionaryElement extends AuditEntity implements Serializable {
-
- /**
- * The serial version id.
- */
- private static final long serialVersionUID = -286522707701388644L;
-
- @Id
- @Expose
- @Column(nullable = false, name = "short_name")
- private String shortName;
-
- @Expose
- @Column(nullable = false, name = "name")
- private String name;
-
- @Expose
- @Column(nullable = false, name = "description")
- private String description;
-
- @Expose
- @Column(nullable = false, name = "type")
- private String type;
-
- @Expose
- @Column(nullable = true, name = "subdictionary_name")
- private String subDictionary;
-
- @ManyToMany(mappedBy = "dictionaryElements", fetch = FetchType.EAGER)
- private Set usedByDictionaries = new HashSet<>();
-
- /**
- * name getter.
- *
- * @return the name
- */
- public String getName() {
- return name;
- }
-
- /**
- * name setter.
- *
- * @param name the name to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * shortName getter.
- *
- * @return the shortName
- */
- public String getShortName() {
- return shortName;
- }
-
- /**
- * shortName setter.
- *
- * @param shortName the shortName to set
- */
- public void setShortName(String shortName) {
- this.shortName = shortName;
- }
-
- /**
- * description getter.
- *
- * @return the description
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * description setter.
- *
- * @param description the description to set
- */
- public void setDescription(String description) {
- this.description = description;
- }
-
- /**
- * type getter.
- *
- * @return the type
- */
- public String getType() {
- return type;
- }
-
- /**
- * type setter.
- *
- * @param type the type to set
- */
- public void setType(String type) {
- this.type = type;
- }
-
- /**
- * subDictionary getter.
- *
- * @return the subDictionary
- */
- public String getSubDictionary() {
- return subDictionary;
- }
-
- /**
- * subDictionary setter.
- *
- * @param subDictionary the subDictionary to set
- */
- public void setSubDictionary(String subDictionary) {
- this.subDictionary = subDictionary;
- }
-
- /**
- * usedByDictionaries getter.
- *
- * @return the usedByDictionaries
- */
- public Set getUsedByDictionaries() {
- return usedByDictionaries;
- }
-
- /**
- * usedByDictionaries setter.
- *
- * @param usedByDictionaries the usedByDictionaries to set
- */
- public void setUsedByDictionaries(Set usedByDictionaries) {
- this.usedByDictionaries = usedByDictionaries;
- }
-
- /**
- * Default Constructor.
- */
- public DictionaryElement() {
- }
-
- /**
- * Constructor.
- *
- * @param name The Dictionary element name
- * @param shortName The short name
- * @param description The description
- * @param type The type of element
- * @param subDictionary The sub type
- */
- public DictionaryElement(String name, String shortName, String description, String type,
- String subDictionary) {
- this.name = name;
- this.shortName = shortName;
- this.description = description;
- this.type = type;
- this.subDictionary = subDictionary;
- }
-
- /**
- * Constructor.
- *
- * @param name The Dictionary element name
- * @param shortName The short name
- * @param description The description
- * @param type The type of element
- * @param subDictionary The sub type
- */
- public DictionaryElement(String name, String shortName, String description, String type,
- String subDictionary, Set usedByDictionaries) {
- this.name = name;
- this.shortName = shortName;
- this.description = description;
- this.type = type;
- this.subDictionary = subDictionary;
- this.usedByDictionaries = usedByDictionaries;
- }
-
- @Override
- public int hashCode() {
- final var prime = 31;
- var result = 1;
- result = prime * result + ((shortName == null) ? 0 : shortName.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- DictionaryElement other = (DictionaryElement) obj;
- if (shortName == null) {
- if (other.shortName != null) {
- return false;
- }
- } else if (!shortName.equals(other.shortName)) {
- return false;
- }
- return true;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java
deleted file mode 100644
index 0bc50fe1a..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.tosca;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface DictionaryElementsRepository extends JpaRepository {
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java
deleted file mode 100644
index a2f417d17..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.tosca;
-
-import java.util.List;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface DictionaryRepository extends JpaRepository {
-
- @Query("SELECT dict.name FROM Dictionary as dict")
- List getAllDictionaryNames();
-
- @Query("SELECT dict.name FROM Dictionary as dict where dict.secondLevelDictionary = 1")
- List getAllSecondaryLevelDictionaryNames();
-
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java
deleted file mode 100644
index ac2651d9c..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.tosca;
-
-import com.google.common.collect.Sets;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import javax.persistence.EntityNotFoundException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class DictionaryService {
-
- private final DictionaryRepository dictionaryRepository;
- private final DictionaryElementsRepository dictionaryElementsRepository;
-
- /**
- * Constructor.
- */
- @Autowired
- public DictionaryService(DictionaryRepository dictionaryRepository,
- DictionaryElementsRepository dictionaryElementsRepository) {
- this.dictionaryRepository = dictionaryRepository;
- this.dictionaryElementsRepository = dictionaryElementsRepository;
-
- }
-
- public Dictionary saveOrUpdateDictionary(Dictionary dictionary) {
- return dictionaryRepository.saveAndFlush(dictionary);
- }
-
- /**
- * Creates or Updates Dictionary Element.
- *
- * @param dictionaryName The Dictionary name
- * @param dictionary The Dictionary object with dictionary elements
- * @return updated Dictionary object with all dictionary elements
- */
- public Dictionary saveOrUpdateDictionaryElement(String dictionaryName, Dictionary dictionary) {
- var dict = getDictionary(dictionaryName);
-
- Set newDictionaryElements = dictionary.getDictionaryElements();
-
- if (newDictionaryElements != null && !newDictionaryElements.isEmpty()) {
- Set updatedDictionaryElements = newDictionaryElements.stream()
- .map(dictionaryElement -> getAndUpdateDictionaryElement(dict, dictionaryElement))
- .collect(Collectors.toSet());
-
- dict.getDictionaryElements().forEach(dictElement -> {
- if (!updatedDictionaryElements.contains(dictElement)) {
- updatedDictionaryElements.add(dictElement);
- }
- });
- dict.setDictionaryElements(updatedDictionaryElements);
- }
- return dictionaryRepository.saveAndFlush(dict);
-
- }
-
- private DictionaryElement getAndUpdateDictionaryElement(Dictionary dictionary,
- DictionaryElement element) {
- return dictionaryElementsRepository
- .save(dictionaryElementsRepository.findById(element.getShortName())
- .map(p -> updateDictionaryElement(p, element, dictionary))
- .orElse(new DictionaryElement(element.getName(), element.getShortName(),
- element.getDescription(), element.getType(), element.getSubDictionary(),
- Sets.newHashSet(dictionary))));
- }
-
- public void deleteDictionary(Dictionary dictionary) {
- dictionaryRepository.delete(dictionary);
- }
-
- public void deleteDictionary(String dictionaryName) {
- dictionaryRepository.deleteById(dictionaryName);
- }
-
- public List getAllDictionaries() {
- return dictionaryRepository.findAll();
- }
-
- public List getAllSecondaryLevelDictionaryNames() {
- return dictionaryRepository.getAllSecondaryLevelDictionaryNames();
- }
-
- public Dictionary getDictionary(String dictionaryName) {
- return dictionaryRepository.findById(dictionaryName).orElseThrow(
- () -> new EntityNotFoundException("Couldn't find Dictionary named: " + dictionaryName));
- }
-
- /**
- * Deletes a dictionary element from Dictionary by shortName.
- *
- * @param dictionaryName The dictionary name
- * @param dictionaryElementShortName the dictionary Element Short name
- */
- public void deleteDictionaryElement(String dictionaryName, String dictionaryElementShortName) {
- if (dictionaryRepository.existsById(dictionaryName)) {
- DictionaryElement element =
- dictionaryElementsRepository.findById(dictionaryElementShortName).orElse(null);
- if (element != null) {
- var dict = getDictionary(dictionaryName);
- dict.removeDictionaryElement(element);
- dictionaryRepository.saveAndFlush(dict);
- }
- }
- }
-
- private DictionaryElement updateDictionaryElement(DictionaryElement oldDictionaryElement,
- DictionaryElement newDictionaryElement, Dictionary dictionary) {
- oldDictionaryElement.setName(newDictionaryElement.getName());
- oldDictionaryElement.setDescription(newDictionaryElement.getDescription());
- oldDictionaryElement.setType(newDictionaryElement.getType());
- oldDictionaryElement.setSubDictionary(newDictionaryElement.getSubDictionary());
- oldDictionaryElement.getUsedByDictionaries().add(dictionary);
- return oldDictionaryElement;
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java b/runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java
deleted file mode 100644
index 9052c382e..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.clamp.util;
-
-import java.io.IOException;
-import org.onap.aaf.cadi.Symm;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * PassDecoder for decrypting the truststore and keystore password.
- */
-public class PassDecoder {
-
- private PassDecoder() {
- }
-
- /**
- * Used to log PassDecoder class.
- */
- private static final Logger logger = LoggerFactory.getLogger(PassDecoder.class);
-
- /**
- * Decode the password.
- *
- * @param encryptedPass The encrypted password
- * @param keyFileName The key file name in String
- */
- public static String decode(String encryptedPass, String keyFileName) {
- if (null == keyFileName) {
- logger.debug("Key file is not defined, thus password will not be decrypted");
- return encryptedPass;
- }
- if (null == encryptedPass) {
- logger.error("Encrypted password is not defined");
- return null;
- }
- try {
- return Symm.obtain(ResourceFileUtils.getResourceAsStream(keyFileName)).depass(encryptedPass);
- } catch (IOException e) {
- logger.error("Exception occurred during the key decryption", e);
- return null;
- }
- }
-}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java b/runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java
deleted file mode 100644
index c1f4111d5..000000000
--- a/runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020-2021 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.policy.clamp.util;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-/**
- * This class is the base class for object that requires semantic versioning.
- * ... This class supports also a.b.c.d... etc ... as a version.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class SemanticVersioning {
- public static final int BEFORE = -1;
- public static final int EQUAL = 0;
- public static final int AFTER = 1;
- public static final String DEFAULT_VERSION = "1.0.0";
-
- /**
- * The compare method that compare arg0 to arg1.
- *
- * @param arg0 A version in string for semantic versioning (a.b.c.d...)
- * @param arg1 A version in string for semantic versioning (a.b.c.d...)
- * @return objects (arg0, arg1) given as parameters. It returns the value: 0: if
- * (arg0==arg1) -1: if (arg0 < arg1) 1: if (arg0 > arg1)
- */
- public static int compare(String arg0, String arg1) {
-
- if (arg0 == null && arg1 == null) {
- return EQUAL;
- }
- if (arg0 == null) {
- return BEFORE;
- }
- if (arg1 == null) {
- return AFTER;
- }
- String[] arg0Array = arg0.split("\\.");
- String[] arg1Array = arg1.split("\\.");
-
- int smalestStringLength = Math.min(arg0Array.length, arg1Array.length);
-
- for (var currentVersionIndex =
- 0; currentVersionIndex < smalestStringLength; ++currentVersionIndex) {
- if (Integer.parseInt(arg0Array[currentVersionIndex]) < Integer
- .parseInt(arg1Array[currentVersionIndex])) {
- return BEFORE;
- } else if (Integer.parseInt(arg0Array[currentVersionIndex]) > Integer
- .parseInt(arg1Array[currentVersionIndex])) {
- return AFTER;
- }
- // equals, so do not return anything, continue
- }
- if (arg0Array.length == arg1Array.length) {
- return EQUAL;
- } else {
- return Integer.compare(arg0Array.length, arg1Array.length);
- }
- }
-
- /**
- * Method to increment a version from its current version.
- *
- * @param currentVersion The current Version
- * @return the increment version string
- */
- public static String incrementMajorVersion(String currentVersion) {
- if (currentVersion == null || currentVersion.isEmpty()) {
- return DEFAULT_VERSION;
- }
- String[] versionArray = currentVersion.split("\\.");
- return String.valueOf(Integer.parseInt(versionArray[0]) + 1) + ".0.0";
- }
-}
diff --git a/runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson b/runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson
deleted file mode 100644
index 04caffa99..000000000
--- a/runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson
+++ /dev/null
@@ -1,23 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- */
-
-class=org.onap.policy.clamp.configuration.ClampGsonDataFormat
\ No newline at end of file
diff --git a/runtime/src/main/resources/application-noaaf.properties b/runtime/src/main/resources/application-noaaf.properties
deleted file mode 100644
index 22f9774e1..000000000
--- a/runtime/src/main/resources/application-noaaf.properties
+++ /dev/null
@@ -1,198 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# ONAP POLICY-CLAMP
-# ================================================================================
-# Copyright (C) 2017-2019, 2021 AT&T Intellectual Property. All rights
-# reserved.
-# Modifications Copyright (C) 2021 Nordix Foundation.
-# ================================================================================
-# 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END============================================
-# ===================================================================
-#
-###
-
-### Set the port for HTTP or HTTPS protocol (Controlled by Spring framework, only one at a time).
-### (See below for the parameter 'server.http.port' if you want to have both enabled)
-### To have only HTTP, keep the lines server.ssl.* commented
-### To have only HTTPS enabled, uncomment the server.ssl.* lines and specify a right keystore location
-### server.port=8080
-### Settings for HTTPS (this automatically enables the HTTPS on the port 'server.port')
-#server.ssl.key-store=file:/tmp/mykey.jks
-#server.ssl.key-store-password=pass
-#server.ssl.key-password=pass
-
-### In order to be user friendly when HTTPS is enabled,
-### you can add another HTTP port that will be automatically redirected to HTTPS
-### by enabling this parameter (server.http.port) and set it to another port (80 or 8080, 8090, etc ...)
-#server.http-to-https-redirection.port=8090
-
-### HTTP Example:
-###--------------
-### server.port=8080
-
-### HTTPS Example:
-### --------------
-### server.port=8443
-### server.ssl.key-store=file:/tmp/mykey.jks
-### server.ssl.key-store-password=mypass
-### server.ssl.key-password=mypass
-server.port=8443
-## Config part for Server certificates
-# Can be a classpath parameter instead of file:/
-server.ssl.key-store=classpath:/clds/aaf/org.onap.clamp.p12
-server.ssl.key-store-password=enc:WWCxchk4WGBNSvuzLq3MLjMs5ObRybJtts5AI0XD1Vc
-server.ssl.key-password=enc:WWCxchk4WGBNSvuzLq3MLjMs5ObRybJtts5AI0XD1Vc
-server.ssl.key-store-type=PKCS12
-server.ssl.key-alias=clamptest
-
-## Config part for Client certificates
-server.ssl.client-auth=want
-server.ssl.trust-store=classpath:/clds/aaf/truststoreONAPall.jks
-server.ssl.trust-store-password=enc:iDnPBBLq_EMidXlMa1FEuBR8TZzYxrCg66vq_XfLHdJ
-
-# The key file used to decode the key store and trust store password
-# If not defined, the key store and trust store password will not be decrypted
-clamp.config.keyFile=classpath:/clds/aaf/org.onap.clamp.keyfile
-
-#server.http-to-https-redirection.port=8080
-
-server.servlet.context-path=/
-#Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,default-dictionary-elements
-spring.http.converters.preferred-json-mapper=gson
-
-#The max number of active threads in this pool
-server.tomcat.max-threads=200
-#The minimum number of threads always kept alive
-server.tomcat.min-Spare-Threads=25
-#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
-server.tomcat.max-idle-time=60000
-
-#Servlet context parameters
-server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
-
-camel.springboot.tracing=true
-camel.springboot.consumer-template-cache-size=1000
-camel.springboot.producer-template-cache-size=1000
-camel.springboot.jmx-enabled=true
-camel.defaultthreadpool.poolsize=10
-camel.defaultthreadpool.maxpoolsize=20
-camel.defaultthreadpool.maxqueuesize=1000
-camel.defaultthreadpool.keepaliveTime=60
-camel.defaultthreadpool.rejectpolicy=CallerRuns
-camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml
-camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml
-camel.springboot.backlog-tracing=true
-camel.springboot.tracing=true
-
-#clds datasource connection details
-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.testOnBorrow=true
-spring.datasource.ignoreExceptionOnPreLoad=true
-# control the sql db initialization (from schema.sql and data.sql)
-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
-#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
-#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
-# disable Hibernate DDL generation because the schema will be generated from a sql script
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
-spring.jpa.properties.hibernate.ddl-auto=validate
-spring.jpa.properties.hibernate.hbm2ddl.delimiter=;
-spring.jpa.properties.hibernate.format_sql=true
-spring.jpa.properties.hibernate.use-new-id-generator-mappings=true
-
-# Whether to enable logging of SQL statements.
-#spring.jpa.show-sql=true
-
-#Async Executor default Parameters
-async.core.pool.size=10
-async.max.pool.size=20
-async.queue.capacity=500
-
-#For logback file
-#clamp.config.logback.path=
-clamp.config.logback.filename=logback-default.xml
-#The log folder that will be used in logback.xml file
-clamp.config.log.path=/var/log/onap/clamp
-clamp.config.files.systemProperties=classpath:/system.properties
-clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
-clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
-clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json
-
-clamp.config.httpclient.socketTimeout=60000
-clamp.config.httpclient.connectTimeout=10000
-
-#
-# Configuration Settings for Policy Engine Components
-clamp.config.policy.api.url=http://localhost:8085
-clamp.config.policy.api.userName=policyadmin
-clamp.config.policy.api.password=zb!XztG34
-clamp.config.policy.pap.url=http://localhost:8085
-clamp.config.policy.pap.userName=policyadmin
-clamp.config.policy.pap.password=zb!XztG34
-
-#
-# Sdc service properties
-clamp.config.sdc.csarFolder = /tmp/sdc-controllers
-
-#DCAE Inventory Url Properties
-clamp.config.dcae.inventory.url=http://localhost:8085
-clamp.config.dcae.intentory.retry.interval=10000
-clamp.config.dcae.intentory.retry.limit=5
-
-#DCAE Deployment Url Properties
-clamp.config.dcae.deployment.url=http://localhost:8085
-clamp.config.dcae.deployment.userName=test
-clamp.config.dcae.deployment.password=test
-
-#Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case !
-clamp.config.security.permission.type.cl=org.onap.clamp.clds.cl
-clamp.config.security.permission.type.cl.manage=org.onap.clamp.clds.cl.manage
-clamp.config.security.permission.type.cl.event=org.onap.clamp.clds.cl.event
-clamp.config.security.permission.type.filter.vf=org.onap.clamp.clds.filter.vf
-clamp.config.security.permission.type.template=org.onap.clamp.clds.template
-clamp.config.security.permission.type.tosca=org.onap.clamp.clds.tosca
-clamp.config.security.permission.type.policies=org.onap.clamp.clds.policies
-#This one indicates the type of instances (dev|prod|perf...), this must be set accordingly in clds-users.properties
-clamp.config.security.permission.instance=dev
-clamp.config.security.authentication.class=org.onap.aaf.cadi.principal.X509Principal, org.onap.aaf.cadi.principal.CachedBasicPrincipal
-
-## Tosca converter
-clamp.config.tosca.converter.json.schema.templates=classpath:/clds/tosca-converter/templates.json
-clamp.config.tosca.converter.default.datatypes=classpath:/clds/tosca-converter/default-tosca-types.yaml
-clamp.config.tosca.converter.dictionary.support.enabled=true
-
-# Configuration settings for CDS
-clamp.config.cds.url=http://cds-blueprints-processor-http:8080
-clamp.config.cds.userName=ccsdkapps
-clamp.config.cds.password=ccsdkapps
-
-# Configuration settings for ControlLoop Runtime Rest API
-clamp.config.acm.runtime.url=http://localhost:6969
-clamp.config.acm.runtime.userName=runtimeUser
-clamp.config.acm.runtime.password=zb!XztG34
diff --git a/runtime/src/main/resources/application.properties b/runtime/src/main/resources/application.properties
deleted file mode 100644
index 054b88972..000000000
--- a/runtime/src/main/resources/application.properties
+++ /dev/null
@@ -1,208 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# ONAP POLICY-CLAMP
-# ================================================================================
-# Copyright (C) 2017-2019, 2021 AT&T Intellectual Property. All rights
-# reserved.
-# ================================================================================
-# Modifications copyright (c) 2019 Nokia
-# ================================================================================\
-# 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============================================
-# ===================================================================
-#
-###
-
-### Set the port for HTTP or HTTPS protocol (Controlled by Spring framework, only one at a time).
-### (See below for the parameter 'server.http.port' if you want to have both enabled)
-### To have only HTTP, keep the lines server.ssl.* commented
-### To have only HTTPS enabled, uncomment the server.ssl.* lines and specify a right keystore location
-### server.port=8080
-### Settings for HTTPS (this automatically enables the HTTPS on the port 'server.port')
-#server.ssl.key-store=file:/tmp/mykey.jks
-#server.ssl.key-store-password=pass
-#server.ssl.key-password=pass
-
-### In order to be user friendly when HTTPS is enabled,
-### you can add another HTTP port that will be automatically redirected to HTTPS
-### by enabling this parameter (server.http.port) and set it to another port (80 or 8080, 8090, etc ...)
-#server.http-to-https-redirection.port=8090
-
-### HTTP Example:
-###--------------
-### server.port=8080
-
-### HTTPS Example:
-### --------------
-### server.port=8443
-### server.ssl.key-store=file:/tmp/mykey.jks
-### server.ssl.key-store-password=mypass
-### server.ssl.key-password=mypass
-
-### HTTP (Redirected to HTTPS) and HTTPS Example:
-### --------------------------------------------
-server.port=8443
-## Config part for Server certificates
-# Can be a classpath parameter instead of file:/
-server.ssl.key-store=classpath:/clds/aaf/org.onap.clamp.p12
-server.ssl.key-store-password=enc:WWCxchk4WGBNSvuzLq3MLjMs5ObRybJtts5AI0XD1Vc
-server.ssl.key-password=enc:WWCxchk4WGBNSvuzLq3MLjMs5ObRybJtts5AI0XD1Vc
-server.ssl.key-store-type=PKCS12
-server.ssl.key-alias=clamptest
-
-# The key file used to decode the key store and trust store password
-# If not defined, the key store and trust store password will not be decrypted
-clamp.config.keyFile=classpath:/clds/aaf/org.onap.clamp.keyfile
-clamp.config.caCerts=classpath:/clds/aaf/ssl/ca-certs.pem
-
-## Config part for Client certificates
-server.ssl.client-auth=want
-server.ssl.trust-store=classpath:/clds/aaf/truststoreONAPall.jks
-server.ssl.trust-store-password=enc:iDnPBBLq_EMidXlMa1FEuBR8TZzYxrCg66vq_XfLHdJ
-
-#server.http-to-https-redirection.port=8080
-
-server.servlet.context-path=/
-#Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,default-dictionary-elements
-spring.http.converters.preferred-json-mapper=gson
-
-#The max number of active threads in this pool
-server.tomcat.max-threads=200
-#The minimum number of threads always kept alive
-server.tomcat.min-Spare-Threads=25
-#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
-server.tomcat.max-idle-time=60000
-
-#Servlet context parameters
-server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
-camel.springboot.tracing=true
-camel.springboot.consumer-template-cache-size=1000
-camel.springboot.producer-template-cache-size=1000
-camel.springboot.jmx-enabled=true
-camel.defaultthreadpool.poolsize=10
-camel.defaultthreadpool.maxpoolsize=20
-camel.defaultthreadpool.maxqueuesize=1000
-camel.defaultthreadpool.keepaliveTime=60
-camel.defaultthreadpool.rejectpolicy=CallerRuns
-camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml
-camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml
-camel.springboot.backlog-tracing=true
-camel.springboot.tracing=true
-
-#clds datasource connection details
-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.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
-#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
-#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
-# disable Hibernate DDL generation because the schema will be generated from a sql script
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
-spring.jpa.properties.hibernate.ddl-auto=validate
-spring.jpa.properties.hibernate.hbm2ddl.delimiter=;
-spring.jpa.properties.hibernate.format_sql=true
-spring.jpa.properties.hibernate.use-new-id-generator-mappings=true
-
-# Whether to enable logging of SQL statements.
-#spring.jpa.show-sql=true
-
-#Async Executor default Parameters
-async.core.pool.size=10
-async.max.pool.size=20
-async.queue.capacity=500
-
-#For logback file
-#clamp.config.logback.path=
-clamp.config.logback.filename=logback-default.xml
-#The log folder that will be used in logback.xml file
-clamp.config.log.path=/var/log/onap/clamp
-clamp.config.files.systemProperties=classpath:/system.properties
-clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
-clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
-clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json
-
-clamp.config.httpclient.socketTimeout=60000
-clamp.config.httpclient.connectTimeout=10000
-#
-# Configuration Settings for Policy Engine Components
-clamp.config.policy.api.url=http://policy.api.simpledemo.onap.org:6969
-clamp.config.policy.api.userName=policyadmin
-clamp.config.policy.api.password=zb!XztG34
-clamp.config.policy.pap.url=http://policy.api.simpledemo.onap.org:6969
-clamp.config.policy.pap.userName=policyadmin
-clamp.config.policy.pap.password=zb!XztG34
-
-#
-# Sdc service properties
-clamp.config.sdc.csarFolder=/tmp/sdc-controllers
-
-#DCAE Inventory Url Properties
-clamp.config.dcae.inventory.url=http://dcae.api.simpledemo.onap.org:8080
-clamp.config.dcae.intentory.retry.interval=10000
-clamp.config.dcae.intentory.retry.limit=5
-
-#DCAE Deployment Url Properties
-clamp.config.dcae.deployment.url=http://dcae.api.simpledemo.onap.org:8188
-clamp.config.dcae.deployment.userName=test
-clamp.config.dcae.deployment.password=test
-
-#Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case !
-clamp.config.security.permission.type.cl=org.onap.clamp.clds.cl
-clamp.config.security.permission.type.cl.manage=org.onap.clamp.clds.cl.manage
-clamp.config.security.permission.type.cl.event=org.onap.clamp.clds.cl.event
-clamp.config.security.permission.type.filter.vf=org.onap.clamp.clds.filter.vf
-clamp.config.security.permission.type.template=org.onap.clamp.clds.template
-clamp.config.security.permission.type.tosca=org.onap.clamp.clds.tosca
-clamp.config.security.permission.type.policies=org.onap.clamp.clds.policies
-#This one indicates the type of instances (dev|prod|perf...), this must be set accordingly in clds-users.properties
-clamp.config.security.permission.instance=dev
-clamp.config.security.authentication.class=org.onap.aaf.cadi.principal.X509Principal, org.onap.aaf.cadi.principal.CachedBasicPrincipal
-
-#AAF related parameters
-clamp.config.cadi.cadiLoglevel=DEBUG
-clamp.config.cadi.cadiLatitude=10
-clamp.config.cadi.cadiLongitude=10
-clamp.config.cadi.aafLocateUrl=https://aaf-locate:30251
-clamp.config.cadi.oauthTokenUrl= https://AAF_LOCATE_URL/locate/onap.org.osaaf.aaf.token:2.1/token
-clamp.config.cadi.oauthIntrospectUrll=https://AAF_LOCATE_URL/locate/onap.org.osaaf.aaf.introspect:2.1/introspect
-clamp.config.cadi.aafEnv=DEV
-clamp.config.cadi.aafUrl=https://AAF_LOCATE_URL/onap.org.osaaf.aaf.service:2.1
-clamp.config.cadi.cadiX509Issuers=CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_9, OU=OSAAF, O=ONAP, C=US
-
-## Tosca converter
-clamp.config.tosca.converter.json.schema.templates=classpath:/clds/tosca-converter/templates.json
-clamp.config.tosca.converter.default.datatypes=classpath:/clds/tosca-converter/default-tosca-types.yaml
-clamp.config.tosca.converter.dictionary.support.enabled=true
-
-# Configuration settings for CDS
-clamp.config.cds.url=http://cds-blueprints-processor-http:8080
-clamp.config.cds.userName=ccsdkapps
-clamp.config.cds.password=ccsdkapps
-
-# Configuration settings for ControlLoop Runtime Rest API
-clamp.config.acm.runtime.url=http://localhost:6969
-clamp.config.acm.runtime.userName=runtimeUser
-clamp.config.acm.runtime.password=zb!XztG34
diff --git a/runtime/src/main/resources/boot-message.txt b/runtime/src/main/resources/boot-message.txt
deleted file mode 100644
index a7be5c69b..000000000
--- a/runtime/src/main/resources/boot-message.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-
- __ _ _ _ ____
- / _ \| \ | | / \ | _ \
- | | | | \| | / _ \ | |_) |
- | |_| | |\ |/ ___ \| __/
- \___/|_| \_/_/ \_\_|
- ____ ___ _ ___ ______ __ ____ _ _ __ __ ____
- | _ \ / _ \| | |_ _/ ___\ \ / / / ___| | / \ | \/ | _ \
- | |_) | | | | | | | | \ V /____| | | | / _ \ | |\/| | |_) |
- | __/| |_| | |___ | | |___ | |_____| |___| |___ / ___ \| | | | __/
- |_| \___/|_____|___\____| |_| \____|_____/_/ \_\_| |_|_|
-
-
-
-
- :: Starting ::
diff --git a/runtime/src/main/resources/clds-version.properties b/runtime/src/main/resources/clds-version.properties
deleted file mode 100644
index a0dbcdead..000000000
--- a/runtime/src/main/resources/clds-version.properties
+++ /dev/null
@@ -1,24 +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============================================
-# ===================================================================
-#
-###
-
-clds.version=${project.version}
\ No newline at end of file
diff --git a/runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile b/runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile
deleted file mode 100644
index c2521fc81..000000000
--- a/runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile
+++ /dev/null
@@ -1,27 +0,0 @@
-kzJMxgphAoBxJz1_vYjxx-V87fahDQdYUqBIyWhZp8ojXdNpmB-96T9CvgJScJynbLcqw2Cj2CYx
-wd97vFOYhlyz5zK3tSyIuydOkVGJsJ1S4PviTtjhiJvNourJNDHgtas1Y1y2fQ5_8aVxj-s4W72N
-MNYhkeTinaQx_d_5hkBPABJlgCxKLnmxHo2jAJktnZYa5t5h48m7KiUx_RVEkQVtEvux-7vgXaC4
-ymTXj6zI9XoMTVxM0OAl4y7kBiUoOUaxS4tVKV34RJYNNqBjiUTQa_ag-KeUacRABk1ozfwzpvE5
-Sjz8WCy0L-LtCQnapkhKLt04ndCZtw8LDJ-Zz0ZgR2PVIPpTgs9VnVuOi5jf4LzTrtUatvOWkKB9
-drXKzp6cNXnZ0jkD3vV1BzqzhynKnZR2o_ilZv5CTTdpGUt906N_DwZuX6LfcV_7yvjX42bTfeIR
-ycPtodFPXlqqn9VUyh5nOauJlnOHAQmSDzjMEgjy17nQX3Ad7s4BfvujzUl-d0MqB_HCKbaW32UT
-xcY-0JfI1Y-2IdYfIkUdhVmxop6sSg0jAobWzgCRoRQkP3a2iIlKdfMyskshoWKIDVtlr-3fkDEb
-x_b_o1rRoUfzUzxEdphaUAq80Sc0i77ZLT3KF9vJOhyU_pBnApYFxVk7Hkk3VRxJKS7jyL4H7k1x
-2m5-2G8fB9XbYZT82xmAquNx4oBdpwj3_ncGF9YRF94K6NZgqemT5iWhpXMoelSU1blASgT3qlTm
-B6YgbD5owExNHwRVd8KeRsYrOnBWUiktsIhXFhNZmDUNWMFGQ2KxEcOt1tJwsQDehJFgY_l1JQ0d
-643wJ7rTJkGkYX309cydRQUX4Z0ckSQS9LhMd9stxF5XOHlvHdbW0pXNS7SaLbzKCVldUgncvI6z
-KWkwrWbftrZK2RT1UZKNngQDMGOk9OhbHAs7YzhFNFARZoRNobIv5tZVDomy-YgJb9-mD1UTkRBL
-WXOyoryDlgKrgFsgHclGDI1UFO5N-JfebPKxbP505f4924hxF2r8bspvVW8ZtHQo_SJmhauOX8n_
-eN_LK43LB9k53WAHZ_utvs0s6wGf7I73oj_N7DIFaHTDSm_MhDsFDLVG_wUzCpZ5FP2uL3nnqMkF
-Ob-l1fywfmfOmrz1BY6g4sRPPeWXuclYTnRnDRu5VQyc7_aBEVkyt3zw0JEex0vJNFUJl3pYjS55
-GplAB6p7VbS9ceZEtc5Z3qFIVHEzKWZxT190E23t_LlMuEoQ1zaqdHynNaMs61-q_A2aHRiTqlRm
-7FahVB3RX4AVLl23mu4u3A9ZDXc40nzjs9mwOVsuKlPvQ2rteDUG1njr2R1_V_MyQuoJjdfbIkPG
-4eF0QzlSMdbkeprdQxSfV5YT-yPpkBxSsCMMM43sKm4Hy7_CUdvp4Iayrp3vtK3oYMuCGi6qTadz
-KzxfTf8meKan3eMZW4RLByyniH5nQnX_KGfBly05AmFyVH_j0fyOg-48kDhtEKeqmDnP4C01jOID
-Ip_AKaB6e0GwsHzVTLZOklHwu_qzsaTzchBOG_dJJju7bxY7qv78Pa92wZIP311gSCVbc-gxxbsR
-qI555twmYEoasFm4xz10OYDOkvM1E1Rtxu3ymRLZpe6AoyFBVzEW7Dncdw7O98dKcgrp8ZlQ_8Wg
-5zZH0Cic7xnIZ0bNZyQXw56CSUiXVWuwVY3e0djXP3F-FO5gP8VTxbpW4C0t6McXAOlvSEfFKxN7
-u6OBeOKwjrtHaJk2ghF8MUcpDXanhbAgHez9larGlscCkgvoRLNaRH9GIdSVgY3HtNhJRaJIq01S
-OGeBjC5J4o-nTrqRFkwyDAYcPL373eYX1dBFFVHR-4q50H9m_zMxZHXETafxzV4DT3Qi8Sxh3uaS
-ZX7mRaNaOE0uC1n87_IZ9WhrwIQaZng2lnd9yZ-4rx8fB8WA8KQzifzvHAcMb_HV10JWGaz5A2Rm
-EXDsfexQC6CqYg5rdzzlNWDPNlHy5ubyz7fRXZ99uIwBY9aJcvCXCiEXJkC6utj3NcXQrJmk
\ No newline at end of file
diff --git a/runtime/src/main/resources/clds/aaf/truststoreONAPall.jks b/runtime/src/main/resources/clds/aaf/truststoreONAPall.jks
deleted file mode 100644
index ff844b109d97cf4c452c1a275c50ca5e8acd59af..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 117990
zcmdqJ1z1&U*ELLccc+xp-ZV%^halb3-JOD@grtO&G)i|%OP6#@r+|Qj0fOHG3_RyN
z&v~Egf8X=J-{&P4tj*qg-J3PXm}8E6&UNwr;ynZe1QhUPb@iRV)x^=l$->Om$lAck
ziOr17$bdrI(%4D|0s>O)wRC471gr)NCx{mU0vaCV4-F0Shq8vkgs5lL9|%d$^prrX
z)3MQVK$aL%ba%74!)e5)u{`0_4{QMg}3mL94>RVMD1ZgYiMQmj_7LXllUul!5ax
zQApbwv4HtOe3!pK#%342TmS_dg@TKrwS^Idf}@3vfuje7sEMPqg{g&+fwP63Erqa)
zv$>t4g|i0*Gle7@m=DBr{c1415d#I7mzRg)_xA^$CSm7DVQ~F2PZMJb7bg=6J6mfH
zFgb|y`n7mJUP7Vb=;Gu|ao@z*&CbyZM23&b%LC#B^MJ1YY2l-?@qlO(N)n#N`BjbV`H|&*u`}C4YSlT+?Pf
zrJeyYCM-3kI!Ftqfh6+cvS%e8Fo)Q@Z4VP)Auw&d4#Z|Euy}`f+?@}VBl4PBUS|3L
zE$a+y-Me9zLWi`8WIBX
z=JJ5Rf(F**$nwQ!j6Ku|#&
zLckDiHWrDQydSI+(m0DKSI-w?hQ&SHNB)N4oL+6Hq-XkweElu4xCin;moidngbvh9
zzUBgy*2nnUXc0UzPo%pVyP$dC^;BmcA=<9^=njihpliBfOlI6VU|!%lv}WMV76IJ_
zp#y&=Qfx@bZ!oYRXy6+N?eYQi%Lib93l((552R=?crZBq!%g|iiLi>9a@<(~9&aK@
zZ?6U3ylT*95FleH5KWGsIFuFEJr`&B9_m&5Ll?&duh4^`r;Y|`x)?EhHwuZTmC+V46VwF!ca=XMT^ryF?wvl$F?&
z&}a>7SVWzqH!+5MN#0Gr$Kbyt@4utaKkzdUY5xH~^MJUn)7T7;`$eH|6l(3{2{4sUb0Kp_J>4=02l@d${!LEqT7I5w;YmV&TtAh
z<(r09I5qX8e&o}s=)?fe4Glt`@Xn9x#*eGA9M0Z1)z1#fK~(iHJH6<(aEK@8<*yKf
zf4+rwDksxHxyWD;#YSb|-x*A98}6ltN1-S-VlS`0y-Kn=;IXGMjrO`yJhqi-GZ~-p
zAq2OlFuVIQ`^pgpkxwvF^T(4
zhD?^hpWqd#m4jqe6OqWks}=e@(6VMIu!>sy>ci5n2=}QxFl{m8fDnNdve+P0n
zkPRFHBOIVv;2}|93_yCBIvLs^O^`ZB6%P>*AZ8}4W)`L(N)R~+9^fZ5Xec5WoT&9N
zqM)LPNUQcCU(0bR0;Y$AEFc;@YIA32dp=fHYdbSLmLCwkq-0iCr>n;<-|13wTysi|
z+o^?=WV$le#OrN%HdpwO1bD)mmlZ%Fa9JTCWIlf`gWg~=d$<ws{{)H_B;$zNRA;-8kgH5Mf|m#={-yZqwSw9v|5kC(sHEc#&7Unfhd
z87;FPjYm(eRf2Kmr@(_^J@7%G{lsXsa+R|87Vo=rTvLf-V$5MVr)+PDF9PrL^bE&8
z2z_31R%awg^{eWjpN&g+VZT#E+6<3*Fflj39)2*vRu-_Kz7o~aoLSH!Kw3S{vprSz
zfKT31D5}-e+Nj{&Ob*_$-$*Y8wpoheP
z!N!67VWR=UbN^0wuqnjqX_1s{E4=Vcxo$2GZvL530Kzl;o$vnhoD0OqHCGY*%(+)u
z640C1376w<6Yf8;27jnO69?2KaX7^7n
zd@`;1dYK_tK%>w#d9dUmaUg03i2R5+hX-#*tt-KXw6MbCun%)|O>YvGUkP1_yekd&
z#iQo*e04lcRmW2ESo_x%uUwKWo!H_=FvKue7X6Rl12>%S*f^{(qY&>=O!QKa8Zj`x
z+10(@6Z@IcAcbQGwo7+co2YT8cWAJPtcu-+jj{(=}!
z?F&`?h1sU&V4QB-K85t6lpSv@A%=F*aW|de1B)fI-)%vd(vr@3y^)_`HlIV+m?_U&
zjj4hE>DB{@DC19U79p;Qt^%4mBCf%q2^OAG2TNI4#HPv4eGB)DYm+T{<@XJlL8=^S`buZl@m(k-;C`l_+7-&MR*U^*|C7qjTi)w^j
z7CejeB7}My$AmGlwAV2dcEFu|j(Ajvi(axWLPookdL0ysR(9ouL1FT*C&l$rDZXZs
zb+$%jl|MqFO*&b#U`-@tKAFj{AYCWECeHs*8|_Z5`j0y37|SlQm+sCVIDoRN+MFYxJFl#3T!=?zY@K^BlUjsbA
zb)lYt)CM99>)C@@6v9&@&y8ocX*0ucrep~#6oefFgyih0gHUAN`i%~-#RZ}wASRH=
zx9(X{IDI7rXX<15H*G|P>+6b<*C3D=3fC>U#p6_aP;N?AEw
z5wD|GwuZAaQ}vOkmKCz4*Ycnp&B-%N7$sYIFB8^Cd@d=2x@czls6tzK_|Dq#onsiI
zcl)nZAQUs6-0pqjJ}|Kz3`0=)rc^ql^e85&rgFmoee^NJrUKC#aeOLaX8rT>lyV5N
z{b6)@5$j&0#y!zfK8F`QaayiZndn>)oABCHLQA&!Eqp^I1E
zstL8xZZsdK-U?I9Qu}i7(l=w0tg;auUD<`9U>nhXU+|Fl`sLK$XYH5JROrQg6z0ZpPP@-O%?t
zga3CaR=`o<{jWO;;vmuMEWrO$v0j@R;QzqXxGK$fdBGqM@c&0?#s%UAbN%!k{$KjA
zf2U>V1IO#DzT{3H!MHzP5O`~ijW^>te@oG{wVPHGwFnO3b=(L$`9T0Dxh-+eLV+#r
zeHFU>4jZCfB?z@#Wio*
z2noZLt!h4z#f4Z@NJ*;#S1iar5*7v#it1Vue0^*k
zb2cro<4wprV)@TKqF}}a<+nejy%{v~k~e|+_VlreQ};KnPeIJP!@Ba{Fw-63ChLek
z$fDAktcdxNb*Hb+Zz0X@zM$~6Fwc~Kv}`p5FMJvh*~l|r#)4UHRUtBv-1tR`%0q?_
zy@EuL!geoZD1``sgkCB2sY2eh};g4~~9P_PqtTXAVq<
zb2a2S`$BtHbb@bTY+`#Q3GJ_3!{69MYD@Sho4{HElF$@jll$K#ArhpBFJN(sQx8da
zUB1;#M!Bqk<$fm=EWoF@@-GpkfiqrdJMe7~{WaVve?ImD=gKBV&VcQBrTs*ODZp3i
zj|1>mxWL?;?CflpcFWDf|L)WMozSbHiu;-)Rk|f**ex^^h^HITNZ$WH_nVMkS?!Si#YiT7cKO<11fJ4078%sm90kqR-qtpOxY#kBRfE-9A3M{37`JFs#nQo4!$p{TKgd2NWPo-MNe^m
zJVg$eUR^_LErK|?Fbx&u5Q&|aiWez?&PGbgpig#Dd8AaS
zQ7pZX)hfVo-^F(pj-6PiXV$1oZm`G{JUFr-7>vQST%Y5)udh(i-}h2&iMzCr1Dls-
zi`R55(X#+6@wujHkYMqLvOYmL^oIwS_qa2}Y##RKg*zNiR6pe!IKb^Pmom*
zD390lg7s#moPcP7G|SR``0~NwC#nz8sIhYeVv42%-mcI)mU*{%2oqdUt)3WsY5ch7
zdT!4+&%pl~iA-CBButG}m6#-xrMeq$<8uLjOr%8(WLtGmYA8A~Pn^ou_S-Z8nnq>X
z_Y;M@1)XFl&4ru=hHe`f(oI(RIo~TfpOBb)