From 1cbfc28c8a32938228cab4f9f172e2804308b3ec Mon Sep 17 00:00:00 2001 From: JvD_Ericsson Date: Thu, 15 Feb 2024 11:34:36 +0000 Subject: [PATCH] Create shared postman collections Issue-ID: CPS-2054 Signed-off-by: JvD_Ericsson Change-Id: I0a7e941bc4accfe00edaf7157df5a8ebabadb187 --- .../CPS Environment.postman_environment.json | 45 ++ .../CPS-CORE.postman_collection.json | 781 +++++++++++++++++++++ .../DMI Stub.postman_collection.json | 161 +++++ ...tional Performance Test.postman_collection.json | 339 +++++++++ ...ster CmHandle and Query.postman_collection.json | 649 +++++++++++++++++ postman-collections/README.md | 34 + postman-collections/bookstore-types.yang | 18 + postman-collections/bookstore.yang | 127 ++++ 8 files changed, 2154 insertions(+) create mode 100644 postman-collections/CPS Environment.postman_environment.json create mode 100644 postman-collections/CPS-CORE.postman_collection.json create mode 100644 postman-collections/DMI Stub.postman_collection.json create mode 100644 postman-collections/Data Operational Performance Test.postman_collection.json create mode 100644 postman-collections/NCMP Register CmHandle and Query.postman_collection.json create mode 100644 postman-collections/README.md create mode 100644 postman-collections/bookstore-types.yang create mode 100644 postman-collections/bookstore.yang diff --git a/postman-collections/CPS Environment.postman_environment.json b/postman-collections/CPS Environment.postman_environment.json new file mode 100644 index 000000000..84dcb642d --- /dev/null +++ b/postman-collections/CPS Environment.postman_environment.json @@ -0,0 +1,45 @@ +{ + "id": "e8e90dd2-20be-49be-813f-07db44c6a4c2", + "name": "CPS Environment", + "values": [ + { + "key": "CPS_HOST", + "value": "localhost", + "type": "default", + "enabled": true + }, + { + "key": "CPS_PORT", + "value": "8883", + "type": "default", + "enabled": true + }, + { + "key": "DMI_HOST", + "value": "localhost", + "type": "default", + "enabled": true + }, + { + "key": "DMI_PORT", + "value": "8784", + "type": "default", + "enabled": true + }, + { + "key": "SDNC_HOST", + "value": "localhost", + "type": "default", + "enabled": true + }, + { + "key": "SDNC_PORT", + "value": "8282", + "type": "default", + "enabled": true + } + ], + "_postman_variable_scope": "environment", + "_postman_exported_at": "2024-02-23T13:00:33.537Z", + "_postman_exported_using": "Postman/10.23.4" +} \ No newline at end of file diff --git a/postman-collections/CPS-CORE.postman_collection.json b/postman-collections/CPS-CORE.postman_collection.json new file mode 100644 index 000000000..24717bc59 --- /dev/null +++ b/postman-collections/CPS-CORE.postman_collection.json @@ -0,0 +1,781 @@ +{ + "info": { + "_postman_id": "e86df76f-6b33-4648-ba66-ea9d3129c052", + "name": "CPS-CORE", + "description": "A collection of the endpoints in CPS-CORE. This is not an exhaustive collection but captures the main functionality.\n\nTo perform this functionality execute the API calls in order to create a dataspace, schema set (file is provided), anchor, and data node. Then GET the nodes to retrieve the information. The APIs in CPS-ADMIN can be used after initial POST requests.\n\nbookstore-model.yang can be found at cps/postman-collections/bookstore-model.yang", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "17907116" + }, + "item": [ + { + "name": "CPS-ADMIN", + "item": [ + { + "name": "Get all dataspaces", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/admin/dataspaces", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "admin", + "dataspaces" + ] + }, + "description": "Read all dataspaces" + }, + "response": [] + }, + { + "name": "Get a dataspace", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/admin/dataspaces/my-store", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "admin", + "dataspaces", + "my-store" + ] + }, + "description": "Read a dataspace given a dataspace name" + }, + "response": [] + }, + { + "name": "Get anchors", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors" + ] + }, + "description": "Read all anchors, given a dataspace" + }, + "response": [] + }, + { + "name": "Get an anchor", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor" + ] + }, + "description": "Read all anchors, given a dataspace" + }, + "response": [] + }, + { + "name": "Get schema sets", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/schema-sets", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "schema-sets" + ] + }, + "description": "Read all schema sets, given a dataspace" + }, + "response": [] + }, + { + "name": "Get a schema set", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/schema-sets/stores-module", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "schema-sets", + "stores-module" + ] + }, + "description": "Read a schema set given a schema set name and a dataspace" + }, + "response": [] + } + ], + "description": "Some endpoints of CPS-ADMIN not mentioed in the CPS-CORE folder" + }, + { + "name": "Create Dataspace", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces?dataspace-name=my-store", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces" + ], + "query": [ + { + "key": "dataspace-name", + "value": "my-store" + } + ] + } + }, + "response": [] + }, + { + "name": "Create Schema Set", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "multipart/form-data", + "type": "text", + "disabled": true + } + ], + "body": { + "mode": "formdata", + "formdata": [ + { + "key": "file", + "type": "file", + "src": "cps/postman-collections/bookstore.zip" + } + ] + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/schema-sets?schema-set-name=stores-module", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "schema-sets" + ], + "query": [ + { + "key": "schema-set-name", + "value": "stores-module" + } + ] + }, + "description": "Make sure in the body there is form data. key = file and value will be the zip/yang file." + }, + "response": [] + }, + { + "name": "Create Anchor", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors?schema-set-name=stores-module&anchor-name=bookstore-anchor", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors" + ], + "query": [ + { + "key": "schema-set-name", + "value": "stores-module" + }, + { + "key": "anchor-name", + "value": "bookstore-anchor" + } + ] + } + }, + "response": [] + }, + { + "name": "Create DataNodes", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"bookstore-address\": [\n {\n \"bookstore-name\": \"Easons\",\n \"address\": \"Dublin,Ireland\",\n \"postal-code\": \"D02HA21\"\n }\n ],\n \"bookstore\": {\n \"bookstore-name\": \"Easons\",\n \"premises\": {\n \"addresses\": [\n {\n \"house-number\": 2,\n \"street\": \"Main Street\",\n \"town\": \"Maynooth\",\n \"county\": \"Kildare\"\n },\n {\n \"house-number\": 24,\n \"street\": \"Grafton Street\",\n \"town\": \"Dublin\",\n \"county\": \"Dublin\"\n }\n ]\n },\n \"categories\": [\n {\n \"code\": 1,\n \"name\": \"Children\",\n \"books\": [\n {\n \"title\": \"Matilda\",\n \"lang\": \"English\",\n \"authors\": [\n \"Roald Dahl\"\n ],\n \"editions\": [\n 1988,\n 2000\n ],\n \"price\": 20\n },\n {\n \"title\": \"The Gruffalo\",\n \"lang\": \"English\",\n \"authors\": [\n \"Julia Donaldson\"\n ],\n \"editions\": [\n 1999\n ],\n \"price\": 15\n }\n ]\n },\n {\n \"code\": 2,\n \"name\": \"Thriller\",\n \"books\": [\n {\n \"title\": \"Annihilation\",\n \"lang\": \"English\",\n \"authors\": [\n \"Jeff VanderMeer\"\n ],\n \"editions\": [\n 2014\n ],\n \"price\": 15\n }\n ]\n },\n {\n \"code\": 3,\n \"name\": \"Comedy\",\n \"books\": [\n {\n \"title\": \"Good Omens\",\n \"lang\": \"English\",\n \"authors\": [\n \"Neil Gaiman\",\n \"Terry Pratchett\"\n ],\n \"editions\": [\n 2006\n ],\n \"price\": 13\n },\n {\n \"title\": \"The Colour of Magic\",\n \"lang\": \"English\",\n \"authors\": [\n \"Terry Pratchett\"\n ],\n \"editions\": [\n 1983\n ],\n \"price\": 12\n },\n {\n \"title\": \"The Light Fantastic\",\n \"lang\": \"English\",\n \"authors\": [\n \"Terry Pratchett\"\n ],\n \"editions\": [\n 1986\n ],\n \"price\": 14\n },\n {\n \"title\": \"A Book with No Language\",\n \"lang\": \"\",\n \"authors\": [\n \"Joe Bloggs\"\n ],\n \"editions\": [\n 2023\n ],\n \"price\": 20\n }\n ]\n },\n {\n \"code\": 4,\n \"name\": \"Computing\",\n \"books\": [\n {\n \"title\": \"Debian GNU/Linux\",\n \"lang\": \"German\",\n \"authors\": [\n \"Peter H. Ganten\",\n \"Wulf Alex\"\n ],\n \"editions\": [\n 2007,\n 2013,\n 2021\n ],\n \"price\": 39\n },\n {\n \"title\": \"Logarithm tables\",\n \"lang\": \"N/A\",\n \"authors\": [\n \"Joe Bloggs\"\n ],\n \"editions\": [\n 2009\n ],\n \"price\": 11\n }\n ]\n },\n {\n \"code\": 5,\n \"name\": \"Discount books\",\n \"books\": [\n {\n \"title\": \"Book 1\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 1\n },\n {\n \"title\": \"Book 2\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 2\n },\n {\n \"title\": \"Book 3\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 3\n },\n {\n \"title\": \"Book 4\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 4\n },\n {\n \"title\": \"Book 5\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 5\n },\n {\n \"title\": \"Book 6\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 6\n },\n {\n \"title\": \"Book 7\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 7\n },\n {\n \"title\": \"Book 8\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 8\n },\n {\n \"title\": \"Book 9\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 9\n },\n {\n \"title\": \"Book 10\",\n \"lang\": \"blah\",\n \"authors\": [],\n \"editions\": [],\n \"price\": 10\n }\n ]\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/nodes", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "nodes" + ] + } + }, + "response": [] + }, + { + "name": "Get Root Node All Descendants", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/node?xpath=/&descendants=all", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "node" + ], + "query": [ + { + "key": "xpath", + "value": "/" + }, + { + "key": "descendants", + "value": "all" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Node Staff No Descendants", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/node?xpath=/bookstore/staff&descendants=none", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "node" + ], + "query": [ + { + "key": "xpath", + "value": "/bookstore/staff" + }, + { + "key": "descendants", + "value": "none" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Node Inventory All Descendants", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/node?xpath=/bookstore/inventory&descendants=all", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "node" + ], + "query": [ + { + "key": "xpath", + "value": "/bookstore/inventory" + }, + { + "key": "descendants", + "value": "all" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Node Inventory Categories Direct Descendants", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/node?xpath=/bookstore/inventory/categories[@code='2']&descendants=direct", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "node" + ], + "query": [ + { + "key": "xpath", + "value": "/bookstore/inventory/categories[@code='2']" + }, + { + "key": "descendants", + "value": "direct" + } + ] + } + }, + "response": [] + }, + { + "name": "Query Path Leaf Condition All Descendants", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/nodes/query?cps-path=/bookstore/inventory/categories[@numberOfBooks=1]&descendants=-1", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "nodes", + "query" + ], + "query": [ + { + "key": "cps-path", + "value": "/bookstore/inventory/categories[@numberOfBooks=1]" + }, + { + "key": "descendants", + "value": "-1" + } + ] + } + }, + "response": [] + }, + { + "name": "Query Path Ancestor No Descendants", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/nodes/query?cps-path=//categories[@code=1]/ancestor::inventory&descendants=0", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "nodes", + "query" + ], + "query": [ + { + "key": "cps-path", + "value": "//categories[@code=1]/ancestor::inventory" + }, + { + "key": "descendants", + "value": "0" + } + ] + } + }, + "response": [] + }, + { + "name": "Patch Nodes", + "request": { + "method": "PATCH", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"staff\": {\r\n \"manager\": \"Jane Doe\",\r\n \"members\": [\r\n {\"name\": \"Some Guy\"},\r\n {\"name\": \"Another Person\"}\r\n ]\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/nodes?xpath=/bookstore", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "nodes" + ], + "query": [ + { + "key": "xpath", + "value": "/bookstore" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Node Staff Direct Descendants", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/node?xpath=/bookstore/staff&descendants=1", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "node" + ], + "query": [ + { + "key": "xpath", + "value": "/bookstore/staff" + }, + { + "key": "descendants", + "value": "1" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete DataNodes", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor/nodes?xpath=/", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor", + "nodes" + ], + "query": [ + { + "key": "xpath", + "value": "/" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete Anchor", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/anchors/bookstore-anchor", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "anchors", + "bookstore-anchor" + ] + } + }, + "response": [] + }, + { + "name": "Delete Schema Set", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "multipart/form-data", + "type": "text", + "disabled": true + } + ], + "body": { + "mode": "formdata", + "formdata": [ + { + "key": "file", + "type": "file", + "src": "/home/jeff/Downloads/bookstore-model.yang" + } + ] + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces/my-store/schema-sets/stores-module", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces", + "my-store", + "schema-sets", + "stores-module" + ] + }, + "description": "Make sure in the body there is form data. key = file and value will be the zip/yang file." + }, + "response": [] + }, + { + "name": "Delete Dataspace", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/cps/api/v2/dataspaces?dataspace-name=my-store", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "cps", + "api", + "v2", + "dataspaces" + ], + "query": [ + { + "key": "dataspace-name", + "value": "my-store" + } + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "cpsr0cks!", + "type": "string" + }, + { + "key": "username", + "value": "cpsuser", + "type": "string" + } + ] + } +} \ No newline at end of file diff --git a/postman-collections/DMI Stub.postman_collection.json b/postman-collections/DMI Stub.postman_collection.json new file mode 100644 index 000000000..fe7250f7d --- /dev/null +++ b/postman-collections/DMI Stub.postman_collection.json @@ -0,0 +1,161 @@ +{ + "info": { + "_postman_id": "4baf7902-0f1e-49a9-9c6a-f68f412240af", + "name": "DMI Stub", + "description": "A collection of the DMI Stub endpoints.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "17907116" + }, + "item": [ + { + "name": "Execute a data operation for group of cm handle ids by supplied operation details", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{ \"operations\":\n [\n {\n \"resourceIdentifier\": \"some resource identifier\",\n \"datastore\": \"ncmp-datastore:passthrough-operational\",\n \"options\": \"some option\",\n \"operationId\": \"12\",\n \"cmHandles\": [\n {\n \"id\": \"cmHandle123\",\n \"cmHandleProperties\": {\n \"myProp\": \"some value\",\n \"otherProp\": \"other value\"\n }\n },\n {\n \"id\": \"cmHandle123\",\n \"cmHandleProperties\": {\n \"myProp\": \"some value\",\n \"otherProp\": \"other value\"\n }\n }\n ],\n \"operation\": \"read\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{DMI_HOST}}:{{DMI_PORT}}/dmi/v1/data?topic=ncmp-async-m2m&requestId=4753fc1f-7de2-449a-b306-a6204b5370b33", + "protocol": "http", + "host": [ + "{{DMI_HOST}}" + ], + "port": "{{DMI_PORT}}", + "path": [ + "dmi", + "v1", + "data" + ], + "query": [ + { + "key": "topic", + "value": "ncmp-async-m2m" + }, + { + "key": "requestId", + "value": "4753fc1f-7de2-449a-b306-a6204b5370b33" + } + ] + } + }, + "response": [] + }, + { + "name": "Retrieve module resources for one or more modules", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{DMI_HOST}}:{{DMI_PORT}}/dmi/v1/ch/cm-bookStore/moduleResources", + "protocol": "http", + "host": [ + "{{DMI_HOST}}" + ], + "port": "{{DMI_PORT}}", + "path": [ + "dmi", + "v1", + "ch", + "cm-bookStore", + "moduleResources" + ] + } + }, + "response": [] + }, + { + "name": "Get all modules for given cm handle", + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{DMI_HOST}}:{{DMI_PORT}}/dmi/v1/ch/cm-bookStore/modules", + "protocol": "http", + "host": [ + "{{DMI_HOST}}" + ], + "port": "{{DMI_PORT}}", + "path": [ + "dmi", + "v1", + "ch", + "cm-bookStore", + "modules" + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "cpsr0cks!", + "type": "string" + }, + { + "key": "username", + "value": "cpsuser", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/postman-collections/Data Operational Performance Test.postman_collection.json b/postman-collections/Data Operational Performance Test.postman_collection.json new file mode 100644 index 000000000..668c541d9 --- /dev/null +++ b/postman-collections/Data Operational Performance Test.postman_collection.json @@ -0,0 +1,339 @@ +{ + "info": { + "_postman_id": "23a07cf3-5e20-48d5-8af3-8aa65c6a681f", + "name": "Data Operational Performance Test", + "description": "A collection to test performance of registering and getting cmHandles (20000 is the default)", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "17907116" + }, + "item": [ + { + "name": "Register CM Handles", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "const uuid = require(\"uuid\");", + "", + "const TOTAL_CMHANDLES = Number(pm.collectionVariables.get(\"TOTAL_CMHANDLES\"));", + "", + "var cmHandleIds = [];", + "var createdCmHandles = []", + "", + "for (i = 0; i < TOTAL_CMHANDLES; i++) {", + " let cmHandleId = uuid.v4().replace(/-/g, \"\");", + " cmHandleIds.push(cmHandleId);", + " createdCmHandles.push({", + " \"cmHandle\": cmHandleId,", + " \"cmHandleProperties\": { \"neType\": \"RadioNode\" },", + " \"publicCmHandleProperties\": {", + " \"Book\": \"Harry Potter\",", + " \"Author\": \"JK Rowling\"", + " }", + " });", + "}", + "", + "pm.collectionVariables.set(\"createdCmHandleIds\", JSON.stringify(cmHandleIds));", + "pm.collectionVariables.set(\"createdCmHandles\", JSON.stringify(createdCmHandles));", + "pm.collectionVariables.set(\"targetIds\", cmHandleIds);" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"HTTP Status is 200\", function () {\r", + " pm.response.to.be.ok;\r", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"dmiPlugin\": \"http://{{DMI_HOST}}:{{DMI_PORT}}\",\r\n \"createdCmHandles\": {{createdCmHandles}}\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmpInventory/v1/ch", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmpInventory", + "v1", + "ch" + ] + } + }, + "response": [] + }, + { + "name": "Get All Cm Handle IDs", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// Convert the response body to a JSON object\r", + "var responseBodyAsJsonArray = JSON.parse(responseBody);\r", + "\r", + "var cmHandleInReadyState = [];\r", + "var cmHandleInNonReadyState = [];\r", + "\r", + "function countCmHandleStateInReady() {\r", + "for(var index = 0; index < responseBodyAsJsonArray.length; index++) {\r", + " if(typeof responseBodyAsJsonArray[index].state.cmHandleState !== 'undefined'\r", + " && responseBodyAsJsonArray[index].state.cmHandleState == 'READY') {\r", + " cmHandleInReadyState.push(responseBodyAsJsonArray[index].state.cmHandleState);\r", + " }else{\r", + " cmHandleInNonReadyState.push(responseBodyAsJsonArray[index].state.cmHandleState);\r", + " }\r", + "}\r", + "}\r", + "\r", + "countCmHandleStateInReady();\r", + "\r", + "pm.collectionVariables.set(\"numberOfCmHandlesInReadyState\", cmHandleInReadyState.length);\r", + "pm.collectionVariables.set(\"numberOfCmHandlesInNonReadyState\", cmHandleInNonReadyState.length);\r", + "\r", + "pm.test(\"HTTP Status is 200 with valid JSON response\", function () {\r", + " pm.response.to.be.ok;\r", + " pm.response.to.be.withBody;\r", + " pm.response.to.be.json;\r", + "});\r", + "\r", + "pm.test(\"20000 cm handles are in Ready state\", function () {\r", + " pm.expect(cmHandleInReadyState.length).to.eql(20000);\r", + "});\r", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"conditions\": [\r\n {\r\n \"name\": \"hasAllModules\"\r\n }\r\n ]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ], + "query": [ + { + "key": "resourceIdentifier", + "value": "stores:bookstore", + "disabled": true + }, + { + "key": "options", + "value": "(fields=schemas/schema/location,depth=5)", + "disabled": true + } + ] + } + }, + "response": [] + }, + { + "name": "ReadResourceDataForCmHandles", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "const cmHandleIds = pm.collectionVariables.get(\"targetIds\"); \r", + "\r", + "var dataOperationRequest = []\r", + "var targetIds = [];\r", + "\r", + "for (index = 0; index < cmHandleIds.length ; index++) {\r", + "\r", + " targetIds.push(cmHandleIds[index]);\r", + " var dataOperationTargetIds = [];\r", + " if (targetIds.length == 5){\r", + " dataOperationTargetIds = targetIds;\r", + " dataOperationRequest.push({\r", + " \"operation\": \"read\",\r", + " \"operationId\": \"operational-\"+index,\r", + " \"datastore\": \"ncmp-datastore:passthrough-running\",\r", + " \"resourceIdentifier\": \"parent/child\",\r", + " \"targetIds\": dataOperationTargetIds\r", + " });\r", + "\r", + " pm.collectionVariables.unset(\"dataOperationTargetIds\");\r", + " // pm.globals.unset(\"variable_key\");\r", + " // pm.environment.unset(\"variable_key\");\r", + " // pm.collectionVariables.set(\"variable_key\", \"variable_value\");\r", + " // pm.sendRequest(\"https://postman-echo.com/get\", function (err, response) {\r", + " // console.log(response.json());\r", + " // });\r", + " // for (index = 0; index < dataOperationTargetIds.length ; index++) {\r", + " // targetIds.pop(dataOperationTargetIds[index]);\r", + " // }\r", + " }\r", + "}\r", + "\r", + " pm.collectionVariables.set(\"dataOperationRequest\", JSON.stringify(dataOperationRequest));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"HTTP Status is 200 with valid JSON response\", function () {\r", + " pm.response.to.be.ok;\r", + " pm.response.to.be.withBody;\r", + " pm.response.to.be.json;\r", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "topic", + "value": "client-topic", + "type": "default", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"operations\":\r\n {{dataOperationRequest}}\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/data?topic=my-client-topic", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "data" + ], + "query": [ + { + "key": "topic", + "value": "my-client-topic" + } + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "cpsr0cks!", + "type": "string" + }, + { + "key": "username", + "value": "cpsuser", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "createdCmHandleIds", + "value": "" + }, + { + "key": "createdCmHandles", + "value": "" + }, + { + "key": "TOTAL_CMHANDLES", + "value": "20000", + "type": "default" + }, + { + "key": "numberOfCmHandlesInReadyState", + "value": "", + "type": "default" + }, + { + "key": "numberOfCmHandlesInNonReadyState", + "value": "", + "type": "default" + }, + { + "key": "dataOperationRequest", + "value": "", + "type": "default" + }, + { + "key": "targetIds", + "value": "", + "type": "default" + } + ] +} \ No newline at end of file diff --git a/postman-collections/NCMP Register CmHandle and Query.postman_collection.json b/postman-collections/NCMP Register CmHandle and Query.postman_collection.json new file mode 100644 index 000000000..fb1428724 --- /dev/null +++ b/postman-collections/NCMP Register CmHandle and Query.postman_collection.json @@ -0,0 +1,649 @@ +{ + "info": { + "_postman_id": "4e232e66-914a-4b5e-8f7f-f9ae0d476f54", + "name": "NCMP Register CmHandle and Query", + "description": "A collection to register a cmHandle then query. There are \"Valid Queries\" and \"Invalid Queries\" sub-folders containing examples. These are by no means exhaustive.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "17907116" + }, + "item": [ + { + "name": "Valid Queries", + "item": [ + { + "name": "search cmHandles without conditions", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "search cmHandles with modules query", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllModules\",\n \"conditionParameters\": [ {\"moduleName\": \"notifications\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "search cmHandles with public properties", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllProperties\",\n \"conditionParameters\": [ {\"Color\": \"yellow\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "search cmHandles with multiple public properties", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllProperties\",\n \"conditionParameters\": [ {\"Color\": \"yellow\"}, {\"Size\": \"small\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "search cmHandles with modules & pubprop query", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllModules\",\n \"conditionParameters\": [ {\"moduleName\": \"notifications\"} ]\n },\n {\n \"conditionName\": \"hasAllProperties\",\n \"conditionParameters\": [ {\"Color\": \"yellow\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Invalid Queries", + "item": [ + { + "name": "get cmHandles with wrong condition name", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"wrong\",\n \"conditionParameters\": [ {\"Color\": \"yellow\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with empty condition name", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"\",\n \"conditionParameters\": [ {\"Color\": \"yellow\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with null condition name", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionParameters\": [ {\"Color\": \"yellow\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with empty key", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllProperties\",\n \"conditionParameters\": [ {\"\": \"yellow\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with empty condition", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllProperties\",\n \"conditionParameters\": [ {} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with empty condition list", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllProperties\",\n \"conditionParameters\": [ ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with null condition list", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllProperties\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with empty module value", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllModules\",\n \"conditionParameters\": [ {\"moduleName\": \"\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandles with wrong module name", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"cmHandleQueryParameters\": [\n {\n \"conditionName\": \"hasAllModules\",\n \"conditionParameters\": [ {\"moduleName2\": \"mudule-1\"} ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "searches" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Register cmHandle for Node", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"dmiPlugin\": \"http://{{DMI_HOST}}:{{DMI_PORT}}\",\n \"createdCmHandles\": [\n {\n \"cmHandle\": \"CmHandle0\",\n \"cmHandleProperties\": {\n \"Books\": \"Sci-Fi Book\"\n },\n \"publicCmHandleProperties\": {\n \"Color\": \"yellow\",\n \"Size\": \"small\",\n \"Shape\": \"cube\"\n }\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmpInventory/v1/ch", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmpInventory", + "v1", + "ch" + ] + } + }, + "response": [] + }, + { + "name": "get cmHandle", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/CmHandle0", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "CmHandle0" + ] + } + }, + "response": [] + }, + { + "name": "get modules for cmHandle", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/CmHandle0/modules", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmp", + "v1", + "ch", + "CmHandle0", + "modules" + ] + } + }, + "response": [] + }, + { + "name": "Update cmHandle for Node", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"dmiPlugin\": \"http://{{DMI_HOST}}:{{DMI_PORT}}\",\n \"updatedCmHandles\": [\n {\n \"cmHandle\": \"CmHandle0\",\n \"cmHandleProperties\": {\n \"Books\": \"Sci-Fi Book\",\n \"Some property\": \"Some value\"\n },\n \"publicCmHandleProperties\": {\n \"Color\": \"yellow\",\n \"Size\": \"small\",\n \"Shape\": \"cube\",\n \"Some public property\": \"Some public value\"\n }\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmpInventory/v1/ch", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmpInventory", + "v1", + "ch" + ] + } + }, + "response": [] + }, + { + "name": "De-register cmHandle for Node", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"dmiPlugin\": \"http://{{DMI_HOST}}:{{DMI_PORT}}\",\n \"removedCmHandles\": [\n \"CmHandle0\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmpInventory/v1/ch", + "protocol": "http", + "host": [ + "{{CPS_HOST}}" + ], + "port": "{{CPS_PORT}}", + "path": [ + "ncmpInventory", + "v1", + "ch" + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "cpsr0cks!", + "type": "string" + }, + { + "key": "username", + "value": "cpsuser", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/postman-collections/README.md b/postman-collections/README.md new file mode 100644 index 000000000..004ef5b74 --- /dev/null +++ b/postman-collections/README.md @@ -0,0 +1,34 @@ + + +# Importing and running the CPS postman collections +## Importing the CPS collections +To import the CPS collections and environment: +1. Create a "Workspace" (or if you have one already you can use that) +2. Click "Import" (or click "File" then "Import") +3. Drag and drop the "postman-collection" folder into the import pop-up +4. The collections and environment should now be imported +5. Set the current environment to "CPS Environment" (usually at the top right. Default is "No Environment") This will provide the necessary variables such as "CPS_HOST" and "CPS_PORT" to allow the requests to be run + +## Running the collections +To run the requests in the collections simply select the request and click send. "Create Schema Set" in "CPS-CORE" requires a file to send the request. Example files are provided: "bookstore.yang" and "bookstore-types.yang" (these files must be zipped before adding them to the request) + +## Notes +When exporting postman collections tabs are used for spacing, so replacing all the tabs is necessary diff --git a/postman-collections/bookstore-types.yang b/postman-collections/bookstore-types.yang new file mode 100644 index 000000000..5ad7b6e13 --- /dev/null +++ b/postman-collections/bookstore-types.yang @@ -0,0 +1,18 @@ +module bookstore-types { + yang-version 1.1; + namespace "org:onap:cps:types:sample"; + + prefix types; + + revision "2024-01-30" { + description + "Sample Types"; + } + + typedef year { + type uint16 { + range "1000..9999"; + } + } + +} \ No newline at end of file diff --git a/postman-collections/bookstore.yang b/postman-collections/bookstore.yang new file mode 100644 index 000000000..0d093ea36 --- /dev/null +++ b/postman-collections/bookstore.yang @@ -0,0 +1,127 @@ +module stores { + yang-version 1.1; + namespace "org:onap:cps:sample"; + + prefix book-store; + + import bookstore-types { + prefix "types"; + revision-date 2024-01-30; + } + + revision "2024-02-08" { + description + "Order of book authors is preserved"; + } + + revision "2024-01-30" { + description + "Extracted bookstore types"; + } + + revision "2020-09-15" { + description + "Sample Model"; + } + + list bookstore-address { + key "bookstore-name"; + leaf bookstore-name { + type string; + description + "Name of bookstore. Example: My Bookstore"; + } + leaf address { + type string; + description + "Address of store"; + } + leaf postal-code { + type string; + description + "Postal code of store"; + } + } + + container bookstore { + + leaf bookstore-name { + type string; + } + + container webinfo { + leaf domain-name { + type string; + } + leaf contact-email { + type string; + } + } + + container support-info { + leaf support-office { + type string; + } + container contact-emails { + leaf email { + type string; + } + } + } + + container container-without-leaves { } + + container premises { + list addresses { + key "house-number street"; + + leaf house-number { + type uint16; + } + leaf street { + type string; + } + leaf town { + type string; + } + leaf county { + type string; + } + } + } + + list categories { + + key "code"; + + leaf code { + type string; + } + + leaf name { + type string; + } + + list books { + key title; + + leaf title { + type string; + } + leaf lang { + type string; + } + leaf-list authors { + ordered-by user; + type string; + } + leaf-list editions { + type types:year; + } + leaf price { + type uint64; + } + } + } + } +} -- 2.16.6