corrections and README update 43/77743/1
authorRene Robert <rene.robert@orange.com>
Fri, 1 Feb 2019 21:00:57 +0000 (22:00 +0100)
committerRene Robert <rene.robert@orange.com>
Fri, 1 Feb 2019 21:09:52 +0000 (22:09 +0100)
Issue-ID: INT-846

Change-Id: I1537e02f31e91882c8b27b0484e72b1b1641c8a4
Signed-off-by: Rene Robert <rene.robert@orange.com>
test/postman/08_Declare_Customer_Service_Subscription_Cloud.postman_collection.json
test/postman/10_Service_Order.postman_collection.json
test/postman/README.md

index f100c33..faa53d2 100644 (file)
                        },
                        "response": []
                },
+               {
+                       "name": "check complex exists",
+                       "event": [
+                               {
+                                       "listen": "test",
+                                       "script": {
+                                               "type": "text/javascript",
+                                               "exec": [
+                                                       "var complex_found = false;",
+                                                       "if (responseCode.code === 404) {",
+                                                       "    tests[postman.getGlobalVariable(\"complex_name\")+\" does not exists in AAI\"] = true;",
+                                                       "}",
+                                                       "else {",
+                                                       "    if (responseCode.code === 200) {",
+                                                       "        tests[\"Status code is 200\"] = responseCode.code === 200;",
+                                                       "        }",
+                                                       "var jsonData = JSON.parse(responseBody);",
+                                                       "for (var i = 0; i < jsonData[\"complex\"].length; i++) { ",
+                                                       "   if (jsonData[\"complex\"][i][\"complex-name\"] === postman.getGlobalVariable(\"complex_name\")) {",
+                                                       "       complex_found = true;",
+                                                       "   }",
+                                                       "}",
+                                                       "",
+                                                       "if (complex_found === false) {",
+                                                       "    tests[postman.getGlobalVariable(\"complex_name\")+\" does not exists\"] = true;",
+                                                       "}",
+                                                       "else {",
+                                                       "    tests[postman.getGlobalVariable(\"complex_name\")+\" already exists, we skip creation\"] = true;",
+                                                       "    postman.setNextRequest(\"check cloud-region exists\");",
+                                                       "}",
+                                                       "}"
+                                               ]
+                                       }
+                               }
+                       ],
+                       "request": {
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/complexes",
+                               "method": "GET",
+                               "header": [
+                                       {
+                                               "key": "Authorization",
+                                               "value": "Basic QUFJOkFBSQ==",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-FromAppId",
+                                               "value": "AAI",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "Accept",
+                                               "value": "application/json",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-TransactionId",
+                                               "value": "808b54e3-e563-4144-a1b9-e24e2ed93d4f",
+                                               "description": ""
+                                       }
+                               ],
+                               "body": {},
+                               "description": ""
+                       },
+                       "response": []
+               },
+               {
+                       "name": "create Complex",
+                       "event": [
+                               {
+                                       "listen": "test",
+                                       "script": {
+                                               "type": "text/javascript",
+                                               "exec": [
+                                                       "tests[\"Status code is 201\"] = responseCode.code === 201;"
+                                               ]
+                                       }
+                               }
+                       ],
+                       "request": {
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/complexes/complex/{{complex_name}}",
+                               "method": "PUT",
+                               "header": [
+                                       {
+                                               "key": "Authorization",
+                                               "value": "Basic QUFJOkFBSQ==",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-FromAppId",
+                                               "value": "AAI",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "Accept",
+                                               "value": "application/json",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-TransactionId",
+                                               "value": "808b54e3-e563-4144-a1b9-e24e2ed93d4f",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "Content-Type",
+                                               "value": "application/json",
+                                               "description": ""
+                                       }
+                               ],
+                               "body": {
+                                       "mode": "raw",
+                                       "raw": "{\n    \"physical-location-id\": \"{{complex_name}}\",\n    \"data-center-code\": \"\",\n    \"complex-name\": \"{{complex_name}}\",\n    \"identity-url\": \"\",\n    \"physical-location-type\": \"\",\n    \"street1\": \"\",\n    \"street2\": \"\",\n    \"city\": \"\",\n    \"state\": \"\",\n    \"postal-code\": \"\",\n    \"country\": \"\",\n    \"region\": \"\",\n    \"latitude\": \"\",\n    \"longitude\": \"\",\n    \"elevation\": \"\",\n    \"lata\": \"\"\n}"
+                               },
+                               "description": ""
+                       },
+                       "response": []
+               },
+               {
+                       "name": "Check complex creation",
+                       "event": [
+                               {
+                                       "listen": "test",
+                                       "script": {
+                                               "type": "text/javascript",
+                                               "exec": [
+                                                       "tests[\"Status code is 200\"] = responseCode.code === 200;",
+                                                       "",
+                                                       "var jsonData = JSON.parse(responseBody);",
+                                                       "var complex_found = false;",
+                                                       "for (var i = 0; i < jsonData[\"complex\"].length; i++) { ",
+                                                       "   if (jsonData[\"complex\"][i][\"complex-name\"] === postman.getGlobalVariable(\"complex_name\")) {",
+                                                       "       complex_found = true;",
+                                                       "   }",
+                                                       "}",
+                                                       "tests[postman.getGlobalVariable(\"complex_name\")+\" found\"] = complex_found === true;",
+                                                       ""
+                                               ]
+                                       }
+                               }
+                       ],
+                       "request": {
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/complexes",
+                               "method": "GET",
+                               "header": [
+                                       {
+                                               "key": "Authorization",
+                                               "value": "Basic QUFJOkFBSQ==",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-FromAppId",
+                                               "value": "AAI",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "Accept",
+                                               "value": "application/json",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-TransactionId",
+                                               "value": "808b54e3-e563-4144-a1b9-e24e2ed93d4f",
+                                               "description": ""
+                                       }
+                               ],
+                               "body": {},
+                               "description": ""
+                       },
+                       "response": []
+               },
                {
                        "name": "check cloud-region exists",
                        "event": [
                                                "exec": [
                                                        "var region_found = false;",
                                                        "if (responseCode.code === 404) {",
-                                                       "    tests[postman.getGlobalVariable(\"cloud_region_id\")+\" does not exists in AAI\"] = true;",
+                                                       "    tests[postman.getGlobalVariable(\"onap_cloud_region_id\")+\" does not exists in AAI\"] = true;",
                                                        "}",
                                                        "else {",
                                                        "    if (responseCode.code === 200) {",
                                                        "        }",
                                                        "var jsonData = JSON.parse(responseBody);",
                                                        "for (var i = 0; i < jsonData[\"cloud-region\"].length; i++) { ",
-                                                       "   if (jsonData[\"cloud-region\"][i][\"cloud-region-id\"] === postman.getGlobalVariable(\"cloud_region_id\")) {",
+                                                       "   if (jsonData[\"cloud-region\"][i][\"cloud-region-id\"] === postman.getGlobalVariable(\"onap_cloud_region_id\")) {",
                                                        "       region_found = true;",
                                                        "   }",
                                                        "}",
                                                        "",
                                                        "if (region_found === false) {",
-                                                       "    tests[postman.getGlobalVariable(\"cloud_region_id\")+\" does not exists\"] = true;",
+                                                       "    tests[postman.getGlobalVariable(\"onap_cloud_region_id\")+\" does not exists\"] = true;",
                                                        "}",
                                                        "else {",
-                                                       "    tests[postman.getGlobalVariable(\"cloud_region_id\")+\" already exists, we skip creation\"] = true;",
+                                                       "    tests[postman.getGlobalVariable(\"onap_cloud_region_id\")+\" already exists, we skip creation\"] = true;",
                                                        "    postman.setNextRequest(\"check tenant in cloud region\");",
                                                        "}",
                                                        "}"
                                }
                        ],
                        "request": {
-                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{cloud_region_id}}",
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{onap_cloud_region_id}}",
                                "method": "PUT",
                                "header": [
                                        {
                                ],
                                "body": {
                                        "mode": "raw",
-                                       "raw": "{\r\n    \"cloud-owner\": \"{{cloud_owner_name}}\",\r\n    \"cloud-region-id\": \"{{cloud_region_id}}\",\r\n    \"cloud-type\": \"openstack\",\r\n    \"owner-defined-type\": \"\",\r\n    \"cloud-region-version\": \"\",\r\n    \"cloud-zone\": \"\",\r\n    \"complex-name\": \"\",\r\n    \"identity-url\": \"\",\r\n    \"sriov-automation\": false,\r\n    \"cloud-extra-info\": \"\"\r\n}"
+                                       "raw": "{\r\n    \"cloud-owner\": \"{{cloud_owner_name}}\",\r\n    \"cloud-region-id\": \"{{onap_cloud_region_id}}\",\r\n    \"cloud-type\": \"{{cloud_type}}\",\r\n    \"owner-defined-type\": \"\",\r\n    \"cloud-region-version\": \"{{cloud_region_version}}\",\r\n    \"cloud-zone\": \"\",\r\n    \"complex-name\": \"{{complex_name}}\",\r\n    \"identity-url\": \"WillBeUpdatedByMultiCloud\",\r\n    \"sriov-automation\": false,\r\n    \"cloud-extra-info\": \"{\\\"openstack-region-id\\\":\\\"{{openstack_region_id}}\\\"}\",\r\n    \"esr-system-info-list\": {\r\n    \t\"esr-system-info\": [\r\n            {\r\n            \"esr-system-info-id\": \"{{random_uuid}}\",\r\n            \"service-url\": \"{{keystone_url}}\",\r\n            \"user-name\": \"{{user_name}}\",\r\n            \"password\": \"{{keystone_password}}\",\r\n            \"system-type\": \"VIM\",\r\n            \"ssl-insecure\": true,\r\n            \"cloud-domain\": \"Default\",\r\n            \"default-tenant\": \"{{tenant_name}}\",\r\n            \"system-status\": \"active\"\r\n            }\r\n        ]\r\n    }\r\n}"
                                },
                                "description": ""
                        },
                                                        "var jsonData = JSON.parse(responseBody);",
                                                        "var region_found = false;",
                                                        "for (var i = 0; i < jsonData[\"cloud-region\"].length; i++) { ",
-                                                       "   if (jsonData[\"cloud-region\"][i][\"cloud-region-id\"] === postman.getGlobalVariable(\"cloud_region_id\")) {",
+                                                       "   if (jsonData[\"cloud-region\"][i][\"cloud-region-id\"] === postman.getGlobalVariable(\"onap_cloud_region_id\")) {",
                                                        "       region_found = true;",
                                                        "   }",
                                                        "}",
-                                                       "tests[postman.getGlobalVariable(\"cloud_region_id\")+\" found\"] = region_found === true;",
+                                                       "tests[postman.getGlobalVariable(\"onap_cloud_region_id\")+\" found\"] = region_found === true;",
                                                        ""
                                                ]
                                        }
                        },
                        "response": []
                },
+               {
+                       "name": "associate Cloud-region to a complex",
+                       "event": [
+                               {
+                                       "listen": "test",
+                                       "script": {
+                                               "type": "text/javascript",
+                                               "exec": [
+                                                       "tests[\"Status code is 200 : cloud-region associated to a complex\"] = responseCode.code === 200;",
+                                                       ""
+                                               ]
+                                       }
+                               }
+                       ],
+                       "request": {
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{onap_cloud_region_id}}/relationship-list/relationship",
+                               "method": "PUT",
+                               "header": [
+                                       {
+                                               "key": "Authorization",
+                                               "value": "Basic QUFJOkFBSQ==",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-FromAppId",
+                                               "value": "AAI",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "Accept",
+                                               "value": "application/json",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "X-TransactionId",
+                                               "value": "808b54e3-e563-4144-a1b9-e24e2ed93d4f",
+                                               "description": ""
+                                       },
+                                       {
+                                               "key": "Content-Type",
+                                               "value": "application/json",
+                                               "description": ""
+                                       }
+                               ],
+                               "body": {
+                                       "mode": "raw",
+                                       "raw": "{\n    \"related-to\": \"complex\",\n    \"related-link\": \"/aai/v13/cloud-infrastructure/complexes/complex/{{complex_name}}\",\n    \"relationship-data\": [\n        {\n        \"relationship-key\": \"complex.physical-location-id\",\n        \"relationship-value\": \"{{complex_name}}\"\n        }\n        ]\n    }"
+                               },
+                               "description": ""
+                       },
+                       "response": []
+               },
                {
                        "name": "check tenant in cloud region",
                        "event": [
                                }
                        ],
                        "request": {
-                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{cloud_region_id}}/tenants",
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{onap_cloud_region_id}}/tenants",
                                "method": "GET",
                                "header": [
                                        {
                                }
                        ],
                        "request": {
-                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{cloud_region_id}}/tenants/tenant/{{tenant_id}}",
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{onap_cloud_region_id}}/tenants/tenant/{{tenant_id}}",
                                "method": "PUT",
                                "header": [
                                        {
                                }
                        ],
                        "request": {
-                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{cloud_region_id}}/tenants",
+                               "url": "{{url-aai}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{onap_cloud_region_id}}/tenants",
                                "method": "GET",
                                "header": [
                                        {
                                ],
                                "body": {
                                        "mode": "raw",
-                                       "raw": "{\r\n\t\"service-type\": \"{{service}}\",\r\n\t\"relationship-list\": {\r\n\t\t\"relationship\": [{\r\n\t\t\t\"related-to\": \"tenant\",\r\n\t\t\t\"related-link\": \"https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{cloud_region_id}}/tenants/tenant/{{tenant_id}}\",\r\n\t\t\t\"relationship-data\": [{\r\n\t\t\t\t\t\"relationship-key\": \"cloud-region.cloud-owner\",\r\n\t\t\t\t\t\"relationship-value\": \"{{cloud_owner_name}}\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"relationship-key\": \"cloud-region.cloud-region-id\",\r\n\t\t\t\t\t\"relationship-value\": \"{{cloud_region_id}}\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"relationship-key\": \"tenant.tenant-id\",\r\n\t\t\t\t\t\"relationship-value\": \"{{tenant_id}}\"\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\t\"related-to-property\": [{\r\n\t\t\t\t\"property-key\": \"tenant.tenant-name\",\r\n\t\t\t\t\"property-value\": \"{{tenant_name}}\"\r\n\t\t\t}]\r\n\t\t}]\r\n\t}\r\n}"
+                                       "raw": "{\r\n\t\"service-type\": \"{{service}}\",\r\n\t\"relationship-list\": {\r\n\t\t\"relationship\": [{\r\n\t\t\t\"related-to\": \"tenant\",\r\n\t\t\t\"related-link\": \"https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner_name}}/{{onap_cloud_region_id}}/tenants/tenant/{{tenant_id}}\",\r\n\t\t\t\"relationship-data\": [{\r\n\t\t\t\t\t\"relationship-key\": \"cloud-region.cloud-owner\",\r\n\t\t\t\t\t\"relationship-value\": \"{{cloud_owner_name}}\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"relationship-key\": \"cloud-region.cloud-region-id\",\r\n\t\t\t\t\t\"relationship-value\": \"{{onap_cloud_region_id}}\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"relationship-key\": \"tenant.tenant-id\",\r\n\t\t\t\t\t\"relationship-value\": \"{{tenant_id}}\"\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\t\"related-to-property\": [{\r\n\t\t\t\t\"property-key\": \"tenant.tenant-name\",\r\n\t\t\t\t\"property-value\": \"{{tenant_name}}\"\r\n\t\t\t}]\r\n\t\t}]\r\n\t}\r\n}"
                                },
                                "description": ""
                        },
index 0903b1a..1668b76 100644 (file)
                                                        "tests[\"service_order_id exists\"] = jsonData.id === postman.getGlobalVariable(\"auto_service_order_id\");",
                                                        "tests[\"service Order state is COMPLETED\"] = jsonData.state === \"COMPLETED\";",
                                                        "tests[\"Service Instance state is ACTIVE\"] = jsonData.orderItem[0].service.serviceState === \"active\";",
-                                                       "postman.setGlobalVariable(\"auto_service_instance_id\", \"\"+jsonData.orderItem[0].service.id+\"\");",
+                                                       "",
+                                                       "if(jsonData.hasOwnProperty('orderItem.service.id')){",
+                                                       "    postman.setGlobalVariable(\"auto_service_instance_id\", \"\"+jsonData.orderItem.service.id+\"\");",
+                                                       "}",
+                                                       "postman.setGlobalVariable(\"auto_service_messageInformation\", \"\"+jsonData.orderMessage[0].messageInformation+\"\");",
                                                        ""
                                                ]
                                        }
index 86a797b..2d65158 100644 (file)
@@ -1,6 +1,6 @@
 # Postman Collections
 
-## Description
+## Using Postman
 
 That repository contains 9 Postman collections and 2 environment files.
 
@@ -30,7 +30,7 @@ The order is very important because a lot of API request will need the API
  response from the previous operation.
 ![postman](./images/collection-detail-test.png)
 
-It is possible to run the complete collection.
+It is possible to run the complete collection using Postman
 ![postman](./images/run.png)
 
 You need, a zip file that contains Heat files for a VNF.
@@ -66,3 +66,33 @@ In particular, you need to put your own values for cloud_region_id, tenant_name
  service_instance_name:integration_test_freeradius_instance_001
  listener_url:http://10.4.2.65:8080/externalapi/listener/v1/listener
 ```
+
+## Using Newman
+
+Newman is a tool that allow to run postman collections via CLI
+
+Using a Linux server, just run those lines:
+
+```shell
+git clone https://gitlab.com/Orange-OpenSource/lfn/onap/onap-tests.git
+cd onap-tests/postman
+sudo apt-get -y install zip
+USECASE=$'ubuntu16'
+zip -j $USECASE.zip ../onap_tests/templates/heat_files/$USECASE/*
+TAB=$'\t\t\t\t\t\t\t'
+sed -i -e "s/.*src.*/$TAB\"src\": \"$USECASE.zip\"/" 03_Onboard_VSP_part2.postman_collection.json
+docker pull postman/newman:alpine
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 01_Onboard_Vendor.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json --reporters cli,json --reporter-cli-no-assertions --reporter-cli-no-console
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 02_Onboard_VSP_part1.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 03_Onboard_VSP_part2.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 04_Onboard_VSP_part3.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 05_Onboard_VF.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 06_Onboard_Service.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 07_Declare_owningEntity_LineOfBusiness_project_platform.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 08_Declare_Customer_Service_Subscription_Cloud.postman_collection.json --insecure --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json
+docker run --network="host" --volume="/home/debian/rene/onap-tests/postman:/etc/newman" postman/newman:alpine run 10_Service_Order.postman_collection.json --environment integration_test_urls.postman_environment.json --globals globals.postman_globals.json --export-globals globals.postman_globals.json --reporters cli,json --reporter-cli-no-assertions --reporter-cli-no-console
+```
+
+All collections are run, you can see results and you will also obtain result json files in the onap-tests/postamn/newman directory
+
+Of course you can adapt globals variables in globals.postman_globals.json or change the USECASE=$'ubuntu16' value to onboard any heat template located in onap_tests/templates/heat_files directory