aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--asdc-tests/pom.xml4
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt1
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt2
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt1
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt2
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt1
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt2
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh105
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt1
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt2
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt1
-rw-r--r--asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt2
-rw-r--r--asdc-tests/src/test/resources/CI/tests/uploadComponent/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--asdc-tests/src/test/resources/CI/tests/uploadComponent/mysql.yml85
-rw-r--r--asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh28
-rw-r--r--asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh105
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java3
-rw-r--r--catalog-be/pom.xml54
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java8
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java8
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java78
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json21
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml36
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zipbin0 -> 611 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json15
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml41
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zipbin0 -> 554 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml2
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zipbin562 -> 567 bytes
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py3
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py3
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json49
-rw-r--r--catalog-be/src/test/resources/config/elasticsearch.yml.bak387
-rw-r--r--catalog-be/src/test/resources/config/mysql-type-empty-nodes.zipbin1894 -> 0 bytes
-rw-r--r--catalog-be/src/test/resources/config/mysql-type-no-nodes.zipbin448 -> 0 bytes
-rw-r--r--catalog-be/src/test/resources/config/mysql-type-no-version.zipbin1142 -> 0 bytes
-rw-r--r--catalog-be/src/test/resources/config/mysql-type-only-yaml.zipbin1129 -> 0 bytes
-rw-r--r--catalog-be/src/test/resources/config/mysql-type-with-scripts.zipbin66267 -> 0 bytes
-rw-r--r--catalog-be/src/test/resources/config/mysql-type.yml82
-rw-r--r--catalog-be/src/test/resources/config/mysql-type.zipbin1129 -> 0 bytes
-rw-r--r--catalog-be/src/test/resources/config/sample.yaml17
-rw-r--r--catalog-be/src/test/resources/config/sampleNoProtocol.yaml17
-rw-r--r--catalog-fe/pom.xml37
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml33
-rw-r--r--common/openecomp-common-configuration-management/pom.xml1
-rw-r--r--docs/administration.rst24
-rw-r--r--docs/architecture.rst27
-rw-r--r--docs/configuration.rst27
-rw-r--r--docs/consumedapis.rst16
-rw-r--r--docs/delivery.rst44
-rw-r--r--docs/humaninterfaces.rst17
-rw-r--r--docs/index.rst14
-rw-r--r--docs/installation.rst20
-rw-r--r--docs/logging.rst54
-rw-r--r--docs/offeredapis.rst10275
-rw-r--r--docs/onap-developer/docs-templates-platform-component-administration.rst19
-rw-r--r--docs/onap-developer/docs-templates-platform-component-architecture.rst7
-rw-r--r--docs/onap-developer/docs-templates-platform-component-configuration.rst19
-rw-r--r--docs/onap-developer/docs-templates-platform-component-consumedapis.rst8
-rw-r--r--docs/onap-developer/docs-templates-platform-component-delivery.rst31
-rw-r--r--docs/onap-developer/docs-templates-platform-component-humaninterfaces.rst19
-rw-r--r--docs/onap-developer/docs-templates-platform-component-index.rst20
-rw-r--r--docs/onap-developer/docs-templates-platform-component-installation.rst14
-rw-r--r--docs/onap-developer/docs-templates-platform-component-logging.rst14
-rw-r--r--docs/onap-developer/docs-templates-platform-component-offeredapis.rst29
-rw-r--r--docs/release-notes.rst48
-rw-r--r--docs/releases/docs-templates-release-notes-bug-fixes.rst5
-rw-r--r--docs/releases/docs-templates-release-notes-deprecation-notes.rst5
-rw-r--r--docs/releases/docs-templates-release-notes-index.rst15
-rw-r--r--docs/releases/docs-templates-release-notes-known-issues.rst5
-rw-r--r--docs/releases/docs-templates-release-notes-new-features.rst5
-rw-r--r--docs/releases/docs-templates-release-notes-other.rst5
-rw-r--r--docs/releases/docs-templates-release-notes-security-issues.rst5
-rw-r--r--docs/releases/docs-templates-release-notes-upgrade-notes.rst5
-rw-r--r--docs/releases/index.rst32
-rw-r--r--onboarding/pom.xml4
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java6
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java95
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java67
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl3
-rw-r--r--openecomp-be/tools/zusammen-tools/pom.xml4
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java116
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java267
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java29
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java109
-rw-r--r--openecomp-ui/pom.xml14
-rw-r--r--openecomp-ui/resources/scss/onboarding.scss29
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx6
-rw-r--r--pom.xml4
-rw-r--r--sdc-os-chef/pom.xml85
-rwxr-xr-xsdc-os-chef/scripts/docker_run.sh8
-rw-r--r--sdc-os-chef/sdc-backend/Dockerfile2
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/import_Normatives.rb3
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/upgrade_Normatives.rb3
-rw-r--r--sdc-os-chef/sdc-backend/startup.sh2
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/base_vlb.zipbin5621 -> 0 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csarbin0 -> 6511 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vLB.zipbin0 -> 6789 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_3_logback.rb10
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_4_locate_keystore.rb16
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_5_create_jetty_modules.rb14
-rw-r--r--test-apis-ci/pom.xml4
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/dataProviders/OnboardingDataProviders.java (renamed from test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/dataProviders/OnbordingDataProviders.java)2
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java4
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java44
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.pngbin63119 -> 0 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh105
-rw-r--r--ui-ci/pom.xml4
214 files changed, 11474 insertions, 6792 deletions
diff --git a/.gitignore b/.gitignore
index d5ce522828..0174487b3a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -167,4 +167,7 @@ sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/testSuites/*
/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/dependency-reduced-pom.xml
-/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/tools/* \ No newline at end of file
+/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/tools/*
+/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb
+
+/catalog-be/.pydevproject
diff --git a/asdc-tests/pom.xml b/asdc-tests/pom.xml
index e9972bd647..bfb7920d51 100644
--- a/asdc-tests/pom.xml
+++ b/asdc-tests/pom.xml
@@ -10,6 +10,10 @@
<artifactId>sdc-main</artifactId>
<version>1.2.0-SNAPSHOT</version>
</parent>
+
+ <properties>
+ <sonar.skip>true</sonar.skip>
+ </properties>
<dependencies>
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
deleted file mode 100644
index f512f8071e..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactFileContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactFileContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
deleted file mode 100644
index 180e247ea2..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactListNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactListNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
deleted file mode 100644
index b8f9bbdc69..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-GetResourceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-GetResourceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
deleted file mode 100644
index 72ff4f37e0..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactMetadataNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactMetadataNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
deleted file mode 100644
index 527e4a0081..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactMetadataTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactMetadataTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
deleted file mode 100644
index 7177a65387..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactPayloadNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactPayloadNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
deleted file mode 100644
index e0a0c6458e..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
deleted file mode 100644
index dc5ff158c8..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
deleted file mode 100644
index cb3c3e8546..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
deleted file mode 100644
index f0d0849db8..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
-
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
deleted file mode 100644
index 4ee2c8ca88..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
deleted file mode 100644
index b564dd0c4e..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
deleted file mode 100644
index 279351879a..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]} \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
deleted file mode 100644
index 3c342f6cd1..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
-
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
deleted file mode 100644
index e0a0c6458e..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
deleted file mode 100644
index dc5ff158c8..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
deleted file mode 100644
index cb3c3e8546..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt b/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
deleted file mode 100644
index f0d0849db8..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
-
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
deleted file mode 100644
index e0a0c6458e..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
deleted file mode 100644
index dc5ff158c8..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
deleted file mode 100644
index cb3c3e8546..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
deleted file mode 100644
index f0d0849db8..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
-
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
deleted file mode 100644
index 4ee2c8ca88..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
deleted file mode 100644
index b564dd0c4e..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
deleted file mode 100644
index 279351879a..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]} \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt b/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
deleted file mode 100644
index 3c342f6cd1..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
-
diff --git a/asdc-tests/src/test/resources/CI/tests/uploadComponent/images/mysql.png b/asdc-tests/src/test/resources/CI/tests/uploadComponent/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/uploadComponent/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/asdc-tests/src/test/resources/CI/tests/uploadComponent/mysql.yml b/asdc-tests/src/test/resources/CI/tests/uploadComponent/mysql.yml
deleted file mode 100644
index a2eb4d423a..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/uploadComponent/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-uploadComponent
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-uploadComponent:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh b/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java
index 394683bbc5..0e545f2afd 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java
@@ -22,13 +22,10 @@ package org.openecomp.sdc.asdctool.main;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileFilter;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
-import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Paths;
diff --git a/catalog-be/pom.xml b/catalog-be/pom.xml
index f4a2c30d99..5b13e028d8 100644
--- a/catalog-be/pom.xml
+++ b/catalog-be/pom.xml
@@ -611,41 +611,6 @@
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <includeScope>compile</includeScope>
- </configuration>
- </execution>
- <execution>
- <id>copy-installed</id>
- <phase>install</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>${project.groupId}</groupId>
- <artifactId>${project.artifactId}</artifactId>
- <version>${project.version}</version>
- <type>${project.packaging}</type>
- </artifactItem>
- </artifactItems>
- <outputDirectory>${project.parent.basedir}/sdc-os-chef/sdc-backend/</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-maven-plugin</artifactId>
<version>${jcabi.plugin.version}</version>
@@ -662,25 +627,6 @@
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
- <execution>
- <id>copy-normatives</id>
- <phase>install</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.parent.basedir}/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/files/default</outputDirectory>
- <resources>
- <resource>
- <directory>./target</directory>
- <includes>
- <include>normatives.tar.gz</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
-
<execution>
<id>copy-tosca-folder</id>
<!-- here the phase you need -->
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java
index 4fd4610ef9..5b8a10a03e 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java
@@ -83,7 +83,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
@@ -151,7 +151,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
@@ -195,7 +195,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> eitherResource = toscaOperationFacade.getToscaElement(resourceId);
if (eitherResource.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = eitherResource.left().value();
@@ -273,7 +273,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> eitherResource = toscaOperationFacade.getToscaElement(resourceId);
if (eitherResource.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = eitherResource.left().value();
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java
index 833e6c0b9e..e16b34f389 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java
@@ -121,7 +121,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
return result;
}
Resource resource = status.left().value();
@@ -219,7 +219,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
@@ -271,7 +271,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> getResourceRes = toscaOperationFacade.getToscaElement(resourceId);
if (getResourceRes.isRight()) {
- result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
return result;
}
Resource resource = getResourceRes.left().value();
@@ -321,7 +321,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
index ba26576648..0ae546479a 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
@@ -1869,27 +1869,25 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
log.debug("************* Going to create all nodes {}", yamlName);
Either<Map<String, Resource>, ResponseFormat> createdResourcesFromdNodeTypeMap = this.handleNodeTypes(yamlName, resource, topologyTemplateYaml, false, nodeTypesArtifactsToCreate, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
- log.debug("************* Finished to create all nodes {}", yamlName);
if (createdResourcesFromdNodeTypeMap.isRight()) {
log.debug("failed to resources from node types status is {}", createdResourcesFromdNodeTypeMap.right().value());
return Either.right(createdResourcesFromdNodeTypeMap.right().value());
}
+ log.debug("************* Finished to create all nodes {}", yamlName);
log.debug("************* Going to create all resource instances {}", yamlName);
createResourcesInstancesEither = createResourceInstances(csarInfo.getModifier(), yamlName, resource, uploadComponentInstanceInfoMap, true, false, csarInfo.getCreatedNodes());
- log.debug("************* Finished to create all resource instances {}", yamlName);
if (createResourcesInstancesEither.isRight()) {
log.debug("failed to create resource instances status is {}", createResourcesInstancesEither.right().value());
result = createResourcesInstancesEither;
return createResourcesInstancesEither;
}
+ log.debug("************* Finished to create all resource instances for {}", yamlName);
resource = createResourcesInstancesEither.left().value();
log.debug("************* Going to create all relations {}", yamlName);
createResourcesInstancesEither = createResourceInstancesRelations(csarInfo.getModifier(), yamlName, resource, uploadComponentInstanceInfoMap);
- log.debug("************* Finished to create all relations {}", yamlName);
-
if (createResourcesInstancesEither.isRight()) {
log.debug("failed to create relation between resource instances status is {}", createResourcesInstancesEither.right().value());
result = createResourcesInstancesEither;
@@ -1897,6 +1895,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
} else {
resource = createResourcesInstancesEither.left().value();
}
+ log.debug("************* Finished to create all relations {}", yamlName);
log.debug("************* Going to create positions {}", yamlName);
Either<List<ComponentInstance>, ResponseFormat> eitherSetPosition = compositionBusinessLogic.setPositionsForComponentInstances(resource, csarInfo.getModifier().getUserId());
@@ -4265,7 +4264,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(validRegDef);
}
- @SuppressWarnings("unchecked")
public Either<ParsedToscaYamlInfo, ResponseFormat> parseResourceInfoFromYaml(String yamlFileName, Resource resource, String resourceYml, Map<String, String> createdNodesToscaResourceNames, Map<String, NodeTypeInfo> nodeTypesInfo, String nodeName) {
Map<String, Object> mappedToscaTemplate;
@@ -4319,7 +4317,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Map<String, Resource> nodeNamespaceMap) {
Either<Resource, ResponseFormat> eitherResource = null;
- log.debug("createResourceInstances is {} - going to create resource instanse from CSAR", yamlName);
+ log.debug("{} - going to create resource instanse from CSAR", yamlName);
if (uploadResInstancesMap == null || uploadResInstancesMap.isEmpty()) {
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE);
@@ -4334,13 +4332,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Iterator<Entry<String, UploadComponentInstanceInfo>> nodesInfoValue = uploadResInstancesMap.entrySet().iterator();
Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
while (nodesInfoValue.hasNext()) {
- log.debug("*************Going to create resource instances {}", yamlName);
+ log.debug("*************Going to create resource instances from {}", yamlName);
Entry<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoEntry = nodesInfoValue.next();
UploadComponentInstanceInfo uploadComponentInstanceInfo = uploadComponentInstanceInfoEntry.getValue();
// updating type if the type is node type name - we need to take the
// updated name
- log.debug("*************Going to create resource instances {}", uploadComponentInstanceInfo.getName());
+ log.debug("*************Going to create resource instance {}", uploadComponentInstanceInfo.getName());
if (nodeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
uploadComponentInstanceInfo.setType(nodeNamespaceMap.get(uploadComponentInstanceInfo.getType()).getToscaResourceName());
}
@@ -4357,17 +4355,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
ComponentTypeEnum containerComponentType = resource.getComponentType();
NodeTypeEnum containerNodeType = containerComponentType.getNodeType();
-
- if (containerNodeType.equals(NodeTypeEnum.Resource) && uploadComponentInstanceInfo.getCapabilities() != null) {
- Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilitiesRes = getValidComponentInstanceCapabilities(refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
+ //************
+ if (containerNodeType.equals(NodeTypeEnum.Resource) && MapUtils.isNotEmpty(uploadComponentInstanceInfo.getCapabilities()) && MapUtils.isNotEmpty(refResource.getCapabilities())) {
+ setCapabilityNamesTypes(refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
+ Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilitiesRes = getValidComponentInstanceCapabilities(refResource.getUniqueId(), refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
if (getValidComponentInstanceCapabilitiesRes.isRight()) {
return Either.right(getValidComponentInstanceCapabilitiesRes.right().value());
} else {
componentInstance.setCapabilities(getValidComponentInstanceCapabilitiesRes.left().value());
}
}
+ //***********************
if (!existingnodeTypeMap.containsKey(uploadComponentInstanceInfo.getType())) {
- log.debug("createResourceInstances - not found lates version for resource instance with name {} and type ", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+ log.debug("createResourceInstances - not found latest version for resource instance with name {} and type ", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
return Either.right(responseFormat);
}
@@ -4417,16 +4417,30 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(eitherGerResource.left().value());
}
+
+ private void setCapabilityNamesTypes(Map<String, List<CapabilityDefinition>> originCapabilities, Map<String, List<UploadCapInfo>> uploadedCapabilities) {
+ for(Entry<String, List<UploadCapInfo>> currEntry : uploadedCapabilities.entrySet()){
+ if(originCapabilities.containsKey(currEntry.getKey())){
+ currEntry.getValue().stream().forEach(cap -> cap.setType(currEntry.getKey()));
+ }
+ }
+
+ for(Map.Entry<String, List<CapabilityDefinition>> capabilities : originCapabilities.entrySet()){
+ capabilities.getValue().stream().forEach(cap -> {if(uploadedCapabilities.containsKey(cap.getName())){uploadedCapabilities.get(cap.getName()).stream().forEach(c -> {c.setName(cap.getName());c.setType(cap.getType());});};});
+ }
+ }
+
+
private Either<Resource, ResponseFormat> validateResourceInstanceBeforeCreate(String yamlName, UploadComponentInstanceInfo uploadComponentInstanceInfo, Map<String, Resource> nodeNamespaceMap) {
- log.debug("validateResourceInstanceBeforeCreate - going to validate resource instance with name {} and type before create", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+ log.debug("going to validate resource instance with name {} and type {} before create", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
Resource refResource = null;
if (nodeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
refResource = nodeNamespaceMap.get(uploadComponentInstanceInfo.getType());
} else {
Either<Resource, StorageOperationStatus> findResourceEither = toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(uploadComponentInstanceInfo.getType());
if (findResourceEither.isRight()) {
- log.debug("validateResourceInstanceBeforeCreate - not found lates version for resource instance with name {} and type ", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+ log.debug("not found lates version for resource instance with name {} and type {}", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(findResourceEither.right().value()));
return Either.right(responseFormat);
}
@@ -4435,16 +4449,17 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
String componentState = refResource.getComponentMetadataDefinition().getMetadataDataDefinition().getState();
if (componentState.equals(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name())) {
- log.debug("validateResourceInstanceBeforeCreate - component instance of component {} can not be created because the component is in an illegal state {}.", refResource.getName(), componentState);
+ log.debug("component instance of component {} can not be created because the component is in an illegal state {}.", refResource.getName(), componentState);
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.ILLEGAL_COMPONENT_STATE, refResource.getComponentType().getValue(), refResource.getName(), componentState);
return Either.right(responseFormat);
}
if (!ToscaUtils.isAtomicType(refResource) && refResource.getResourceType() != ResourceTypeEnum.CVFC) {
- log.debug("validateResourceInstanceBeforeCreate - ref resource type is ", refResource.getResourceType());
+ log.debug("ref resource type is {}", refResource.getResourceType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
return Either.right(responseFormat);
}
+ log.debug("validate resource instance with name {} and type {} before create, successful",uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
return Either.left(refResource);
}
@@ -7021,7 +7036,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return null;
}
- private Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilities(Map<String, List<CapabilityDefinition>> defaultCapabilities, Map<String, List<UploadCapInfo>> uploadedCapabilities) {
+ private Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilities(String resourceId, Map<String, List<CapabilityDefinition>> defaultCapabilities, Map<String, List<UploadCapInfo>> uploadedCapabilities) {
ResponseFormat responseFormat;
Map<String, List<CapabilityDefinition>> validCapabilitiesMap = new HashMap<>();
@@ -7031,14 +7046,33 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
responseFormat = componentsUtils.getResponseFormat(ActionStatus.MISSING_CAPABILITY_TYPE, capabilityType);
return Either.right(responseFormat);
} else {
- CapabilityDefinition delaultCapability = defaultCapabilities.get(capabilityType).get(0);
- Either<Boolean, String> validationRes = validateUniquenessUpdateUploadedComponentInstanceCapability(delaultCapability, uploadedCapabilitiesEntry.getValue().get(0));
- if (validationRes.isRight()) {
- responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NAME_ALREADY_EXISTS, validationRes.right().value());
+ CapabilityDefinition defaultCapability;
+ if(CollectionUtils.isNotEmpty(defaultCapabilities.get(capabilityType).get(0).getProperties())){
+ defaultCapability = defaultCapabilities.get(capabilityType).get(0);
+ } else {
+ Either<Component, StorageOperationStatus> getFullComponentRes = toscaOperationFacade.getToscaFullElement(resourceId);
+ if(getFullComponentRes.isRight()){
+ log.debug("Failed to get full component {}. Status is {}. ", resourceId, getFullComponentRes.right().value());
+ responseFormat = componentsUtils.getResponseFormat(ActionStatus.COMPONENT_NOT_FOUND, resourceId);
+ return Either.right(responseFormat);
+ }
+ defaultCapability = getFullComponentRes.left().value().getCapabilities().get(capabilityType).get(0);
+ }
+ if(CollectionUtils.isEmpty(defaultCapability.getProperties()) && CollectionUtils.isNotEmpty(uploadedCapabilitiesEntry.getValue().get(0).getProperties())){
+ log.debug("Failed to validate capability {} of component {}. Property list is empty. ", defaultCapability.getName(), resourceId);
+ log.debug("Failed to update capability property values. Property list of fetched capability {} is empty. ", defaultCapability.getName());
+ responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NOT_FOUND, resourceId);
return Either.right(responseFormat);
}
+ if(CollectionUtils.isNotEmpty(defaultCapability.getProperties()) && CollectionUtils.isNotEmpty(uploadedCapabilitiesEntry.getValue().get(0).getProperties())){
+ Either<Boolean, String> validationRes = validateUniquenessUpdateUploadedComponentInstanceCapability(defaultCapability, uploadedCapabilitiesEntry.getValue().get(0));
+ if (validationRes.isRight()) {
+ responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NAME_ALREADY_EXISTS, validationRes.right().value());
+ return Either.right(responseFormat);
+ }
+ }
List<CapabilityDefinition> validCapabilityList = new ArrayList<>();
- validCapabilityList.add(delaultCapability);
+ validCapabilityList.add(defaultCapability);
validCapabilitiesMap.put(uploadedCapabilitiesEntry.getKey(), validCapabilityList);
}
}
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json
new file mode 100644
index 0000000000..d9b008a870
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json
@@ -0,0 +1,21 @@
+{
+ "payloadName": "genericNeutronNet.yml",
+ "contactId": "jh0003",
+ "name": "Generic NeutronNet",
+ "description": "Generic NeutronNet",
+ "resourceIconPath": "network",
+ "resourceType": "VL",
+ "categories": [
+ {
+ "name": "Generic",
+ "subcategories": [
+ {
+ "name": "Network Elements"
+ }
+ ]
+ }
+],
+ "tags": [
+ "Generic NeutronNet"
+ ]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml
new file mode 100644
index 0000000000..12dc13e98b
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml
@@ -0,0 +1,36 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+node_types:
+ org.openecomp.resource.vl.GenericNeutronNet:
+ derived_from: org.openecomp.resource.vl.extVL
+ description: Generic Neutron Network
+ properties:
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ network_scope:
+ type: string
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: ECOMP supported network types.
+ default: NEUTRON
+ provider_network:
+ type: org.openecomp.datatypes.network.ProviderNetwork
+ network_technology:
+ type: string
+ description: ECOMP supported network technology
+ default: NEUTRON
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zip b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zip
new file mode 100644
index 0000000000..ed51f834f3
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json
new file mode 100644
index 0000000000..22788ec06c
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json
@@ -0,0 +1,15 @@
+{
+ "payloadName": "NSD.yml",
+ "contactId": "jh0003",
+ "name": "NSD",
+ "description": "NSD",
+ "resourceIconPath": "network",
+ "resourceType": "VFC",
+ "categories": [{
+ "name": "Generic",
+ "subcategories": [{
+ "name": "Network Elements"
+ }]
+ }],
+ "tags": ["NSD"]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml
new file mode 100644
index 0000000000..1b3d8820d5
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml
@@ -0,0 +1,41 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vfc.NSD:
+ derived_from: tosca.nodes.Root
+ description: ECOMP Allotted Resource base type all other allotted resources node types derive from
+ properties:
+ nsd_id:
+ type: string
+ required: true
+ description: ID of the NSD
+ nsd_designer:
+ type: string
+ required: true
+ description: Designer of the NSD
+ nsd_version:
+ type: string
+ required: true
+ description: Version of the NSD
+ nsd_name:
+ type: string
+ required: true
+ description: Name of the NSD
+ providing_service_uuid:
+ type: string
+ required: true
+ description: The depending service uuid in order to map the allotted resource to the specific service version
+ providing_service_invariant_uuid:
+ type: string
+ required: true
+ description: The depending service invariant uuid in order to map the allotted resource to the specific service version
+ providing_service_name:
+ type: string
+ required: true
+ description: The depending service name in order to map the allotted resource to the specific service version
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zip b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zip
new file mode 100644
index 0000000000..d741b50c16
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml
index e1f6d068ce..e5d79fcacf 100644
--- a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml
@@ -50,7 +50,7 @@ node_types:
- 0
- UNBOUNDED
- virtual_link:
- capability: tosca.capabilities.nfv.VirtualBindable
+ capability: tosca.capabilities.nfv.VirtualLinkable
occurrences:
- 0
- UNBOUNDED \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip
index 6a9d4be124..e1b5be9f2f 100644
--- a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
index 78b257d6f3..c72c2c394f 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
@@ -53,7 +53,8 @@ def importHeatTypes(beHost, bePort, adminUser, fileDir, updateversion):
"multiFlavorVFC",
"vnfConfiguration",
"underlayVpn",
- "overlayTunnel"
+ "overlayTunnel",
+ "genericNeutronNet"
]
responseCodes = [200, 201]
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
index f91b64ed81..31c11c74bc 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
@@ -29,7 +29,8 @@ def importOnapTypes(beHost, bePort, adminUser, fileDir, updateversion):
"vduCompute",
"vduCpd",
"vduVirtualStorage",
- "vnfVirtualLinkDesc"
+ "vnfVirtualLinkDesc",
+ "NSD"
]
responseCodes = [200, 201]
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
index a6948f5da8..c518855860 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
+++ b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
@@ -1,13 +1,54 @@
{
"heat": [
- "contrailPort",
- "extCp",
- "contrailV2VirtualMachineInterface",
+ "globalNetwork",
+ "globalPort",
+ "globalCompute",
+ "volume",
+ "cinderVolume",
+ "contrailVirtualNetwork",
+ "neutronNet",
"neutronPort",
+ "novaServer",
+ "extVl",
+ "internalVl",
+ "extCp",
+ "vl",
+ "eline",
+ "abstractSubstitute",
+ "Generic_VFC",
+ "Generic_VF",
"Generic_PNF",
+ "Generic_Service",
+ "contrailNetworkRules",
+ "contrailPort",
+ "contrailV2NetworkRules",
+ "contrailV2VirtualNetwork",
+ "securityRules",
+ "contrailAbstractSubstitute",
+ "contrailCompute",
+ "contrailV2VirtualMachineInterface",
+ "subInterface",
+ "contrailV2VLANSubInterface",
"multiFlavorVFC",
- "vnfConfiguration"
+ "vnfConfiguration",
+ "underlayVpn",
+ "overlayTunnel",
+ "genericNeutronNet"
],
"normative": [
+ "root",
+ "compute",
+ "softwareComponent",
+ "webServer",
+ "webApplication",
+ "DBMS",
+ "database",
+ "objectStorage",
+ "blockStorage",
+ "containerRuntime",
+ "containerApplication",
+ "loadBalancer",
+ "port",
+ "network"
]
} \ No newline at end of file
diff --git a/catalog-be/src/test/resources/config/elasticsearch.yml.bak b/catalog-be/src/test/resources/config/elasticsearch.yml.bak
deleted file mode 100644
index 98c6864bf2..0000000000
--- a/catalog-be/src/test/resources/config/elasticsearch.yml.bak
+++ /dev/null
@@ -1,387 +0,0 @@
-
-cluster.name: elasticsearch_pavel
-
-discovery.zen.ping.multicast.enabled: false
-discovery.zen.ping.unicast.enabled: true
-discovery.zen.ping.unicast.hosts: elasticsearch_host
-
-
-
-##################### Elasticsearch Configuration Example #####################
-
-# This file contains an overview of various configuration settings,
-# targeted at operations staff. Application developers should
-# consult the guide at <http://elasticsearch.org/guide>.
-#
-# The installation procedure is covered at
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html>.
-#
-# Elasticsearch comes with reasonable defaults for most settings,
-# so you can try it out without bothering with configuration.
-#
-# Most of the time, these defaults are just fine for running a production
-# cluster. If you're fine-tuning your cluster, or wondering about the
-# effect of certain configuration option, please _do ask_ on the
-# mailing list or IRC channel [http://elasticsearch.org/community].
-
-# Any element in the configuration can be replaced with environment variables
-# by placing them in ${...} notation. For example:
-#
-# node.rack: ${RACK_ENV_VAR}
-
-# For information on supported formats and syntax for the config file, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup-configuration.html>
-
-
-################################### Cluster ###################################
-
-# Cluster name identifies your cluster for auto-discovery. If you're running
-# multiple clusters on the same network, make sure you're using unique names.
-#
-# cluster.name: elasticsearch
-
-
-#################################### Node #####################################
-
-# Node names are generated dynamically on startup, so you're relieved
-# from configuring them manually. You can tie this node to a specific name:
-#
-# node.name: "Franz Kafka"
-
-# Every node can be configured to allow or deny being eligible as the master,
-# and to allow or deny to store the data.
-#
-# Allow this node to be eligible as a master node (enabled by default):
-#
-# node.master: true
-#
-# Allow this node to store data (enabled by default):
-#
-# node.data: true
-
-# You can exploit these settings to design advanced cluster topologies.
-#
-# 1. You want this node to never become a master node, only to hold data.
-# This will be the "workhorse" of your cluster.
-#
-# node.master: false
-# node.data: true
-#
-# 2. You want this node to only serve as a master: to not store any data and
-# to have free resources. This will be the "coordinator" of your cluster.
-#
-# node.master: true
-# node.data: false
-#
-# 3. You want this node to be neither master nor data node, but
-# to act as a "search load balancer" (fetching data from nodes,
-# aggregating results, etc.)
-#
-# node.master: false
-# node.data: false
-
-# Use the Cluster Health API [http://localhost:9200/_cluster/health], the
-# Node Info API [http://localhost:9200/_nodes] or GUI tools
-# such as <http://www.elasticsearch.org/overview/marvel/>,
-# <http://github.com/karmi/elasticsearch-paramedic>,
-# <http://github.com/lukas-vlcek/bigdesk> and
-# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state.
-
-# A node can have generic attributes associated with it, which can later be used
-# for customized shard allocation filtering, or allocation awareness. An attribute
-# is a simple key value pair, similar to node.key: value, here is an example:
-#
-# node.rack: rack314
-
-# By default, multiple nodes are allowed to start from the same installation location
-# to disable it, set the following:
-# node.max_local_storage_nodes: 1
-
-
-#################################### Index ####################################
-
-# You can set a number of options (such as shard/replica options, mapping
-# or analyzer definitions, translog settings, ...) for indices globally,
-# in this file.
-#
-# Note, that it makes more sense to configure index settings specifically for
-# a certain index, either when creating it or by using the index templates API.
-#
-# See <http://elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html> and
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html>
-# for more information.
-
-# Set the number of shards (splits) of an index (5 by default):
-#
-# index.number_of_shards: 5
-
-# Set the number of replicas (additional copies) of an index (1 by default):
-#
-# index.number_of_replicas: 1
-
-# Note, that for development on a local machine, with small indices, it usually
-# makes sense to "disable" the distributed features:
-#
-index.number_of_shards: 1
-index.number_of_replicas: 0
-
-# These settings directly affect the performance of index and search operations
-# in your cluster. Assuming you have enough machines to hold shards and
-# replicas, the rule of thumb is:
-#
-# 1. Having more *shards* enhances the _indexing_ performance and allows to
-# _distribute_ a big index across machines.
-# 2. Having more *replicas* enhances the _search_ performance and improves the
-# cluster _availability_.
-#
-# The "number_of_shards" is a one-time setting for an index.
-#
-# The "number_of_replicas" can be increased or decreased anytime,
-# by using the Index Update Settings API.
-#
-# Elasticsearch takes care about load balancing, relocating, gathering the
-# results from nodes, etc. Experiment with different settings to fine-tune
-# your setup.
-
-# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect
-# the index status.
-
-
-#################################### Paths ####################################
-
-# Path to directory containing configuration (this file and logging.yml):
-#
-path.conf: /src/test/resources
-
-# Path to directory where to store index data allocated for this node.
-#
-path.data: target/esdata
-#
-# Can optionally include more than one location, causing data to be striped across
-# the locations (a la RAID 0) on a file level, favouring locations with most free
-# space on creation. For example:
-#
-# path.data: /path/to/data1,/path/to/data2
-
-# Path to temporary files:
-#
-path.work: /target/eswork
-
-# Path to log files:
-#
-path.logs: /target/eslogs
-
-# Path to where plugins are installed:
-#
-# path.plugins: /path/to/plugins
-
-
-#################################### Plugin ###################################
-
-# If a plugin listed here is not installed for current node, the node will not start.
-#
-# plugin.mandatory: mapper-attachments,lang-groovy
-
-
-################################### Memory ####################################
-
-# Elasticsearch performs poorly when JVM starts swapping: you should ensure that
-# it _never_ swaps.
-#
-# Set this property to true to lock the memory:
-#
-# bootstrap.mlockall: true
-
-# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set
-# to the same value, and that the machine has enough memory to allocate
-# for Elasticsearch, leaving enough memory for the operating system itself.
-#
-# You should also make sure that the Elasticsearch process is allowed to lock
-# the memory, eg. by using `ulimit -l unlimited`.
-
-
-############################## Network And HTTP ###############################
-
-# Elasticsearch, by default, binds itself to the 0.0.0.0 address, and listens
-# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
-# communication. (the range means that if the port is busy, it will automatically
-# try the next port).
-
-# Set the bind address specifically (IPv4 or IPv6):
-#
-# network.bind_host: 192.168.0.1
-
-# Set the address other nodes will use to communicate with this node. If not
-# set, it is automatically derived. It must point to an actual IP address.
-#
-# network.publish_host: 192.168.0.1
-
-# Set both 'bind_host' and 'publish_host':
-#
-# network.host: 192.168.0.1
-
-# Set a custom port for the node to node communication (9300 by default):
-#
-# transport.tcp.port: 9300
-
-# Enable compression for all communication between nodes (disabled by default):
-#
-# transport.tcp.compress: true
-
-# Set a custom port to listen for HTTP traffic:
-#
-# http.port: 9200
-
-# Set a custom allowed content length:
-#
-# http.max_content_length: 100mb
-
-# Disable HTTP completely:
-#
-# http.enabled: false
-
-
-################################### Gateway ###################################
-
-# The gateway allows for persisting the cluster state between full cluster
-# restarts. Every change to the state (such as adding an index) will be stored
-# in the gateway, and when the cluster starts up for the first time,
-# it will read its state from the gateway.
-
-# There are several types of gateway implementations. For more information, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-gateway.html>.
-
-# The default gateway type is the "local" gateway (recommended):
-#
-# gateway.type: local
-
-# Settings below control how and when to start the initial recovery process on
-# a full cluster restart (to reuse as much local data as possible when using shared
-# gateway).
-
-# Allow recovery process after N nodes in a cluster are up:
-#
-gateway.recover_after_nodes: 1
-
-# Set the timeout to initiate the recovery process, once the N nodes
-# from previous setting are up (accepts time value):
-#
-# gateway.recover_after_time: 5m
-
-# Set how many nodes are expected in this cluster. Once these N nodes
-# are up (and recover_after_nodes is met), begin recovery process immediately
-# (without waiting for recover_after_time to expire):
-#
-gateway.expected_nodes: 1
-
-
-############################# Recovery Throttling #############################
-
-# These settings allow to control the process of shards allocation between
-# nodes during initial recovery, replica allocation, rebalancing,
-# or when adding and removing nodes.
-
-# Set the number of concurrent recoveries happening on a node:
-#
-# 1. During the initial recovery
-#
-# cluster.routing.allocation.node_initial_primaries_recoveries: 4
-#
-# 2. During adding/removing nodes, rebalancing, etc
-#
-# cluster.routing.allocation.node_concurrent_recoveries: 2
-
-# Set to throttle throughput when recovering (eg. 100mb, by default 20mb):
-#
-# indices.recovery.max_bytes_per_sec: 20mb
-
-# Set to limit the number of open concurrent streams when
-# recovering a shard from a peer:
-#
-# indices.recovery.concurrent_streams: 5
-
-
-################################## Discovery ##################################
-
-# Discovery infrastructure ensures nodes can be found within a cluster
-# and master node is elected. Multicast discovery is the default.
-
-# Set to ensure a node sees N other master eligible nodes to be considered
-# operational within the cluster. Its recommended to set it to a higher value
-# than 1 when running more than 2 nodes in the cluster.
-#
-# discovery.zen.minimum_master_nodes: 1
-
-# Set the time to wait for ping responses from other nodes when discovering.
-# Set this option to a higher value on a slow or congested network
-# to minimize discovery failures:
-#
-# discovery.zen.ping.timeout: 3s
-
-# For more information, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html>
-
-# Unicast discovery allows to explicitly control which nodes will be used
-# to discover the cluster. It can be used when multicast is not present,
-# or to restrict the cluster communication-wise.
-#
-# 1. Disable multicast discovery (enabled by default):
-#
-# discovery.zen.ping.multicast.enabled: false
-#
-# 2. Configure an initial list of master nodes in the cluster
-# to perform discovery when new nodes (master or data) are started:
-#
-# discovery.zen.ping.unicast.hosts: ["host1", "host2:port"]
-
-# EC2 discovery allows to use AWS EC2 API in order to perform discovery.
-#
-# You have to install the cloud-aws plugin for enabling the EC2 discovery.
-#
-# For more information, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-ec2.html>
-#
-# See <http://elasticsearch.org/tutorials/elasticsearch-on-ec2/>
-# for a step-by-step tutorial.
-
-# GCE discovery allows to use Google Compute Engine API in order to perform discovery.
-#
-# You have to install the cloud-gce plugin for enabling the GCE discovery.
-#
-# For more information, see <https://github.com/elasticsearch/elasticsearch-cloud-gce>.
-
-# Azure discovery allows to use Azure API in order to perform discovery.
-#
-# You have to install the cloud-azure plugin for enabling the Azure discovery.
-#
-# For more information, see <https://github.com/elasticsearch/elasticsearch-cloud-azure>.
-
-################################## Slow Log ##################################
-
-# Shard level query and fetch threshold logging.
-
-#index.search.slowlog.threshold.query.warn: 10s
-#index.search.slowlog.threshold.query.info: 5s
-#index.search.slowlog.threshold.query.debug: 2s
-#index.search.slowlog.threshold.query.trace: 500ms
-
-#index.search.slowlog.threshold.fetch.warn: 1s
-#index.search.slowlog.threshold.fetch.info: 800ms
-#index.search.slowlog.threshold.fetch.debug: 500ms
-#index.search.slowlog.threshold.fetch.trace: 200ms
-
-#index.indexing.slowlog.threshold.index.warn: 10s
-#index.indexing.slowlog.threshold.index.info: 5s
-#index.indexing.slowlog.threshold.index.debug: 2s
-#index.indexing.slowlog.threshold.index.trace: 500ms
-
-################################## GC Logging ################################
-
-#monitor.jvm.gc.young.warn: 1000ms
-#monitor.jvm.gc.young.info: 700ms
-#monitor.jvm.gc.young.debug: 400ms
-
-#monitor.jvm.gc.old.warn: 10s
-#monitor.jvm.gc.old.info: 5s
-#monitor.jvm.gc.old.debug: 2s
-
diff --git a/catalog-be/src/test/resources/config/mysql-type-empty-nodes.zip b/catalog-be/src/test/resources/config/mysql-type-empty-nodes.zip
deleted file mode 100644
index d317bccd1e..0000000000
--- a/catalog-be/src/test/resources/config/mysql-type-empty-nodes.zip
+++ /dev/null
Binary files differ
diff --git a/catalog-be/src/test/resources/config/mysql-type-no-nodes.zip b/catalog-be/src/test/resources/config/mysql-type-no-nodes.zip
deleted file mode 100644
index 09999faed5..0000000000
--- a/catalog-be/src/test/resources/config/mysql-type-no-nodes.zip
+++ /dev/null
Binary files differ
diff --git a/catalog-be/src/test/resources/config/mysql-type-no-version.zip b/catalog-be/src/test/resources/config/mysql-type-no-version.zip
deleted file mode 100644
index fa1319f311..0000000000
--- a/catalog-be/src/test/resources/config/mysql-type-no-version.zip
+++ /dev/null
Binary files differ
diff --git a/catalog-be/src/test/resources/config/mysql-type-only-yaml.zip b/catalog-be/src/test/resources/config/mysql-type-only-yaml.zip
deleted file mode 100644
index b4b1946940..0000000000
--- a/catalog-be/src/test/resources/config/mysql-type-only-yaml.zip
+++ /dev/null
Binary files differ
diff --git a/catalog-be/src/test/resources/config/mysql-type-with-scripts.zip b/catalog-be/src/test/resources/config/mysql-type-with-scripts.zip
deleted file mode 100644
index d689b668a1..0000000000
--- a/catalog-be/src/test/resources/config/mysql-type-with-scripts.zip
+++ /dev/null
Binary files differ
diff --git a/catalog-be/src/test/resources/config/mysql-type.yml b/catalog-be/src/test/resources/config/mysql-type.yml
deleted file mode 100644
index f1985a0bdc..0000000000
--- a/catalog-be/src/test/resources/config/mysql-type.yml
+++ /dev/null
@@ -1,82 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-type
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/catalog-be/src/test/resources/config/mysql-type.zip b/catalog-be/src/test/resources/config/mysql-type.zip
deleted file mode 100644
index b4b1946940..0000000000
--- a/catalog-be/src/test/resources/config/mysql-type.zip
+++ /dev/null
Binary files differ
diff --git a/catalog-be/src/test/resources/config/sample.yaml b/catalog-be/src/test/resources/config/sample.yaml
deleted file mode 100644
index 12ab2c777f..0000000000
--- a/catalog-be/src/test/resources/config/sample.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: 1.0
-released: 2012-11-30
-
-# Connection parameters
-connection:
- url: jdbc:mysql://localhost:3306/db
- poolSize: 5
-
-# Protocols
-protocols:
- - http
- - https
-
-# Users
-users:
- tom: passwd
- bob: passwd \ No newline at end of file
diff --git a/catalog-be/src/test/resources/config/sampleNoProtocol.yaml b/catalog-be/src/test/resources/config/sampleNoProtocol.yaml
deleted file mode 100644
index 6197232aa4..0000000000
--- a/catalog-be/src/test/resources/config/sampleNoProtocol.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: 1.0
-released: 2012-11-30
-
-# Connection parameters
-connection:
- url: jdbc:mysql://localhost:3306/db
- poolSize: 5
-
-# Protocols
-#protocols:
-# - http
-# - https
-
-# Users
-users:
- tom: passwd
- bob: passwd \ No newline at end of file
diff --git a/catalog-fe/pom.xml b/catalog-fe/pom.xml
index 757e543dcb..d79d6aab47 100644
--- a/catalog-fe/pom.xml
+++ b/catalog-fe/pom.xml
@@ -323,42 +323,7 @@
</webResources>
</configuration>
</plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <includeScope>compile</includeScope>
- </configuration>
- </execution>
- <execution>
- <id>copy-installed</id>
- <phase>install</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>${project.groupId}</groupId>
- <artifactId>${project.artifactId}</artifactId>
- <version>${project.version}</version>
- <type>${project.packaging}</type>
- </artifactItem>
- </artifactItems>
- <outputDirectory>${project.parent.basedir}/sdc-os-chef/sdc-frontend/</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
+
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml
index 22fdd2cdf4..0a06aa3f4e 100644
--- a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml
@@ -2,7 +2,6 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.openecomp.sdc.common</groupId>
<name>openecomp-configuration-management-api</name>
<artifactId>openecomp-configuration-management-api</artifactId>
@@ -13,36 +12,4 @@
<relativePath>..</relativePath>
</parent>
- <dependencies>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-install-plugin</artifactId>
- <version>${mvn.install.version}</version>
- <executions>
- <execution>
- <id>install-mallet</id>
- <phase>install</phase>
- <goals>
- <goal>install-file</goal>
- </goals>
- <configuration>
- <file>${java.home}/../lib/tools.jar</file>
- <groupId>tools</groupId>
- <artifactId>tools</artifactId>
- <version>1.8</version>
- <packaging>jar</packaging>
- <createChecksum>true</createChecksum>
- <generatePom>true</generatePom>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
-
</project>
diff --git a/common/openecomp-common-configuration-management/pom.xml b/common/openecomp-common-configuration-management/pom.xml
index 0d28746e9a..001b719ef1 100644
--- a/common/openecomp-common-configuration-management/pom.xml
+++ b/common/openecomp-common-configuration-management/pom.xml
@@ -17,7 +17,6 @@
<modules>
<module>openecomp-configuration-management-api</module>
<module>openecomp-configuration-management-core</module>
- <module>openecomp-configuration-management-cli</module>
<module>openecomp-configuration-management-test</module>
</modules>
diff --git a/docs/administration.rst b/docs/administration.rst
new file mode 100644
index 0000000000..94a7407189
--- /dev/null
+++ b/docs/administration.rst
@@ -0,0 +1,24 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Administration
+==============
+
+
+.. note::
+ * This section is used to describe a software component from the perspective of on-going
+ operation including regular processes and actions that are taken to configure and manage
+ the component.
+
+ * This section is typically: provided for platform-component or applications; and
+ referenced in user guides
+
+ * This note must be removed after content has been added.
+
+
+Processes
+---------
+
+
+Actions
+-------
diff --git a/docs/architecture.rst b/docs/architecture.rst
new file mode 100644
index 0000000000..8daa0d3bc5
--- /dev/null
+++ b/docs/architecture.rst
@@ -0,0 +1,27 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Architecture
+============
+
+.. note::
+ * This section is used to describe a software component from a high level
+ view of capability, common usage scenarios, and interactions with other
+ components required in the usage scenarios.
+
+ * The architecture section is typically: provided in a platform-component
+ and sdk collections; and referenced from developer and user guides.
+
+ * This note must be removed after content has been added.
+
+
+Capabilities
+------------
+
+
+Usage Scenarios
+---------------
+
+
+Interactions
+------------
diff --git a/docs/configuration.rst b/docs/configuration.rst
new file mode 100644
index 0000000000..085f9c667d
--- /dev/null
+++ b/docs/configuration.rst
@@ -0,0 +1,27 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Configuration
+=============
+
+.. note::
+ * This section is used to describe the options a software component offers for configuration.
+
+ * Configuration is typically: provided for platform-component and sdk projects;
+ and referenced in developer and user guides.
+
+ * This note must be removed after content has been added.
+
+
+
+Example ...
+
+You can provide the following in ``basic.conf``
+
+``host=ADDRESS``
+ The address of the host
+
+``port=PORT``
+ The port used for signaling
+
+ Optional. Default: ``8080``
diff --git a/docs/consumedapis.rst b/docs/consumedapis.rst
new file mode 100644
index 0000000000..c2af4c20e0
--- /dev/null
+++ b/docs/consumedapis.rst
@@ -0,0 +1,16 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Consumed APIs
+=============
+
+.. note::
+ * This section is used to reference APIs that a software component depends on
+ and uses from other sources.
+
+ * Consumed APIs should be a specific link to the offered APIs from another component
+ or external source.
+
+ * This note must be removed after content has been added.
+
+
diff --git a/docs/delivery.rst b/docs/delivery.rst
new file mode 100644
index 0000000000..f3f083a732
--- /dev/null
+++ b/docs/delivery.rst
@@ -0,0 +1,44 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Delivery
+========
+
+.. note::
+ * This section is used to describe a software component packaging.
+ For a run-time component this might be executable images, containers, etc.
+ For an SDK this might be libraries.
+
+ * This section is typically provided for a platform-component and sdk;
+ and referenced in developer and user guides
+
+ * This note must be removed after content has been added.
+
+Example use of a block diagram.
+
+.. blockdiag::
+
+
+ blockdiag layers {
+ orientation = portrait
+ a -> m;
+ b -> n;
+ c -> x;
+ m -> y;
+ m -> z;
+ group l1 {
+ color = blue;
+ x; y; z;
+ }
+ group l2 {
+ color = yellow;
+ m; n;
+ }
+ group l3 {
+ color = orange;
+ a; b; c;
+ }
+
+ }
+
+
diff --git a/docs/humaninterfaces.rst b/docs/humaninterfaces.rst
new file mode 100644
index 0000000000..4292846085
--- /dev/null
+++ b/docs/humaninterfaces.rst
@@ -0,0 +1,17 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Human Interfaces
+================
+
+.. note::
+ * This section is used to describe a software component's command line and graphical
+ user interfaces.
+
+ * This section is typically: provided for a platform-component and application; and
+ referenced from user guides.
+
+ * This note must be removed after content has been added.
+
+
+
diff --git a/docs/index.rst b/docs/index.rst
index b4ceb80ea6..cc71b4572b 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -5,6 +5,14 @@ SDC Documentation
.. toctree::
:maxdepth: 2
-
- releases/index
- onap-developer/index
+
+ administration.rst
+ architecture.rst
+ configuration.rst
+ consumedapis.rst
+ offeredapis.rst
+ delivery.rst
+ humaninterfaces.rst
+ installation.rst
+ logging.rst
+ release-notes.rst
diff --git a/docs/installation.rst b/docs/installation.rst
new file mode 100644
index 0000000000..be64a63bb9
--- /dev/null
+++ b/docs/installation.rst
@@ -0,0 +1,20 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Installation
+============
+
+.. note::
+ * This section is used to describe how a software component is acquired and installed.
+
+ * This section is typically: provided for a platform-component and application; and
+ referenced in user guides.
+
+ * This note must be removed after content has been added.
+
+Environment
+-----------
+
+
+Steps
+-----
diff --git a/docs/logging.rst b/docs/logging.rst
new file mode 100644
index 0000000000..1845ba0037
--- /dev/null
+++ b/docs/logging.rst
@@ -0,0 +1,54 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Logging
+=======
+
+.. note::
+ * This section is used to describe the informational or diagnostic messages emitted from
+ a software component and the methods or collecting them.
+
+ * This section is typically: provided for a platform-component and sdk; and
+ referenced in developer and user guides
+
+ * This note must be removed after content has been added.
+
+
+Where to Access Information
+---------------------------
+
++--------+------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| Server | Location | Type | Description | Rolling |
++--------+------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| BE | /data/logs/BE/2017_03_10.stderrout.log | Jetty server log | The log describes info regarding Jetty startup and execution | the log rolls daily |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/BE/SDC/SDC-BE/audit.log | application audit | An audit record is created for each operation in SDC | rolls at 20 mb |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/BE/SDC/SDC-BE/debug.log | application logging | We can enable higher logging on demand by editing the logback.xml inside the server docker. | rolls at 20 mb |
+| | | | The file is located under:,config/catalog-be/logback.xml. | |
+| | | | This log holds the debug and trace level output of the application. | |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/BE/SDC/SDC-BE/error.log | application logging | This log holds the info and error level output of the application. | rolls at 20 mb |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/BE/SDC/SDC-BE/transaction.log | application logging | Not currently in use. will be used in future relases. | rolls at 20 mb |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/BE/SDC/SDC-BE/all.log | application logging | On demand, we can enable log aggregation into one file for easier debugging. This is done by editing the logback.xml inside the server docker. | rolls at 20 mb |
+| | | | The file is located under:,config/catalog-be/logback.xml. | |
+| | | | To allow this logger, set the value for this property to true This log holds all logging output of the application. | |
++--------+------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| FE | /data/logs/FE/2017_03_10.stderrout.log | Jetty server log | The log describes info regarding the Jetty startup and execution | the log rolls daily |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/FE/SDC/SDC-FE/debug.log | application logging | We can enable higher logging on demand by editing the logback.xml inside the server docker. | rolls at 20 mb |
+| | | | The file is located,under: config/catalog-fe/logback.xml. | |
+| | | | This log holds the debug and trace level output of the application. | |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/FE/SDC/SDC-FE/error.log | application logging | This log holds the Info and Error level output of the application. | rolls at 20 mb |
++ +------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+| | /data/logs/FE/SDC/SDC-FE/all.log | application logging | On demand we can enable log aggregation into one file for easier debuging, by editing the logback.xml inside the server docker.The file is located under: config/catalog-fe/logback.xml. | rolls |
+| | | | To allow this logger set this property to true | |
+| | | | This log holds all the logging output of the application. | |
++--------+------------------------------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+
+
+Error / Warning Messages
+------------------------
diff --git a/docs/offeredapis.rst b/docs/offeredapis.rst
new file mode 100644
index 0000000000..bdc5034eb0
--- /dev/null
+++ b/docs/offeredapis.rst
@@ -0,0 +1,10275 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Offered APIs
+============
+
+:Date: 2017-10-18
+
+.. contents::
+ :depth: 3
+..
+
+Overview
+========
+
+Version information
+-------------------
+
+*Version* : 1.0.0
+
+URI scheme
+----------
+
+*Host* : localhost:8080 *BasePath* : /sdc2/rest *Schemes* : HTTP
+
+Tags
+----
+
+- Additional Information Servlet
+
+- BE Monitoring
+
+- Catalog Types Upload
+
+- Component Servlet
+
+- Consumer Servlet
+
+- Distribution Service Servlet
+
+- Element Servlet
+
+- Input Catalog
+
+- Lifecycle Actions Servlet
+
+- Product Catalog
+
+- Resource Artifact Servlet
+
+- Resource Attribute Servlet
+
+- Resource Group Servlet
+
+- Resource Instance Servlet
+
+- Resource Property Servlet
+
+- Resources Catalog
+
+- Resources Catalog Upload
+
+- Service Catalog
+
+- Types Fetch Servlet
+
+- User Administration
+
+Paths
+=====
+
+return aggregate BE health check of Titan, ES and BE
+----------------------------------------------------
+
+::
+
+ GET /healthCheck
+
+Description
+~~~~~~~~~~~
+
+return BE health check
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Titan, ES and BE are all up | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | One or more BE components (Titan, ES, BE) are down | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- BE Monitoring
+
+POST /monitoring
+----------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Body** | **body**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- BE Monitoring
+
+Retrieve all artifactTypes
+--------------------------
+
+::
+
+ GET /v1/artifactTypes
+
+Description
+~~~~~~~~~~~
+
+Retrieve all artifactTypes
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns artifactTypes Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | No artifactTypes were found | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+get component audit records
+---------------------------
+
+::
+
+ GET /v1/catalog/audit-records/{componentType}/{componentUniqueId}
+
+Description
+~~~~~~~~~~~
+
+get audit records for a service or a resource
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentUniqueId**\ * | string |
+| | required* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Get data types
+--------------
+
+::
+
+ GET /v1/catalog/dataTypes
+
+Description
+~~~~~~~~~~~
+
+Returns data types
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | datatypes | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Data types not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Types Fetch Servlet
+
+Create product
+--------------
+
+::
+
+ POST /v1/catalog/products
+
+Description
+~~~~~~~~~~~
+
+Returns created product
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | USER\_ID of product strategist user | string |
+| ** | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Product object to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `Product <#_pr |
+| | | oduct>`__ |
++---------+----------------------------------------------------+----------------+
+| **201** | Product created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid/missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation / Empty USER\_ID header | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Product already exists / User not found / Wrong | No Content |
+| | user role | |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Product Catalog
+
+Retrieve Service
+----------------
+
+::
+
+ GET /v1/catalog/products/productName/{productName}/productVersion/{productVersion}
+
+Description
+~~~~~~~~~~~
+
+Returns product according to name and version
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **productName**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **productVersion**\ *req | string |
+| | uired* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Product found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Product not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Product Catalog
+
+validate product name
+---------------------
+
+::
+
+ GET /v1/catalog/products/validate-name/{productName}
+
+Description
+~~~~~~~~~~~
+
+checks if the chosen product name is available
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **productName**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Product Catalog
+
+Retrieve product
+----------------
+
+::
+
+ GET /v1/catalog/products/{productId}
+
+Description
+~~~~~~~~~~~
+
+Returns product according to productId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **productId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Product found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Product not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Product Catalog
+
+DELETE /v1/catalog/products/{productid}
+---------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **productId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+- Product Catalog
+
+Update Product Metadata
+-----------------------
+
+::
+
+ PUT /v1/catalog/products/{productId}/metadata
+
+Description
+~~~~~~~~~~~
+
+Returns updated product
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **productId | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Product object to be Updated | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Product Updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Product Catalog
+
+Create Resource
+---------------
+
+::
+
+ POST /v1/catalog/resources
+
+Description
+~~~~~~~~~~~
+
+Returns created resource
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Resource object to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `Resource <#_r |
+| | | esource>`__ |
++---------+----------------------------------------------------+----------------+
+| **201** | Resource created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Resource already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+GET /v1/catalog/resources/certified/abstract
+--------------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+GET /v1/catalog/resources/certified/notabstract
+-----------------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+Create Resource
+---------------
+
+::
+
+ POST /v1/catalog/resources/csar/{csaruuid}
+
+Description
+~~~~~~~~~~~
+
+Returns resource created from csar uuid
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **csaruuid**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `Resource <#_r |
+| | | esource>`__ |
++---------+----------------------------------------------------+----------------+
+| **201** | Resource retrieced | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+Retrieve Resource by name and version
+-------------------------------------
+
+::
+
+ GET /v1/catalog/resources/resourceName/{resourceName}/resourceVersion/{resourceVersion}
+
+Description
+~~~~~~~~~~~
+
+Returns resource according to resourceId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **resourceName**\ *requi | string |
+| | red* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **resourceVersion**\ *re | string |
+| | quired* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+validate resource name
+----------------------
+
+::
+
+ GET /v1/catalog/resources/validate-name/{resourceName}
+
+Description
+~~~~~~~~~~~
+
+checks if the chosen resource name is available
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **resourceName**\ *requi | string |
+| | red* | |
++------------------+--------------------------+----------------------------------+
+| **Query** | **subtype**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+Retrieve Resource
+-----------------
+
+::
+
+ GET /v1/catalog/resources/{resourceId}
+
+Description
+~~~~~~~~~~~
+
+Returns resource according to resourceId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **resourceId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+Update Resource
+---------------
+
+::
+
+ PUT /v1/catalog/resources/{resourceId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Resource object to be updated | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Resource already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+DELETE /v1/catalog/resources/{resourceid}
+-----------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **resourceId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+- Resources Catalog
+
+Create Additional Information Label and Value
+---------------------------------------------
+
+::
+
+ POST /v1/catalog/resources/{resourceId}/additionalinfo
+
+Description
+~~~~~~~~~~~
+
+Returns created Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | property | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Additional information key value to | string |
+| | required* | be created | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Additional information created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Get all Additional Information under resource
+---------------------------------------------
+
+::
+
+ GET /v1/catalog/resources/{resourceId}/additionalinfo
+
+Description
+~~~~~~~~~~~
+
+Returns Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | property | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | list of additional information | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Get Additional Information by id
+--------------------------------
+
+::
+
+ GET /v1/catalog/resources/{resourceId}/additionalinfo/{labelId}
+
+Description
+~~~~~~~~~~~
+
+Returns Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **labelId** | label id | string |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | property | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | fetched additional information | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Update Additional Information Label and Value
+---------------------------------------------
+
+::
+
+ PUT /v1/catalog/resources/{resourceId}/additionalinfo/{labelId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **labelId** | label id | string |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | property | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Additional information key value to | string |
+| | required* | be created | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Additional information updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Create Additional Information Label and Value
+---------------------------------------------
+
+::
+
+ DELETE /v1/catalog/resources/{resourceId}/additionalinfo/{labelId}
+
+Description
+~~~~~~~~~~~
+
+Returns deleted Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **labelId** | label id | string |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | property | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Additional information deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Create Artifact
+---------------
+
+::
+
+ POST /v1/catalog/resources/{resourceId}/artifacts
+
+Description
+~~~~~~~~~~~
+
+Returns created ArtifactDefinition
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **resourceI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Artifact already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Update Artifact
+---------------
+
+::
+
+ POST /v1/catalog/resources/{resourceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated artifact
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **artifactI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Download resource Artifact in Base64
+------------------------------------
+
+::
+
+ GET /v1/catalog/resources/{resourceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns downloaded artifact
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **artifactId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **resourceId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource artifact downloaded | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource/Artifact not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Delete Artifact
+---------------
+
+::
+
+ DELETE /v1/catalog/resources/{resourceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns delete artifact
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **artifactId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **resourceId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Create Resource Attribute
+-------------------------
+
+::
+
+ POST /v1/catalog/resources/{resourceId}/attributes
+
+Description
+~~~~~~~~~~~
+
+Returns created resource attribute
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | attribute | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Resource attribute to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource property created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Resource attribute already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Attribute Servlet
+
+Update Resource Attribute
+-------------------------
+
+::
+
+ PUT /v1/catalog/resources/{resourceId}/attributes/{attributeId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated attribute
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **attribute | attribute id to update | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | attribute | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Resource attribute to update | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource attribute updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Attribute Servlet
+
+Create Resource Attribute
+-------------------------
+
+::
+
+ DELETE /v1/catalog/resources/{resourceId}/attributes/{attributeId}
+
+Description
+~~~~~~~~~~~
+
+Returns deleted attribute
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **attribute | Attribute id to delete | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id of attribute | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **204** | deleted attribute | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource property not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Attribute Servlet
+
+Update Resource Metadata
+------------------------
+
+::
+
+ PUT /v1/catalog/resources/{resourceId}/metadata
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource metadata
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Resource metadata to be updated | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource metadata updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog
+
+Create Resource Property
+------------------------
+
+::
+
+ POST /v1/catalog/resources/{resourceId}/properties
+
+Description
+~~~~~~~~~~~
+
+Returns created resource property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | property | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Resource property to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource property created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Resource property already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Property Servlet
+
+Create Resource Property
+------------------------
+
+::
+
+ GET /v1/catalog/resources/{resourceId}/properties/{propertyId}
+
+Description
+~~~~~~~~~~~
+
+Returns property of resource
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **propertyI | proerty id to get | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id of property | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | property | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource property not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Property Servlet
+
+Update Resource Property
+------------------------
+
+::
+
+ PUT /v1/catalog/resources/{resourceId}/properties/{propertyId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **propertyI | proerty id to update | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id to update with new | string |
+| | d**\ *requi | property | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Resource property to update | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource property updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Property Servlet
+
+Create Resource Property
+------------------------
+
+::
+
+ DELETE /v1/catalog/resources/{resourceId}/properties/{propertyId}
+
+Description
+~~~~~~~~~~~
+
+Returns deleted property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **propertyI | Property id to delete | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | resource id of property | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **204** | deleted property | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource property not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Property Servlet
+
+Create Artifact and Attach to interface
+---------------------------------------
+
+::
+
+ POST /v1/catalog/resources/{resourceId}/{interfaceType}/{operation}/artifacts
+
+Description
+~~~~~~~~~~~
+
+Returns created resource
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **Content-M | | string |
+| ** | D5**\ *opti | | |
+| | onal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **interface | | string |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **operation | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Artifact already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+update Artifact Attach to interface
+-----------------------------------
+
+::
+
+ POST /v1/catalog/resources/{resourceId}/{interfaceType}/{operation}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+updates artifact by interface
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **Content-M | | string |
+| ** | D5**\ *opti | | |
+| | onal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **artifactI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **interface | | string |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **operation | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | delete artifact under interface deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Artifact already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+delete Artifact from interface
+------------------------------
+
+::
+
+ DELETE /v1/catalog/resources/{resourceId}/{interfaceType}/{operation}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+delete matching artifact from interface
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **artifactId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **interfaceType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **operation**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **resourceId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | delete artifact under interface deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Artifact already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+DELETE /v1/catalog/resources/{resourcename}/{version}
+-----------------------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **resourceName**\ *requi | string |
+| | red* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **version**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+- Resources Catalog
+
+Create Service
+--------------
+
+::
+
+ POST /v1/catalog/services
+
+Description
+~~~~~~~~~~~
+
+Returns created service
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Service object to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `Service <#_se |
+| | | rvice>`__ |
++---------+----------------------------------------------------+----------------+
+| **201** | Service created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Service already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Retrieve Distributions
+----------------------
+
+::
+
+ GET /v1/catalog/services/distribution/{did}
+
+Description
+~~~~~~~~~~~
+
+Return the list of distribution status objects
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **did**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Status not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Distribution Service Servlet
+
+Retrieve Service
+----------------
+
+::
+
+ GET /v1/catalog/services/serviceName/{serviceName}/serviceVersion/{serviceVersion}
+
+Description
+~~~~~~~~~~~
+
+Returns service according to name and version
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceName**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceVersion**\ *req | string |
+| | uired* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Service not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Download service artifact
+-------------------------
+
+::
+
+ GET /v1/catalog/services/toscatoheat/{artifactName}
+
+Description
+~~~~~~~~~~~
+
+Returns downloaded artifact
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **artifactName**\ *requi | string |
+| | red* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Artifact downloaded | No Content |
++---------+----------------------------------------------------+----------------+
+| **401** | Authorization required | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Artifact not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/octet-stream``
+
+Tags
+~~~~
+
+- Service Catalog
+
+validate service name
+---------------------
+
+::
+
+ GET /v1/catalog/services/validate-name/{serviceName}
+
+Description
+~~~~~~~~~~~
+
+checks if the chosen service name is available
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceName**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Get Inputs only
+---------------
+
+::
+
+ GET /v1/catalog/services/{componentId}/inputs
+
+Description
+~~~~~~~~~~~
+
+Returns Inputs list
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Query** | **amount**\ *optional* | integer (int32) |
++------------------+--------------------------+----------------------------------+
+| **Query** | **fromId**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Retrieve Service
+----------------
+
+::
+
+ GET /v1/catalog/services/{serviceId}
+
+Description
+~~~~~~~~~~~
+
+Returns service according to serviceId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Service not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+DELETE /v1/catalog/services/{serviceid}
+---------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+- Service Catalog
+
+Create Additional Information Label and Value
+---------------------------------------------
+
+::
+
+ POST /v1/catalog/services/{serviceId}/additionalinfo
+
+Description
+~~~~~~~~~~~
+
+Returns created Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | service id to update with new | string |
+| | **\ *requir | property | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Additional information key value to | string |
+| | required* | be created | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Additional information created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Get all Additional Information under service
+--------------------------------------------
+
+::
+
+ GET /v1/catalog/services/{serviceId}/additionalinfo
+
+Description
+~~~~~~~~~~~
+
+Returns Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | service id to update with new | string |
+| | **\ *requir | property | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | list of additional information | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Get Additional Information by id
+--------------------------------
+
+::
+
+ GET /v1/catalog/services/{serviceId}/additionalinfo/{labelId}
+
+Description
+~~~~~~~~~~~
+
+Returns Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **labelId** | label id | string |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | service id to update with new | string |
+| | **\ *requir | property | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | fetched additional information | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Update Additional Information Label and Value
+---------------------------------------------
+
+::
+
+ PUT /v1/catalog/services/{serviceId}/additionalinfo/{labelId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **labelId** | label id | string |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | service id to update with new | string |
+| | **\ *requir | property | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Additional information key value to | string |
+| | required* | be created | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Additional information updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Create Additional Information Label and Value
+---------------------------------------------
+
+::
+
+ DELETE /v1/catalog/services/{serviceId}/additionalinfo/{labelId}
+
+Description
+~~~~~~~~~~~
+
+Returns deleted Additional Inforamtion property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **labelId** | label id | string |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | service id to update with new | string |
+| | **\ *requir | property | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Additional information deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Additional information key already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Additional Information Servlet
+
+Create Artifact
+---------------
+
+::
+
+ POST /v1/catalog/services/{serviceId}/artifacts
+
+Description
+~~~~~~~~~~~
+
+Returns created ArtifactDefinition
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **serviceId | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Artifact already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Update Api Artifact
+-------------------
+
+::
+
+ POST /v1/catalog/services/{serviceId}/artifacts/api/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns created ArtifactDefinition
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **Content-M | | string |
+| ** | D5**\ *opti | | |
+| | onal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **artifactI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Api Artifact Updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Delete Api Artifact
+-------------------
+
+::
+
+ DELETE /v1/catalog/services/{serviceId}/artifacts/api/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns Deleted ArtifactDefinition
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **Content-MD5**\ *option | string |
+| | al* | |
++------------------+--------------------------+----------------------------------+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **artifactId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **204** | Api Artifact deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Update Artifact
+---------------
+
+::
+
+ POST /v1/catalog/services/{serviceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated artifact
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **artifactI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Service artifact created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Download service Artifact in Base64
+-----------------------------------
+
+::
+
+ GET /v1/catalog/services/{serviceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns downloaded artifact
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **artifactId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service artifact downloaded | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Service/Artifact not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Delete Artifact
+---------------
+
+::
+
+ DELETE /v1/catalog/services/{serviceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns delete artifact
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **artifactId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Service artifact deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Update Service Distribution State
+---------------------------------
+
+::
+
+ POST /v1/catalog/services/{serviceId}/distribution-state/{state}
+
+Description
+~~~~~~~~~~~
+
+service with the changed distribution status
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **state**\ | | enum (approve, |
+| | *required* | | reject) |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | DistributionChangeInfo - get comment | `LifecycleChange |
+| | required* | out of body | InfoWithAction < |
+| | | | #_lifecyclechang |
+| | | | einfowithaction> |
+| | | | `__ |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service distribution state changed | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Service is not available for distribution | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Requested service was not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error. Please try again later. | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Mark distribution as deployed
+-----------------------------
+
+::
+
+ POST /v1/catalog/services/{serviceId}/distribution/{did}/markDeployed
+
+Description
+~~~~~~~~~~~
+
+relevant audit record will be created
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **did**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service was marked as deployed | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Service is not available | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Requested service was not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error. Please try again later. | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Activate distribution
+---------------------
+
+::
+
+ POST /v1/catalog/services/{serviceId}/distribution/{env}/activate
+
+Description
+~~~~~~~~~~~
+
+activate distribution
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **env**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | OK | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Requested service was not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Service cannot be distributed due to missing | No Content |
+| | deployment artifacts | |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error. Please try again later. | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Update Service Metadata
+-----------------------
+
+::
+
+ PUT /v1/catalog/services/{serviceId}/metadata
+
+Description
+~~~~~~~~~~~
+
+Returns updated service
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Service object to be Updated | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service Updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+POST /v1/catalog/services/{serviceid}/tempUrlToBeDeleted
+--------------------------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceId**\ *required | string |
+| | * | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | OK | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error. Please try again later. | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+DELETE /v1/catalog/services/{servicename}/{version}
+---------------------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **serviceName**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **version**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+- Service Catalog
+
+Retrieve Distributions
+----------------------
+
+::
+
+ GET /v1/catalog/services/{serviceUUID}/distribution
+
+Description
+~~~~~~~~~~~
+
+Returns list bases on the information extracted from Auditing Records
+according to service uuid
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **serviceUUID**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Service found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Service not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Distribution Service Servlet
+
+Create Resource from yaml
+-------------------------
+
+::
+
+ POST /v1/catalog/upload/{resourceAuthority}
+
+Description
+~~~~~~~~~~~
+
+Returns created resource
+
+Parameters
+~~~~~~~~~~
+
++---------+------------+----------------------------------+----------------+---------+
+| Type | Name | Description | Schema | Default |
++=========+============+==================================+================+=========+
+| **Heade | **USER\_ID | | string | |
+| r** | **\ *optio | | | |
+| | nal* | | | |
++---------+------------+----------------------------------+----------------+---------+
+| **Path* | **resource | validValues: normative-resource | enum | |
+| * | Authority* | / user-resource | (multipart, | |
+| | *\ *requir | | user-resource, | |
+| | ed* | | user-resource- | |
+| | | | ui-import) | |
++---------+------------+----------------------------------+----------------+---------+
+| **Query | **createNe | | boolean | ``"true |
+| ** | wVersion** | | | "`` |
+| | \ *optiona | | | |
+| | l* | | | |
++---------+------------+----------------------------------+----------------+---------+
+| **FormD | **resource | resourceMetadata | string | |
+| ata** | Metadata** | | | |
+| | \ *optiona | | | |
+| | l* | | | |
++---------+------------+----------------------------------+----------------+---------+
+| **FormD | **resource | FileInputStream | file | |
+| ata** | Zip**\ *op | | | |
+| | tional* | | | |
++---------+------------+----------------------------------+----------------+---------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Resource already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``multipart/form-data``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resources Catalog Upload
+
+Create Capability Type from yaml
+--------------------------------
+
+::
+
+ POST /v1/catalog/uploadType/capability
+
+Description
+~~~~~~~~~~~
+
+Returns created Capability Type
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **FormDa | **capabilit | FileInputStream | file |
+| ta** | yTypeZip**\ | | |
+| | *optional* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Capability Type created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Capability Type already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``multipart/form-data``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Catalog Types Upload
+
+Create Categories from yaml
+---------------------------
+
+::
+
+ POST /v1/catalog/uploadType/categories
+
+Description
+~~~~~~~~~~~
+
+Returns created categories
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **FormDa | **categorie | FileInputStream | file |
+| ta** | sZip**\ *op | | |
+| | tional* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Categories created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Category already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``multipart/form-data``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Catalog Types Upload
+
+Create Categories from yaml
+---------------------------
+
+::
+
+ POST /v1/catalog/uploadType/datatypes
+
+Description
+~~~~~~~~~~~
+
+Returns created data types
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **FormDa | **dataTypes | FileInputStream | file |
+| ta** | Zip**\ *opt | | |
+| | ional* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Data types created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Data types already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``multipart/form-data``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Catalog Types Upload
+
+Create GroupTypes from yaml
+---------------------------
+
+::
+
+ POST /v1/catalog/uploadType/grouptypes
+
+Description
+~~~~~~~~~~~
+
+Returns created group types
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **FormDa | **groupType | FileInputStream | file |
+| ta** | sZip**\ *op | | |
+| | tional* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | group types created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | group types already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``multipart/form-data``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Catalog Types Upload
+
+Create Interface Lyfecycle Type from yaml
+-----------------------------------------
+
+::
+
+ POST /v1/catalog/uploadType/interfaceLifecycle
+
+Description
+~~~~~~~~~~~
+
+Returns created Interface Lifecycle Type
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **FormDa | **interface | FileInputStream | file |
+| ta** | LifecycleTy | | |
+| | peZip**\ *o | | |
+| | ptional* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Interface Lifecycle Type created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Interface Lifecycle Type already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``multipart/form-data``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Catalog Types Upload
+
+Create PolicyTypes from yaml
+----------------------------
+
+::
+
+ POST /v1/catalog/uploadType/policytypes
+
+Description
+~~~~~~~~~~~
+
+Returns created policy types
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **FormDa | **policyTyp | FileInputStream | file |
+| ta** | esZip**\ *o | | |
+| | ptional* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | policy types created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | policy types already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``multipart/form-data``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Catalog Types Upload
+
+Change Resource lifecycle State
+-------------------------------
+
+::
+
+ POST /v1/catalog/{componentCollection}/{componentId}/lifecycleState/{lifecycleOperation}
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | id of user initiating the operation | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | validValues: resources / services / | enum (resources, |
+| | Collection* | products | services, |
+| | *\ *require | | products) |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | id of component to be changed | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **lifecycle | | enum (checkout, |
+| | Operation** | | undoCheckout, |
+| | \ *required | | checkin, |
+| | * | | certificationReq |
+| | | | uest, |
+| | | | startCertificati |
+| | | | on, |
+| | | | failCertificatio |
+| | | | n, |
+| | | | cancelCertificat |
+| | | | ion, |
+| | | | certify) |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | LifecycleChangeInfo - relevant for | string |
+| | optional* | checkin, failCertification, | |
+| | | cancelCertification | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource state changed | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Resource already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Lifecycle Actions Servlet
+
+Get Component Requirments And Capabilities
+------------------------------------------
+
+::
+
+ GET /v1/catalog/{componentType}/latestversion/notabstract
+
+Description
+~~~~~~~~~~~
+
+Returns Requirments And Capabilities according to componentId
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Query* | **internalC | | string |
+| * | omponentTyp | | |
+| | e**\ *optio | | |
+| | nal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Consumer Object to be created | < string > array |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Component Servlet
+
+Get Component uid only
+----------------------
+
+::
+
+ GET /v1/catalog/{componentType}/latestversion/notabstract/metadata
+
+Description
+~~~~~~~~~~~
+
+Returns componentId
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Query* | **internalC | | string |
+| * | omponentTyp | | |
+| | e**\ *optio | | |
+| | nal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | uid list | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Component Servlet
+
+Get Component instances
+-----------------------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/componentInstances
+
+Description
+~~~~~~~~~~~
+
+Returns component instances
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Query* | **searchTex | | string |
+| * | t**\ *optio | | |
+| | nal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | uid list | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Component Servlet
+
+Get properties
+--------------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/componentInstances/{instanceId}/{inputId}/properties
+
+Description
+~~~~~~~~~~~
+
+Returns properties list
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **inputId**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **instanceId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Get Inputs only
+---------------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/componentInstances/{instanceId}/{originComponentUid}/inputs
+
+Description
+~~~~~~~~~~~
+
+Returns Inputs list
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **instanceId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **originComponentUid**\ | string |
+| | *required* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Create inputs on service
+------------------------
+
+::
+
+ POST /v1/catalog/{componentType}/{componentId}/create/inputs
+
+Description
+~~~~~~~~~~~
+
+Return inputs list
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | ComponentIns Inputs Object to be | string |
+| | required* | created | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Delete input from service
+-------------------------
+
+::
+
+ DELETE /v1/catalog/{componentType}/{componentId}/delete/{inputId}/input
+
+Description
+~~~~~~~~~~~
+
+Delete service input
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **inputId** | | string |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Service Input to be deleted | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Input deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Input not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Retrieve Resource
+-----------------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/filteredDataByParams
+
+Description
+~~~~~~~~~~~
+
+Returns resource according to resourceId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Query** | **include**\ *optional* | < string > array(multi) |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Component Servlet
+
+Retrieve properties belonging to component instances of specific component by name and optionally resource type
+---------------------------------------------------------------------------------------------------------------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/filteredproperties/{propertyNameFragment}
+
+Description
+~~~~~~~~~~~
+
+Returns properties belonging to component instances of specific
+component by name and optionally resource type
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **propertyNameFragment** | string |
+| | \ *required* | |
++------------------+--------------------------+----------------------------------+
+| **Query** | **resourceType**\ *optio | < string > array(multi) |
+| | nal* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Component Servlet
+
+Get inputs
+----------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/inputs/{inputId}
+
+Description
+~~~~~~~~~~~
+
+Returns inputs list
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **inputId**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Get inputs
+----------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/inputs/{inputId}/inputs
+
+Description
+~~~~~~~~~~~
+
+Returns inputs list
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **inputId**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Get Component Requirments And Capabilities
+------------------------------------------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentId}/requirmentsCapabilities
+
+Description
+~~~~~~~~~~~
+
+Returns Requirements And Capabilities according to componentId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Component Servlet
+
+Validate Component Conformance Level
+------------------------------------
+
+::
+
+ GET /v1/catalog/{componentType}/{componentUuid}/conformanceLevelValidation
+
+Description
+~~~~~~~~~~~
+
+Returns the result according to conformance level in BE config
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentUuid**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Component Servlet
+
+Get component Artifacts
+-----------------------
+
+::
+
+ GET /v1/catalog/{containerComponentType}/{componentId}/artifactsByType/{artifactGroupType}
+
+Description
+~~~~~~~~~~~
+
+Returns artifacts
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **artifactG | | string |
+| | roupType**\ | | |
+| | *required* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component artifacts | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource/Artifact not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Get group artifacts
+-------------------
+
+::
+
+ GET /v1/catalog/{containerComponentType}/{componentId}/groups/{groupId}
+
+Description
+~~~~~~~~~~~
+
+Returns artifacts metadata according to groupId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **containerComponentType | string |
+| | **\ *required* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **groupId**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | group found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Group not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Group Servlet
+
+Update Group Metadata
+---------------------
+
+::
+
+ PUT /v1/catalog/{containerComponentType}/{componentId}/groups/{groupUniqueId}/metadata
+
+Description
+~~~~~~~~~~~
+
+Returns updated group definition
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | | string |
+| | ComponentTy | | |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **groupUniq | | string |
+| | ueId**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Service object to be Updated | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Group Updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Group Servlet
+
+Updates List of properties on a group (only values)
+---------------------------------------------------
+
+::
+
+ PUT /v1/catalog/{containerComponentType}/{componentId}/groups/{groupUniqueId}/properties
+
+Description
+~~~~~~~~~~~
+
+Returns updated list of properties
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | | string |
+| | ComponentTy | | |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **groupUniq | | string |
+| | ueId**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Service object to be Updated | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Group Updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Group Servlet
+
+Create ComponentInstance
+------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance
+
+Description
+~~~~~~~~~~~
+
+Returns created ComponentInstance
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | USER\_ID of modifier user | string |
+| ** | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | RI object to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Component created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Component instance already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Associate RI to RI
+------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/associate
+
+Description
+~~~~~~~~~~~
+
+Returns created RelationshipInfo
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | unique id of the container component | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | allowed values are resources | enum (resources, |
+| | ComponentTy | /services / products | services, |
+| | pe**\ *requ | | products) |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | RelationshipInfo | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Relationship created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Relationship already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Create RI and associate RI to RI
+--------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/createAndAssociate
+
+Description
+~~~~~~~~~~~
+
+Returns created RI and RelationshipInfo
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | RI created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Relationship already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Dissociate RI from RI
+---------------------
+
+::
+
+ PUT /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/dissociate
+
+Description
+~~~~~~~~~~~
+
+Returns deleted RelationshipInfo
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | unique id of the container component | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | allowed values are resources | enum (resources, |
+| | ComponentTy | /services / products | services, |
+| | pe**\ *requ | | products) |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | RelationshipInfo | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Relationship deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update resource instance multiple component
+-------------------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/multipleComponentInstance
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource instance
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services / | enum (resources, |
+| | ComponentTy | products | services, |
+| | pe**\ *requ | | products) |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Component Instance JSON Array | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource instance updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update resource instance
+------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource instance
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services / | enum (resources, |
+| | ComponentTy | products | services, |
+| | pe**\ *requ | | products) |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Resource instance updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Load Resource Instance artifact payload
+---------------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/artifacts
+
+Description
+~~~~~~~~~~~
+
+Returns updated artifact
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **Content-M | | string |
+| ** | D5**\ *opti | | |
+| | onal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Artifact updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Delete Resource Instance artifact
+---------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns deleted artifact
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **Content-M | | string |
+| ** | D5**\ *opti | | |
+| | onal* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **artifactI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Artifact updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Update Resource Instance HEAT\_ENV parameters
+---------------------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/artifacts/{artifactId}/heatParams
+
+Description
+~~~~~~~~~~~
+
+Returns updated artifact
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **artifactI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the artifact | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Artifact updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Update resource instance attribute
+----------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/attribute
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource instance attribute
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | id of user initiating the operation | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | service id | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | resource instance id | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource instance created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update resource instance
+------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/changeVersion
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource instance
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource instance created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Get group artifacts
+-------------------
+
+::
+
+ GET /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/groupInstance/{groupInstId}
+
+Description
+~~~~~~~~~~~
+
+Returns artifacts metadata according to groupInstId
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentInstanceId**\ | string |
+| | *required* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **containerComponentType | string |
+| | **\ *required* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **groupInstId**\ *requir | string |
+| | ed* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | group found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Group not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update resource instance property
+---------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/groupInstance/{groupInstanceId}/property
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource instance property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | id of user initiating the operation | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | service id | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | resource instance id | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **groupInst | group instance id | string |
+| | anceId**\ * | | |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource instance created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update resource instance property
+---------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/input
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource instance property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | id of user initiating the operation | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | service id | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | resource instance id | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource instance created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update resource instance property
+---------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/property
+
+Description
+~~~~~~~~~~~
+
+Returns updated resource instance property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | id of user initiating the operation | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | service id | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | resource instance id | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource instance created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update resource instance
+------------------------
+
+::
+
+ DELETE /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{componentInstanceId}/property/{propertyId}
+
+Description
+~~~~~~~~~~~
+
+Returns deleted resource instance property
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | id of user initiating the operation | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | service id | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | resource instance id | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **propertyI | property id | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Resource instance created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Delete ResourceInstance
+-----------------------
+
+::
+
+ DELETE /v1/catalog/{containerComponentType}/{componentId}/resourceInstance/{resourceInstanceId}
+
+Description
+~~~~~~~~~~~
+
+Returns delete resourceInstance
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services / | enum (resources, |
+| | ComponentTy | products | services, |
+| | pe**\ *requ | | products) |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **resourceI | | string |
+| | nstanceId** | | |
+| | \ *required | | |
+| | * | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | ResourceInstance deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Download component Artifact in Base64
+-------------------------------------
+
+::
+
+ GET /v1/catalog/{containerComponentType}/{componentId}/resourceInstances/{componentInstanceId}/artifacts/{artifactId}
+
+Description
+~~~~~~~~~~~
+
+Returns downloaded artifact
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **artifactI | | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | ResourceInstance artifact downloaded | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | ResourceInstance/Artifact not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Get component Artifacts
+-----------------------
+
+::
+
+ GET /v1/catalog/{containerComponentType}/{componentId}/resourceInstances/{componentInstanceId}/artifactsByType/{artifactGroupType}
+
+Description
+~~~~~~~~~~~
+
+Returns artifacts
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **artifactG | | string |
+| | roupType**\ | | |
+| | *required* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Component artifacts | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Resource/Artifact not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Artifact Servlet
+
+Update resource inputs
+----------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{componentId}/update/inputs
+
+Description
+~~~~~~~~~~~
+
+Returns updated input
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **component | | string |
+| | Id**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the input | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Input updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Input Catalog
+
+Get component instance properties
+---------------------------------
+
+::
+
+ GET /v1/catalog/{containerComponentType}/{containerComponentId}/componentInstances/{componentInstanceUniqueId}/properties
+
+Description
+~~~~~~~~~~~
+
+Returns component instance properties
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentInstanceUniqu | string |
+| | eId**\ *required* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **containerComponentId** | string |
+| | \ *required* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **containerComponentType | string |
+| | **\ *required* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Properties found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Component/Component Instance - not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Create service proxy
+--------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{containerComponentId}/serviceProxy
+
+Description
+~~~~~~~~~~~
+
+Returns created service proxy
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | USER\_ID of modifier user | string |
+| ** | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | | string |
+| | ComponentId | | |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | RI object to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Service proxy created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Service proxy already exist | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Delete service proxy
+--------------------
+
+::
+
+ DELETE /v1/catalog/{containerComponentType}/{containerComponentId}/serviceProxy/{serviceProxyId}
+
+Description
+~~~~~~~~~~~
+
+Returns delete service proxy
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **container | | string |
+| | ComponentId | | |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services / | enum (resources, |
+| | ComponentTy | products | services, |
+| | pe**\ *requ | | products) |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **servicePr | | string |
+| | oxyId**\ *r | | |
+| | equired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Service proxy deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update service proxy with new version
+-------------------------------------
+
+::
+
+ POST /v1/catalog/{containerComponentType}/{containerComponentId}/serviceProxy/{serviceProxyId}/changeVersion/{newServiceId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated service proxy
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **container | | string |
+| | ComponentId | | |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **container | valid values: resources / services | enum (resources, |
+| | ComponentTy | | services) |
+| | pe**\ *requ | | |
+| | ired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **servicePr | | string |
+| | oxyId**\ *r | | |
+| | equired* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Service proxy created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Resource Instance Servlet
+
+Update Group Instance Property Values
+-------------------------------------
+
+::
+
+ PUT /v1/catalog/{containerComponentType}/{serviceId}/resourceInstance/{componentInstanceId}/groupInstance/{groupInstanceId}
+
+Description
+~~~~~~~~~~~
+
+Returns updated group instance
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | | string |
+| | InstanceId* | | |
+| | *\ *require | | |
+| | d* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **groupInst | | string |
+| | anceId**\ * | | |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **serviceId | | string |
+| | **\ *requir | | |
+| | ed* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Group instance object to be Updated | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Group Instance Property Values Updated | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Service Catalog
+
+Retrieve the all resource, service and product categories
+---------------------------------------------------------
+
+::
+
+ GET /v1/categories
+
+Description
+~~~~~~~~~~~
+
+Retrieve the all resource, service and product categories
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns categories Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Retrieve the list of all resource/service/product categories/sub-categories/groupings
+-------------------------------------------------------------------------------------
+
+::
+
+ GET /v1/categories/{componentType}
+
+Description
+~~~~~~~~~~~
+
+Retrieve the list of all resource/service/product
+categories/sub-categories/groupings.
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | allowed values are resources / | enum (resources, |
+| | Type**\ *re | services/ products | services, |
+| | quired* | | products) |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns categories Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid component type | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Create new component category
+-----------------------------
+
+::
+
+ POST /v1/category/{componentType}
+
+Description
+~~~~~~~~~~~
+
+Create new component category
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | allowed values are resources | enum (resources, |
+| | Type**\ *re | /services / products | services, |
+| | quired* | | products) |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Category to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Category created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid category data | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | USER\_ID header is missing | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Category already exists / User not permitted to | No Content |
+| | perform the action | |
++---------+----------------------------------------------------+----------------+
+| **500** | General Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Create new component sub-category
+---------------------------------
+
+::
+
+ POST /v1/category/{componentType}/{categoryId}/subCategory
+
+Description
+~~~~~~~~~~~
+
+Create new component sub-category for existing category
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **categoryI | Parent category unique ID | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | allowed values are resources / | enum (resources, |
+| | Type**\ *re | products | products) |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Subcategory to be created. e.g. | string |
+| | required* | {"name":"Resource-subcat"} | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Subcategory created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid subcategory data | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | USER\_ID header is missing | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Parent category wasn’t found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Subcategory already exists / User not permitted to | No Content |
+| | perform the action | |
++---------+----------------------------------------------------+----------------+
+| **500** | General Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Create new component grouping
+-----------------------------
+
+::
+
+ POST /v1/category/{componentType}/{categoryId}/subCategory/{subCategoryId}/grouping
+
+Description
+~~~~~~~~~~~
+
+Create new component grouping for existing sub-category
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **categoryI | Parent category unique ID | string |
+| | d**\ *requi | | |
+| | red* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **component | allowed values are products | enum (products) |
+| | Type**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **subCatego | Parent sub-category unique ID | string |
+| | ryId**\ *re | | |
+| | quired* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Subcategory to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Grouping created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid grouping data | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | USER\_ID header is missing | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Parent category or subcategory were not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Grouping already exists / User not permitted to | No Content |
+| | perform the action | |
++---------+----------------------------------------------------+----------------+
+| **500** | General Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Delete component category
+-------------------------
+
+::
+
+ DELETE /v1/category/{componentType}/{categoryUniqueId}
+
+Description
+~~~~~~~~~~~
+
+Delete component category
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **categoryUniqueId**\ *r | string |
+| | equired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `Category <#_c |
+| | | ategory>`__ |
++---------+----------------------------------------------------+----------------+
+| **204** | Category deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | USER\_ID header is missing | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Category not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | User not permitted to perform the action | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | General Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Delete component category
+-------------------------
+
+::
+
+ DELETE /v1/category/{componentType}/{categoryUniqueId}/subCategory/{subCategoryUniqueId}
+
+Description
+~~~~~~~~~~~
+
+Delete component category
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **categoryUniqueId**\ *r | string |
+| | equired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **subCategoryUniqueId**\ | string |
+| | *required* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `Category <#_c |
+| | | ategory>`__ |
++---------+----------------------------------------------------+----------------+
+| **204** | Category deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | USER\_ID header is missing | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Category not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | User not permitted to perform the action | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | General Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Delete component category
+-------------------------
+
+::
+
+ DELETE /v1/category/{componentType}/{categoryUniqueId}/subCategory/{subCategoryUniqueId}/grouping/{groupingUniqueId}
+
+Description
+~~~~~~~~~~~
+
+Delete component category
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **categoryUniqueId**\ *r | string |
+| | equired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **groupingUniqueId**\ *r | string |
+| | equired* | |
++------------------+--------------------------+----------------------------------+
+| **Path** | **subCategoryUniqueId**\ | string |
+| | *required* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `Category <#_c |
+| | | ategory>`__ |
++---------+----------------------------------------------------+----------------+
+| **204** | Category deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | USER\_ID header is missing | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Category not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | User not permitted to perform the action | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | General Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Retrieve all artifactTypes
+--------------------------
+
+::
+
+ GET /v1/configuration/ui
+
+Description
+~~~~~~~~~~~
+
+Retrieve all artifactTypes
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns artifactTypes Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | No artifactTypes were found | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Consumer credentials
+--------------------
+
+::
+
+ POST /v1/consumers
+
+Description
+~~~~~~~~~~~
+
+Returns created ECOMP consumer credentials
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | Consumer Object to be created | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **201** | Consumer credentials created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid content / Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Consumer Servlet
+
+Retrieve Consumer
+-----------------
+
+::
+
+ GET /v1/consumers/{consumerId}
+
+Description
+~~~~~~~~~~~
+
+Returns consumer according to ConsumerID
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **consumerId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Consumer found | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Consumer not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Consumer Servlet
+
+Deletes Consumer
+----------------
+
+::
+
+ DELETE /v1/consumers/{consumerId}
+
+Description
+~~~~~~~~~~~
+
+Returns deleted consumer according to ConsumerID
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Path** | **consumerId**\ *require | string |
+| | d* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `ConsumerDefin |
+| | | ition <#_consu |
+| | | merdefinition> |
+| | | `__ |
++---------+----------------------------------------------------+----------------+
+| **204** | Consumer deleted | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | Consumer not found | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Consumer Servlet
+
+Retrieve ecomp portal menu - MOC
+--------------------------------
+
+::
+
+ GET /v1/ecompPortalMenu
+
+Description
+~~~~~~~~~~~
+
+Retrieve ecomp portal menu
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Retrieve ecomp portal menu | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Retrieve all followed
+---------------------
+
+::
+
+ GET /v1/followed
+
+Description
+~~~~~~~~~~~
+
+Retrieve all followed
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns followed Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | User not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+DELETE /v1/inactiveComponents/{componenttype}
+---------------------------------------------
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **componentType**\ *requ | string |
+| | ired* | |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **defau | successful operation | No Content |
+| lt** | | |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+- Element Servlet
+
+Retrieve all propertyScopes
+---------------------------
+
+::
+
+ GET /v1/propertyScopes
+
+Description
+~~~~~~~~~~~
+
+Retrieve all propertyScopes
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns propertyScopes Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | No propertyScopes were found | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Retrieve catalog resources and services
+---------------------------------------
+
+::
+
+ GET /v1/screen
+
+Description
+~~~~~~~~~~~
+
+Retrieve catalog resources and services
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+| **Query** | **excludeTypes**\ *optio | < enum (PRODUCT, SERVICE, VF, |
+| | nal* | VFC, CP, VL, VFCMT, CVFC, PNF) > |
+| | | array(multi) |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns resources and services Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | User not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+Retrieve all tags
+-----------------
+
+::
+
+ GET /v1/tags
+
+Description
+~~~~~~~~~~~
+
+Retrieve all tags
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns tags Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | No tags were found | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- Element Servlet
+
+add user
+--------
+
+::
+
+ POST /v1/user
+
+Description
+~~~~~~~~~~~
+
+Provision new user
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the user | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | successful operation | `User <#_user> |
+| | | `__ |
++---------+----------------------------------------------------+----------------+
+| **201** | New user created | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid Content. | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information | No Content |
++---------+----------------------------------------------------+----------------+
+| **405** | Method Not Allowed | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | User already exists | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+retrieve all administrators
+---------------------------
+
+::
+
+ GET /v1/user/admins
+
+Description
+~~~~~~~~~~~
+
+Returns all administrators
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Path** | **userId**\ *required* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns user Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **405** | Method Not Allowed | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+authorize
+---------
+
+::
+
+ GET /v1/user/authorize
+
+Description
+~~~~~~~~~~~
+
+authorize user
+
+Parameters
+~~~~~~~~~~
+
++------------------+--------------------------+----------------------------------+
+| Type | Name | Schema |
++==================+==========================+==================================+
+| **Header** | **HTTP\_CSP\_EMAIL**\ *o | string |
+| | ptional* | |
++------------------+--------------------------+----------------------------------+
+| **Header** | **HTTP\_CSP\_FIRSTNAME** | string |
+| | \ *optional* | |
++------------------+--------------------------+----------------------------------+
+| **Header** | **HTTP\_CSP\_LASTNAME**\ | string |
+| | *optional* | |
++------------------+--------------------------+----------------------------------+
+| **Header** | **USER\_ID**\ *optional* | string |
++------------------+--------------------------+----------------------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns user Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted Access | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+Retrieve the list of all active ASDC users or only group of users having specific roles.
+----------------------------------------------------------------------------------------
+
+::
+
+ GET /v1/user/users
+
+Description
+~~~~~~~~~~~
+
+Returns list of users with the specified roles, or all of users in the
+case of empty *roles* header
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | Any active user’s USER\_ID | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Query* | **roles**\ | TESTER,DESIGNER,PRODUCT\_STRATEGIST, | string |
+| * | *optional* | OPS,PRODUCT\_MANAGER,GOVERNOR, | |
+| | | ADMIN OR all users by not typing | |
+| | | anything | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns users Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **204** | No provisioned ASDC users of requested role | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Missing content | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Restricted Access | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+retrieve user details
+---------------------
+
+::
+
+ GET /v1/user/{userId}
+
+Description
+~~~~~~~~~~~
+
+Returns user details according to userId
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **userId**\ | userId of user to get | string |
+| | *required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns user Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | User not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **405** | Method Not Allowed | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+delete user
+-----------
+
+::
+
+ DELETE /v1/user/{userId}
+
+Description
+~~~~~~~~~~~
+
+Delete user
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **userId**\ | userId of user to get | string |
+| | *required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Update deleted OK | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid Content. | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | User not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **405** | Method Not Allowed | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+update user role
+----------------
+
+::
+
+ POST /v1/user/{userId}/role
+
+Description
+~~~~~~~~~~~
+
+Update user role
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Header | **USER\_ID* | | string |
+| ** | *\ *optiona | | |
+| | l* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Path** | **userId**\ | userId of user to get | string |
+| | *required* | | |
++----------+-------------+--------------------------------------+------------------+
+| **Body** | **body**\ * | json describe the update role | string |
+| | required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Update user OK | No Content |
++---------+----------------------------------------------------+----------------+
+| **400** | Invalid Content. | No Content |
++---------+----------------------------------------------------+----------------+
+| **403** | Missing information/Restricted operation | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | User not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **405** | Method Not Allowed | No Content |
++---------+----------------------------------------------------+----------------+
+| **409** | User already exists | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+retrieve user role
+------------------
+
+::
+
+ GET /v1/user/{userId}/role
+
+Description
+~~~~~~~~~~~
+
+Returns user role according to userId
+
+Parameters
+~~~~~~~~~~
+
++----------+-------------+--------------------------------------+------------------+
+| Type | Name | Description | Schema |
++==========+=============+======================================+==================+
+| **Path** | **userId**\ | userId of user to get | string |
+| | *required* | | |
++----------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | Returns user role Ok | No Content |
++---------+----------------------------------------------------+----------------+
+| **404** | User not found | No Content |
++---------+----------------------------------------------------+----------------+
+| **405** | Method Not Allowed | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Server Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- User Administration
+
+return the ASDC application version
+-----------------------------------
+
+::
+
+ GET /version
+
+Description
+~~~~~~~~~~~
+
+return the ASDC application version
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP | Description | Schema |
+| Code | | |
++=========+====================================================+================+
+| **200** | return ASDC version | No Content |
++---------+----------------------------------------------------+----------------+
+| **500** | Internal Error | No Content |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+- ``application/json``
+
+Produces
+~~~~~~~~
+
+- ``application/json``
+
+Tags
+~~~~
+
+- BE Monitoring
+
+Definitions
+===========
+
+AdditionalInfoParameterInfo
+---------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **key**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **value**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+AdditionalInformationDefinition
+-------------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **creationTime**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **lastCreatedCounter**\ *optio | integer (int32) |
+| nal* | |
++--------------------------------+-------------------------------------------+
+| **modificationTime**\ *optiona | integer (int64) |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parameters**\ *optional* | < |
+| | `AdditionalInfoParameterInfo <#_additiona |
+| | linfoparameterinfo>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **parentUniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+ArtifactDataDefinition
+----------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **apiUrl**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactChecksum**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **artifactCreator**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **artifactDisplayName**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **artifactGroupType**\ *option | enum (INFORMATIONAL, DEPLOYMENT, |
+| al* | LIFE\_CYCLE, SERVICE\_API, TOSCA, OTHER) |
++--------------------------------+-------------------------------------------+
+| **artifactLabel**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactRef**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactRepository**\ *optio | string |
+| nal* | |
++--------------------------------+-------------------------------------------+
+| **artifactType**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactVersion**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **creatorFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **duplicated**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **esId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **generated**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **generatedFromId**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **heatParameters**\ *optional* | < |
+| | `HeatParameterDataDefinition <#_heatparam |
+| | eterdatadefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **heatParamsUpdateDate**\ *opt | integer (int64) |
+| ional* | |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **mandatory**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **payloadUpdateDate**\ *option | integer (int64) |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **requiredArtifacts**\ *option | < string > array |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **serviceApi**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **timeout**\ *optional* | integer (int32) |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **updaterFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **userIdCreator**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **userIdLastUpdater**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+
+ArtifactDefinition
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **apiUrl**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactChecksum**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **artifactCreator**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **artifactDisplayName**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **artifactGroupType**\ *option | enum (INFORMATIONAL, DEPLOYMENT, |
+| al* | LIFE\_CYCLE, SERVICE\_API, TOSCA, OTHER) |
++--------------------------------+-------------------------------------------+
+| **artifactLabel**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactRef**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactRepository**\ *optio | string |
+| nal* | |
++--------------------------------+-------------------------------------------+
+| **artifactType**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **artifactVersion**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **creatorFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **duplicated**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **esId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **generated**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **generatedFromId**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **heatParameters**\ *optional* | < |
+| | `HeatParameterDataDefinition <#_heatparam |
+| | eterdatadefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **heatParamsUpdateDate**\ *opt | integer (int64) |
+| ional* | |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **listHeatParameters**\ *optio | < |
+| nal* | `HeatParameterDefinition <#_heatparameter |
+| | definition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **mandatory**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **payloadData**\ *optional* | < string (byte) > array |
++--------------------------------+-------------------------------------------+
+| **payloadUpdateDate**\ *option | integer (int64) |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **requiredArtifacts**\ *option | < string > array |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **serviceApi**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **timeout**\ *optional* | integer (int32) |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **updaterFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **userIdCreator**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **userIdLastUpdater**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+
+CapabilityDefinition
+--------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **capabilitySources**\ *option | < string > array |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **leftOccurrences**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **maxOccurrences**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **minOccurrences**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parentName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **path**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **properties**\ *optional* | < |
+| | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **source**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **validSourceTypes**\ *optiona | < string > array |
+| l* | |
++--------------------------------+-------------------------------------------+
+
+Category
+--------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+CategoryDefinition
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **icons**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **subcategories**\ *optional* | < |
+| | `SubCategoryDefinition <#_subcategorydefi |
+| | nition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+ComponentInstance
+-----------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **artifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **attributeValueCounter**\ *op | integer (int32) |
+| tional* | |
++--------------------------------+-------------------------------------------+
+| **capabilities**\ *optional* | < string, < |
+| | `CapabilityDefinition <#_capabilitydefini |
+| | tion>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **componentUid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **componentVersion**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **creationTime**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **customizationUUID**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **deploymentArtifacts**\ *opti | < string, |
+| onal* | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **groupInstances**\ *optional* | < `GroupInstance <#_groupinstance>`__ > |
+| | array |
++--------------------------------+-------------------------------------------+
+| **icon**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputValueCounter**\ *option | integer (int32) |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **invariantName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **modificationTime**\ *optiona | integer (int64) |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **originType**\ *optional* | enum (PRODUCT, SERVICE, VF, VFC, CP, VL, |
+| | VFCMT, CVFC, PNF) |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **posX**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **posY**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **propertyValueCounter**\ *opt | integer (int32) |
+| ional* | |
++--------------------------------+-------------------------------------------+
+| **requirements**\ *optional* | < string, < |
+| | `RequirementDefinition <#_requirementdefi |
+| | nition>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **toscaComponentName**\ *optio | string |
+| nal* | |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+ComponentInstanceInput
+----------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **componentInstanceId**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **componentInstanceName**\ *op | string |
+| tional* | |
++--------------------------------+-------------------------------------------+
+| **constraints**\ *optional* | < |
+| | `PropertyConstraint <#_propertyconstraint |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **defaultValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **definition**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **getInputValues**\ *optional* | < |
+| | `GetInputValueDataDefinition <#_getinputv |
+| | aluedatadefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **hidden**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **immutable**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **inputId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputPath**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputs**\ *optional* | < |
+| | `ComponentInstanceInput <#_componentinsta |
+| | nceinput>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **instanceUniqueId**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **label**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parentUniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **password**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **path**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **properties**\ *optional* | < |
+| | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **propertyId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **required**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **rules**\ *optional* | < `PropertyRule <#_propertyrule>`__ > |
+| | array |
++--------------------------------+-------------------------------------------+
+| **schema**\ *optional* | `SchemaDefinition <#_schemadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **status**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **value**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **valueUniqueUid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+ComponentInstanceProperty
+-------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **componentInstanceId**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **componentInstanceName**\ *op | string |
+| tional* | |
++--------------------------------+-------------------------------------------+
+| **constraints**\ *optional* | < |
+| | `PropertyConstraint <#_propertyconstraint |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **defaultValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **definition**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **getInputValues**\ *optional* | < |
+| | `GetInputValueDataDefinition <#_getinputv |
+| | aluedatadefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **hidden**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **immutable**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **inputId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputPath**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **instanceUniqueId**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **label**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parentUniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **password**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **path**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **propertyId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **required**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **rules**\ *optional* | < `PropertyRule <#_propertyrule>`__ > |
+| | array |
++--------------------------------+-------------------------------------------+
+| **schema**\ *optional* | `SchemaDefinition <#_schemadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **status**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **value**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **valueUniqueUid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+ComponentMetadataDataDefinition
+-------------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **allVersions**\ *optional* | < string, string > map |
++--------------------------------+-------------------------------------------+
+| **componentType**\ *optional* | enum (RESOURCE, SERVICE, |
+| | RESOURCE\_INSTANCE, PRODUCT, |
+| | SERVICE\_INSTANCE) |
++--------------------------------+-------------------------------------------+
+| **conformanceLevel**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **contactId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **creatorFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **creatorUserId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarVersion**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **deleted**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **highestVersion**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **icon**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **importedToscaChecksum**\ *op | string |
+| tional* | |
++--------------------------------+-------------------------------------------+
+| **invariantUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **isDeleted**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **isHighestVersion**\ *optiona | boolean |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterFullName**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterUserId**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **lifecycleState**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **projectCode**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **state**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **systemName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **tags**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uuid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **version**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+ComponentMetadataDefinition
+---------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **metadataDataDefinition**\ *o | `ComponentMetadataDataDefinition <#_compo |
+| ptional* | nentmetadatadatadefinition>`__ |
++--------------------------------+-------------------------------------------+
+
+ConsumerDefinition
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **consumerDetailsLastupdatedti | integer (int64) |
+| me**\ *optional* | |
++--------------------------------+-------------------------------------------+
+| **consumerLastAuthenticationTi | integer (int64) |
+| me**\ *optional* | |
++--------------------------------+-------------------------------------------+
+| **consumerName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **consumerPassword**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **consumerSalt**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **lastModfierAtuid**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+DistributionStatusInfo
+----------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **errorReason**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **omfComponentID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **status**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **timestamp**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **url**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+DistributionStatusListResponse
+------------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **distributionStatusList**\ *o | < |
+| ptional* | `DistributionStatusInfo <#_distributionst |
+| | atusinfo>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+
+GetInputValueDataDefinition
+---------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **getInputIndex**\ *optional* | `GetInputValueDataDefinition <#_getinputv |
+| | aluedatadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **indexValue**\ *optional* | integer (int32) |
++--------------------------------+-------------------------------------------+
+| **inputId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **list**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **propName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+GroupDefinition
+---------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **artifacts**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **artifactsUuid**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **groupUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **invariantUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **members**\ *optional* | < string, string > map |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **properties**\ *optional* | < |
+| | `PropertyDataDefinition <#_propertydatade |
+| | finition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **propertyValueCounter**\ *opt | integer (int32) |
+| ional* | |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **typeUid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **version**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+GroupInstance
+-------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **artifacts**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **artifactsUuid**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **creationTime**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **customizationUUID**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **groupInstanceArtifacts**\ *o | < string > array |
+| ptional* | |
++--------------------------------+-------------------------------------------+
+| **groupInstanceArtifactsUuid** | < string > array |
+| \ *optional* | |
++--------------------------------+-------------------------------------------+
+| **groupName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **groupUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **groupUid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **invariantUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **modificationTime**\ *optiona | integer (int64) |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **posX**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **posY**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **properties**\ *optional* | < |
+| | `PropertyDataDefinition <#_propertydatade |
+| | finition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **propertyValueCounter**\ *opt | integer (int32) |
+| ional* | |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **version**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+GroupingDefinition
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+HeatParameterDataDefinition
+---------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **currentValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **defaultValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+HeatParameterDefinition
+-----------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **currentValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **defaultValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+InputDefinition
+---------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **constraints**\ *optional* | < |
+| | `PropertyConstraint <#_propertyconstraint |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **defaultValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **definition**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **getInputValues**\ *optional* | < |
+| | `GetInputValueDataDefinition <#_getinputv |
+| | aluedatadefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **hidden**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **immutable**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **inputId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputPath**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputs**\ *optional* | < |
+| | `ComponentInstanceInput <#_componentinsta |
+| | nceinput>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **instanceUniqueId**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **label**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parentUniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **password**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **properties**\ *optional* | < |
+| | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **propertyId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **required**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **schema**\ *optional* | `SchemaDefinition <#_schemadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **status**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **value**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+InterfaceDefinition
+-------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **definition**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **operations**\ *optional* | < string, |
+| | `OperationDataDefinition <#_operationdata |
+| | definition>`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **operationsMap**\ *optional* | < string, `Operation <#_operation>`__ > |
+| | map |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+LifecycleChangeInfoWithAction
+-----------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **action**\ *optional* | enum (CREATE\_FROM\_CSAR, |
+| | UPDATE\_FROM\_EXTERNAL\_API) |
++--------------------------------+-------------------------------------------+
+| **userRemarks**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+Operation
+---------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **definition**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **implementation**\ *optional* | `ArtifactDataDefinition <#_artifactdatade |
+| | finition>`__ |
++--------------------------------+-------------------------------------------+
+| **implementationArtifact**\ *o | `ArtifactDefinition <#_artifactdefinition |
+| ptional* | >`__ |
++--------------------------------+-------------------------------------------+
+| **inputs**\ *optional* | < string, |
+| | `PropertyDataDefinition <#_propertydatade |
+| | finition>`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+OperationDataDefinition
+-----------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **implementation**\ *optional* | `ArtifactDataDefinition <#_artifactdatade |
+| | finition>`__ |
++--------------------------------+-------------------------------------------+
+| **inputs**\ *optional* | < string, |
+| | `PropertyDataDefinition <#_propertydatade |
+| | finition>`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+Product
+-------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **additionalInformation**\ *op | < |
+| tional* | `AdditionalInformationDefinition <#_addit |
+| | ionalinformationdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **allArtifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **allVersions**\ *optional* | < string, string > map |
++--------------------------------+-------------------------------------------+
+| **artifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **capabilities**\ *optional* | < string, < |
+| | `CapabilityDefinition <#_capabilitydefini |
+| | tion>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **categories**\ *optional* | < |
+| | `CategoryDefinition <#_categorydefinition |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentInstances**\ *optio | < |
+| nal* | `ComponentInstance <#_componentinstance>` |
+| | __ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentInstancesAttributes | < string, < |
+| **\ *optional* | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesInputs**\ | < string, < |
+| *optional* | `ComponentInstanceInput <#_componentinsta |
+| | nceinput>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesProperties | < string, < |
+| **\ *optional* | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesRelations* | < |
+| *\ *optional* | `RequirementCapabilityRelDef <#_requireme |
+| | ntcapabilityreldef>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentMetadataDefinition* | `ComponentMetadataDefinition <#_component |
+| *\ *optional* | metadatadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **componentType**\ *optional* | enum (RESOURCE, SERVICE, |
+| | RESOURCE\_INSTANCE, PRODUCT, |
+| | SERVICE\_INSTANCE) |
++--------------------------------+-------------------------------------------+
+| **conformanceLevel**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **contactId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **contacts**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **creatorFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **creatorUserId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarVersion**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **deploymentArtifacts**\ *opti | < string, |
+| onal* | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **derivedFromGenericType**\ *o | string |
+| ptional* | |
++--------------------------------+-------------------------------------------+
+| **derivedFromGenericVersion**\ | string |
+| *optional* | |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **fullName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **groups**\ *optional* | < `GroupDefinition <#_groupdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **highestVersion**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **icon**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **importedToscaChecksum**\ *op | string |
+| tional* | |
++--------------------------------+-------------------------------------------+
+| **inputs**\ *optional* | < `InputDefinition <#_inputdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **invariantUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **isActive**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **isDeleted**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterFullName**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterUserId**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **lifecycleState**\ *optional* | enum (READY\_FOR\_CERTIFICATION, |
+| | CERTIFICATION\_IN\_PROGRESS, CERTIFIED, |
+| | NOT\_CERTIFIED\_CHECKIN, |
+| | NOT\_CERTIFIED\_CHECKOUT) |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **projectCode**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **requirements**\ *optional* | < string, < |
+| | `RequirementDefinition <#_requirementdefi |
+| | nition>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **systemName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **tags**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **toscaArtifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **toscaType**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uuid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **version**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+PropertyConstraint
+------------------
+
+*Type* : object
+
+PropertyDataDefinition
+----------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **defaultValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **definition**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **getInputValues**\ *optional* | < |
+| | `GetInputValueDataDefinition <#_getinputv |
+| | aluedatadefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **hidden**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **immutable**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **inputId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputPath**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **instanceUniqueId**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **label**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parentUniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **password**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **propertyId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **required**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **schema**\ *optional* | `SchemaDefinition <#_schemadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **status**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **value**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+PropertyDefinition
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **constraints**\ *optional* | < |
+| | `PropertyConstraint <#_propertyconstraint |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **defaultValue**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **definition**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **getInputValues**\ *optional* | < |
+| | `GetInputValueDataDefinition <#_getinputv |
+| | aluedatadefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **hidden**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **immutable**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **inputId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **inputPath**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **instanceUniqueId**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **label**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parentUniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **password**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **propertyId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **required**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **schema**\ *optional* | `SchemaDefinition <#_schemadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **status**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **value**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+PropertyRule
+------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **firstToken**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **rule**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **ruleSize**\ *optional* | integer (int32) |
++--------------------------------+-------------------------------------------+
+| **value**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+RelationshipImpl
+----------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **type**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+RequirementAndRelationshipPair
+------------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **capability**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **capabilityOwnerId**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **capabilityUid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **id**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **relationship**\ *optional* | `RelationshipImpl <#_relationshipimpl>`__ |
++--------------------------------+-------------------------------------------+
+| **requirement**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **requirementOwnerId**\ *optio | string |
+| nal* | |
++--------------------------------+-------------------------------------------+
+| **requirementUid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+RequirementCapabilityRelDef
+---------------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **fromNode**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **relationships**\ *optional* | < |
+| | `RequirementAndRelationshipPair <#_requir |
+| | ementandrelationshippair>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **toNode**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+RequirementDefinition
+---------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **capability**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **leftOccurrences**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **maxOccurrences**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **minOccurrences**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **node**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **parentName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **path**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **relationship**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **source**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+Resource
+--------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **abstract**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **additionalInformation**\ *op | < |
+| tional* | `AdditionalInformationDefinition <#_addit |
+| | ionalinformationdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **allArtifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **allVersions**\ *optional* | < string, string > map |
++--------------------------------+-------------------------------------------+
+| **artifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **attributes**\ *optional* | < |
+| | `PropertyDefinition <#_propertydefinition |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **capabilities**\ *optional* | < string, < |
+| | `CapabilityDefinition <#_capabilitydefini |
+| | tion>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **categories**\ *optional* | < |
+| | `CategoryDefinition <#_categorydefinition |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentInstances**\ *optio | < |
+| nal* | `ComponentInstance <#_componentinstance>` |
+| | __ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentInstancesAttributes | < string, < |
+| **\ *optional* | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesInputs**\ | < string, < |
+| *optional* | `ComponentInstanceInput <#_componentinsta |
+| | nceinput>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesProperties | < string, < |
+| **\ *optional* | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesRelations* | < |
+| *\ *optional* | `RequirementCapabilityRelDef <#_requireme |
+| | ntcapabilityreldef>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentMetadataDefinition* | `ComponentMetadataDefinition <#_component |
+| *\ *optional* | metadatadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **componentType**\ *optional* | enum (RESOURCE, SERVICE, |
+| | RESOURCE\_INSTANCE, PRODUCT, |
+| | SERVICE\_INSTANCE) |
++--------------------------------+-------------------------------------------+
+| **conformanceLevel**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **contactId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **cost**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **creatorFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **creatorUserId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarVersion**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **defaultCapabilities**\ *opti | < string > array |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **deploymentArtifacts**\ *opti | < string, |
+| onal* | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **derivedFrom**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **derivedFromGenericType**\ *o | string |
+| ptional* | |
++--------------------------------+-------------------------------------------+
+| **derivedFromGenericVersion**\ | string |
+| *optional* | |
++--------------------------------+-------------------------------------------+
+| **derivedList**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **groups**\ *optional* | < `GroupDefinition <#_groupdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **highestVersion**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **icon**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **importedToscaChecksum**\ *op | string |
+| tional* | |
++--------------------------------+-------------------------------------------+
+| **inputs**\ *optional* | < `InputDefinition <#_inputdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **interfaces**\ *optional* | < string, |
+| | `InterfaceDefinition <#_interfacedefiniti |
+| | on>`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **invariantUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **isDeleted**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterFullName**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterUserId**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **licenseType**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **lifecycleState**\ *optional* | enum (READY\_FOR\_CERTIFICATION, |
+| | CERTIFICATION\_IN\_PROGRESS, CERTIFIED, |
+| | NOT\_CERTIFIED\_CHECKIN, |
+| | NOT\_CERTIFIED\_CHECKOUT) |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **projectCode**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **properties**\ *optional* | < |
+| | `PropertyDefinition <#_propertydefinition |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **requirements**\ *optional* | < string, < |
+| | `RequirementDefinition <#_requirementdefi |
+| | nition>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **resourceType**\ *optional* | enum (VFC, VF, CP, PNF, CVFC, VL, VFCMT, |
+| | ABSTRACT) |
++--------------------------------+-------------------------------------------+
+| **resourceVendorModelNumber**\ | string |
+| *optional* | |
++--------------------------------+-------------------------------------------+
+| **systemName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **tags**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **toscaArtifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **toscaResourceName**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **toscaType**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uuid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **vendorName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **vendorRelease**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **version**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+SchemaDefinition
+----------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **constraints**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **derivedFrom**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **properties**\ *optional* | < string, |
+| | `PropertyDataDefinition <#_propertydatade |
+| | finition>`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **property**\ *optional* | `PropertyDataDefinition <#_propertydatade |
+| | finition>`__ |
++--------------------------------+-------------------------------------------+
+
+Service
+-------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **additionalInformation**\ *op | < |
+| tional* | `AdditionalInformationDefinition <#_addit |
+| | ionalinformationdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **allArtifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **allVersions**\ *optional* | < string, string > map |
++--------------------------------+-------------------------------------------+
+| **artifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **capabilities**\ *optional* | < string, < |
+| | `CapabilityDefinition <#_capabilitydefini |
+| | tion>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **categories**\ *optional* | < |
+| | `CategoryDefinition <#_categorydefinition |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentInstances**\ *optio | < |
+| nal* | `ComponentInstance <#_componentinstance>` |
+| | __ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentInstancesAttributes | < string, < |
+| **\ *optional* | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesInputs**\ | < string, < |
+| *optional* | `ComponentInstanceInput <#_componentinsta |
+| | nceinput>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesProperties | < string, < |
+| **\ *optional* | `ComponentInstanceProperty <#_componentin |
+| | stanceproperty>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **componentInstancesRelations* | < |
+| *\ *optional* | `RequirementCapabilityRelDef <#_requireme |
+| | ntcapabilityreldef>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **componentMetadataDefinition* | `ComponentMetadataDefinition <#_component |
+| *\ *optional* | metadatadefinition>`__ |
++--------------------------------+-------------------------------------------+
+| **componentType**\ *optional* | enum (RESOURCE, SERVICE, |
+| | RESOURCE\_INSTANCE, PRODUCT, |
+| | SERVICE\_INSTANCE) |
++--------------------------------+-------------------------------------------+
+| **conformanceLevel**\ *optiona | string |
+| l* | |
++--------------------------------+-------------------------------------------+
+| **contactId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **creationDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **creatorFullName**\ *optional | string |
+| * | |
++--------------------------------+-------------------------------------------+
+| **creatorUserId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **csarVersion**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **deploymentArtifacts**\ *opti | < string, |
+| onal* | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **derivedFromGenericType**\ *o | string |
+| ptional* | |
++--------------------------------+-------------------------------------------+
+| **derivedFromGenericVersion**\ | string |
+| *optional* | |
++--------------------------------+-------------------------------------------+
+| **description**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **distributionStatus**\ *optio | enum (DISTRIBUTION\_NOT\_APPROVED, |
+| nal* | DISTRIBUTION\_APPROVED, DISTRIBUTED, |
+| | DISTRIBUTION\_REJECTED) |
++--------------------------------+-------------------------------------------+
+| **ecompGeneratedNaming**\ *opt | boolean |
+| ional* | |
++--------------------------------+-------------------------------------------+
+| **groups**\ *optional* | < `GroupDefinition <#_groupdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **highestVersion**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **icon**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **importedToscaChecksum**\ *op | string |
+| tional* | |
++--------------------------------+-------------------------------------------+
+| **inputs**\ *optional* | < `InputDefinition <#_inputdefinition>`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **invariantUUID**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **isDeleted**\ *optional* | boolean |
++--------------------------------+-------------------------------------------+
+| **lastUpdateDate**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterFullName**\ *opti | string |
+| onal* | |
++--------------------------------+-------------------------------------------+
+| **lastUpdaterUserId**\ *option | string |
+| al* | |
++--------------------------------+-------------------------------------------+
+| **lifecycleState**\ *optional* | enum (READY\_FOR\_CERTIFICATION, |
+| | CERTIFICATION\_IN\_PROGRESS, CERTIFIED, |
+| | NOT\_CERTIFIED\_CHECKIN, |
+| | NOT\_CERTIFIED\_CHECKOUT) |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **namingPolicy**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **projectCode**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **requirements**\ *optional* | < string, < |
+| | `RequirementDefinition <#_requirementdefi |
+| | nition>`__ |
+| | > array > map |
++--------------------------------+-------------------------------------------+
+| **serviceApiArtifacts**\ *opti | < string, |
+| onal* | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **serviceRole**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **serviceType**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **systemName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **tags**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **toscaArtifacts**\ *optional* | < string, |
+| | `ArtifactDefinition <#_artifactdefinition |
+| | >`__ |
+| | > map |
++--------------------------------+-------------------------------------------+
+| **toscaType**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uuid**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **version**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+SubCategoryDefinition
+---------------------
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **groupings**\ *optional* | < |
+| | `GroupingDefinition <#_groupingdefinition |
+| | >`__ |
+| | > array |
++--------------------------------+-------------------------------------------+
+| **icons**\ *optional* | < string > array |
++--------------------------------+-------------------------------------------+
+| **name**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **normalizedName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **ownerId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **uniqueId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+
+User
+----
+
++--------------------------------+-------------------------------------------+
+| Name | Schema |
++================================+===========================================+
+| **email**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **firstName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **fullName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **lastLoginTime**\ *optional* | integer (int64) |
++--------------------------------+-------------------------------------------+
+| **lastName**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **role**\ *optional* | string |
++--------------------------------+-------------------------------------------+
+| **status**\ *optional* | enum (ACTIVE, INACTIVE) |
++--------------------------------+-------------------------------------------+
+| **userId**\ *optional* | string |
++--------------------------------+-------------------------------------------+
diff --git a/docs/onap-developer/docs-templates-platform-component-administration.rst b/docs/onap-developer/docs-templates-platform-component-administration.rst
deleted file mode 100644
index 1d512cf020..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-administration.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Administration
---------------
-Describe expected changes and the processes and actions taken for each.
-
-
-Processes
-+++++++++
-* Process 1
-* Process 2
-
-Actions
-+++++++
-* Action X
-* Action Y
-
diff --git a/docs/onap-developer/docs-templates-platform-component-architecture.rst b/docs/onap-developer/docs-templates-platform-component-architecture.rst
deleted file mode 100644
index fd46637fd1..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-architecture.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Architecture
-------------
-Describe the architecture and design of the platform component.
diff --git a/docs/onap-developer/docs-templates-platform-component-configuration.rst b/docs/onap-developer/docs-templates-platform-component-configuration.rst
deleted file mode 100644
index c0c969f854..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-configuration.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Configuration
--------------
-Describe configurations how to provide parameters and value
-
-Basic Setup
-+++++++++++
-
-You can provide the following in ``basic.conf``
-
-``host=ADDRESS``
- The address of the host
-
-``port=PORT``
- The port used for signaling
-
- Optional. Default: ``8080``
diff --git a/docs/onap-developer/docs-templates-platform-component-consumedapis.rst b/docs/onap-developer/docs-templates-platform-component-consumedapis.rst
deleted file mode 100644
index c4309cdb12..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-consumedapis.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Consumed APIs
-=============
-References to APIs offered by other components
-
-
diff --git a/docs/onap-developer/docs-templates-platform-component-delivery.rst b/docs/onap-developer/docs-templates-platform-component-delivery.rst
deleted file mode 100644
index cfcab0449b..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-delivery.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-Delivery
---------
-Describe how functions are packaged into run-time components.
-For some components a block diagram may be useful.
-
-.. blockdiag::
-
-
- blockdiag layers {
- orientation = portrait
- a -> m;
- b -> n;
- c -> x;
- m -> y;
- m -> z;
- group l1 {
- color = blue;
- x; y; z;
- }
- group l2 {
- color = yellow;
- m; n;
- }
- group l3 {
- color = orange;
- a; b; c;
- }
-
- }
-
-
diff --git a/docs/onap-developer/docs-templates-platform-component-humaninterfaces.rst b/docs/onap-developer/docs-templates-platform-component-humaninterfaces.rst
deleted file mode 100644
index 03cc875edf..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-humaninterfaces.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Human Interfaces
-----------------
-Provide info on the targeted user, interface types, ports/protocols to access, etc.
-
-Target Users
-++++++++++++
-
-Interface Type
-++++++++++++++
-
-Access
-++++++
-
-
-
-
diff --git a/docs/onap-developer/docs-templates-platform-component-index.rst b/docs/onap-developer/docs-templates-platform-component-index.rst
deleted file mode 100644
index d5db511f1e..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Platform Component
-==================
-Provide an overview of the ONAP Platform component capabilities here.
-Add or remove sections below as appropriate for the platform component.
-
-.. toctree::
- :maxdepth: 1
-
- architecture.rst
- offeredapis.rst
- consumedapis.rst
- delivery.rst
- logging.rst
- installation.rst
- configuration.rst
- administration.rst
- humaninterfaces.rst
diff --git a/docs/onap-developer/docs-templates-platform-component-installation.rst b/docs/onap-developer/docs-templates-platform-component-installation.rst
deleted file mode 100644
index 3238236c43..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-installation.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Installation
-------------
-Describe the environment and steps to install.
-
-
-Environment
-+++++++++++
-
-
-Steps
-+++++
diff --git a/docs/onap-developer/docs-templates-platform-component-logging.rst b/docs/onap-developer/docs-templates-platform-component-logging.rst
deleted file mode 100644
index 8d480e2832..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-logging.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Logging & Diagnostic Information
---------------------------------
-Description of how to interact with and diagnose problems with the components
-as delivered.
-
-Where to Access Information
-+++++++++++++++++++++++++++
-
-
-Error / Warning Messages
-++++++++++++++++++++++++
diff --git a/docs/onap-developer/docs-templates-platform-component-offeredapis.rst b/docs/onap-developer/docs-templates-platform-component-offeredapis.rst
deleted file mode 100644
index 55e58bd9b3..0000000000
--- a/docs/onap-developer/docs-templates-platform-component-offeredapis.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Offered APIs
-============
-List APIs offered. One or more of the following examples may be appropriate.
-
-Example Swagger Displayed with swaggerv2doc directive
------------------------------------------------------
-
-.. swaggerv2doc:: https://gerrit.onap.org/r/gitweb?p=vfc/nfvo/lcm.git;a=blob_plain;f=lcm/swagger/vfc.nslcm.swagger.json
-
-
-Example documenting a REST interface with Sphinx httpdomain directive
----------------------------------------------------------------------
-
-.. http:get:: path
-
- For more information see `<https://pythonhosted.org/sphinxcontrib-httpdomain>`_
-
-
-Word Document Converted to RST using Pandocs
---------------------------------------------
-
-.. toctree::
- :maxdepth: 1
-
- ../../submodules/appc.git/docs/APPC API Guide/APPC API Guide
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
new file mode 100644
index 0000000000..b568bee821
--- /dev/null
+++ b/docs/release-notes.rst
@@ -0,0 +1,48 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+Release Notes
+=============
+
+.. note::
+ * This Release Notes must be updated each time the team decides to Release new artifacts.
+ * The scope of this Release Notes is for this particular component. In other words, each ONAP component has its Release Notes.
+ * This Release Notes is cumulative, the most recently Released artifact is made visible in the top of this Release Notes.
+ * Except the date and the version number, all the other sections are optional but there must be at least one section describing the purpose of this new release.
+ * This note must be removed after content has been added.
+
+
+Version: x.y.z
+--------------
+
+
+:Release Date: yyyy-mm-dd
+
+
+
+**New Features**
+
+One or two sentences explaining the purpose of this Release.
+
+**Bug Fixes**
+ - `CIMAN-65 <https://jira.onap.org/browse/CIMAN-65>`_ and a sentence explaining what this defect is addressing.
+**Known Issues**
+ - `CIMAN-65 <https://jira.onap.org/browse/CIMAN-65>`_ and two, three sentences.
+ One sentences explaining what is the issue.
+
+ Another sentence explaining the impact of the issue.
+
+ And an optional sentence providing a workaround.
+
+**Security Issues**
+ You may want to include a reference to CVE (Common Vulnerabilities and Exposures) `CVE <https://cve.mitre.org>`_
+
+
+**Upgrade Notes**
+
+**Deprecation Notes**
+
+**Other**
+
+===========
+
+End of Release Notes
diff --git a/docs/releases/docs-templates-release-notes-bug-fixes.rst b/docs/releases/docs-templates-release-notes-bug-fixes.rst
deleted file mode 100644
index ee4ff9faf2..0000000000
--- a/docs/releases/docs-templates-release-notes-bug-fixes.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Bug Fixes
----------
-
diff --git a/docs/releases/docs-templates-release-notes-deprecation-notes.rst b/docs/releases/docs-templates-release-notes-deprecation-notes.rst
deleted file mode 100644
index e954e8764c..0000000000
--- a/docs/releases/docs-templates-release-notes-deprecation-notes.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Deprecation Notes
------------------
-
diff --git a/docs/releases/docs-templates-release-notes-index.rst b/docs/releases/docs-templates-release-notes-index.rst
deleted file mode 100644
index adc76f935c..0000000000
--- a/docs/releases/docs-templates-release-notes-index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Release Notes
-=============
-
-.. toctree::
- :maxdepth: 2
-
- new-features.rst
- bug-fixes.rst
- known-issues.rst
- security-issues.rst
- upgrade-notes.rst
- deprecation-notes.rst
- other.rst
diff --git a/docs/releases/docs-templates-release-notes-known-issues.rst b/docs/releases/docs-templates-release-notes-known-issues.rst
deleted file mode 100644
index 01c93d124a..0000000000
--- a/docs/releases/docs-templates-release-notes-known-issues.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Known Issues
-------------
-
diff --git a/docs/releases/docs-templates-release-notes-new-features.rst b/docs/releases/docs-templates-release-notes-new-features.rst
deleted file mode 100644
index ab86bb9497..0000000000
--- a/docs/releases/docs-templates-release-notes-new-features.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-New Features
-------------
-
diff --git a/docs/releases/docs-templates-release-notes-other.rst b/docs/releases/docs-templates-release-notes-other.rst
deleted file mode 100644
index 2ce683b5bf..0000000000
--- a/docs/releases/docs-templates-release-notes-other.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Other
------
-
diff --git a/docs/releases/docs-templates-release-notes-security-issues.rst b/docs/releases/docs-templates-release-notes-security-issues.rst
deleted file mode 100644
index 96e1fe95e0..0000000000
--- a/docs/releases/docs-templates-release-notes-security-issues.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Security Issues
----------------
-
diff --git a/docs/releases/docs-templates-release-notes-upgrade-notes.rst b/docs/releases/docs-templates-release-notes-upgrade-notes.rst
deleted file mode 100644
index f31c74a696..0000000000
--- a/docs/releases/docs-templates-release-notes-upgrade-notes.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Upgrade Notes
--------------
-
diff --git a/docs/releases/index.rst b/docs/releases/index.rst
deleted file mode 100644
index eabde3a24e..0000000000
--- a/docs/releases/index.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-
-Releases
-========
-ONAP is developed and released around 6 month cycles. After an initial major release, additional
-stable point releases may be created.
-
-Major Releases
---------------
-
-.. csv-table::
- :align: left
- :header-rows: 0
- :header: "Release", "Status", "Initial Release Date", "Next Phase", "EOL Date"
- :widths: 15, 10, 10, 15, 10
-
- "Amsterdam", "Under Development", "TBD", "", ""
- "R1.0.0 Seed Code", "EOL", "2017-04-XX", "", ""
-
-
-.. include:: repolist.rst
-
-
-Cryptographic Signatures
-------------------------
-
-
-References
-----------
-
-
diff --git a/onboarding/pom.xml b/onboarding/pom.xml
index b3aa4d6493..5bd0f3a106 100644
--- a/onboarding/pom.xml
+++ b/onboarding/pom.xml
@@ -112,7 +112,7 @@
<executions>
<execution>
<id>jxr-generation</id>
- <phase>validate</phase>
+ <phase>verify</phase>
<goals>
<goal>jxr</goal>
<goal>test-jxr</goal>
@@ -135,7 +135,7 @@
<executions>
<execution>
<id>pmd-check</id>
- <phase>validate</phase>
+ <phase>verify</phase>
<goals>
<!-- violations fail build -->
<goal>check</goal>
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
index 0a3428579d..1891cddfd5 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
@@ -329,7 +329,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
validateQuestionnaire(vspDetails.getId(), vspDetails.getVersion(), vspDetails
.getOnboardingMethod()));
- if (vspDetails.getOnboardingMethod().equals("Manual")) {
+ if ("Manual".equals(vspDetails.getOnboardingMethod())) {
Collection<ErrorCode> deploymentFlavourValidationErrList =
deploymentFlavorValidation(vspDetails.getId(), vspDetails.getVersion());
if (validationResponse.getVspErrors() != null) {
@@ -527,7 +527,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (vspDetails.getSubCategory() == null) {
errors.add(createMissingMandatoryFieldError("sub category"));
}
- if (vspDetails.getOnboardingMethod().equals("Manual")) {
+ if ("Manual".equals(vspDetails.getOnboardingMethod())) {
//Manual Onboarding specific validations
Collection<DeploymentFlavorEntity> deploymentFlavorEntities = vendorSoftwareProductDao
.listDeploymentFlavors(vspDetails.getId(), vspDetails.getVersion());
@@ -729,7 +729,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage("VSP id", vspDetails.getId());
VspDetails retrieved = vspInfoDao.get(vspDetails);
- if (!retrieved.getOnboardingMethod().equals(vspDetails.getOnboardingMethod())) {
+ if (!Objects.equals(retrieved.getOnboardingMethod(), vspDetails.getOnboardingMethod())) {
final ErrorCode onboardingMethodUpdateErrorCode = OnboardingMethodErrorBuilder
.getOnboardingUpdateError();
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java
index e3701743ec..6fc8cfef61 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java
@@ -21,6 +21,8 @@
package org.openecomp.sdc.healing.healers;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
import org.openecomp.core.model.dao.ServiceModelDao;
import org.openecomp.core.model.dao.ServiceModelDaoFactory;
import org.openecomp.core.model.types.ServiceElement;
@@ -114,72 +116,36 @@ public class CompositionDataHealer implements Healer {
Collection<NetworkEntity> networkEntities =
networkDao.list(new NetworkEntity(vspId, version, null));
- Optional<ToscaServiceModel> serviceModelForHealing = getServiceModelForHealing(vspId, version);
+ Optional<Pair<ToscaServiceModel, ToscaServiceModel>> serviceModels =
+ getServiceModelForHealing(vspId, version);
CompositionData compositionData = null;
- if (!doesVspNeedCompositionDataHealing(vspId, version, componentEntities, networkEntities,
- nicEntities)) {
+ if (!doesVspNeedCompositionDataHealing(componentEntities, networkEntities, nicEntities)) {
updateComponentsDisplayNames(componentEntities);
mdcDataDebugMessage.debugExitMessage(null, null);
- //return Optional.empty();
} else {
- if (!serviceModelForHealing.isPresent()) {
+ if (!serviceModels.isPresent()) {
mdcDataDebugMessage.debugExitMessage(null, null);
return Optional.empty();
}
- compositionData = healCompositionData(vspId, version, serviceModelForHealing);
+ compositionData = serviceModels.isPresent() ? healCompositionData(vspId, version,
+ serviceModels.get()) : null;
}
- compositionData =
- getCompositionDataForHealing(vspId, version, serviceModelForHealing.get());
- HealNfodData(vspId, version, compositionData);
- mdcDataDebugMessage.debugExitMessage(null, null);
- return Optional.of(compositionData);
- }
-
- private boolean doesVspNeedCompositionDataHealing(String vspId, Version version,
- Collection<ComponentEntity> componentEntities,
- Collection<NetworkEntity> networkEntities,
- Collection<NicEntity> nicEntities) {
-
- return (CollectionUtils.isEmpty(componentEntities) && CollectionUtils.isEmpty(nicEntities) &&
- CollectionUtils.isEmpty(networkEntities) );
-
-// mdcDataDebugMessage.debugEntryMessage(null, null);
-//
-//// ToscaServiceModel toscaServiceModel;
-//
-// ByteBuffer contentData = uploadData.getContentData();
-// FileContentHandler fileContentHandler = CommonUtil.validateAndUploadFileContent(uploadData
-// .getContentData().array());
-//
-//
-//
-// TranslatorOutput translatorOutput =
-// HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler);
-// ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel();
-//
-//// toscaServiceModel = enrichedServiceModelDao.getServiceModel(vspId, version);
-//
-// mdcDataDebugMessage.debugExitMessage(null, null);
-// return toscaServiceModel;
+ if(serviceModels.isPresent()) {
+ compositionData =
+ getCompositionDataForHealing(vspId, version, serviceModels.get());
+ HealNfodData(vspId, version, compositionData);
+ }
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return Optional.ofNullable(compositionData);
}
private void HealNfodData(String vspId, Version version, CompositionData compositionData) {
Collection<ComponentEntity> componentEntities;
- /*componentEntities =
- vendorSoftwareProductDao.listComponents(vspId, version);*/
componentEntities = componentDao.list(new ComponentEntity(vspId, version, null));
- /*Collection<ComputeEntity> computeEntities=vendorSoftwareProductDao.listComputesByVsp(vspId,
- version);
- Collection<ImageEntity> imageEntities =vendorSoftwareProductDao.listImagesByVsp(vspId, version);
- Collection<DeploymentFlavorEntity> deploymentFlavorEntities =vendorSoftwareProductDao
- .listDeploymentFlavors(vspId, version);*/
-
Collection<ComputeEntity> computeEntities = computeDao.listByVsp(vspId, version);
Collection<ImageEntity> imageEntities = imageDao.listByVsp(vspId, version);
- //Collection<DeploymentFlavorEntity> deploymentFlavorEntities = deloymentFlavorDao.list(new
- //DeploymentFlavorEntity(vspId, version, null));
if (CollectionUtils.isEmpty(computeEntities) && CollectionUtils.isEmpty(imageEntities)) {
for (Component component : compositionData.getComponents()) {
@@ -198,17 +164,12 @@ public class CompositionDataHealer implements Healer {
}
}
-
- /*if (CollectionUtils.isEmpty(deploymentFlavorEntities)) {
- compositionEntityDataManager.saveDeploymentFlavors(vspId,version,compositionData);
- }*/
}
private CompositionData healCompositionData(String vspId, Version version,
- Optional<ToscaServiceModel> serviceModelForHealing) {
- ToscaServiceModel toscaServiceModel = serviceModelForHealing.get();
+ Pair<ToscaServiceModel, ToscaServiceModel> toscaServiceModels) {
CompositionData compositionData =
- getCompositionDataForHealing(vspId, version, toscaServiceModel);
+ getCompositionDataForHealing(vspId, version, toscaServiceModels);
compositionEntityDataManager.saveCompositionData(vspId, version, compositionData);
return compositionData;
}
@@ -222,19 +183,16 @@ public class CompositionDataHealer implements Healer {
}
private CompositionData getCompositionDataForHealing(String vspId, Version version,
- ToscaServiceModel toscaServiceModel) {
+ Pair<ToscaServiceModel, ToscaServiceModel> toscaServiceModels) {
mdcDataDebugMessage.debugEntryMessage(null);
- if (Objects.isNull(toscaServiceModel)) {
+ if (Objects.isNull(toscaServiceModels)) {
return null;
}
- CompositionData compositionData = new CompositionData();
- if (Objects.nonNull(toscaServiceModel)) {
- compositionData = compositionDataExtractor
- .extractServiceCompositionData(toscaServiceModel);
- serviceModelDao.storeServiceModel(vspId, version, toscaServiceModel);
- }
+ CompositionData compositionData = compositionDataExtractor
+ .extractServiceCompositionData(toscaServiceModels.getRight());
+ serviceModelDao.storeServiceModel(vspId, version, toscaServiceModels.getLeft());
mdcDataDebugMessage.debugExitMessage(null);
return compositionData;
@@ -269,12 +227,12 @@ public class CompositionDataHealer implements Healer {
}
- private Optional<ToscaServiceModel> getServiceModelForHealing(String vspId, Version version)
+ private Optional<Pair<ToscaServiceModel, ToscaServiceModel>> getServiceModelForHealing(String
+ vspId, Version
+ version)
throws IOException {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- /*UploadDataEntity uploadData =
- vendorSoftwareProductDao.getUploadData(new UploadDataEntity(vspId, version));*/
UploadDataEntity uploadData =
orchestrationTemplateDataDao.getOrchestrationTemplate(vspId, version);
@@ -297,7 +255,8 @@ public class CompositionDataHealer implements Healer {
}
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- return Optional.of(translatorOutput.getToscaServiceModel());
+ return Optional.of(new ImmutablePair<>(translatorOutput.getToscaServiceModel(), translatorOutput
+ .getNonUnifiedToscaServiceModel()));
}
private TranslatorOutput getTranslatorOutputForHealing(UploadDataEntity uploadData) {
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java
index 69fa33aae7..348739e780 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java
@@ -36,7 +36,7 @@ public class ToscaConverterImpl implements ToscaConverter {
@Override
public ToscaServiceModel convert(FileContentHandler fileContentHandler)
- throws IOException {
+ throws IOException {
Map<String, byte[]> csarFiles = new HashMap<>(fileContentHandler.getFiles());
ToscaServiceModel toscaServiceModel = new ToscaServiceModel();
Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
@@ -88,9 +88,9 @@ public class ToscaConverterImpl implements ToscaConverter {
}
} catch (YAMLException ye) {
throw new CoreException(new ErrorCode.ErrorCodeBuilder()
- .withMessage("Invalid YAML content in file " + key + ". reason - "
- + ye.getMessage())
- .withCategory(ErrorCategory.APPLICATION).build());
+ .withMessage("Invalid YAML content in file " + key + ". reason - "
+ + ye.getMessage())
+ .withCategory(ErrorCategory.APPLICATION).build());
}
}
@@ -100,7 +100,7 @@ public class ToscaConverterImpl implements ToscaConverter {
GlobalSubstitutionServiceTemplate globalSubstitutionServiceTemplate,
Map<String, byte[]> csarFiles) {
Collection<ServiceTemplate> globalServiceTemplates =
- GlobalTypesGenerator.getGlobalTypesServiceTemplate().values();
+ GlobalTypesGenerator.getGlobalTypesServiceTemplate().values();
addGlobalServiceTemplates(globalServiceTemplates, serviceTemplates);
toscaServiceModel.setEntryDefinitionServiceTemplate(mainStName);
toscaServiceModel.setServiceTemplates(serviceTemplates);
@@ -125,10 +125,10 @@ public class ToscaConverterImpl implements ToscaConverter {
String fileName, Map<String, byte[]> csarFiles,
Map<String, ServiceTemplate> serviceTemplates) {
Optional<ServiceTemplate> serviceTemplate =
- getServiceTemplateFromCsar(fileName, csarFiles);
+ getServiceTemplateFromCsar(fileName, csarFiles);
serviceTemplate.ifPresent(
- serviceTemplate1 -> addServiceTemplate(serviceTemplateName, serviceTemplate1,
- serviceTemplates));
+ serviceTemplate1 -> addServiceTemplate(serviceTemplateName, serviceTemplate1,
+ serviceTemplates));
}
private void addServiceTemplate(String serviceTemplateName,
@@ -160,7 +160,7 @@ public class ToscaConverterImpl implements ToscaConverter {
ServiceTemplate serviceTemplate = new ServiceTemplate();
try {
ServiceTemplateReaderService readerService =
- new ServiceTemplateReaderServiceImpl(fileContent);
+ new ServiceTemplateReaderServiceImpl(fileContent);
convertMetadata(serviceTemplateName, serviceTemplate, readerService);
convertToscaVersion(serviceTemplate, readerService);
convertImports(serviceTemplate);
@@ -169,9 +169,9 @@ public class ToscaConverterImpl implements ToscaConverter {
} catch (YAMLException ye) {
throw new CoreException(new ErrorCode.ErrorCodeBuilder()
- .withMessage("Invalid YAML content in file" + serviceTemplateName + ". reason - "
- + ye.getMessage())
- .withCategory(ErrorCategory.APPLICATION).build());
+ .withMessage("Invalid YAML content in file" + serviceTemplateName + ". reason - "
+ + ye.getMessage())
+ .withCategory(ErrorCategory.APPLICATION).build());
}
@@ -187,7 +187,7 @@ public class ToscaConverterImpl implements ToscaConverter {
private void convertImports(ServiceTemplate serviceTemplate) {
serviceTemplate.setImports(new ArrayList<>());
serviceTemplate.getImports()
- .add(createImportMap(openecompHeatIndex, "openecomp-heat/_index.yml"));
+ .add(createImportMap(openecompHeatIndex, "openecomp-heat/_index.yml"));
serviceTemplate.getImports().add(createImportMap(globalSubstitution, globalStName));
}
@@ -210,7 +210,7 @@ public class ToscaConverterImpl implements ToscaConverter {
if (MapUtils.isNotEmpty(metadataToConvert)) {
for (Map.Entry<String, Object> metadataEntry : metadataToConvert.entrySet()) {
if (Objects.isNull(metadataEntry.getValue()) ||
- !(metadataEntry.getValue() instanceof String)) {
+ !(metadataEntry.getValue() instanceof String)) {
continue;
}
finalMetadata.put(metadataEntry.getKey(), (String) metadataEntry.getValue());
@@ -229,9 +229,9 @@ public class ToscaConverterImpl implements ToscaConverter {
for (Map.Entry<String, Object> nodeTypeEntry : nodeTypes.entrySet()) {
DataModelUtil
- .addNodeType(serviceTemplate, nodeTypeEntry.getKey(),
- (NodeType) createObjectFromClass(nodeTypeEntry.getKey(), nodeTypeEntry.getValue(),
- NodeType.class));
+ .addNodeType(serviceTemplate, nodeTypeEntry.getKey(),
+ (NodeType) createObjectFromClass(nodeTypeEntry.getKey(), nodeTypeEntry.getValue(),
+ NodeType.class));
}
}
@@ -265,10 +265,10 @@ public class ToscaConverterImpl implements ToscaConverter {
for (Map.Entry<String, Object> entry : mapToConvert.entrySet()) {
ParameterDefinition parameterDefinition =
- (ParameterDefinition) createObjectFromClass(
- entry.getKey(), entry.getValue(), ParameterDefinition.class);
+ (ParameterDefinition) createObjectFromClass(
+ entry.getKey(), entry.getValue(), ParameterDefinition.class);
addToServiceTemplateAccordingToSection(
- serviceTemplate, inputsOrOutputs, entry.getKey(), parameterDefinition);
+ serviceTemplate, inputsOrOutputs, entry.getKey(), parameterDefinition);
}
}
@@ -279,11 +279,11 @@ public class ToscaConverterImpl implements ToscaConverter {
switch (inputsOrOutputs) {
case inputs:
DataModelUtil
- .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+ .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
break;
case outputs:
DataModelUtil
- .addOutputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+ .addOutputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
}
}
@@ -315,15 +315,15 @@ public class ToscaConverterImpl implements ToscaConverter {
substitutionMapping.setNode_type((String) substitutionMappings.get(nodeType));
substitutionMapping.setCapabilities(
- convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(capabilities)));
+ convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(capabilities)));
substitutionMapping.setRequirements(
- convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(requirements)));
+ convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(requirements)));
return substitutionMapping;
}
private Map<String, List<String>> convertSubstitutionMappingsSections(
- Map<String, Object> sectionToConvert) {
+ Map<String, Object> sectionToConvert) {
Map<String, List<String>> convertedSection = new HashMap<>();
if (MapUtils.isEmpty(sectionToConvert)) {
return null;
@@ -345,7 +345,7 @@ public class ToscaConverterImpl implements ToscaConverter {
return CsarFileTypes.globalServiceTemplate;
} else if (isDefinitions(fileName)) {
return CsarFileTypes.definitionsFile;
- } else if (isMetadataFile(metadataFile)) {
+ } else if (isMetadataFile(fileName)) {
return CsarFileTypes.toscaMetadata;
}
return CsarFileTypes.externalFile;
@@ -373,14 +373,14 @@ public class ToscaConverterImpl implements ToscaConverter {
nodeTemplate.setDescription((String) nodeTemplateAsMap.get("description"));
nodeTemplate.setDirectives((List<String>) nodeTemplateAsMap.get("directives"));
nodeTemplate.setInterfaces(
- (Map<String, InterfaceDefinition>) nodeTemplateAsMap.get("interfaces"));
+ (Map<String, InterfaceDefinition>) nodeTemplateAsMap.get("interfaces"));
nodeTemplate.setNode_filter((NodeFilter) nodeTemplateAsMap.get("node_filter"));
nodeTemplate.setProperties((Map<String, Object>) nodeTemplateAsMap.get("properties"));
nodeTemplate.setRequirements(
- (List<Map<String, RequirementAssignment>>) nodeTemplateAsMap.get("requirements"));
+ (List<Map<String, RequirementAssignment>>) nodeTemplateAsMap.get("requirements"));
nodeTemplate.setType((String) nodeTemplateAsMap.get("type"));
nodeTemplate.setCapabilities(
- convertCapabilities((Map<String, Object>) nodeTemplateAsMap.get("capabilities")));
+ convertCapabilities((Map<String, Object>) nodeTemplateAsMap.get("capabilities")));
return nodeTemplate;
}
@@ -393,8 +393,8 @@ public class ToscaConverterImpl implements ToscaConverter {
for (Map.Entry<String, Object> capabilityAssignmentEntry : capabilities.entrySet()) {
Map<String, CapabilityAssignment> tempMap = new HashMap<>();
tempMap.put(capabilityAssignmentEntry.getKey(),
- (CapabilityAssignment) createObjectFromClass
- (capabilityAssignmentEntry.getKey(), capabilityAssignmentEntry.getValue(), CapabilityAssignment.class));
+ (CapabilityAssignment) createObjectFromClass
+ (capabilityAssignmentEntry.getKey(), capabilityAssignmentEntry.getValue(), CapabilityAssignment.class));
convertedCapabilities.add(tempMap);
}
return convertedCapabilities;
@@ -408,8 +408,9 @@ public class ToscaConverterImpl implements ToscaConverter {
} catch (Exception e) {
//todo - return error to user?
throw new CoreException(new ErrorCode.ErrorCodeBuilder()
- .withCategory(ErrorCategory.APPLICATION)
- .withMessage("Can't create Node Type from " + nodeTypeId).build());
+ .withCategory(ErrorCategory.APPLICATION)
+ .withMessage("Can't create " + classToCreate.getSimpleName() + " from " +
+ nodeTypeId).build());
}
}
diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl
index 062bf55928..c023f1c88c 100644
--- a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl
+++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl
@@ -35,9 +35,10 @@
"providedBy": {
"type": "string",
"enum": [
+ "AIC",
"Vendor"
],
- "default": "Vendor"
+ "default": "AIC"
}
},
"additionalProperties": false
diff --git a/openecomp-be/tools/zusammen-tools/pom.xml b/openecomp-be/tools/zusammen-tools/pom.xml
index 0c84fbf9ba..ecb185e15e 100644
--- a/openecomp-be/tools/zusammen-tools/pom.xml
+++ b/openecomp-be/tools/zusammen-tools/pom.xml
@@ -212,6 +212,10 @@
<fixcrlf srcdir="./" eol="unix"
includes="zusammenMainTool.sh"/>
</tasks>
+ <tasks>
+ <replace file="src/main/resources/zusammenMainTool.sh" token="1.0-SNAPSHOT" value="${project.version}"/>
+ </tasks>
+
</configuration>
<goals>
<goal>run</goal>
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
index 031d1328b5..1725df7e93 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
@@ -3,24 +3,36 @@ package org.openecomp.core.tools.Commands;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.VersionCassandraDao;
+import com.google.common.collect.Sets;
+import org.openecomp.core.tools.store.ElementHandler;
import org.openecomp.core.tools.store.VersionInfoCassandraLoader;
import org.openecomp.core.tools.store.VspGeneralLoader;
-import org.openecomp.core.tools.store.ElementHandler;
import org.openecomp.core.zusammen.impl.CassandraConnectionInitializer;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
+import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static org.openecomp.core.tools.store.VspGeneralLoader.buildKey;
public class ResetOldVersion {
+ public static final String OLD_VERSION = "oldVersion";
+
private static Map<String, List<String>> itemVersionMap = new HashMap<>();
+ private static Map<String, List<String>> itemChangeRefMap = new HashMap<>();
- private static int count =0;
- public static void reset(SessionContext context, String oldVersion,String emptyOldVersion) {
+ private static int count = 0;
+ public static void reset(SessionContext context, String oldVersion, String emptyOldVersion) {
CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem();
@@ -28,64 +40,102 @@ public class ResetOldVersion {
loadItemVersionInfo(context);
Map<String, ElementEntity> generalElementMap =
- VspGeneralLoader.load(context,
- itemVersionMap);
+ VspGeneralLoader.load(context,
+ itemVersionMap, itemChangeRefMap);
generalElementMap.values().forEach(elementEntity -> updateOldVersionFlag(elementEntity,
- oldVersion,"true".equals(emptyOldVersion)));
+ oldVersion, Boolean.TRUE.toString().equals(emptyOldVersion)));
+
+
+ itemVersionMap.entrySet().forEach(entry -> updateElements(context, generalElementMap, entry));
+
+ itemChangeRefMap.entrySet().forEach(entry -> updateElements(context, generalElementMap, entry));
+ System.out.println("number of element updated:" + count);
- itemVersionMap.entrySet().forEach(entry->entry.getValue().stream().filter
- (version->generalElementMap.containsKey(context.getUser().getUserName()+"_"+entry.getKey()
- +"_"+version)).forEach(version->ElementHandler.update(context,
- entry.getKey(),version,generalElementMap.get(context.getUser().getUserName()+"_"+entry.getKey()
- +"_"+version))));
+ }
+
+ private static void updateElements(SessionContext context, Map<String,
+ ElementEntity> generalElementMap, Map.Entry<String, List<String>> entry) {
- System.out.println("nymber of element updated:"+count);
+ entry.getValue().stream().filter
+ (changeRef -> generalElementMap
+ .containsKey(buildKey(context, entry, changeRef))).
+ forEach(changeref -> ElementHandler.update(context, entry.getKey(), changeref, changeref,
+ generalElementMap.get(buildKey(context, entry, changeref))));
}
private static void updateOldVersionFlag(ElementEntity elementEntity, String oldVersion,
boolean emptyOldVersion) {
- if(!emptyOldVersion){
- elementEntity.getInfo().addProperty("oldVersion",oldVersion);
+ if (!emptyOldVersion) {
+ elementEntity.getInfo().addProperty(OLD_VERSION, oldVersion);
count++;
- }else if(elementEntity.getInfo().getProperty("oldVersion")== null || ""
- .equals(elementEntity.getInfo().getProperty("oldVersion"))){
- elementEntity.getInfo().addProperty("oldVersion",oldVersion);
+ } else if (elementEntity.getInfo().getProperty(OLD_VERSION) == null
+ || "".equals(elementEntity.getInfo().getProperty(OLD_VERSION))) {
+ elementEntity.getInfo().addProperty(OLD_VERSION, oldVersion);
count++;
}
-
-
}
-
private static void loadItemVersionInfo(SessionContext context) {
List<String> items = new ArrayList<>();
System.setProperty("cassandra.dox.keystore", "dox");
VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
- Collection<VersionInfoEntity> versions =
- versionInfoCassandraLoader.list();
+ Collection<VersionInfoEntity> versions = versionInfoCassandraLoader.list();
+
+ versions.stream().filter(versionInfoEntity -> versionInfoEntity.getEntityType()
+ .equals(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE)).forEach
+ (versionInfoEntity -> {
+ handleVersionInfoEntity(items, versionInfoEntity);
+ });
- versions.stream().filter(versionInfoEntity -> versionInfoEntity.getEntityType().equals
- (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE)).forEach
- (versionInfoEntity
- -> items.add(versionInfoEntity.getEntityId()));
System.setProperty("cassandra.dox.keystore", "zusammen_dox");
VersionCassandraDao versionCassandraDao = new VersionCassandraDao();
- items
- .forEach(itemId -> versionCassandraDao.list(context, context.getUser().getUserName(), new Id
- (itemId)).forEach(itemVersion -> addItemVersion(itemId, itemVersion.getId())));
+ items.forEach(itemId -> versionCassandraDao.list(context, context.getUser().getUserName(),
+ new Id(itemId)).forEach(itemVersion -> addItemVersion(itemId, itemVersion.getId())));
}
+ private static void handleVersionInfoEntity(List<String> items, VersionInfoEntity versionInfoEntity) {
+ items.add(versionInfoEntity.getEntityId());
+ Set<Version> viewableVersions;
+ if (versionInfoEntity.getViewableVersions() != null
+ && !versionInfoEntity.getViewableVersions().isEmpty()) {
+ viewableVersions = versionInfoEntity.getViewableVersions();
+ } else {
+ viewableVersions = Sets.newHashSet(versionInfoEntity.getActiveVersion());
+ }
+ addItemChangeRef(versionInfoEntity.getEntityId(), maxChangeRef(viewableVersions));
+ }
+
+ private static Id maxChangeRef(Set<Version> viewableVersions) {
+
+ return new Id(viewableVersions.stream().max((o1, o2) -> o1.getMajor() > o2.getMajor()
+ ?1:o1.getMajor
+ () == o2.getMajor() ? (o1.getMinor() > o2.getMinor() ? 1: o1.getMinor() == o2.getMinor()
+ ? 0 : -1) : -1).get().toString());
+
+ }
+
+ private static void addItemChangeRef(String itemId, Id changeRef) {
+ addItemVersion(itemChangeRefMap, itemId, changeRef);
+ }
+
private static void addItemVersion(String itemId, Id versionId) {
- if (!itemVersionMap.containsKey(itemId)) {
- itemVersionMap.put(itemId, new ArrayList<>());
+ addItemVersion(itemVersionMap, itemId, versionId);
+ }
+
+ private static void addItemVersion(Map<String, List<String>> itemVersions, String itemId, Id id) {
+
+ if (!itemVersions.containsKey(itemId)) {
+ itemVersions.put(itemId, new ArrayList<>());
}
- itemVersionMap.get(itemId).add(versionId.getValue());
+
+ itemVersions.get(itemId).add(id.getValue());
}
}
+
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java
new file mode 100644
index 0000000000..c41b46ea14
--- /dev/null
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java
@@ -0,0 +1,267 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.core.tools.store;
+
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.Namespace;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+import com.amdocs.zusammen.datatypes.item.Relation;
+import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
+import com.amdocs.zusammen.utils.fileutils.json.JsonUtil;
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Row;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Param;
+import com.datastax.driver.mapping.annotations.Query;
+import com.google.gson.reflect.TypeToken;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
+
+import java.lang.reflect.Type;
+import java.nio.ByteBuffer;
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class CassandraElementRepository {
+
+
+ public Collection<ElementEntity> list(SessionContext context,
+ ElementEntityContext elementContext) {
+ Set<String> elementIds = getVersionElementIds(context, elementContext);
+
+ return elementIds.stream()
+ .map(elementId -> get(context, elementContext, new ElementEntity(new Id(elementId))).get())
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ }
+
+
+ public void update(SessionContext context, ElementEntityContext elementContext,
+ ElementEntity element) {
+ updateElement(context, elementContext, element);
+ }
+
+
+ public Optional<ElementEntity> get(SessionContext context, ElementEntityContext elementContext,
+ ElementEntity element) {
+ Row row = getElementAccessor(context).get(
+ elementContext.getSpace(),
+ elementContext.getItemId().toString(),
+ getVersionId(elementContext),
+ element.getId().toString()).one();
+
+ return row == null ? Optional.empty() : Optional.of(getElementEntity(element, row));
+ }
+
+
+ private String getVersionId(ElementEntityContext elementContext) {
+ return elementContext.getChangeRef() == null
+ ? elementContext.getVersionId().toString()
+ : elementContext.getChangeRef();
+ }
+
+
+ private ElementAccessor getElementAccessor(SessionContext context) {
+ return NoSqlDbFactory.getInstance().createInterface().getMappingManager().createAccessor
+ (ElementAccessor.class);
+
+ }
+
+ private VersionElementsAccessor getVersionElementsAccessor() {
+ return NoSqlDbFactory.getInstance().createInterface().getMappingManager().createAccessor
+ (VersionElementsAccessor.class);
+
+ }
+
+
+ private void updateElement(SessionContext context, ElementEntityContext elementContext,
+ ElementEntity element) {
+
+ if (elementContext.getChangeRef() == null) {
+
+ getElementAccessor(context).update(
+ JsonUtil.object2Json(element.getInfo()),
+ JsonUtil.object2Json(element.getRelations()),
+ element.getData(),
+ element.getSearchableData(),
+ element.getVisualization(),
+ elementContext.getSpace(),
+ elementContext.getItemId().toString(),
+ elementContext.getVersionId().toString(),
+ element.getId().toString());
+ } else {
+ getElementAccessor(context).update(
+ JsonUtil.object2Json(element.getInfo()),
+ JsonUtil.object2Json(element.getRelations()),
+ element.getData(),
+ element.getSearchableData(),
+ element.getVisualization(),
+ elementContext.getSpace(),
+ elementContext.getItemId().toString(),
+ elementContext.getChangeRef(),
+ element.getId().toString());
+ }
+ }
+
+
+ private ElementEntity getElementEntity(ElementEntity element, Row row) {
+ element.setNamespace(getNamespace(row.getString(ElementField.NAMESPACE)));
+ element.setParentId(new Id(row.getString(ElementField.PARENT_ID)));
+ element.setInfo(json2Object(row.getString(ElementField.INFO), Info.class));
+ element.setRelations(
+ json2Object(row.getString(ElementField.RELATIONS), new TypeToken<ArrayList<Relation>>() {
+ }.getType()));
+ element.setData(row.getBytes(ElementField.DATA));
+ element.setSearchableData(row.getBytes(ElementField.SEARCHABLE_DATA));
+ element.setVisualization(row.getBytes(ElementField.VISUALIZATION));
+ element.setSubElementIds(row.getSet(ElementField.SUB_ELEMENT_IDS, String.class)
+ .stream().map(Id::new).collect(Collectors.toSet()));
+ return element;
+ }
+
+ private Namespace getNamespace(String namespaceStr) {
+ Namespace namespace = new Namespace();
+ if (namespaceStr != null) {
+ namespace.setValue(namespaceStr);
+ }
+ return namespace;
+ }
+
+ private static <T> T json2Object(String json, Type typeOfT) {
+ return json == null ? null : JsonUtil.json2Object(json, typeOfT);
+ }
+
+ private Set<String> getVersionElementIds(SessionContext context,
+ ElementEntityContext elementContext) {
+ Row row = getVersionElementsAccessor().get(
+ elementContext.getSpace(),
+ elementContext.getItemId().toString(),
+ getVersionId(elementContext)).one();
+ return row == null
+ ? new HashSet<>()
+ : row.getSet(CassandraElementRepository.VersionElementsField.ELEMENT_IDS, String.class);
+ }
+
+ /*
+CREATE TABLE IF NOT EXISTS element_namespace (
+ space text,
+ item_id text,
+ element_id text,
+ namespace text,
+ PRIMARY KEY (( space, item_id, element_id ))
+);
+ */
+ @Accessor
+ interface ElementNamespaceAccessor {
+ @Query(
+ "UPDATE element_namespace SET namespace=:ns " +
+ "WHERE space=:space AND item_id=:item AND element_id=:id ")
+ void create(@Param("space") String space,
+ @Param("item") String itemId,
+ @Param("id") String elementId,
+ @Param("ns") String namespace);
+ }
+
+ /*
+CREATE TABLE IF NOT EXISTS element (
+ space text,
+ item_id text,
+ version_id text,
+ element_id text,
+ parent_id text,
+ namespace text,
+ info text,
+ relations text,
+ data blob,
+ searchable_data blob,
+ visualization blob,
+ sub_element_ids set<text>,
+ PRIMARY KEY (( space, item_id, version_id, element_id ))
+);
+ */
+ @Accessor
+ interface ElementAccessor {
+ @Query(
+ "UPDATE zusammen_dox.element SET parent_id=:parentId, namespace=:ns, info=:info, " +
+ "relations=:rels, " +
+ "data=:data, searchable_data=:searchableData, visualization=:visualization, " +
+ "sub_element_ids=sub_element_ids+:subs " +
+ "WHERE space=:space AND item_id=:item AND version_id=:ver AND element_id=:id ")
+ void create(@Param("space") String space,
+ @Param("item") String itemId,
+ @Param("ver") String versionId,
+ @Param("id") String elementId,
+ @Param("parentId") String parentElementId,
+ @Param("ns") String namespace,
+ @Param("info") String info,
+ @Param("rels") String relations,
+ @Param("data") ByteBuffer data,
+ @Param("searchableData") ByteBuffer searchableData,
+ @Param("visualization") ByteBuffer visualization,
+ @Param("subs") Set<String> subElementIds);
+
+ @Query("UPDATE zusammen_dox.element SET info=?, relations=?, data=?, searchable_data=?, " +
+ "visualization=?" +
+ " WHERE space=? AND item_id=? AND version_id=? AND element_id=? ")
+ void update(String info, String relations, ByteBuffer data, ByteBuffer searchableData,
+ ByteBuffer visualization, String space, String itemId, String versionId,
+ String elementId);
+
+
+ @Query("SELECT parent_id, namespace, info, relations, data, searchable_data, visualization, " +
+ "sub_element_ids FROM zusammen_dox.element " +
+ "WHERE space=? AND item_id=? AND version_id=? AND element_id=? ")
+ ResultSet get(String space, String itemId, String versionId, String elementId);
+
+
+ }
+
+ private static final class ElementField {
+ private static final String NAMESPACE = "namespace";
+ private static final String PARENT_ID = "parent_id";
+ private static final String INFO = "info";
+ private static final String RELATIONS = "relations";
+ private static final String DATA = "data";
+ private static final String SEARCHABLE_DATA = "searchable_data";
+ private static final String VISUALIZATION = "visualization";
+ private static final String SUB_ELEMENT_IDS = "sub_element_ids";
+ }
+
+ /*
+ CREATE TABLE IF NOT EXISTS version_elements (
+ space text,
+ item_id text,
+ version_id text,
+ element_ids set<text>,
+ PRIMARY KEY (( space, item_id, version_id ))
+ );
+ */
+ @Accessor
+ interface VersionElementsAccessor {
+
+
+ @Query("SELECT element_ids FROM zusammen_dox.version_elements WHERE space=? AND item_id=? AND version_id=?")
+ ResultSet get(String space, String itemId, String versionId);
+
+
+ }
+
+ private static final class VersionElementsField {
+ private static final String ELEMENT_IDS = "element_ids";
+ }
+}
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java
index 2690130974..5c72c95f49 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java
@@ -2,25 +2,32 @@ package org.openecomp.core.tools.store;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
-import org.openecomp.core.zusammen.plugin.dao.impl.CassandraElementRepository;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
public class ElementHandler {
- private static final String GLOBAL_USER = "GLOBAL_USER";
+ private static final String GLOBAL_USER = "GLOBAL_USER";
- public static void update(SessionContext context,
+ public static void update(SessionContext context,
+ String itemId, String versionId, String changeRef,
+ ElementEntity elementEntity) {
- String itemId, String versionId,
- ElementEntity elementEntity) {
+ ElementEntityContext elementContext;
+ CassandraElementRepository cassandraElementRepository = new CassandraElementRepository();
+ if (changeRef == null) {
- ElementEntityContext elementContext;
- elementContext = new ElementEntityContext(GLOBAL_USER, new Id(itemId),
- new Id(versionId));
- CassandraElementRepository cassandraElementRepository = new CassandraElementRepository();
- cassandraElementRepository.update(context, elementContext, elementEntity);
+ elementContext = new ElementEntityContext(GLOBAL_USER, new Id(itemId),
+ new Id(versionId));
- }
+ } else {
+ elementContext = new ElementEntityContext(GLOBAL_USER, new ElementContext(new Id(itemId),
+ new Id(versionId),
+ changeRef));
+ }
+ cassandraElementRepository.update(context, elementContext, elementEntity);
+
+ }
}
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
index b5d09daf3f..fbfde7431e 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
@@ -12,67 +12,114 @@ import java.util.Map;
import java.util.Optional;
public class VspGeneralLoader {
+
+ public static final String NAME = "name";
+ public static final String GENERAL = "General";
+
private static CassandraElementRepository cassandraElementRepository =
- new CassandraElementRepository();
+ new CassandraElementRepository();
public static Map<String, ElementEntity> load(SessionContext context,
- Map<String, List<String>> vspItemVersionsMap) {
+ Map<String, List<String>> vspItemVersionsMap,
+ Map<String, List<String>> vspItemChangeRefssMap) {
Map<String, ElementEntity> elementEntityMap = new HashMap<>();
System.setProperty("cassandra.dox.keystore", "zusammen_dox");
Id entityId;
Id itemId;
- Id versionId;
+ Id changeRefId;
for (Map.Entry<String, List<String>> entry : vspItemVersionsMap.entrySet()) {
for (String version : entry.getValue()) {
itemId = new Id(entry.getKey());
- versionId = new Id(version);
- entityId = getEntityIdByInfoNameValue(context, itemId, versionId, null, "name",
- "General");
+ changeRefId = new Id(version);
+ entityId = getEntityIdByInfoNameValue(context, itemId, changeRefId, null, null, NAME,
+ GENERAL);
+ if (entityId != null) {
+ Optional<ElementEntity> result =
+ cassandraElementRepository.get(context, new ElementEntityContext(
+ context.getUser().getUserName(),
+ itemId,
+ changeRefId),
+ new ElementEntity(entityId));
+ if (result.isPresent()) {
+ elementEntityMap.put(buildKey(context, entry, version), result.get());
+ }
+ }
+ }
+ }
+
+
+ for (Map.Entry<String, List<String>> entry : vspItemChangeRefssMap.entrySet()) {
+
+ for (String changeRef : entry.getValue()) {
+
+
+ itemId = new Id(entry.getKey());
+
+ entityId = getEntityIdByInfoNameValue(context, itemId, null, changeRef,null, NAME,
+ GENERAL);
if (entityId != null) {
+ ElementEntityContext elementContext = new ElementEntityContext(
+ context.getUser().getUserName(),
+ itemId,
+ null);
+ elementContext.setChangeRef(changeRef);
Optional<ElementEntity> result =
- cassandraElementRepository.get(context, new ElementEntityContext(
- context.getUser().getUserName(),
- itemId,
- versionId),
- new ElementEntity(entityId));
+ cassandraElementRepository.get(context, elementContext,
+ new ElementEntity(entityId));
if (result.isPresent()) {
- elementEntityMap.put(context.getUser().getUserName() + "_" + entry.getKey()
- + "_" + version, result.get());
+ elementEntityMap.put(buildKey(context, entry, changeRef), result.get());
}
}
}
}
+
return elementEntityMap;
}
- private static Id getEntityIdByInfoNameValue(SessionContext context, Id itemId, Id versionId,
- Id elementId, String
- name, String value) {
+ public static String buildKey(SessionContext context, Map.Entry<String, List<String>> entry, String version) {
+ return String.format("%s_%s_%s", context.getUser().getUserName(), entry.getKey(), version);
+ }
- Id id;
+ private static Id getEntityIdByInfoNameValue(SessionContext context,
+ Id itemId,
+ Id versionId,
+ String changeRef,
+ Id elementId,
+ String name,
+ String value) {
+
+
+ ElementEntityContext elementContext = new ElementEntityContext(
+ context.getUser().getUserName(),
+ itemId,
+ versionId);
+ if (changeRef != null) {
+ elementContext.setChangeRef(changeRef);
+ }
Optional<ElementEntity> result =
- cassandraElementRepository.get(context, new ElementEntityContext(
- context.getUser().getUserName(),
- itemId,
- versionId),
- new ElementEntity(Id.ZERO));
+ cassandraElementRepository.get(context, elementContext,
+ new ElementEntity(Id.ZERO));
if (result.isPresent()) {
ElementEntity elementEntity = result.get();
return elementEntity.getSubElementIds().stream().filter(subelementId -> {
+ ElementEntityContext subElementContext = new ElementEntityContext(
+ context.getUser().getUserName(),
+ itemId,
+ versionId);
+ if(changeRef!= null){
+ subElementContext.setChangeRef(changeRef);
+ }
Optional<ElementEntity> subElementEntity =
- cassandraElementRepository.get(context, new ElementEntityContext(
- context.getUser().getUserName(),
- itemId,
- versionId),
- new ElementEntity(subelementId));
+ cassandraElementRepository.get(context, subElementContext,
+ new ElementEntity(subelementId));
if (subElementEntity.isPresent()) {
- if("name".equals(name)){
- if(value.equals(subElementEntity.get().getInfo().getName())){
+ if (NAME.equals(name)) {
+ if (value.equals(subElementEntity.get().getInfo().getName())) {
return true;
}
}
@@ -87,9 +134,7 @@ public class VspGeneralLoader {
return null;
+ }
-
-
- }
}
diff --git a/openecomp-ui/pom.xml b/openecomp-ui/pom.xml
index 206c1854d5..a5eaeef39a 100644
--- a/openecomp-ui/pom.xml
+++ b/openecomp-ui/pom.xml
@@ -36,17 +36,17 @@
<fileset>
<directory>${basedir}/dist</directory>
</fileset>
- <fileset>
- <directory>${basedir}/node_modules</directory>
- </fileset>
+ <!--<fileset>-->
+ <!--<directory>${basedir}/node_modules</directory>-->
+ <!--</fileset>-->
<fileset>
<directory>${basedir}/../dox-sequence-diagram-ui/dist
</directory>
</fileset>
- <fileset>
- <directory>${basedir}/../dox-sequence-diagram-ui/node_modules
- </directory>
- </fileset>
+ <!--<fileset>-->
+ <!--<directory>${basedir}/../dox-sequence-diagram-ui/node_modules-->
+ <!--</directory>-->
+ <!--</fileset>-->
</filesets>
</configuration>
</execution>
diff --git a/openecomp-ui/resources/scss/onboarding.scss b/openecomp-ui/resources/scss/onboarding.scss
index 94dc223be3..fc05f7493e 100644
--- a/openecomp-ui/resources/scss/onboarding.scss
+++ b/openecomp-ui/resources/scss/onboarding.scss
@@ -18,20 +18,27 @@ div[data-reactroot].customized-date-picker-calendar {
.react-datepicker__triangle {
margin-top: 0px;
}
- .react-datepicker__navigation--previous {
- border: none;
- width: 12px;
- height: 12px;
- margin-top: 2px;
- content: url(../../node_modules/sdc-ui/assets/icons/angleLeft.svg);
+ .react-datepicker__navigation--previous::before, .react-datepicker__navigation--next::before {
+ width: 8px;
+ height: 8px;
+ display: inline-block;
+ position: absolute;
+ top: -4px;
+ }
+ .react-datepicker__navigation--previous::before {
+ left: 0;
+ content: url(../../node_modules/sdc-ui/assets/icons/angleLeft.svg);
+ }
+ .react-datepicker__navigation--next::before {
+ right: 0;
+ content: url(../../node_modules/sdc-ui/assets/icons/angleRight.svg);
}
- .react-datepicker__navigation--next {
+
+ .react-datepicker__navigation--previous, .react-datepicker__navigation--next {
border: none;
- width: 12px;
- height: 12px;
- margin-top: 2px;
- content: url(../../node_modules/sdc-ui/assets/icons/angleRight.svg);
}
+
+
.react-datepicker__month-container {
.react-datepicker__header {
background-color: $background-gray;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx
index 80d74b2964..2308527220 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx
@@ -211,13 +211,13 @@ class HeatMessageBoard extends Component {
(this.props.selectedNode === nodeFilters.ALL) ?
<span>
<span className='error-file-name'>
- {i18n(`${error.name}`)}
+ {error.name}
</span>
<span>
- {i18n(error.errorMessage)}
+ {error.errorMessage}
</span>
</span> :
- i18n(error.errorMessage)
+ error.errorMessage
}
</span>
</div>
diff --git a/pom.xml b/pom.xml
index 6957c5d28d..d188dacca6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,6 +109,7 @@
<sonar.exclusions>**/scripts/**/*</sonar.exclusions>
<sonar.test.exclusions>**/test/**/*,**/tests/**/*</sonar.test.exclusions>
<sonar.inclusions>app/**/*.js,server-mock/**/*.js,src/**/*.js,src/main/**/*.java</sonar.inclusions>
+ <sonar.branch>${project.version}</sonar.branch>
<!--nexus-->
<nexus.proxy>https://nexus.onap.org</nexus.proxy>
@@ -123,7 +124,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>2.10.4</version>
+ <version>3.0.0-M1</version>
<configuration>
<failOnError>false</failOnError>
<doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
@@ -272,7 +273,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
- <version>3.4</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
diff --git a/sdc-os-chef/pom.xml b/sdc-os-chef/pom.xml
index 3ad8a4b811..009c86ec44 100644
--- a/sdc-os-chef/pom.xml
+++ b/sdc-os-chef/pom.xml
@@ -4,6 +4,8 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>sdc-os-chef</artifactId>
+ <packaging>pom</packaging>
+
<parent>
<groupId>org.openecomp.sdc</groupId>
@@ -32,24 +34,59 @@
<configuration>
<filesets>
<fileset>
- <directory>
- ${project.basedir}\sdc-cassandra\chef-repo\cookbooks\cassandra-actions\attributes\
- </directory>
+ <directory>${project.basedir}\sdc-cassandra\chef-repo\cookbooks\cassandra-actions\attributes\</directory>
<followSymlinks>false</followSymlinks>
<includes>
<include>**/default.rb</include>
</includes>
</fileset>
- <!-- static configuration files -->
- <fileset>
- <directory>${project.parent.basedir}/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default</directory>
- <includes>
+ <!-- static configuration files -->
+ <fileset>
+ <directory>${project.parent.basedir}/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default</directory>
+ <followSymlinks>false</followSymlinks>
+ <includes>
<include>Artifact-Generator.properties</include>
<include>error-configuration.yaml</include>
<include>ecomp-error-configuration.yaml</include>
<include>logback.xml</include>
</includes>
</fileset>
+ <!-- BE WAR's -->
+ <fileset>
+ <directory>${project.parent.basedir}/sdc-os-chef/sdc-backend</directory>
+ <followSymlinks>false</followSymlinks>
+ <includes>
+ <include>*.war</include>
+ </includes>
+ </fileset>
+ <!-- FE WAR's -->
+ <fileset>
+ <directory>${project.parent.basedir}/sdc-os-chef/sdc-frontend/</directory>
+ <followSymlinks>false</followSymlinks>
+ <includes>
+ <include>*.war</include>
+ </includes>
+ </fileset>
+ <fileset>
+ <directory>${project.basedir}/sdc-backend/chef-repo/cookbooks/sdc-normatives/files/default</directory>
+ <followSymlinks>false</followSymlinks>
+ <includes>
+ <include>normatives.tar.gz</include>
+ </includes>
+ </fileset>
+ <!-- Sanity jar -->
+ <fileset>
+ <directory>${project.basedir}/sdc-sanity</directory>
+ <followSymlinks>false</followSymlinks>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ </fileset>
+ <!-- Sanity test suites -->
+ <fileset>
+ <directory>${project.basedir}/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/testSuites</directory>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
</filesets>
</configuration>
</execution>
@@ -157,6 +194,12 @@
<configuration>
<outputDirectory>${basedir}/sdc-backend</outputDirectory>
<resources>
+ <resource>
+ <directory>${project.parent.basedir}/catalog-be/target</directory>
+ <includes>
+ <include>catalog-be-${project.version}.war</include>
+ </includes>
+ </resource>
<resource>
<directory>
${project.parent.basedir}/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/target
@@ -168,6 +211,7 @@
</resources>
</configuration>
</execution>
+
<execution>
<id>copy-resources-fe</id>
<phase>validate</phase>
@@ -177,6 +221,12 @@
<configuration>
<outputDirectory>${basedir}/sdc-frontend</outputDirectory>
<resources>
+ <resource>
+ <directory>${project.parent.basedir}/catalog-fe/target</directory>
+ <includes>
+ <include>catalog-fe-${project.version}.war</include>
+ </includes>
+ </resource>
<resource>
<directory>${project.parent.basedir}/openecomp-ui/target</directory>
<includes>
@@ -186,6 +236,7 @@
</resources>
</configuration>
</execution>
+
<execution>
<id>copy-tests-suites</id>
<phase>validate</phase>
@@ -222,6 +273,24 @@
</resources>
</configuration>
</execution>
+ <execution>
+ <id>copy-normatives</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.parent.basedir}/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/files/default</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.parent.basedir}/catalog-be/target</directory>
+ <includes>
+ <include>normatives.tar.gz</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
</executions>
</plugin>
@@ -323,7 +392,7 @@
<tags>
<tag>${docker.tag}</tag>
<tag>${docker.latest.tag}</tag>
- <tag>1.1-STAGING-latest</tag>
+ <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag>
</tags>
</build>
</image>
diff --git a/sdc-os-chef/scripts/docker_run.sh b/sdc-os-chef/scripts/docker_run.sh
index bc24124651..20cde17f57 100755
--- a/sdc-os-chef/scripts/docker_run.sh
+++ b/sdc-os-chef/scripts/docker_run.sh
@@ -57,6 +57,8 @@ fi
RELEASE=latest
LOCAL=false
SKIPTESTS=false
+DEBUG_PORT = "--publish 4000:4000"
+
[ -f /opt/config/env_name.txt ] && DEP_ENV=$(cat /opt/config/env_name.txt) || DEP_ENV=__ENV-NAME__
[ -f /opt/config/nexus_username.txt ] && NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt) || NEXUS_USERNAME=release
[ -f /opt/config/nexus_password.txt ] && NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt) || NEXUS_PASSWD=sfWU3DFVdBr7GVxB85mTYgAW
@@ -152,8 +154,10 @@ dir_perms
echo "docker run sdc-backend..."
if [ ${LOCAL} = false ]; then
docker pull ${PREFIX}/sdc-backend:${RELEASE}
+else
+ ADDITIONAL_ARGUMENTS = ${DEBUG_PORT}
fi
-docker run --detach --name sdc-BE --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env http_proxy=${http_proxy} --env https_proxy=${https_proxy} --env no_proxy=${no_proxy} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --memory 4g --memory-swap=4g --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume /data/logs/BE/:/var/lib/jetty/logs --volume /data/environments:/root/chef-solo/environments --publish 8443:8443 --publish 8080:8080 ${PREFIX}/sdc-backend:${RELEASE}
+docker run --detach --name sdc-BE --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env http_proxy=${http_proxy} --env https_proxy=${https_proxy} --env no_proxy=${no_proxy} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --memory 4g --memory-swap=4g --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume /data/logs/BE/:/var/lib/jetty/logs --volume /data/environments:/root/chef-solo/environments --publish 8443:8443 --publish 8080:8080 ${ADDITIONAL_ARGUMENTS} ${PREFIX}/sdc-backend:${RELEASE}
echo "please wait while BE is starting..."
monitor_docker sdc-BE
@@ -208,5 +212,5 @@ echo "Triger sanity docker, please wait..."
if [ ${LOCAL} = false ]; then
docker pull ${PREFIX}/sdc-sanity:${RELEASE}
fi
- docker run --detach --name sdc-sanity --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env http_proxy=${http_proxy} --env https_proxy=${https_proxy} --env no_proxy=${no_proxy} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --memory 512m --memory-swap=512m --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume /data/logs/sdc-sanity/target:/var/lib/tests/target --volume /data/logs/sdc-sanity/ExtentReport:/var/lib/tests/ExtentReport --volume /data/environments:/root/chef-solo/environments --publish 9560:9560 ${PREFIX}/sdc-sanity:${RELEASE}
+ docker run --detach --name sdc-sanity --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env http_proxy=${http_proxy} --env https_proxy=${https_proxy} --env no_proxy=${no_proxy} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --memory 1g --memory-swap=1g --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume /data/logs/sdc-sanity/target:/var/lib/tests/target --volume /data/logs/sdc-sanity/ExtentReport:/var/lib/tests/ExtentReport --volume /data/environments:/root/chef-solo/environments --publish 9560:9560 ${PREFIX}/sdc-sanity:${RELEASE}
fi \ No newline at end of file
diff --git a/sdc-os-chef/sdc-backend/Dockerfile b/sdc-os-chef/sdc-backend/Dockerfile
index 9052e74b52..dd38726be3 100644
--- a/sdc-os-chef/sdc-backend/Dockerfile
+++ b/sdc-os-chef/sdc-backend/Dockerfile
@@ -4,8 +4,6 @@ COPY chef-solo /root/chef-solo/
COPY chef-repo/cookbooks/. /root/chef-solo/cookbooks/
-#RUN python /root/chef-solo/cookbooks/sdc-normatives/files/default/get-pip.py
-
ADD onboarding-be-*.war ${JETTY_BASE}/webapps/
ADD catalog-be-*.war ${JETTY_BASE}/webapps/
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/import_Normatives.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/import_Normatives.rb
index 8dff57abe8..ba72dab34b 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/import_Normatives.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/import_Normatives.rb
@@ -10,7 +10,8 @@ bash "import-normatives" do
tar xvfz /tmp/normatives.tar.gz
cd normatives/scripts/import/tosca/
/bin/chmod +x importNormativeAll.py
- python importNormativeAll.py -i localhost --debug=true > /var/lib/jetty/logs/importNormativeAll.log
+# add --debug=true to the importNormativeAll.py arguments to enable debug
+ python importNormativeAll.py -i localhost > /var/lib/jetty/logs/importNormativeAll.log
EOH
end
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/upgrade_Normatives.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/upgrade_Normatives.rb
index 3baf4732fa..52afe4d7b8 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/upgrade_Normatives.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-normatives/recipes/upgrade_Normatives.rb
@@ -10,7 +10,8 @@ bash "upgrade-normatives" do
tar xvfz /tmp/normatives.tar.gz
cd normatives/scripts/import/tosca/
/bin/chmod +x upgradeNormative.py importGroupTypes.py
- python upgradeNormative.py -i localhost --debug=true > /var/lib/jetty/logs/upgradeNormative.log
+# add --debug=true to the importNormativeAll.py arguments to enable debug
+ python upgradeNormative.py -i localhost > /var/lib/jetty/logs/upgradeNormative.log
EOH
end
diff --git a/sdc-os-chef/sdc-backend/startup.sh b/sdc-os-chef/sdc-backend/startup.sh
index cfdab442d4..87f4ae674d 100644
--- a/sdc-os-chef/sdc-backend/startup.sh
+++ b/sdc-os-chef/sdc-backend/startup.sh
@@ -6,7 +6,7 @@ cd /root/chef-solo
echo "normal['HOST_IP'] = \"${HOST_IP}\"" > /root/chef-solo/cookbooks/sdc-catalog-be/attributes/default.rb
chef-solo -c solo.rb -E ${CHEFNAME}
-sed -i '/^set -e/aJAVA_OPTIONS=\" -XX:MaxPermSize=256m -Xmx1500m -Dconfig.home=${JETTY_BASE}\/config -Dlog.home=${JETTY_BASE}\/logs -Dlogback.configurationFile=${JETTY_BASE}\/config\/catalog-be\/logback.xml -Dconfiguration.yaml=${JETTY_BASE}\/config\/catalog-be\/configuration.yaml -Dartifactgenerator.config=${JETTY_BASE}\/config\/catalog-be\/Artifact-Generator.properties\ -Donboarding_configuration.yaml=${JETTY_BASE}\/config\/onboarding-be\/onboarding_configuration.yaml" ' /docker-entrypoint.sh
+sed -i '/^set -e/aJAVA_OPTIONS=\"-Xdebug -agentlib:jdwp=transport=dt_socket,address=4000,server=y,suspend=n -XX:MaxPermSize=256m -Xmx1500m -Dconfig.home=${JETTY_BASE}\/config -Dlog.home=${JETTY_BASE}\/logs -Dlogback.configurationFile=${JETTY_BASE}\/config\/catalog-be\/logback.xml -Dconfiguration.yaml=${JETTY_BASE}\/config\/catalog-be\/configuration.yaml -Dartifactgenerator.config=${JETTY_BASE}\/config\/catalog-be\/Artifact-Generator.properties\ -Donboarding_configuration.yaml=${JETTY_BASE}\/config\/onboarding-be\/onboarding_configuration.yaml" ' /docker-entrypoint.sh
sed -i '/^set -e/aTMPDIR=${JETTY_BASE}\/temp' /docker-entrypoint.sh
# executiong the jetty
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/base_vlb.zip b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/base_vlb.zip
deleted file mode 100644
index 19c8a7d599..0000000000
--- a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/base_vlb.zip
+++ /dev/null
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csar
new file mode 100644
index 0000000000..ea977bea80
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vLB.zip b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vLB.zip
new file mode 100644
index 0000000000..b61ca1b83b
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vLB.zip
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_3_logback.rb b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_3_logback.rb
deleted file mode 100644
index 0d9282b28a..0000000000
--- a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_3_logback.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-jetty_base="/var/lib/jetty"
-
-
-cookbook_file "logback.xml" do
- path "#{jetty_base}/config/sdc-simulator/logback.xml"
- source "logback.xml"
- owner "jetty"
- group "jetty"
- mode "0755"
-end \ No newline at end of file
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_4_locate_keystore.rb b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_4_locate_keystore.rb
deleted file mode 100644
index 3bb482d89a..0000000000
--- a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_4_locate_keystore.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-jetty_base="/var/lib/jetty"
-
-directory "Jetty_etcdir_creation" do
- path "/#{jetty_base}/etc"
- owner 'jetty'
- group 'jetty'
- mode '0755'
- action :create
-end
-
-cookbook_file "/#{jetty_base}/etc/keystore" do
- source "keystore"
- owner "jetty"
- group "jetty"
- mode 0755
-end \ No newline at end of file
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_5_create_jetty_modules.rb b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_5_create_jetty_modules.rb
deleted file mode 100644
index 38b87fa65d..0000000000
--- a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/SDC_Simulator_5_create_jetty_modules.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-jetty_base="/var/lib/jetty"
-jetty_home="/usr/local/jetty"
-
-###### create Jetty modules
-bash "create-jetty-modules" do
-cwd "#{jetty_base}"
-code <<-EOH
- cd "#{jetty_base}"
- java -jar "/#{jetty_home}"/start.jar --add-to-start=deploy
- java -jar "/#{jetty_home}"/start.jar --add-to-startd=http,https,logging,setuid
-EOH
-not_if "ls /#{jetty_base}/start.d/https.ini"
-end
-
diff --git a/test-apis-ci/pom.xml b/test-apis-ci/pom.xml
index 66cef3625c..875888facc 100644
--- a/test-apis-ci/pom.xml
+++ b/test-apis-ci/pom.xml
@@ -11,6 +11,10 @@
<version>1.2.0-SNAPSHOT</version>
</parent>
+ <properties>
+ <sonar.skip>true</sonar.skip>
+ </properties>
+
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/dataProviders/OnbordingDataProviders.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/dataProviders/OnboardingDataProviders.java
index 8b58ca9993..cf94c79462 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/dataProviders/OnbordingDataProviders.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/dataProviders/OnboardingDataProviders.java
@@ -9,7 +9,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class OnbordingDataProviders {
+public class OnboardingDataProviders {
protected static String filepath = FileHandling.getVnfRepositoryPath();
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java
index ec83b05be9..44e386ada6 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java
@@ -32,7 +32,7 @@ import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
import org.openecomp.sdc.ci.tests.api.ExtentTestActions;
-import org.openecomp.sdc.ci.tests.dataProviders.OnbordingDataProviders;
+import org.openecomp.sdc.ci.tests.dataProviders.OnboardingDataProviders;
import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.VendorSoftwareProductObject;
@@ -78,7 +78,7 @@ public class Onboard extends ComponentBaseTest {
}
- @Test(dataProviderClass = OnbordingDataProviders.class, dataProvider = "VNF_List")
+ @Test(dataProviderClass = OnboardingDataProviders.class, dataProvider = "VNF_List")
public void onboardVNFShotFlow(String filepath, String vnfFile) throws Exception, Throwable {
setLog(vnfFile);
System.out.println("print - >" + makeDistributionValue);
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java
index b82e6a0f52..c8f9ee4139 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java
@@ -20,25 +20,37 @@
package org.openecomp.sdc.ci.tests.utils.general;
-import com.aventstack.extentreports.Status;
-import com.clearspring.analytics.util.Pair;
-import org.apache.commons.io.FileUtils;
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
-import org.openecomp.sdc.ci.tests.config.Config;
-
-import org.openecomp.sdc.common.util.GeneralUtility;
-import org.yaml.snakeyaml.Yaml;
+import static org.testng.AssertJUnit.assertTrue;
-import java.io.*;
+import java.io.BufferedOutputStream;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStream;
import java.nio.file.Paths;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
-import static org.testng.AssertJUnit.assertTrue;
+import org.apache.commons.io.FileUtils;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
+import org.openecomp.sdc.ci.tests.config.Config;
+import org.openecomp.sdc.common.util.GeneralUtility;
+import org.yaml.snakeyaml.Yaml;
+
+import com.aventstack.extentreports.Status;
public class FileHandling {
@@ -173,9 +185,9 @@ public class FileHandling {
}
public static List<String> filterFileNamesListFromFolder(String filepath, String extension) {
+ List<String> filenames = new ArrayList<String>();
try {
File dir = new File(filepath);
- List<String> filenames = new ArrayList<String>();
FilenameFilter extensionFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
@@ -193,7 +205,7 @@ public class FileHandling {
} catch (Exception e) {
e.printStackTrace();
}
- return null;
+ return filenames;
}
public static String[] getArtifactsFromZip(String filepath, String zipFilename){
@@ -233,7 +245,9 @@ public class FileHandling {
// }
public static List<String> getZipFileNamesFromFolder(String filepath) {
- return filterFileNamesListFromFolder(filepath, ".zip");
+ List<String> fileNamesListFromFolder = filterFileNamesListFromFolder(filepath, ".zip");
+ fileNamesListFromFolder.addAll(filterFileNamesListFromFolder(filepath, ".csar"));
+ return fileNamesListFromFolder;
}
public static int countFilesInZipFile(String[] artifactsArr, String reqExtension){
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
deleted file mode 100644
index f512f8071e..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactFileContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactFileContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
deleted file mode 100644
index 180e247ea2..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactListNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactListNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
deleted file mode 100644
index b8f9bbdc69..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-GetResourceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-GetResourceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
deleted file mode 100644
index 72ff4f37e0..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactMetadataNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactMetadataNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
deleted file mode 100644
index 527e4a0081..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactMetadataTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactMetadataTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
deleted file mode 100644
index 7177a65387..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getResourceArtifactPayloadNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getResourceArtifactPayloadNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
deleted file mode 100644
index e0a0c6458e..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
deleted file mode 100644
index dc5ff158c8..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
deleted file mode 100644
index cb3c3e8546..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
deleted file mode 100644
index f0d0849db8..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
-
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
deleted file mode 100644
index 4ee2c8ca88..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
deleted file mode 100644
index b564dd0c4e..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
deleted file mode 100644
index 279351879a..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
deleted file mode 100644
index 3c342f6cd1..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
-
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
deleted file mode 100644
index e0a0c6458e..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
deleted file mode 100644
index dc5ff158c8..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
deleted file mode 100644
index cb3c3e8546..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
deleted file mode 100644
index f0d0849db8..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
-
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
deleted file mode 100644
index e0a0c6458e..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
deleted file mode 100644
index dc5ff158c8..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
deleted file mode 100644
index cb3c3e8546..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
deleted file mode 100644
index f0d0849db8..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
-
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
deleted file mode 100644
index 4ee2c8ca88..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
deleted file mode 100644
index b564dd0c4e..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-getServiceArtifactListNoContentTest2
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
deleted file mode 100644
index 279351879a..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
deleted file mode 100644
index 3c342f6cd1..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
-
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png
deleted file mode 100644
index 8e02f49b7b..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png
+++ /dev/null
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml
deleted file mode 100644
index a2eb4d423a..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
-description: MySQL RDBMS installation on a specific mounted volume path.
-template_name: mysql-uploadComponent
-template_version: 1.1.1-SNAPSHOT
-template_author: FastConnect
-
-imports:
- - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
- - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
-
-node_types:
- alien.nodes.Mysql-uploadComponent:
- derived_from: tosca.nodes.Database
- description: >
- A node to install MySQL v5.5 database with data
- on a specific attached volume.
- capabilities:
- host:
- type: alien.capabilities.MysqlDatabase
- properties:
- valid_node_types: [ tosca.nodes.WebApplication ]
- requirements:
- - host: tosca.nodes.Compute
- type: tosca.relationships.HostedOn
- tags:
- icon: /images/mysql.png
- properties:
- db_port:
- type: integer
- default: 3306
- description: The port on which the underlying database service will listen to data.
- db_name:
- type: string
- required: true
- default: wordpress
- description: The logical name of the database.
- db_user:
- type: string
- default: pass
- description: The special user account used for database administration.
- db_password:
- type: string
- default: pass
- description: The password associated with the user account provided in the ‘db_user’ property.
- bind_address:
- type: boolean
- default: true
- required: false
- description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
- storage_path:
- type: string
- default: /mountedStorage
- constraints:
- - valid_values: [ "/mountedStorage", "/var/mysql" ]
- interfaces:
- Standard:
- create: scripts/install_mysql.sh
- start:
- inputs:
- VOLUME_HOME: { get_property: [SELF, storage_path] }
- PORT: { get_property: [SELF, db_port] }
- DB_NAME: { get_property: [SELF, db_name] }
- DB_USER: { get_property: [SELF, db_user] }
- DB_PASSWORD: { get_property: [SELF, db_password] }
- BIND_ADRESS: { get_property: [SELF, bind_address] }
- implementation: scripts/start_mysql.sh
- fastconnect.cloudify.extensions:
- start_detection:
- inputs:
- PORT: { get_property: [SELF, db_port] }
- implementation: scripts/mysql_start_detection.groovy
- artifacts:
- - scripts: scripts
- type: tosca.artifacts.File
-
-capability_types:
- alien.capabilities.MysqlDatabase:
- derived_from: tosca.capabilities.Container
-
-artifact_types:
- tosca.artifacts.GroovyScript:
- description: A groovy script (.groovy file)
- file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
deleted file mode 100644
index 400bcf40cb..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-echo "Debian based MYSQL install 5..."
-LOCK="/tmp/lockaptget"
-
-while true; do
- if mkdir "${LOCK}" &>/dev/null; then
- echo "MySQL take the lock"
- break;
- fi
- echo "Waiting the end of one of our recipes..."
- sleep 0.5
-done
-
-while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
- echo "Waiting for other software managers to finish..."
- sleep 0.5
-done
-sudo rm -f /var/lib/dpkg/lock
-
-sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
-sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
-rm -rf "${LOCK}"
-
-sudo /etc/init.d/mysql stop
-sudo rm -rf /var/lib/apt/lists/*
-sudo rm -rf /var/lib/mysql/*
-echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
deleted file mode 100644
index 648bd45756..0000000000
--- a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-echo "------------------------ ENV ------------------------"
-echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
-echo "ENV VAR USED PORT : $PORT"
-echo "ENV VAR USED DB_NAME : $DB_NAME"
-echo "ENV VAR USED DB_USER : $DB_USER"
-echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
-echo "---------------------------- ------------------------"
-
-CURRENT_PATH=`dirname "$0"`
-
-function StartMySQL {
- echo "Starting MYSQL..."
- sudo /etc/init.d/mysql stop
- sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
- RET=1
- while [[ RET -ne 0 ]]; do
- echo "=> Waiting for confirmation of MySQL service startup"
- sleep 5
- sudo mysql -uroot -e "status" > /dev/null 2>&1
- RET=$?
- done
-}
-
-function AllowFileSystemToMySQL {
- MYSQL_DATA_DIR=$VOLUME_HOME/data
- MYSQL_LOG=$VOLUME_HOME/logs
-
- echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
- if sudo test ! -d $MYSQL_DATA_DIR; then
- echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
- sudo mkdir -p $MYSQL_DATA_DIR
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_DATA_DIR
- fi
- if sudo test ! -d $MYSQL_LOG; then
- echo "Creating LOG dir > $MYSQL_LOG ..."
- sudo mkdir -p $MYSQL_LOG
- # mysql as owner and group owner
- sudo chown -R mysql:mysql $MYSQL_LOG
- fi
-
- # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
- COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
- sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
-
- # reload app permission manager service
- sudo service apparmor reload
-}
-
-function UpdateMySQLConf {
- echo "Updating MySQL conf files [DATA, LOGS]..."
- sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
- sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
- sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
-
- if sudo test ! -f /usr/share/mysql/my-default.cnf; then
- sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
- fi
- if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
- sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
- fi
-
- if [ "$BIND_ADRESS" == "true" ]; then
- sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
- fi
-}
-
-function InitMySQLDb {
- # create database DB_NAME
- if [ "$DB_NAME" ]; then
- echo "INIT DATABASE $DB_NAME"
- sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
- fi
-
- # create user and give rights
- if [ "$DB_USER" ]; then
- echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
- sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
- sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
- sudo mysql -uroot -e "FLUSH PRIVILEGES"
- fi
-}
-
-# Create a new database path to the attched volume
-if sudo test ! -d $VOLUME_HOME/data; then
- echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
- AllowFileSystemToMySQL
- UpdateMySQLConf
- echo "=> Init new database path to $MYSQL_DATA_DIR"
- sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
- echo "=> MySQL database initialized !"
-else
- echo "=> Using an existing volume of MySQL"
- AllowFileSystemToMySQL
- UpdateMySQLConf
-fi
-
-# Finally start MySQL with new configuration
-StartMySQL
-InitMySQLDb \ No newline at end of file
diff --git a/ui-ci/pom.xml b/ui-ci/pom.xml
index d55a93fb73..20597acbde 100644
--- a/ui-ci/pom.xml
+++ b/ui-ci/pom.xml
@@ -11,6 +11,10 @@
<artifactId>sdc-main</artifactId>
<version>1.2.0-SNAPSHOT</version>
</parent>
+
+ <properties>
+ <sonar.skip>true</sonar.skip>
+ </properties>
<dependencies>
<dependency>