diff options
author | Bharath Thiruveedula <bharath_ves@hotmail.com> | 2017-08-07 08:28:13 +0530 |
---|---|---|
committer | Bharath Thiruveedula <bharath_ves@hotmail.com> | 2017-08-26 00:02:33 +0530 |
commit | a7a64477c28b433ba05afbe65155450d6ae3cba8 (patch) | |
tree | 103e4301b0831fe81193b65971ed66ebbd56828d /framework/src/main/java/org | |
parent | 42ad121a52d01dd203c529f2ba7753f82d45ec21 (diff) |
Add VSP lifecycle commands
Change-Id: Ibdc78b3ab1921c160f8ee193fcd47be0c75f94a9
Issue-ID: CLI-16
Signed-off-by: Bharath T<bharath.thiruveedula@verizon.com>
Diffstat (limited to 'framework/src/main/java/org')
7 files changed, 57 insertions, 12 deletions
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<String, String> paramMap = new HashMap<>(); + + public OnapAuthClient(OnapCredentials creds, boolean debug, OnapService service, List<OnapCommandParameter> 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<String, String> mapHeaders = OnapCommandConfg.getBasicCommonHeaders(); + Map<String, String> 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<String, String> getBasicCommonHeaders() { + private static Map<String, String> getHeaderValues(String headerKey, Map<String, String> paramMap) { Map<String, String> mapHeaders = new HashMap<String, String> (); - - 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<String, String> getBasicCommonHeaders(Map<String, String> paramMap) { + return getHeaderValues(Constants.SERVICE_AUTH_BASIC_HTTP_HEADERS, paramMap); + } + + public static Map<String, String> getServiceHeaders(String serviceName, Map<String, String> paramMap) { + String serviceHeader = Constants.SERVICE_AUTH_BASIC_HTTP_HEADERS+ "." + serviceName; + return getHeaderValues(serviceHeader, paramMap); + } public static Set<String> 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<String, String> reqHeaders = new HashMap<>(); private Map<String, String> 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<String, String> 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); |