diff options
Diffstat (limited to 'asdc-tests/src/test/resources/CI/importResource')
57 files changed, 1073 insertions, 0 deletions
diff --git a/asdc-tests/src/test/resources/CI/importResource/DBMS/DBMS.json b/asdc-tests/src/test/resources/CI/importResource/DBMS/DBMS.json new file mode 100644 index 0000000000..790a30ab42 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/DBMS/DBMS.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-DBMS.yml", + "contactId": "jh0003", + "name": "DBMS", + "description": "Represents a typical relational, SQL Database Management System software component or service.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Abstract" + } + ] + } +], + "tags": [ + "DBMS" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/DBMS/normative-types-new-DBMS.yml b/asdc-tests/src/test/resources/CI/importResource/DBMS/normative-types-new-DBMS.yml new file mode 100644 index 0000000000..28919d38e4 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/DBMS/normative-types-new-DBMS.yml @@ -0,0 +1,17 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.DBMS: + derived_from: tosca.nodes.SoftwareComponent + properties: + root_password: + type: string + required: false + description: the optional root password for the DBMS service + port: + type: integer + required: false + description: the port the DBMS service will listen to for data and requests + capabilities: + host: + type: tosca.capabilities.Container + valid_source_types: [ tosca.nodes.Database ] diff --git a/asdc-tests/src/test/resources/CI/importResource/DBMS/normative-types-new-DBMS.zip b/asdc-tests/src/test/resources/CI/importResource/DBMS/normative-types-new-DBMS.zip Binary files differnew file mode 100644 index 0000000000..84bddbce47 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/DBMS/normative-types-new-DBMS.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/blockStorage/blockStorage.json b/asdc-tests/src/test/resources/CI/importResource/blockStorage/blockStorage.json new file mode 100644 index 0000000000..72ef5c009b --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/blockStorage/blockStorage.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-blockStorage.yml", + "contactId": "jh0003", + "name": "BlockStorage", + "description": "Represents a server-local block storage device (i.e., not shared) offering evenly sized blocks of data from which raw storage volumes can be created.", + "resourceIconPath": "objectStorage", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Infrastructure" + } + ] + } +], + "tags": [ + "BlockStorage" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/blockStorage/normative-types-new-blockStorage.yml b/asdc-tests/src/test/resources/CI/importResource/blockStorage/normative-types-new-blockStorage.yml new file mode 100644 index 0000000000..a82965215f --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/blockStorage/normative-types-new-blockStorage.yml @@ -0,0 +1,18 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.BlockStorage: + derived_from: tosca.nodes.Root + properties: + size: + type: scalar-unit.size + constraints: + - greater_or_equal: 1 MB + volume_id: + type: string + required: false + snapshot_id: + type: string + required: false + capabilities: + attachment: + type: tosca.capabilities.Attachment diff --git a/asdc-tests/src/test/resources/CI/importResource/blockStorage/normative-types-new-blockStorage.zip b/asdc-tests/src/test/resources/CI/importResource/blockStorage/normative-types-new-blockStorage.zip Binary files differnew file mode 100644 index 0000000000..f690e9d8ea --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/blockStorage/normative-types-new-blockStorage.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/capabilityTypes.yml b/asdc-tests/src/test/resources/CI/importResource/capabilityTypes.yml new file mode 100644 index 0000000000..58d661b17e --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/capabilityTypes.yml @@ -0,0 +1,148 @@ +tosca.capabilities.Root: + description: The TOSCA root Capability Type all other TOSCA base Capability Types derive from +tosca.capabilities.Attachment: + derived_from: tosca.capabilities.Root +tosca.capabilities.Node: + derived_from: tosca.capabilities.Root +tosca.capabilities.Container: + derived_from: tosca.capabilities.Root + properties: + num_cpus: + type: integer + required: false + constraints: + - greater_or_equal: 1 + cpu_frequency: + type: scalar-unit.frequency + required: false + constraints: + - greater_or_equal: 0.1 GHz + disk_size: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 MB + mem_size: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 MB +tosca.capabilities.Endpoint: + derived_from: tosca.capabilities.Root + properties: + protocol: + type: string + default: tcp + port: + type: PortDef + required: false + secure: + type: boolean + default: false + url_path: + type: string + required: false + port_name: + type: string + required: false + network_name: + type: string + required: false + default: PRIVATE + initiator: + type: string + default: source + constraints: + - valid_values: [ source, target, peer ] + ports: + type: map + required: false + constraints: + - min_length: 1 + entry_schema: + type: PortSpec + attributes: + ip_address: + type: string +tosca.capabilities.DatabaseEndpoint: + derived_from: tosca.capabilities.Endpoint +tosca.capabilities.Endpoint.Public: + derived_from: tosca.capabilities.Endpoint + properties: + # Change the default network_name to use the first public network found + network_name: PUBLIC + floating: + description: > + indicates that the public address should be allocated from a pool of floating IPs that are associated with the network. + type: boolean + default: false + status: experimental + dns_name: + description: The optional name to register with DNS + type: string + required: false + status: experimental +tosca.capabilities.Endpoint.Admin: + derived_from: tosca.capabilities.Endpoint + # Change Endpoint secure indicator to true from its default of false + properties: + secure: true +tosca.capabilities.Endpoint.Database: + derived_from: tosca.capabilities.Endpoint +tosca.capabilities.OperatingSystem: + derived_from: tosca.capabilities.Root + properties: + architecture: + type: string + required: false + type: + type: string + required: false + distribution: + type: string + required: false + version: + type: version + required: false +tosca.capabilities.Scalable: + derived_from: tosca.capabilities.Root + properties: + min_instances: + type: integer + default: 1 + max_instances: + type: integer + default: 1 + default_instances: + type: integer +tosca.capabilities.network.Bindable: + derived_from: tosca.capabilities.Node + + +tosca.capabilities.Container.Docker: + derived_from: tosca.capabilities.Container + properties: + version: + type: list + required: false + entry_schema: version + publish_all: + type: boolean + default: false + required: false + publish_ports: + type: list + entry_schema: PortSpec + required: false + expose_ports: + type: list + entry_schema: PortSpec + required: false + volumes: + type: list + entry_schema: string + required: false +tosca.capabilities.network.Linkable: + derived_from: tosca.capabilities.Root + + diff --git a/asdc-tests/src/test/resources/CI/importResource/capabilityTypes.zip b/asdc-tests/src/test/resources/CI/importResource/capabilityTypes.zip Binary files differnew file mode 100644 index 0000000000..50b66e61be --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/capabilityTypes.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/capabilityTypesCi.zip b/asdc-tests/src/test/resources/CI/importResource/capabilityTypesCi.zip Binary files differnew file mode 100644 index 0000000000..550cd756f4 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/capabilityTypesCi.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/categoryTypes.yml b/asdc-tests/src/test/resources/CI/importResource/categoryTypes.yml new file mode 100644 index 0000000000..d88a326859 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/categoryTypes.yml @@ -0,0 +1,89 @@ +services: + Mobility: + name: "Mobility" + icons: ['mobility'] + Network_L1_3: + name: "Network L1-3" + icons: ['network_l_1-3'] + Network_L4: + name: "Network L4+" + icons: ['network_l_4'] + VoIP_Call_Control: + name: "VoIP Call Control" + icons: ['call_controll'] +resources: + NetworkLayer23: + name: "Network L2-3" + subcategories: + Router: + name: "Router" + icons: ['router','vRouter'] + Gateway: + name: "Gateway" + icons: ['gateway'] + WAN_Connectors: + name: "WAN Connectors" + icons: ['network','connector','port'] + LAN_Connectors: + name: "LAN Connectors" + icons: ['network','connector','port'] + Infrastructure: + name: "Infrastructure" + icons: ['ucpe'] + NetworkLayer4: + name: "Network L4+" + subcategories: + Common_Network_Resources: + name: "Common Network Resources" + icons: ['network'] + ApplicationLayer4: + name: "Application L4+" + subcategories: + Border_Element: + name: "Border Element" + icons: ['borderElement'] + Application_Server: + name: "Application Server" + icons: ['applicationServer'] + Web_Server: + name: "Web Server" + icons: ['applicationServer'] + Call_Control: + name: "Call Control" + icons: ['call_controll'] + Media_Servers: + name: "Media Servers" + icons: ['applicationServer'] + Load_Balancer: + name: "Load Balancer" + icons: ['loadBalancer'] + Database: + name: "Database" + icons: ['database'] + Firewall: + name: "Firewall" + icons: ['firewall'] + Generic: + name: "Generic" + subcategories: + Infrastructure: + name: "Infrastructure" + icons: ['connector'] + Abstract: + name: "Abstract" + icons: ['objectStorage', 'compute'] + Network_Elements: + name: "Network Elements" + icons: ['network', 'connector'] + Database: + name: "Database" + icons: ['database'] + NetworkConnectivity: + name: "Network Connectivity" + subcategories: + ConnectionPoints: + name: "Connection Points" + icons: ['cp'] + VirtualLinks: + name: "Virtual Links" + icons: ['vl']
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/categoryTypes.zip b/asdc-tests/src/test/resources/CI/importResource/categoryTypes.zip Binary files differnew file mode 100644 index 0000000000..29984b8a06 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/categoryTypes.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/compute/compute.json b/asdc-tests/src/test/resources/CI/importResource/compute/compute.json new file mode 100644 index 0000000000..48775d0f14 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/compute/compute.json @@ -0,0 +1,24 @@ +{ + "payloadName": "normative-types-new-compute.yml", + "contactId": "jh0003", + "name": "Compute", + "description": "Represents a real or virtual machine or server. Information specified on the Compute + node will be used to find the machine that fits the given requirements in the cloud + available machines. If no sizing information are specified the cloud provider default + machine will be used. It is strongly recommended to specify the required CPUs and memory + at least.", + "resourceIconPath": "compute", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Infrastructure" + } + ] + } +], + "tags": [ + "Compute" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/compute/normative-types-new-compute.yml b/asdc-tests/src/test/resources/CI/importResource/compute/normative-types-new-compute.yml new file mode 100644 index 0000000000..00b07fb908 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/compute/normative-types-new-compute.yml @@ -0,0 +1,35 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.Compute: + derived_from: tosca.nodes.Root + attributes: + private_address: + type: string + public_address: + type: string + networks: + type: map + entry_schema: + type: tosca.datatypes.network.NetworkInfo + ports: + type: map + entry_schema: + type: tosca.datatypes.network.PortInfo + requirements: + - local_storage: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: [0, UNBOUNDED] + capabilities: + host: + type: tosca.capabilities.Container + valid_source_types: [tosca.nodes.SoftwareComponent] + endpoint : + type: tosca.capabilities.Endpoint.Admin + os: + type: tosca.capabilities.OperatingSystem + scalable: + type: tosca.capabilities.Scalable + binding: + type: tosca.capabilities.network.Bindable diff --git a/asdc-tests/src/test/resources/CI/importResource/compute/normative-types-new-compute.zip b/asdc-tests/src/test/resources/CI/importResource/compute/normative-types-new-compute.zip Binary files differnew file mode 100644 index 0000000000..f7a7c31bf0 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/compute/normative-types-new-compute.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/containerApplication/containerApplication.json b/asdc-tests/src/test/resources/CI/importResource/containerApplication/containerApplication.json new file mode 100644 index 0000000000..1713e56cb4 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/containerApplication/containerApplication.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-containerApplication.yml", + "contactId": "jh0003", + "name": "Application", + "description": "Represents an application that requires Container-level virtualization technology.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Abstract" + } + ] + } +], + "tags": [ + "Application" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/containerApplication/normative-types-new-containerApplication.yml b/asdc-tests/src/test/resources/CI/importResource/containerApplication/normative-types-new-containerApplication.yml new file mode 100644 index 0000000000..8813f26e04 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/containerApplication/normative-types-new-containerApplication.yml @@ -0,0 +1,9 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.Container.Application: + derived_from: tosca.nodes.Root + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.Container + relationship: tosca.relationships.HostedOn diff --git a/asdc-tests/src/test/resources/CI/importResource/containerApplication/normative-types-new-containerApplication.zip b/asdc-tests/src/test/resources/CI/importResource/containerApplication/normative-types-new-containerApplication.zip Binary files differnew file mode 100644 index 0000000000..1da3bc1707 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/containerApplication/normative-types-new-containerApplication.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/containerRuntime/containerRuntime.json b/asdc-tests/src/test/resources/CI/importResource/containerRuntime/containerRuntime.json new file mode 100644 index 0000000000..233bf39bce --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/containerRuntime/containerRuntime.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-containerRuntime.yml", + "contactId": "jh0003", + "name": "Runtime", + "description": "Represents operating system-level virtualization technology used to run multiple application services on a single Compute host.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Abstract" + } + ] + } +], + "tags": [ + "Runtime" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/containerRuntime/normative-types-new-containerRuntime.yml b/asdc-tests/src/test/resources/CI/importResource/containerRuntime/normative-types-new-containerRuntime.yml new file mode 100644 index 0000000000..86a10a0185 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/containerRuntime/normative-types-new-containerRuntime.yml @@ -0,0 +1,9 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.Container.Runtime: + derived_from: tosca.nodes.SoftwareComponent + capabilities: + host: + type: tosca.capabilities.Container + scalable: + type: tosca.capabilities.Scalable diff --git a/asdc-tests/src/test/resources/CI/importResource/containerRuntime/normative-types-new-containerRuntime.zip b/asdc-tests/src/test/resources/CI/importResource/containerRuntime/normative-types-new-containerRuntime.zip Binary files differnew file mode 100644 index 0000000000..5140472147 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/containerRuntime/normative-types-new-containerRuntime.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/database/database.json b/asdc-tests/src/test/resources/CI/importResource/database/database.json new file mode 100644 index 0000000000..0f09e278c0 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/database/database.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-database.yml", + "contactId": "jh0003", + "name": "Database", + "description": "Represents a logical database that can be managed and hosted by a DBMS node.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Database" + } + ] + } +], + "tags": [ + "Database" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/database/normative-types-new-database.yml b/asdc-tests/src/test/resources/CI/importResource/database/normative-types-new-database.yml new file mode 100644 index 0000000000..5166150c73 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/database/normative-types-new-database.yml @@ -0,0 +1,27 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.Database: + derived_from: tosca.nodes.Root + properties: + name: + type: string + description: the logical name of the database + port: + type: integer + description: the port the underlying database service will listen to for data + user: + type: string + description: the optional user account name for DB administration + required: false + password: + type: string + description: the optional password for the DB user account + required: false + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.DBMS + relationship: tosca.relationships.HostedOn + capabilities: + database_endpoint: + type: tosca.capabilities.Endpoint.Database diff --git a/asdc-tests/src/test/resources/CI/importResource/database/normative-types-new-database.zip b/asdc-tests/src/test/resources/CI/importResource/database/normative-types-new-database.zip Binary files differnew file mode 100644 index 0000000000..9e8b178554 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/database/normative-types-new-database.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/deleteNormative.sh b/asdc-tests/src/test/resources/CI/importResource/deleteNormative.sh new file mode 100644 index 0000000000..fb70f71418 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/deleteNormative.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +function usage { + echo "Usage: $0 <hostIp> <hostPort>" +} + +function deleteResource() { + + ELEMENT_NAME=$1 + echo -e "############### Removing Element ${ELEMENT_NAME} Start ######################" + http_code=$(curl -s -o /dev/null -w "%{http_code}" -X "DELETE" -H "USER_ID: jh0003" ${HOST_IP}:${HOST_PORT}/sdc2/rest/v1/catalog/resources/res_${ELEMENT_NAME}".1.0") + if [ ${http_code} -eq 204 ]; then + echo -e "\n############### Removing Element ${ELEMENT_NAME} status code:${http_code} End #######\n\n\n" + elif [ ${http_code} -eq 500 ]; then + echo -e "\n############### Failed to remove Element ${ELEMENT_NAME} status code:${http_code} End #######\n\n\n" + exit 1 + elif [ ${http_code} -eq 404 ]; then + echo -e "\n############### Element ${ELEMENT_NAME} not found status code:${http_code} End #######\n\n\n" + else + echo -e "\n############### Failed to remove Element ${ELEMENT_NAME} status code:${http_code} End #######\n\n\n" + exit 1 + fi +} +if [ $# -lt 2 ] +then + usage + exit 2 +fi + +HOST_IP=$1 +HOST_PORT=$2 + +deleteResource "tosca.nodes.Root" +deleteResource "tosca.nodes.Compute" +deleteResource "tosca.nodes.SoftwareComponent" +deleteResource "tosca.nodes.WebServer" +deleteResource "tosca.nodes.WebApplication" +deleteResource "tosca.nodes.DBMS" +deleteResource "tosca.nodes.Database" +deleteResource "tosca.nodes.ObjectStorage" +deleteResource "tosca.nodes.BlockStorage" +deleteResource "tosca.nodes.Container.Runtime" +deleteResource "tosca.nodes.Container.Application" +deleteResource "tosca.nodes.LoadBalancer" +deleteResource "tosca.nodes.network.Port" +deleteResource "tosca.nodes.network.Network" + +exit 0 + diff --git a/asdc-tests/src/test/resources/CI/importResource/importNormative.sh b/asdc-tests/src/test/resources/CI/importResource/importNormative.sh new file mode 100644 index 0000000000..7c420ceb43 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/importNormative.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +function usage { + echo "Usage: $0 <hostIp> <hostPort> <userId>" +} + +function addResource() { + + ELEMENT_NAME=$1 + echo -e "###################### Adding Element ${ELEMENT_NAME} Start ######################" + CURRENT_ZIP_FILE=./${ELEMENT_NAME}/normative-types-new-${ELEMENT_NAME}.zip + CURRENT_JSON_FILE=./${ELEMENT_NAME}/${ELEMENT_NAME}.json + sed -i 's/"userId": ".*",/"userId": "'${ATT_UID}'",/' ${CURRENT_JSON_FILE} + JSON_CONTENT=`paste -s ${CURRENT_JSON_FILE}` + http_code=$(curl -s -o /dev/null -w "%{http_code}" -v -F resourceMetadata="${JSON_CONTENT}" -F resourceZip=@${CURRENT_ZIP_FILE} -H USER_ID:${ATT_UID} ${HOST_IP}:${HOST_PORT}/sdc2/rest/v1/catalog/upload/multipart) + if [ ${http_code} -eq 201 ]; then + echo -e "\n###################### Adding Element ${ELEMENT_NAME} End ########################\n\n\n" + elif [ ${http_code} -eq 409 ]; then + echo -e "\n###################### Already exists Element ${ELEMENT_NAME} status code:${http_code} End ########################\n\n\n" + elif [ ${http_code} -eq 500 ]; then + echo -e "\n###################### Failed to add Element ${ELEMENT_NAME} status code:${http_code} End ########################\n\n\n" + exit 1 + fi +} +if [ $# -lt 3 ] +then + usage + exit 2 +fi + +HOST_IP=$1 +HOST_PORT=$2 +ATT_UID=$3 + +#Add The CapabilityTypes +http_code=$(curl -s -o /dev/null -w "%{http_code}" -v -F capabilityTypeZip=@capabilityTypes.zip -H "USER_ID: jh0003" ${HOST_IP}:${HOST_PORT}/sdc2/rest/v1/catalog/uploadType/capability) +if [ ${http_code} -eq 201 ]; then + echo -e "\n###################### Adding The CapabilityTypes status code:${http_code} End ########################\n\n\n" +elif [ ${http_code} -eq 500 ]; then + echo -e "\n###################### Failed to add CapabilityTypes status code:${http_code} End ########################\n\n\n" + exit 1 +else + echo -e "\n###################### Failed to add CapabilityTypes status code:${http_code} End ########################\n\n\n" + exit 1 +fi +#Add The InterfaceLifecycleTypes +http_code=$(curl -s -o /dev/null -w "%{http_code}" -v -F interfaceLifecycleTypeZip=@interfaceLifecycleTypes.zip -H "USER_ID: jh0003" ${HOST_IP}:${HOST_PORT}/sdc2/rest/v1/catalog/uploadType/interfaceLifecycle) +if [ ${http_code} -eq 201 ]; then + echo -e "\n###################### Adding The InterfaceLifecycleTypes status code:${http_code} End ########################\n\n\n" +elif [ ${http_code} -eq 409 ]; then + echo -e "\n###################### Already exists InterfaceLifecycleTypes status code:${http_code} End ########################\n\n\n" +elif [ ${http_code} -eq 500 ]; then + echo -e "\n###################### Failed to add InterfaceLifecycleTypes status code:${http_code} End ########################\n\n\n" + exit 1 +else + echo -e "\n###################### Failed to add InterfaceLifecycleTypes status code:${http_code} End ########################\n\n\n" + exit 1 +fi +#Add The CategoryTypes +http_code=$(curl -s -o /dev/null -w "%{http_code}" -v -F categoriesZip=@categoryTypes.zip -H "USER_ID: jh0003" ${HOST_IP}:${HOST_PORT}/sdc2/rest/v1/catalog/uploadType/categories) +if [ ${http_code} -eq 201 ]; then + echo -e "\n###################### Adding The CategoryTypes status code:${http_code} End ########################\n\n\n" +elif [ ${http_code} -eq 409 ]; then + echo -e "\n###################### Already exists CategoryTypes status code:${http_code} End ########################\n\n\n" +elif [ ${http_code} -eq 500 ]; then + echo -e "\n###################### Failed to add CategoryTypes status code:${http_code} End ########################\n\n\n" + exit 1 +else + echo -e "\n###################### Failed to add CategoryTypes status code:${http_code} End ########################\n\n\n" + exit 1 +fi + +addResource "root" +addResource "compute" +addResource "softwareComponent" +addResource "webServer" +addResource "webApplication" +addResource "DBMS" +addResource "database" +addResource "objectStorage" +addResource "blockStorage" +addResource "containerRuntime" +addResource "containerApplication" +addResource "loadBalancer" +addResource "port" +addResource "network" + +exit 0 + diff --git a/asdc-tests/src/test/resources/CI/importResource/interfaceLifecycleTypes.yml b/asdc-tests/src/test/resources/CI/importResource/interfaceLifecycleTypes.yml new file mode 100644 index 0000000000..1b67118934 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/interfaceLifecycleTypes.yml @@ -0,0 +1,11 @@ +tosca.interfaces.node.lifecycle.Standard: + create: + description: Standard lifecycle create operation. + configure: + description: Standard lifecycle configure operation. + start: + description: Standard lifecycle start operation. + stop: + description: Standard lifecycle stop operation. + delete: + description: Standard lifecycle delete operation.
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/interfaceLifecycleTypes.zip b/asdc-tests/src/test/resources/CI/importResource/interfaceLifecycleTypes.zip Binary files differnew file mode 100644 index 0000000000..9bcf93ab7d --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/interfaceLifecycleTypes.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/loadBalancer/loadBalancer.json b/asdc-tests/src/test/resources/CI/importResource/loadBalancer/loadBalancer.json new file mode 100644 index 0000000000..fbddc18c07 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/loadBalancer/loadBalancer.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-loadBalancer.yml", + "contactId": "jh0003", + "name": "LoadBalancer", + "description": "Represents logical function that be used in conjunction with a Floating Address to distribute an application’s traffic (load) across a number of instances of the application (e.g., for a clustered or scaled application).", + "resourceIconPath": "loadBalancer", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Infrastructure" + } + ] + } +], + "tags": [ + "LoadBalancer" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/loadBalancer/normative-types-new-loadBalancer.yml b/asdc-tests/src/test/resources/CI/importResource/loadBalancer/normative-types-new-loadBalancer.yml new file mode 100644 index 0000000000..86857656ad --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/loadBalancer/normative-types-new-loadBalancer.yml @@ -0,0 +1,18 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.LoadBalancer: + derived_from: tosca.nodes.Root + properties: + # TBD + algorithm : + type: string + required: false + status: experimental + capabilities : + client: + type: tosca.capabilities.Endpoint.Public + description: the Floating (IP) client’s on the public network can connect to + requirements: + - application: + capability: tosca.capabilities.Endpoint + relationship: tosca.relationships.RoutesTo diff --git a/asdc-tests/src/test/resources/CI/importResource/loadBalancer/normative-types-new-loadBalancer.zip b/asdc-tests/src/test/resources/CI/importResource/loadBalancer/normative-types-new-loadBalancer.zip Binary files differnew file mode 100644 index 0000000000..fefed6f0f4 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/loadBalancer/normative-types-new-loadBalancer.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/network/network.json b/asdc-tests/src/test/resources/CI/importResource/network/network.json new file mode 100644 index 0000000000..cf1eb03ff0 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/network/network.json @@ -0,0 +1,21 @@ +{ + "payloadName": "normative-types-new-network.yml", + "contactId": "jh0003", + "name": "Network", + "description": "Represents a simple , logical network service.", + "resourceIconPath": "network", + "resourceType": "VL", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Infrastructure" + } + ] + } +], + "tags": [ + "Network" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/network/normative-types-new-network.yml b/asdc-tests/src/test/resources/CI/importResource/network/normative-types-new-network.yml new file mode 100644 index 0000000000..e1f9d3db70 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/network/normative-types-new-network.yml @@ -0,0 +1,41 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + org.openecomp.resource.vl.Network: + derived_from: tosca.nodes.Root + properties: + ip_version: + type: integer + required: false + default: 4 + constraints: + - valid_values: [ 4, 6 ] + cidr: + type: string + required: false + start_ip: + type: string + required: false + end_ip: + type: string + required: false + gateway_ip: + type: string + required: false + network_name: + type: string + required: false + network_id: + type: string + required: false + segmentation_id: + type: string + required: false + network_type: + type: string + required: false + physical_network: + type: string + required: false + capabilities: + link: + type: tosca.capabilities.network.Linkable diff --git a/asdc-tests/src/test/resources/CI/importResource/network/normative-types-new-network.zip b/asdc-tests/src/test/resources/CI/importResource/network/normative-types-new-network.zip Binary files differnew file mode 100644 index 0000000000..b10daebb2b --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/network/normative-types-new-network.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/normative-port/normative-types-new-port.yml b/asdc-tests/src/test/resources/CI/importResource/normative-port/normative-types-new-port.yml new file mode 100644 index 0000000000..2d1540b27b --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/normative-port/normative-types-new-port.yml @@ -0,0 +1,31 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.network.Port: + derived_from: tosca.nodes.Root + properties: + ip_address: + type: string + required: false + order: + type: integer + required: true + default: 0 + constraints: + - greater_or_equal: 0 + is_default: + type: boolean + required: false + default: false + ip_range_start: + type: string + required: false + ip_range_end: + type: string + required: false + requirements: + - link: + capability: tosca.capabilities.network.Linkable + relationship: tosca.relationships.network.LinksTo + - binding: + capability: tosca.capabilities.network.Bindable + relationship: tosca.relationships.network.BindsTo diff --git a/asdc-tests/src/test/resources/CI/importResource/normative-port/normative-types-new-port.zip b/asdc-tests/src/test/resources/CI/importResource/normative-port/normative-types-new-port.zip Binary files differnew file mode 100644 index 0000000000..f6903ea8ee --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/normative-port/normative-types-new-port.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/normative-port/port.json b/asdc-tests/src/test/resources/CI/importResource/normative-port/port.json new file mode 100644 index 0000000000..7b62d7ff0a --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/normative-port/port.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-port.yml", + "contactId": "jh0003", + "name": "Port", + "description": "Represents a logical entity that associates between Compute and Network normative types.", + "resourceIconPath": "port", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Network Elements" + } + ] + } +], + "tags": [ + "Port" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/notmative-network/network.json b/asdc-tests/src/test/resources/CI/importResource/notmative-network/network.json new file mode 100644 index 0000000000..636499fba4 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/notmative-network/network.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-network.yml", + "contactId": "jh0003", + "name": "Network", + "description": "Represents a simple , logical network service.", + "resourceIconPath": "network", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Infrastructure" + } + ] + } +], + "tags": [ + "Network" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/notmative-network/normative-types-new-network.yml b/asdc-tests/src/test/resources/CI/importResource/notmative-network/normative-types-new-network.yml new file mode 100644 index 0000000000..e92e87716f --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/notmative-network/normative-types-new-network.yml @@ -0,0 +1,41 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.network.Network: + derived_from: tosca.nodes.Root + properties: + ip_version: + type: integer + required: false + default: 4 + constraints: + - valid_values: [ 4, 6 ] + cidr: + type: string + required: false + start_ip: + type: string + required: false + end_ip: + type: string + required: false + gateway_ip: + type: string + required: false + network_name: + type: string + required: false + network_id: + type: string + required: false + segmentation_id: + type: string + required: false + network_type: + type: string + required: false + physical_network: + type: string + required: false + capabilities: + link: + type: tosca.capabilities.network.Linkable diff --git a/asdc-tests/src/test/resources/CI/importResource/notmative-network/normative-types-new-network.zip b/asdc-tests/src/test/resources/CI/importResource/notmative-network/normative-types-new-network.zip Binary files differnew file mode 100644 index 0000000000..79c5fb2573 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/notmative-network/normative-types-new-network.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/objectStorage/normative-types-new-objectStorage.yml b/asdc-tests/src/test/resources/CI/importResource/objectStorage/normative-types-new-objectStorage.yml new file mode 100644 index 0000000000..9c338c3400 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/objectStorage/normative-types-new-objectStorage.yml @@ -0,0 +1,18 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.ObjectStorage: + derived_from: tosca.nodes.Root + properties: + name: + type: string + size: + type: scalar-unit.size + constraints: + - greater_or_equal: 0 GB + maxsize: + type: scalar-unit.size + constraints: + - greater_or_equal: 0 GB + capabilities: + storage_endpoint: + type: tosca.capabilities.Endpoint diff --git a/asdc-tests/src/test/resources/CI/importResource/objectStorage/normative-types-new-objectStorage.zip b/asdc-tests/src/test/resources/CI/importResource/objectStorage/normative-types-new-objectStorage.zip Binary files differnew file mode 100644 index 0000000000..b9046c1a66 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/objectStorage/normative-types-new-objectStorage.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/objectStorage/objectStorage.json b/asdc-tests/src/test/resources/CI/importResource/objectStorage/objectStorage.json new file mode 100644 index 0000000000..247b468952 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/objectStorage/objectStorage.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-objectStorage.yml", + "contactId": "jh0003", + "name": "ObjectStorage", + "description": "Represents storage that provides the ability to store data as objects (or BLOBs of data) without consideration for the underlying filesystem or devices.", + "resourceIconPath": "objectStorage", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Infrastructure" + } + ] + } +], + "tags": [ + "ObjectStorage" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/port/normative-types-new-port.yml b/asdc-tests/src/test/resources/CI/importResource/port/normative-types-new-port.yml new file mode 100644 index 0000000000..7cd71360f2 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/port/normative-types-new-port.yml @@ -0,0 +1,31 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + org.openecomp.resource.cp.Port: + derived_from: tosca.nodes.Root + properties: + ip_address: + type: string + required: false + order: + type: integer + required: true + default: 0 + constraints: + - greater_or_equal: 0 + is_default: + type: boolean + required: false + default: false + ip_range_start: + type: string + required: false + ip_range_end: + type: string + required: false + requirements: + - link: + capability: tosca.capabilities.network.Linkable + relationship: tosca.relationships.network.LinksTo + - binding: + capability: tosca.capabilities.network.Bindable + relationship: tosca.relationships.network.BindsTo diff --git a/asdc-tests/src/test/resources/CI/importResource/port/normative-types-new-port.zip b/asdc-tests/src/test/resources/CI/importResource/port/normative-types-new-port.zip Binary files differnew file mode 100644 index 0000000000..e1688a7304 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/port/normative-types-new-port.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/port/port.json b/asdc-tests/src/test/resources/CI/importResource/port/port.json new file mode 100644 index 0000000000..38106903e3 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/port/port.json @@ -0,0 +1,21 @@ +{ + "payloadName": "normative-types-new-port.yml", + "contactId": "jh0003", + "name": "Port", + "description": "Represents a logical entity that associates between Compute and Network normative types.", + "resourceIconPath": "port", + "resourceType": "CP", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Network Elements" + } + ] + } +], + "tags": [ + "Port" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/root/normative-types-new-root.yml b/asdc-tests/src/test/resources/CI/importResource/root/normative-types-new-root.yml new file mode 100644 index 0000000000..e9b1de9518 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/root/normative-types-new-root.yml @@ -0,0 +1,23 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.Root: + description: The TOSCA Node Type all other TOSCA base Node Types derive from + attributes: + tosca_id: + type: string + tosca_name: + type: string + state: + type: string + capabilities: + feature: + type: tosca.capabilities.Node + requirements: + - dependency : + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + occurrences: [ 0, UNBOUNDED ] + interfaces: + Standard: + type: tosca.interfaces.node.lifecycle.Standard diff --git a/asdc-tests/src/test/resources/CI/importResource/root/normative-types-new-root.zip b/asdc-tests/src/test/resources/CI/importResource/root/normative-types-new-root.zip Binary files differnew file mode 100644 index 0000000000..07583e89f5 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/root/normative-types-new-root.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/root/root.json b/asdc-tests/src/test/resources/CI/importResource/root/root.json new file mode 100644 index 0000000000..53f709bdca --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/root/root.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-root.yml", + "contactId": "jh0003", + "name": "Root", + "description": "Represents a generic software component that can be managed and run by a Compute Node Type.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Abstract" + } + ] + } +], + "tags": [ + "Root" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/softwareComponent/normative-types-new-softwareComponent.yml b/asdc-tests/src/test/resources/CI/importResource/softwareComponent/normative-types-new-softwareComponent.yml new file mode 100644 index 0000000000..a154632c74 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/softwareComponent/normative-types-new-softwareComponent.yml @@ -0,0 +1,17 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.SoftwareComponent: + derived_from: tosca.nodes.Root + properties: + # domain-specific software component version + component_version: + type: version + required: false + admin_credential: + type: tosca.datatypes.Credential + required: false + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.Compute + relationship: tosca.relationships.HostedOn diff --git a/asdc-tests/src/test/resources/CI/importResource/softwareComponent/normative-types-new-softwareComponent.zip b/asdc-tests/src/test/resources/CI/importResource/softwareComponent/normative-types-new-softwareComponent.zip Binary files differnew file mode 100644 index 0000000000..ea61eec01f --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/softwareComponent/normative-types-new-softwareComponent.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/softwareComponent/softwareComponent.json b/asdc-tests/src/test/resources/CI/importResource/softwareComponent/softwareComponent.json new file mode 100644 index 0000000000..43012d7adc --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/softwareComponent/softwareComponent.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-softwareComponent.yml", + "contactId": "jh0003", + "name": "SoftwareComponent", + "description": "Represents a generic software component that can be managed and run by a Compute Node Type.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Abstract" + } + ] + } +], + "tags": [ + "SoftwareComponent" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/webApplication/normative-types-new-webApplication.yml b/asdc-tests/src/test/resources/CI/importResource/webApplication/normative-types-new-webApplication.yml new file mode 100644 index 0000000000..5f9a775fe0 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/webApplication/normative-types-new-webApplication.yml @@ -0,0 +1,15 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.WebApplication: + derived_from: tosca.nodes.Root + properties: + context_root: + type: string + capabilities: + app_endpoint: + type: tosca.capabilities.Endpoint + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.WebServer + relationship: tosca.relationships.HostedOn diff --git a/asdc-tests/src/test/resources/CI/importResource/webApplication/normative-types-new-webApplication.zip b/asdc-tests/src/test/resources/CI/importResource/webApplication/normative-types-new-webApplication.zip Binary files differnew file mode 100644 index 0000000000..516d9d9feb --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/webApplication/normative-types-new-webApplication.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/webApplication/webApplication.json b/asdc-tests/src/test/resources/CI/importResource/webApplication/webApplication.json new file mode 100644 index 0000000000..fc25c6966b --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/webApplication/webApplication.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-webApplication.yml", + "contactId": "jh0003", + "name": "WebApplication", + "description": "Represents a software application that can be managed and run by a Web Server node. Specific types of web applications such as Java, etc. could be derived from this type.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Abstract" + } + ] + } +], + "tags": [ + "WebApplication" + ] +}
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/webServer/normative-types-new-webServer.yml b/asdc-tests/src/test/resources/CI/importResource/webServer/normative-types-new-webServer.yml new file mode 100644 index 0000000000..7c957b5247 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/webServer/normative-types-new-webServer.yml @@ -0,0 +1,11 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +node_types: + tosca.nodes.WebServer: + derived_from: tosca.nodes.SoftwareComponent + capabilities: + # Private, layer 4 endpoints + data_endpoint: tosca.capabilities.Endpoint + admin_endpoint: tosca.capabilities.Endpoint.Admin + host: + type: tosca.capabilities.Container + valid_source_types: [ tosca.nodes.WebApplication ]
\ No newline at end of file diff --git a/asdc-tests/src/test/resources/CI/importResource/webServer/normative-types-new-webServer.zip b/asdc-tests/src/test/resources/CI/importResource/webServer/normative-types-new-webServer.zip Binary files differnew file mode 100644 index 0000000000..a88761fa5f --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/webServer/normative-types-new-webServer.zip diff --git a/asdc-tests/src/test/resources/CI/importResource/webServer/webServer.json b/asdc-tests/src/test/resources/CI/importResource/webServer/webServer.json new file mode 100644 index 0000000000..bd74fb18f8 --- /dev/null +++ b/asdc-tests/src/test/resources/CI/importResource/webServer/webServer.json @@ -0,0 +1,20 @@ +{ + "payloadName": "normative-types-new-webServer.yml", + "contactId": "jh0003", + "name": "WebServer", + "description": "Represents an abstract software component or service that is capable of hosting and providing management operations for one or more Web Application nodes.", + "resourceIconPath": "defaulticon", + "categories": [ + { + "name": "Generic", + "subcategories": [ + { + "name": "Abstract" + } + ] + } +], + "tags": [ + "WebServer" + ] +}
\ No newline at end of file |