From 664268ae8b85b111c433e85965e4b054950285f9 Mon Sep 17 00:00:00 2001 From: agrawalgaurav Date: Thu, 14 May 2020 00:33:01 +0530 Subject: [PATCH] Test artifacts for applcm. Change-Id: I9840ac5fc6f91bfc0b4ce6abbc790a158f6b2d49 --- mecm/mepm/applcm/go.mod | 3 - mecm/mepm/applcm/resources/Build-Run.sh | 9 + .../applcm/resources/MEPM.postman_collection.json | 1706 ++++++++++++++++++++ mecm/mepm/applcm/resources/README.md | 2 + .../akriano-mepm.postman_environment.json | 14 + mecm/mepm/applcm/resources/docker-compose.yaml | 85 + mecm/mepm/applcm/resources/local-setup | 28 + mecm/mepm/applcm/resources/sample_app.csar | Bin 0 -> 66043 bytes 8 files changed, 1844 insertions(+), 3 deletions(-) delete mode 100644 mecm/mepm/applcm/go.mod create mode 100644 mecm/mepm/applcm/resources/Build-Run.sh create mode 100644 mecm/mepm/applcm/resources/MEPM.postman_collection.json create mode 100644 mecm/mepm/applcm/resources/README.md create mode 100644 mecm/mepm/applcm/resources/akriano-mepm.postman_environment.json create mode 100644 mecm/mepm/applcm/resources/docker-compose.yaml create mode 100644 mecm/mepm/applcm/resources/local-setup create mode 100644 mecm/mepm/applcm/resources/sample_app.csar diff --git a/mecm/mepm/applcm/go.mod b/mecm/mepm/applcm/go.mod deleted file mode 100644 index 11de177..0000000 --- a/mecm/mepm/applcm/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module applcm - -go 1.14 diff --git a/mecm/mepm/applcm/resources/Build-Run.sh b/mecm/mepm/applcm/resources/Build-Run.sh new file mode 100644 index 0000000..b569901 --- /dev/null +++ b/mecm/mepm/applcm/resources/Build-Run.sh @@ -0,0 +1,9 @@ +AppLcm broker compile and build docker image +/applcm/broker/docker-build.sh + + +helmplugin compile and build docker image +/applcm/k8shelm/docker-build.sh + +Run docker images: +run docker-compose file diff --git a/mecm/mepm/applcm/resources/MEPM.postman_collection.json b/mecm/mepm/applcm/resources/MEPM.postman_collection.json new file mode 100644 index 0000000..d61f8fa --- /dev/null +++ b/mecm/mepm/applcm/resources/MEPM.postman_collection.json @@ -0,0 +1,1706 @@ +{ + "info": { + "_postman_id": "74738ee4-546f-4424-b29a-870cf0f98349", + "name": "MEPM", + "description": "The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI\n\nContact Support:\n Email: cti_support@etsi.org", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Intefaces", + "item": [ + { + "name": "Mm3 Interface", + "item": [ + { + "name": "UploadAppPackage", + "request": { + "auth": { + "type": "oauth2" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "multipart/form-data" + }, + { + "key": "", + "value": "multipart/form-data", + "type": "text", + "disabled": true + } + ], + "body": { + "mode": "formdata", + "formdata": [ + { + "key": "file", + "type": "file", + "src": "/home/root1/akriano-mepm/face_reconigition_app.csar" + } + ], + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_pkgm/v1/app_packages", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_pkgm", + "v1", + "app_packages" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + } + ] + }, + { + "name": "QueryAppPkg user->MEPM", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "auth": { + "type": "oauth2" + }, + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "multipart/form-data" + }, + { + "key": "", + "type": "text", + "value": "multipart/form-data", + "disabled": true + } + ], + "body": { + "mode": "formdata", + "formdata": [ + { + "key": "file", + "type": "file", + "src": "/home/root1/akriano-mepm/face_reconigition_app.csar" + } + ], + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_pkgm/v1/app_packages/b1bb0ce7-ebca-4fa7-95ed-4840d70a1177", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_pkgm", + "v1", + "app_packages", + "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + } + ] + }, + { + "name": "DeleteAppPackage user->MEPM", + "request": { + "auth": { + "type": "oauth2" + }, + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "multipart/form-data" + }, + { + "key": "", + "type": "text", + "value": "multipart/form-data", + "disabled": true + } + ], + "body": { + "mode": "formdata", + "formdata": [ + { + "key": "file", + "type": "file", + "src": "/home/root1/akriano-mepm/face_reconigition_app.csar" + } + ], + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_pkgm/v1/app_packages/b1bb0ce7-ebca-4fa7-95ed-4840d70a1177", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_pkgm", + "v1", + "app_packages", + "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + } + ] + }, + { + "name": "CreateAppinstance MEO->MEPM", + "request": { + "auth": { + "type": "oauth2" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"appDId\": \"b1bb0ce7-ebca-4fa7-95ed-4840d70a1177\",\n \"appInstancename\": \"abc\",\n \"appInstanceDescriptor\": \"ID1\"\n}", + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_lcm/v1/app_instances", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_lcm", + "v1", + "app_instances" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + } + ] + }, + { + "name": "InstantiateAppInstance MEO->MEPM", + "request": { + "auth": { + "type": "oauth2" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"selectedMECHostInfo\": {\n \"hostName\": \"bangalore.com\",\n \"hostId\": \"127.0.0.1\"\n }\n}", + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_lcm/v1/app_instances/3aa4b795-92a7-11ea-a837-0242ac160004/instantiate", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_lcm", + "v1", + "app_instances", + "3aa4b795-92a7-11ea-a837-0242ac160004", + "instantiate" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + } + ] + }, + { + "name": "QueryAppInstanceInfo MEO->MEPM", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "auth": { + "type": "oauth2" + }, + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_lcm/v1/app_instances/f74d49a0-9223-11ea-a242-68f7281fe142", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_lcm", + "v1", + "app_instances", + "f74d49a0-9223-11ea-a242-68f7281fe142" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + } + ] + }, + { + "name": "TerminateAppIns MEO->MEPM", + "request": { + "auth": { + "type": "oauth2" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_lcm/v1/app_instances/f74d49a0-9223-11ea-a242-68f7281fe142/terminate", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_lcm", + "v1", + "app_instances", + "f74d49a0-9223-11ea-a242-68f7281fe142", + "terminate" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + } + ] + }, + { + "name": "DeleteAppInstanceIdentifier MEO->MEPM", + "request": { + "auth": { + "type": "oauth2" + }, + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": {} + } + }, + "url": { + "raw": "{{baseUrl}}/ealtedge/mepm/app_lcm/v1/app_instances/{{ID}}", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "ealtedge", + "mepm", + "app_lcm", + "v1", + "app_instances", + "{{ID}}" + ] + }, + "description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference." + }, + "response": [ + { + "name": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "No Content.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Forbidden. The operation is not allowed given the current status of the resource. ", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + }, + { + "name": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "originalRequest": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{baseUrl}}/app_contexts/:contextId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "app_contexts", + ":contextId" + ], + "variable": [ + { + "key": "contextId" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/problem+json" + } + ], + "cookie": [], + "body": "{\n \"type\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\"\n}" + } + ] + } + ], + "protocolProfileBehavior": {}, + "_postman_isSubFolder": true + } + ], + "protocolProfileBehavior": {} + } + ], + "variable": [ + { + "id": "baseUrl", + "key": "baseUrl", + "value": "http://127.0.0.1:8081/mx2/v2", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/mecm/mepm/applcm/resources/README.md b/mecm/mepm/applcm/resources/README.md new file mode 100644 index 0000000..cde1404 --- /dev/null +++ b/mecm/mepm/applcm/resources/README.md @@ -0,0 +1,2 @@ +This folder contains test artifacts to try out applcm in local machine +Note: For production k8s based deployment will be used, this folder is just for local testing. \ No newline at end of file diff --git a/mecm/mepm/applcm/resources/akriano-mepm.postman_environment.json b/mecm/mepm/applcm/resources/akriano-mepm.postman_environment.json new file mode 100644 index 0000000..94bd4bd --- /dev/null +++ b/mecm/mepm/applcm/resources/akriano-mepm.postman_environment.json @@ -0,0 +1,14 @@ +{ + "id": "133f53c6-e57a-4541-a3d2-48647d6c2d92", + "name": "akriano-mepm", + "values": [ + { + "key": "baseUrl", + "value": "https://172.60.2.21:30233", + "enabled": true + } + ], + "_postman_variable_scope": "environment", + "_postman_exported_at": "2020-05-10T16:58:23.211Z", + "_postman_exported_using": "Postman/7.16.1" +} \ No newline at end of file diff --git a/mecm/mepm/applcm/resources/docker-compose.yaml b/mecm/mepm/applcm/resources/docker-compose.yaml new file mode 100644 index 0000000..300bef3 --- /dev/null +++ b/mecm/mepm/applcm/resources/docker-compose.yaml @@ -0,0 +1,85 @@ +# yamllint disable +version: '3.3' + +networks: + bridge: + external: true + +services: + db: + network_mode: bridge + image: mysql:5.7 + environment: + MYSQL_DATABASE: 'db' + # So you don't have to use root, but you can if you like + MYSQL_USER: 'root' + # You can use whatever password you like + MYSQL_PASSWORD: 'password' + # Password for root access + MYSQL_ROOT_PASSWORD: 'password' + ports: + # : < MySQL Port running inside container> + - '3306:3306' + expose: + # Opens port 3306 on the container + - '3306' + # Where our data will be persisted + volumes: + - my-db:/var/lib/mysql + - /var/lib/mysql + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + ################################################################################# + applcm-brk: + network_mode: bridge + image: ealtedge/applcm-broker:latest + depends_on: + - db + - helm-plugin + links: + - db:dbhost + - helm-plugin:helm.plugin + restart: always + container_name: applcm-brk + environment: + MYSQL_DATABASE: 'db' + # So you don't have to use root, but you can if you like + MYSQL_USER: 'root' + # You can use whatever password you like + MYSQL_PASSWORD: 'password' + # Password for root access + MYSQL_ROOT_PASSWORD: 'password' + HELM_PLUGIN_PORT: '50051' + KUBERNETES_PLUGIN_PORT: '50052' + ports: + # : < Applcm Broker Port running inside container> + - '28081:8081' + expose: + # Opens port 8081 on the container + - '8081' + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + ################################################################################# + helm-plugin: + network_mode: bridge + image: ealtedge/helmplugin:latest + restart: always + container_name: helmplugin + ports: + # : < Applcm helm plugin Port running inside container> + - '50051:50051' + expose: + # Opens port 50051 on the container + - '8089' + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" +# yamllint enable diff --git a/mecm/mepm/applcm/resources/local-setup b/mecm/mepm/applcm/resources/local-setup new file mode 100644 index 0000000..bc32338 --- /dev/null +++ b/mecm/mepm/applcm/resources/local-setup @@ -0,0 +1,28 @@ + +MIKI kube install: +curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ +&& chmod +x minikube +sudo mkdir -p /usr/local/bin/ +sudo install minikube /usr/local/bin/ +minikube start + +sudo minikube start --driver=docker + +Kubectl install: +curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl +chmod +x ./kubectl +sudo mv ./kubectl /usr/local/bin/kubectl + + +copy from local envi to helmplugin docker to the same location in docker +/home/root1/.minikube/profiles/minikube/client.crt +/home/root1/.minikube/profiles/minikube/client.key +/home/root1/.minikube/ca.crt + +Copy kubeconfig: +.kube/config to /go/release/kubeconfig/{hostIp} + + + + + diff --git a/mecm/mepm/applcm/resources/sample_app.csar b/mecm/mepm/applcm/resources/sample_app.csar new file mode 100644 index 0000000000000000000000000000000000000000..4472b8d1311cbcd59c14c2c03f64ba27a746cb3f GIT binary patch literal 66043 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%0Dj4p!TAH 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 Ody~Gos)768NB;{6pr{!D literal 0 HcmV?d00001 -- 2.16.6