diff options
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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/asdc-tests/src/test/resources/CI/tests/uploadComponent/images/mysql.png +++ /dev/null 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 Binary files differnew file mode 100644 index 0000000000..ed51f834f3 --- /dev/null +++ b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zip 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 Binary files differnew file mode 100644 index 0000000000..d741b50c16 --- /dev/null +++ b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zip 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 Binary files differindex 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 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 Binary files differdeleted file mode 100644 index d317bccd1e..0000000000 --- a/catalog-be/src/test/resources/config/mysql-type-empty-nodes.zip +++ /dev/null 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 Binary files differdeleted file mode 100644 index 09999faed5..0000000000 --- a/catalog-be/src/test/resources/config/mysql-type-no-nodes.zip +++ /dev/null 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 Binary files differdeleted file mode 100644 index fa1319f311..0000000000 --- a/catalog-be/src/test/resources/config/mysql-type-no-version.zip +++ /dev/null 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 Binary files differdeleted file mode 100644 index b4b1946940..0000000000 --- a/catalog-be/src/test/resources/config/mysql-type-only-yaml.zip +++ /dev/null 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 Binary files differdeleted file mode 100644 index d689b668a1..0000000000 --- a/catalog-be/src/test/resources/config/mysql-type-with-scripts.zip +++ /dev/null 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 Binary files differdeleted file mode 100644 index b4b1946940..0000000000 --- a/catalog-be/src/test/resources/config/mysql-type.zip +++ /dev/null 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> @@ -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 Binary files differdeleted 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 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8e02f49b7b..0000000000 --- a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png +++ /dev/null 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> |