From a7a64477c28b433ba05afbe65155450d6ae3cba8 Mon Sep 17 00:00:00 2001 From: Bharath Thiruveedula Date: Mon, 7 Aug 2017 08:28:13 +0530 Subject: Add VSP lifecycle commands Change-Id: Ibdc78b3ab1921c160f8ee193fcd47be0c75f94a9 Issue-ID: CLI-16 Signed-off-by: Bharath T --- deployment/zip/src/main/release/bin/onap.sh | 0 .../src/main/java/org/onap/cli/fw/OnapCommand.java | 3 +- .../java/org/onap/cli/fw/ad/OnapAuthClient.java | 21 ++++-- .../main/java/org/onap/cli/fw/conf/Constants.java | 1 + .../org/onap/cli/fw/conf/OnapCommandConfg.java | 25 +++++-- .../main/java/org/onap/cli/fw/http/HttpInput.java | 11 +++ .../org/onap/cli/fw/http/OnapHttpConnection.java | 3 +- .../org/onap/cli/fw/utils/OnapCommandUtils.java | 5 ++ framework/src/main/resources/onap.properties | 9 ++- .../org/onap/cli/fw/ad/OnapAuthClientTest.java | 22 ++++-- framework/src/test/resources/onap.properties | 7 +- plugins/pom.xml | 1 + plugins/sdc/pom.xml | 39 +++++++++++ .../onap-cli-schema/vsp/vsp-checkin-schema.yaml | 27 ++++++++ .../onap-cli-schema/vsp/vsp-create-schema.yaml | 79 ++++++++++++++++++++++ .../onap-cli-schema/vsp/vsp-list-schema.yaml | 32 +++++++++ .../onap-cli-schema/vsp/vsp-show-schema.yaml | 45 ++++++++++++ .../onap-cli-schema/vsp/vsp-submit-schema.yaml | 27 ++++++++ .../onap-cli-schema/vsp/vsp-upload-schema.yaml | 33 +++++++++ .../onap-cli-sample/vsp/vsp-checkin-sample.yaml | 8 +++ .../onap-cli-sample/vsp/vsp-create-sample.yaml | 14 ++++ .../onap-cli-sample/vsp/vsp-list-sample.yaml | 18 +++++ .../onap-cli-sample/vsp/vsp-show-sample.yaml | 14 ++++ .../onap-cli-sample/vsp/vsp-submit-sample.yaml | 8 +++ .../onap-cli-sample/vsp/vsp-upload-sample.yaml | 8 +++ 25 files changed, 440 insertions(+), 20 deletions(-) mode change 100644 => 100755 deployment/zip/src/main/release/bin/onap.sh create mode 100644 plugins/sdc/pom.xml create mode 100644 plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-checkin-schema.yaml create mode 100644 plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-create-schema.yaml create mode 100644 plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-list-schema.yaml create mode 100644 plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-show-schema.yaml create mode 100644 plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-submit-schema.yaml create mode 100644 plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-upload-schema.yaml create mode 100644 plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-checkin-sample.yaml create mode 100644 plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-create-sample.yaml create mode 100644 plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-list-sample.yaml create mode 100644 plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-show-sample.yaml create mode 100644 plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-submit-sample.yaml create mode 100644 plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-upload-sample.yaml diff --git a/deployment/zip/src/main/release/bin/onap.sh b/deployment/zip/src/main/release/bin/onap.sh old mode 100644 new mode 100755 diff --git a/framework/src/main/java/org/onap/cli/fw/OnapCommand.java b/framework/src/main/java/org/onap/cli/fw/OnapCommand.java index 78ab5517..08cbc3bc 100644 --- a/framework/src/main/java/org/onap/cli/fw/OnapCommand.java +++ b/framework/src/main/java/org/onap/cli/fw/OnapCommand.java @@ -264,7 +264,8 @@ public abstract class OnapCommand { this.authClient = new OnapAuthClient( creds, this.getResult().isDebug(), - this.getService().getAuthType()); + this.getService(), + this.getParameters()); } if (isAuthRequired) { diff --git a/framework/src/main/java/org/onap/cli/fw/ad/OnapAuthClient.java b/framework/src/main/java/org/onap/cli/fw/ad/OnapAuthClient.java index 93d5ad6b..e9d495c6 100644 --- a/framework/src/main/java/org/onap/cli/fw/ad/OnapAuthClient.java +++ b/framework/src/main/java/org/onap/cli/fw/ad/OnapAuthClient.java @@ -16,6 +16,8 @@ package org.onap.cli.fw.ad; +import java.util.HashMap; +import java.util.List; import java.util.Map; import org.apache.http.HttpStatus; @@ -26,6 +28,7 @@ import org.onap.cli.fw.conf.OnapCommandConfg; import org.onap.cli.fw.error.OnapCommandException; import org.onap.cli.fw.error.OnapCommandExecutionFailed; import org.onap.cli.fw.error.OnapCommandHttpFailure; +import org.onap.cli.fw.error.OnapCommandInvalidParameterValue; import org.onap.cli.fw.error.OnapCommandLoginFailed; import org.onap.cli.fw.error.OnapCommandLogoutFailed; import org.onap.cli.fw.error.OnapCommandServiceNotFound; @@ -34,6 +37,7 @@ import org.onap.cli.fw.http.HttpResult; import org.onap.cli.fw.http.OnapHttpConnection; import com.jayway.jsonpath.JsonPath; +import org.onap.cli.fw.input.OnapCommandParameter; /** * Onap Auth client helps to do login and logout. @@ -48,13 +52,19 @@ public class OnapAuthClient { private OnapCredentials creds = null; + private OnapService service = new OnapService(); + private String authType = OnapCommandConfg.getAuthType(); - public OnapAuthClient(OnapCredentials creds, boolean debug, String... authType) throws OnapCommandHttpFailure { + private Map paramMap = new HashMap<>(); + + public OnapAuthClient(OnapCredentials creds, boolean debug, OnapService service, List params) throws OnapCommandHttpFailure, OnapCommandInvalidParameterValue { this.creds = creds; - if (authType.length > 0) { - this.authType = authType[0]; + this.service = service; + for (OnapCommandParameter param : params) { + paramMap.put(param.getName(), param.getValue().toString()); } + this.authType = service.getAuthType(); this.http = new OnapHttpConnection(creds.getHostUrl().startsWith("https"), debug); } @@ -82,7 +92,10 @@ public class OnapAuthClient { String authToken = BasicScheme.authenticate(new UsernamePasswordCredentials( creds.getUsername(), creds.getPassword()), "UTF-8", false).getValue(); - Map mapHeaders = OnapCommandConfg.getBasicCommonHeaders(); + Map mapHeaders = OnapCommandConfg.getBasicCommonHeaders(this.paramMap); + if(this.service.getName() != null){ + mapHeaders.putAll(OnapCommandConfg.getServiceHeaders(this.service.getName(), this.paramMap)); + } mapHeaders.put(OnapCommandConfg.getXAuthTokenName(), authToken); this.http.setCommonHeaders(mapHeaders); return; diff --git a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java b/framework/src/main/java/org/onap/cli/fw/conf/Constants.java index a3724275..e9b158e7 100644 --- a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java +++ b/framework/src/main/java/org/onap/cli/fw/conf/Constants.java @@ -75,6 +75,7 @@ public class Constants { public static final String CLIENT = "client"; public static final String ENTITY = "entity"; public static final String METHOD = "method"; + public static final String MULTIPART_ENTITY_NAME = "multipart_entity_name"; public static final String EXCEPTION = "exception"; public static final String SCOPE = "scope"; diff --git a/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java index 2fdb0a82..479431f2 100644 --- a/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java +++ b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java @@ -16,6 +16,8 @@ package org.onap.cli.fw.conf; +import org.onap.cli.fw.input.OnapCommandParameter; + import java.io.IOException; import java.util.Arrays; import java.util.HashMap; @@ -99,21 +101,32 @@ public final class OnapCommandConfg { return prps.getProperty(Constants.SERVICE_AUTH, Constants.AUTH_BASIC); } - public static Map getBasicCommonHeaders() { + private static Map getHeaderValues(String headerKey, Map paramMap) { Map mapHeaders = new HashMap (); - - Arrays.stream(prps.getProperty(Constants.SERVICE_AUTH_BASIC_HTTP_HEADERS) // NOSONAR + Arrays.stream(prps.getProperty(headerKey) // NOSONAR .split(",")).map(String::trim).forEach(header -> { - String headerName = prps.getProperty(Constants.SERVICE_AUTH_BASIC_HTTP_HEADERS + "." + header); - String headerValue = prps.getProperty(Constants.SERVICE_AUTH_BASIC_HTTP_HEADERS + "." + header + ".value", null); + String headerName = prps.getProperty(headerKey+ "." + header); + String headerValue = prps.getProperty(headerKey + "." + header + ".value", null); if (headerValue != null) { headerValue = headerValue.replaceAll("uuid", UUID.randomUUID().toString()); + if (headerValue.contains("${")) { + String param = headerValue.substring(headerValue.indexOf("${")+2 ,headerValue.indexOf("}")); + String pattern = "${"+param+"}"; + headerValue = headerValue.replace(pattern, paramMap.getOrDefault(param, param)); + } } mapHeaders.put(headerName, headerValue); }); - return mapHeaders; } + public static Map getBasicCommonHeaders(Map paramMap) { + return getHeaderValues(Constants.SERVICE_AUTH_BASIC_HTTP_HEADERS, paramMap); + } + + public static Map getServiceHeaders(String serviceName, Map paramMap) { + String serviceHeader = Constants.SERVICE_AUTH_BASIC_HTTP_HEADERS+ "." + serviceName; + return getHeaderValues(serviceHeader, paramMap); + } public static Set getExcludeParamsForInternalCmd() { return Arrays.stream(prps.getProperty(Constants.EXCLUDE_PARAMS_INTERNAL_CMD) // NOSONAR diff --git a/framework/src/main/java/org/onap/cli/fw/http/HttpInput.java b/framework/src/main/java/org/onap/cli/fw/http/HttpInput.java index 3ab6cf4b..69439bd4 100644 --- a/framework/src/main/java/org/onap/cli/fw/http/HttpInput.java +++ b/framework/src/main/java/org/onap/cli/fw/http/HttpInput.java @@ -30,6 +30,8 @@ public class HttpInput { private String reqMethod = ""; + private String multipartEntityName = ""; + private Map reqHeaders = new HashMap<>(); private Map reqQueries = new HashMap<>(); @@ -83,6 +85,15 @@ public class HttpInput { return this; } + public String getMultipartEntityName() { + return this.multipartEntityName; + } + + public HttpInput setMultipartEntityName(String multipartEntityName) { + this.multipartEntityName = multipartEntityName; + return this; + } + public Map getReqQueries() { return reqQueries; } diff --git a/framework/src/main/java/org/onap/cli/fw/http/OnapHttpConnection.java b/framework/src/main/java/org/onap/cli/fw/http/OnapHttpConnection.java index b0ab11c4..a9df38c5 100644 --- a/framework/src/main/java/org/onap/cli/fw/http/OnapHttpConnection.java +++ b/framework/src/main/java/org/onap/cli/fw/http/OnapHttpConnection.java @@ -338,7 +338,8 @@ public class OnapHttpConnection { private HttpEntity getMultipartEntity(HttpInput input) { FileBody fileBody = new FileBody(new File(input.getBody().trim())); MultipartEntity multipartEntity = new MultipartEntity(); - multipartEntity.addPart("file", fileBody); + String fileName = input.getMultipartEntityName() != "" ? input.getMultipartEntityName() : "upload"; + multipartEntity.addPart(fileName, fileBody); return multipartEntity; } } diff --git a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandUtils.java b/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandUtils.java index 9b56dece..625c644b 100644 --- a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandUtils.java +++ b/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandUtils.java @@ -126,6 +126,7 @@ import static org.onap.cli.fw.conf.Constants.NAME; import static org.onap.cli.fw.conf.Constants.ONAP_CMD_SCHEMA_VERSION; import static org.onap.cli.fw.conf.Constants.PARAMETERS; import static org.onap.cli.fw.conf.Constants.QUERIES; +import static org.onap.cli.fw.conf.Constants.MULTIPART_ENTITY_NAME; import static org.onap.cli.fw.conf.Constants.REQUEST; import static org.onap.cli.fw.conf.Constants.RESULTS; import static org.onap.cli.fw.conf.Constants.RESULT_MAP; @@ -915,6 +916,10 @@ public class OnapCommandUtils { cmd.getInput().setReqQueries(query); break; + case MULTIPART_ENTITY_NAME: + Object multipartEntityName = map.get(key2); + cmd.getInput().setMultipartEntityName(multipartEntityName.toString()); + break; } }catch (Exception ex) { throwOrCollect(new OnapCommandInvalidSchema(schemaName, ex), errorList, validate); diff --git a/framework/src/main/resources/onap.properties b/framework/src/main/resources/onap.properties index 8a2756e4..9d59f1e2 100644 --- a/framework/src/main/resources/onap.properties +++ b/framework/src/main/resources/onap.properties @@ -20,6 +20,11 @@ cli.http.basic.common_headers.x-transaction-id.value=req-uuid cli.http.basic.common_headers.x-app-id=X-FromAppId cli.http.basic.common_headers.x-app-id.value=onap-cli +# Service specific headers +cli.http.basic.common_headers.sdc=user-id +cli.http.basic.common_headers.sdc.user-id=USER_ID +cli.http.basic.common_headers.sdc.user-id.value=${onap-username} + #TODO mrkanag add support for aaf like defined above for basic #cli.service.auth=aaf @@ -39,11 +44,11 @@ cli.schema.result_params_mandatory_list=name, description, type cli.schema.http_sections=request,success_codes,result_map,sample_response cli.schema.http_mandatory_sections=equest, success_codes -cli.schema.http_request_params=uri,method,body,headers,queries +cli.schema.http_request_params=uri,method,body,headers,queries,multipart_entity_name cli.schema.http_request_mandatory_params=uri,method cli.schema.http_methods=post,get,delete,put,head cli.schema.boolean_values=true,false cli.schema.auth_values=none,basic -cli.schema.mode_values=direct,catalog \ No newline at end of file +cli.schema.mode_values=direct,catalog diff --git a/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientTest.java b/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientTest.java index f98846c6..c57be7d2 100644 --- a/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientTest.java +++ b/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientTest.java @@ -16,6 +16,9 @@ package org.onap.cli.fw.ad; +import java.util.ArrayList; +import java.util.List; + import static org.junit.Assert.assertEquals; import org.junit.AfterClass; @@ -30,6 +33,7 @@ import org.onap.cli.fw.error.OnapCommandServiceNotFound; import org.onap.cli.fw.http.HttpInput; import org.onap.cli.fw.http.HttpResult; import org.onap.cli.fw.http.OnapHttpConnection; +import org.onap.cli.fw.input.OnapCommandParameter; import mockit.Invocation; import mockit.Mock; @@ -40,15 +44,19 @@ public class OnapAuthClientTest { OnapAuthClient client; @Before - public void setUp() throws OnapCommandHttpFailure { + public void setUp() throws OnapCommandHttpFailure, OnapCommandException { OnapCredentials creds = new OnapCredentials("test", "test123", "http://192.168.99.10:80"); - client = new OnapAuthClient(creds, true); + OnapService service = new OnapService(); + List params = new ArrayList<>(); + client = new OnapAuthClient(creds, true, service, params); } @Test public void loginFailedAuthIgnoredTest() throws OnapCommandException { OnapCredentials creds = new OnapCredentials("test", "test123", "http://192.168.99.10:80"); - OnapAuthClient client = new OnapAuthClient(creds, true); + OnapService service = new OnapService(); + List params = new ArrayList<>(); + OnapAuthClient client = new OnapAuthClient(creds, true, service, params); if (OnapCommandConfg.isAuthIgnored()) { client.getDebugInfo(); client.login(); @@ -58,7 +66,9 @@ public class OnapAuthClientTest { @Test public void logoutFailedAuthIgnoredTest() throws OnapCommandException { OnapCredentials creds = new OnapCredentials("test", "test123", "http://192.168.99.10:80"); - OnapAuthClient client = new OnapAuthClient(creds, true); + OnapService service = new OnapService(); + List params = new ArrayList<>(); + OnapAuthClient client = new OnapAuthClient(creds, true, service, params); if (OnapCommandConfg.isAuthIgnored()) { client.logout(); } @@ -67,7 +77,9 @@ public class OnapAuthClientTest { @Test public void getMsbUrlTest() throws OnapCommandException { OnapCredentials creds = new OnapCredentials("test", "test123", "http://192.168.99.10:80"); - OnapAuthClient client = new OnapAuthClient(creds, true); + OnapService service = new OnapService(); + List params = new ArrayList<>(); + OnapAuthClient client = new OnapAuthClient(creds, true, service, params); OnapService srv = new OnapService(); srv.setName("msb"); String msb = client.getServiceBasePath(srv); diff --git a/framework/src/test/resources/onap.properties b/framework/src/test/resources/onap.properties index 8a2756e4..cdbbfa84 100644 --- a/framework/src/test/resources/onap.properties +++ b/framework/src/test/resources/onap.properties @@ -20,6 +20,11 @@ cli.http.basic.common_headers.x-transaction-id.value=req-uuid cli.http.basic.common_headers.x-app-id=X-FromAppId cli.http.basic.common_headers.x-app-id.value=onap-cli +# Service specific headers +cli.http.basic.common_headers.sdc=user-id +cli.http.basic.common_headers.sdc.user-id=USER_ID +cli.http.basic.common_headers.sdc.user-id.value=${onap-username} + #TODO mrkanag add support for aaf like defined above for basic #cli.service.auth=aaf @@ -46,4 +51,4 @@ cli.schema.http_methods=post,get,delete,put,head cli.schema.boolean_values=true,false cli.schema.auth_values=none,basic -cli.schema.mode_values=direct,catalog \ No newline at end of file +cli.schema.mode_values=direct,catalog diff --git a/plugins/pom.xml b/plugins/pom.xml index 40e7b8e6..acd24803 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -46,6 +46,7 @@ msb aai + sdc diff --git a/plugins/sdc/pom.xml b/plugins/sdc/pom.xml new file mode 100644 index 00000000..01285558 --- /dev/null +++ b/plugins/sdc/pom.xml @@ -0,0 +1,39 @@ + + + + + 4.0.0 + + + org.onap.cli + cli-plugins + 1.0.0-SNAPSHOT + + + cli-plugins-sdc + cli/plugins/sdc + jar + + + + org.apache.maven.plugins + maven-dependency-plugin + + + + diff --git a/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-checkin-schema.yaml b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-checkin-schema.yaml new file mode 100644 index 00000000..a845deb5 --- /dev/null +++ b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-checkin-schema.yaml @@ -0,0 +1,27 @@ +onap_cmd_schema_version: 1.0 +name: vsp-checkin +description: Checkin Vendor Software Product + +service: + name: sdc + version: v1.0 + auth: basic + mode: direct + +parameters: + - name: vsp-id + description: Onap VSP ID + type: string + short_option: x + long_option: vsp-id + is_optional: false +http: + request: + uri: /onboarding-api/v1.0/vendor-software-products/${vsp-id}/actions + method: PUT + body: '{"action": "Checkin"}' + success_codes: + - 201 + - 200 + sample_response: + body: '' diff --git a/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-create-schema.yaml b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-create-schema.yaml new file mode 100644 index 00000000..6f460884 --- /dev/null +++ b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-create-schema.yaml @@ -0,0 +1,79 @@ +onap_cmd_schema_version: 1.0 +name: vsp-create +description: Create Vendor Software Product + +service: + name: sdc + version: v1.0 + auth: basic + mode: direct + +parameters: + - name: vsp-name + description: Onap VSP Name + type: string + short_option: x + long_option: vsp-name + is_optional: false + - name: vsp-description + description: Description for VSP + type: string + short_option: y + long_option: vsp-description + is_optional: true + - name: vsp-category + description: Category of the VSP + type: string + long_option: vsp-category + is_optional: true + default_value: resourceNewCategory.generic + - name: vsp-subcategory + description: Sub Category of VSP + type: string + long_option: vsp-subcategory + is_optional: true + default_value: resourceNewCategory.generic.abstract + - name: vsp-license-version + description: License version + type: string + long_option: vsp-license-version + is_optional: true + default_value: 1.0 + - name: vsp-vendor-name + description: License Model Name + type: string + long_option: vsp-vendor-name + is_optional: false + - name: vsp-vendor-id + description: License Model ID + type: string + long_option: vsp-vendor-id + is_optional: false + - name: license-agreement-id + description: License Agreement ID + type: string + long_option: license-agreement-id + is_optional: false + - name: feature-group-id + description: Feature Group ID + type: string + long_option: feature-group-id + is_optional: false +results: + direction: portrait + attributes: + - name: ID + description: VSP ID + scope: short + type: string +http: + request: + uri: /onboarding-api/v1.0/vendor-software-products + method: POST + body: '{"name": "${vsp-name}", "description": "${vsp-description}", "category": "${vsp-category}", "subCategory": "${vsp-subcategory}", "licensingVersion": "${vsp-license-version}", "vendorName": "${vsp-vendor-name}", "vendorId": "${vsp-vendor-id}", "icon": "icon", "licensingData": { "licenseAgreement": "${license-agreement-id}", "featureGroups": [ "${feature-group-id}" ]}}' + success_codes: + - 200 + result_map: + ID: $b{$.vspId} + sample_response: + body: '{"vspId":"2DEB6CB4B082415BB7A697C9CD1273BA"}' diff --git a/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-list-schema.yaml b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-list-schema.yaml new file mode 100644 index 00000000..9fe2564e --- /dev/null +++ b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-list-schema.yaml @@ -0,0 +1,32 @@ +onap_cmd_schema_version: 1.0 +name: vsp-list +description: List of the Vendor Software Products + +service: + name: sdc + version: v1.0 + auth: basic + mode: direct + +results: + direction: landscape + attributes: + - name: ID + description: VSP ID + scope: short + type: string + - name: name + description: VSP Name + scope: short + type: string +http: + request: + uri: /onboarding-api/v1.0/vendor-software-products + method: GET + success_codes: + - 200 + result_map: + name: $b{results.[*].name} + ID: $b{results.[*].id} + sample_response: + body: '{"results":[{"name":"test-vsp1","description":"vendor software product","category":"resourceNewCategory.generic","subCategory":"resourceNewCategory.generic.abstract","vendorName":"5aa8a88c","vendorId":"DBB202617952486691C1E35C9621CD4E","licensingVersion":"1.0","licensingData":{"licenseAgreement":"E19DBDDB137B494385F9535325BFD585","featureGroups":["94835F096DAF4ED78781A394A4F22AD1"]},"id":"354BF3E32E494EAFBB15037CFAB262FF","version":"0.1","viewableVersions":["0.1"],"status":"Locked","lockingUser":"cs0008"},{"name":"test-vsp","description":"vendor software product","category":"resourceNewCategory.generic","subCategory":"resourceNewCategory.generic.abstract","vendorName":"5aa8a88c","vendorId":"DBB202617952486691C1E35C9621CD4E","licensingVersion":"1.0","licensingData":{"licenseAgreement":"E19DBDDB137B494385F9535325BFD585","featureGroups":["94835F096DAF4ED78781A394A4F22AD1"]},"id":"2DEB6CB4B082415BB7A697C9CD1273BA","version":"1.0","viewableVersions":["1.0"],"finalVersions":["1.0"],"status":"Final"}],"listCount":2}' diff --git a/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-show-schema.yaml b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-show-schema.yaml new file mode 100644 index 00000000..0f400b74 --- /dev/null +++ b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-show-schema.yaml @@ -0,0 +1,45 @@ +onap_cmd_schema_version: 1.0 +name: vsp-show +description: Details of the Vendor Software Product + +service: + name: sdc + version: v1.0 + auth: basic + mode: direct + +parameters: + - name: vsp-id + description: Onap VSP ID + type: string + short_option: x + long_option: vsp-id + is_optional: false + +results: + direction: landscape + attributes: + - name: name + description: VSP Name + scope: short + type: string + - name: ID + description: VSP ID + scope: short + type: string + - name: description + description: Description for the VSP + scope: short + type: string +http: + request: + uri: /onboarding-api/v1.0/vendor-software-products/${vsp-id} + method: GET + success_codes: + - 200 + result_map: + name: $b{$.name} + ID: $b{$.id} + description: $b{$.description} + sample_response: + body: '{"name":"test-vsp1","description":"vendor software product","category":"resourceNewCategory.generic","subCategory":"resourceNewCategory.generic.abstract","vendorName":"5aa8a88c","vendorId":"DBB202617952486691C1E35C9621CD4E","licensingVersion":"1.0","licensingData":{"licenseAgreement":"E19DBDDB137B494385F9535325BFD585","featureGroups":["94835F096DAF4ED78781A394A4F22AD1"]},"id":"354BF3E32E494EAFBB15037CFAB262FF","version":"0.1","viewableVersions":["0.1"],"status":"Locked","lockingUser":"cs0008"}' diff --git a/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-submit-schema.yaml b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-submit-schema.yaml new file mode 100644 index 00000000..95572939 --- /dev/null +++ b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-submit-schema.yaml @@ -0,0 +1,27 @@ +onap_cmd_schema_version: 1.0 +name: vsp-submit +description: Submit Vendor Software Product + +service: + name: sdc + version: v1.0 + auth: basic + mode: direct + +parameters: + - name: vsp-id + description: Onap VSP ID + type: string + short_option: x + long_option: vsp-id + is_optional: false +http: + request: + uri: /onboarding-api/v1.0/vendor-software-products/${vsp-id}/actions + method: PUT + body: '{"action": "Submit"}' + success_codes: + - 201 + - 200 + sample_response: + body: '' diff --git a/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-upload-schema.yaml b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-upload-schema.yaml new file mode 100644 index 00000000..bc0bc4c7 --- /dev/null +++ b/plugins/sdc/src/main/resources/onap-cli-schema/vsp/vsp-upload-schema.yaml @@ -0,0 +1,33 @@ +onap_cmd_schema_version: 1.0 +name: vsp-upload +description: Upload the CSAR file to VSP + +service: + name: sdc + version: v1.0 + auth: basic + mode: direct + +parameters: + - name: vsp-id + description: Onap VSP ID + type: string + short_option: x + long_option: vsp-id + is_optional: false + - name: vsp-file + description: CSAR File path + type: binary + short_option: y + long_option: vsp-file + is_optional: false +http: + request: + uri: /onboarding-api/v1.0/vendor-software-products/${vsp-id}/upload + method: POST + body: ${vsp-file} + multipart_entity_name: upload + success_codes: + - 200 + sample_response: + body: '' diff --git a/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-checkin-sample.yaml b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-checkin-sample.yaml new file mode 100644 index 00000000..6e3263e3 --- /dev/null +++ b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-checkin-sample.yaml @@ -0,0 +1,8 @@ +onap_cli_sample_version: 1.0 + +name: vsp-checkin + +samples: + sample1: + name: Checkin the Vendor Software Product + input: --onap-username cs0008 --onap-password demo123456! --host-url http://localhost:8080 --vsp-id E563CB23A6BE49AF9A84CF579DAFB929 diff --git a/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-create-sample.yaml b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-create-sample.yaml new file mode 100644 index 00000000..c261899d --- /dev/null +++ b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-create-sample.yaml @@ -0,0 +1,14 @@ +onap_cli_sample_version: 1.0 + +name: vsp-create + +samples: + sample1: + name: Create the Vendor Software Product + input: --onap-username cs0008 --onap-password demo123456! --host-url http://locahost:8080 --vsp-name demo-vsp2 --vsp-vendor-name 5aa8a88c --vsp-vendor-id DBB202617952486691C1E35C9 621CD4E --license-agreement-id E19DBDDB137B494385F9535325BFD585 --feature-group-id 94835F096DAF4ED78781A394A4F22AD1 + output: | + +----------+----------------------------------+ + |property |value | + +----------+----------------------------------+ + |ID |6897DFFF8E864F84AD17A34B7FB936A3 | + +----------+----------------------------------+ diff --git a/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-list-sample.yaml b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-list-sample.yaml new file mode 100644 index 00000000..82013df6 --- /dev/null +++ b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-list-sample.yaml @@ -0,0 +1,18 @@ +onap_cli_sample_version: 1.0 + +name: vsp-list + +samples: + sample1: + name: List Vendor Software Products + input: --onap-username cs0008 --onap-password demo123456! --host-url http://localhost:8080 + output: | + +----------------------------------+------------+ + |ID |name | + +----------------------------------+------------+ + |E563CB23A6BE49AF9A84CF579DAFB929 |demo-vsp2 | + +----------------------------------+------------+ + |79E62AA736C34E359B869E757D3DDBBE |demo-vsp1 | + +----------------------------------+------------+ + |928B828EE3CC46B99B92D7B9A2AB2118 |demo-vsp | + +----------------------------------+------------+ diff --git a/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-show-sample.yaml b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-show-sample.yaml new file mode 100644 index 00000000..f599b747 --- /dev/null +++ b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-show-sample.yaml @@ -0,0 +1,14 @@ +onap_cli_sample_version: 1.0 + +name: vsp-show + +samples: + sample1: + name: Show the details of Vendor Software Products + input: --onap-username cs0008 --onap-password demo123456! --host-url http://localhost:8080 --vsp-id 2DEB6CB4B082415BB7A697C9CD1273BA + output: | + +----------+----------------------------------+--------------------------+ + |name |ID |description | + +----------+----------------------------------+--------------------------+ + |test-vsp |2DEB6CB4B082415BB7A697C9CD1273BA |vendor software product | + +----------+----------------------------------+--------------------------+ diff --git a/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-submit-sample.yaml b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-submit-sample.yaml new file mode 100644 index 00000000..19f3d7d0 --- /dev/null +++ b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-submit-sample.yaml @@ -0,0 +1,8 @@ +onap_cli_sample_version: 1.0 + +name: vsp-submit + +samples: + sample1: + name: Submit the Vendor Software Product + input: --onap-username cs0008 --onap-password demo123456! --host-url http://localhost:8080 --vsp-id E563CB23A6BE49AF9A84CF579DAFB929 diff --git a/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-upload-sample.yaml b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-upload-sample.yaml new file mode 100644 index 00000000..7fecc8a0 --- /dev/null +++ b/plugins/sdc/src/test/resources/onap-cli-sample/vsp/vsp-upload-sample.yaml @@ -0,0 +1,8 @@ +onap_cli_sample_version: 1.0 + +name: vsp-upload + +samples: + sample1: + name: upload the zip file to Vendor Software Product + input: --onap-username cs0008 --onap-password demo123456! --host-url http://localhost:8080 --vsp-id E563CB23A6BE49AF9A84CF579DAFB929 --vsp-file /home/user/vFW.zip -- cgit 1.2.3-korg