aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/main
diff options
context:
space:
mode:
authorKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2017-12-11 20:34:44 +0530
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2017-12-12 15:48:55 +0530
commit0d97a835fa2052ded5a31e8921baf641c8e9bb57 (patch)
tree800584529f77c8ff26f05a73abd3fa71205a69a7 /framework/src/main
parent03c54a40daf75644ec0bcbc73636e3eb427c1604 (diff)
Make Http as separate plugin
Issue-ID: CLI-66 Change-Id: I8ad78f417f6dbb00e29effdd3ed8ec1939aee81d Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Diffstat (limited to 'framework/src/main')
-rw-r--r--framework/src/main/java/org/onap/cli/fw/ad/OnapAuthClient.java161
-rw-r--r--framework/src/main/java/org/onap/cli/fw/ad/OnapService.java101
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java48
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLogoutCommand.java29
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/CatalogCommand.java28
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/OnapCommand.java (renamed from framework/src/main/java/org/onap/cli/fw/OnapCommand.java)79
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/OnapCommandType.java (renamed from framework/src/main/java/org/onap/cli/fw/cmd/CommandType.java)4
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/OnapHttpCommand.java199
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaRefreshCommand.java11
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaValidateCommand.java13
-rw-r--r--framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java139
-rw-r--r--framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfig.java71
-rw-r--r--framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConstants.java (renamed from framework/src/main/java/org/onap/cli/fw/conf/Constants.java)100
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandFailedMocoGenerate.java39
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpFailure.java44
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpHeaderNotFound.java30
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResponseBody.java37
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResultMap.java32
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandInvalidRegistration.java2
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandLoginFailed.java41
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandLogoutFailed.java40
-rw-r--r--framework/src/main/java/org/onap/cli/fw/error/OnapCommandServiceNotFound.java30
-rw-r--r--framework/src/main/java/org/onap/cli/fw/http/HttpInput.java139
-rw-r--r--framework/src/main/java/org/onap/cli/fw/http/HttpResult.java77
-rw-r--r--framework/src/main/java/org/onap/cli/fw/http/OnapHttpConnection.java349
-rw-r--r--framework/src/main/java/org/onap/cli/fw/info/OnapCommandInfo.java8
-rw-r--r--framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameter.java57
-rw-r--r--framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameterType.java (renamed from framework/src/main/java/org/onap/cli/fw/input/ParameterType.java)4
-rw-r--r--framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParamEntity.java (renamed from framework/src/main/java/org/onap/cli/fw/input/cache/Param.java)2
-rw-r--r--framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java62
-rw-r--r--framework/src/main/java/org/onap/cli/fw/output/OnapCommandPrintDirection.java (renamed from framework/src/main/java/org/onap/cli/fw/output/PrintDirection.java)4
-rw-r--r--framework/src/main/java/org/onap/cli/fw/output/OnapCommandResult.java30
-rw-r--r--framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultAttribute.java8
-rw-r--r--framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultType.java (renamed from framework/src/main/java/org/onap/cli/fw/output/ResultType.java)8
-rw-r--r--framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java8
-rw-r--r--framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java (renamed from framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java)59
-rw-r--r--framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchema.java (renamed from framework/src/main/java/org/onap/cli/fw/OnapCommandSchema.java)2
-rw-r--r--framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchemaInfo.java (renamed from framework/src/main/java/org/onap/cli/fw/utils/SchemaInfo.java)18
-rw-r--r--framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchemaLoader.java (renamed from framework/src/main/java/org/onap/cli/fw/utils/OnapCommandSchemaLoaderUtils.java)358
-rw-r--r--framework/src/main/java/org/onap/cli/fw/utils/OnapCommandDiscoveryUtils.java95
-rw-r--r--framework/src/main/java/org/onap/cli/fw/utils/OnapCommandHelperUtils.java26
-rw-r--r--framework/src/main/java/org/onap/cli/fw/utils/OnapCommandProfileUtils.java72
-rw-r--r--framework/src/main/java/org/onap/cli/fw/utils/OnapCommandUtils.java444
-rw-r--r--framework/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand6
-rw-r--r--framework/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand2
-rw-r--r--framework/src/main/resources/log4j.properties2
-rw-r--r--framework/src/main/resources/open-cli-schema/http/basic-login.yaml19
-rw-r--r--framework/src/main/resources/open-cli-schema/http/basic-logout.yaml19
-rw-r--r--framework/src/main/resources/open-cli-schema/http/catalog.yaml44
-rw-r--r--framework/src/main/resources/open-cli-schema/http/default_input_parameters_http.yaml36
-rw-r--r--framework/src/main/resources/open-cli.properties29
51 files changed, 443 insertions, 2822 deletions
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
deleted file mode 100644
index 6a324808..00000000
--- a/framework/src/main/java/org/onap/cli/fw/ad/OnapAuthClient.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.ad;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.onap.cli.fw.OnapCommand;
-import org.onap.cli.fw.OnapCommandRegistrar;
-import org.onap.cli.fw.cmd.OnapHttpCommand;
-import org.onap.cli.fw.conf.Constants;
-import org.onap.cli.fw.conf.OnapCommandConfg;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandHttpFailure;
-import org.onap.cli.fw.error.OnapCommandInvalidParameterValue;
-import org.onap.cli.fw.error.OnapCommandNotFound;
-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.output.OnapCommandResultAttribute;
-import org.onap.cli.fw.utils.OnapCommandDiscoveryUtils;
-import org.onap.cli.fw.utils.OnapCommandUtils;
-
-/**
- * Oclip Auth client helps to do login and logout.
- *
- */
-public class OnapAuthClient {
-
- private OnapHttpCommand cmd = null;
-
- private OnapHttpConnection http = null;
-
- public OnapAuthClient(OnapHttpCommand cmd, boolean debug) throws OnapCommandHttpFailure, OnapCommandInvalidParameterValue {
- this.cmd = cmd;
- this.http = new OnapHttpConnection(debug);
- }
-
- /**
- * Login.
- *
- * @throws OnapCommandException
- * exception
- */
- public void login() throws OnapCommandException {
-
- // For development purpose, its introduced and is not supported for production
- if (OnapCommandConfg.isAuthIgnored()) {
- return;
- }
-
- OnapCommand login = OnapCommandDiscoveryUtils.findAuthCommand(this.cmd, "login");
-
- OnapCommandUtils.copyParamsFrom(this.cmd, login);
- login.execute();
-
- //It is safely assumed that all outputs are considered as common http headers.
- Map<String, String> headers = new HashMap<>();
- for (OnapCommandResultAttribute attr: login.getResult().getRecords()) {
- String headerValue = attr.getValues().get(0);
- if (headerValue != null && !headerValue.isEmpty()) {
- headers.put(attr.getName(), attr.getValues().get(0));
- }
- }
-
- this.http.setCommonHeaders(headers);
- }
-
- /**
- * Logout.
- *
- * @throws OnapCommandException
- * exception
- */
- public void logout() throws OnapCommandException {
- // For development purpose, its introduced and is not supported for production
- if (OnapCommandConfg.isAuthIgnored()) {
- return;
- }
-
- OnapCommand logout = OnapCommandDiscoveryUtils.findAuthCommand(this.cmd, "logout");
-
- OnapCommandUtils.copyParamsFrom(this.cmd, logout);
-
- logout.execute();
-
- this.http.close();
- }
-
- /**
- * Find given service base path.
- *
- * @throws OnapCommandException
- * exception
- */
- public String getServiceUrl() throws OnapCommandException {
- return this.getServiceUrl(this.cmd);
- }
-
- private String getServiceUrl(OnapHttpCommand cmd) throws OnapCommandException {
- if (cmd.getService().isModeDirect()){
- return cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).getValue().toString();
- } else { //Catalog mode
- OnapCommand catalog = OnapCommandRegistrar.getRegistrar().get("catalog");
-
- Map<String, String> paramsOverrides = new HashMap<>();
- paramsOverrides.put(Constants.CATALOG_SERVICE_NAME, cmd.getService().getName());
- paramsOverrides.put(Constants.CATALOG_SERVICE_VERSION, cmd.getService().getVersion());
-
- OnapCommandUtils.copyParamsFrom(cmd, catalog, paramsOverrides);
-
- catalog.execute();
-
- String hostUrl = catalog.getResult().getRecordsMap().get(Constants.CATALOG_SERVICE_HOST_URL).getValues().get(0);
- hostUrl = hostUrl.trim();
- if (hostUrl.endsWith("/")) {
- hostUrl = hostUrl.substring(0, hostUrl.length()-1);
- }
-
- String basePath = catalog.getResult().getRecordsMap().get(Constants.CATALOG_SERVICE_BASE_PATH).getValues().get(0);
- basePath = basePath.trim();
- if (basePath.startsWith("/")) {
- basePath = basePath.substring(1);
- }
-
- return hostUrl + "/" + basePath;
- }
- }
-
-
- public String getDebugInfo() {
- return this.http.getDebugInfo();
- }
-
- /**
- * Http call to external service.
- *
- * @param input
- * http input
- * @return http result
- * @throws OnapCommandHttpFailure
- * exception
- */
- public HttpResult run(HttpInput input) throws OnapCommandHttpFailure {
- return this.http.request(input);
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/ad/OnapService.java b/framework/src/main/java/org/onap/cli/fw/ad/OnapService.java
deleted file mode 100644
index a16c4434..00000000
--- a/framework/src/main/java/org/onap/cli/fw/ad/OnapService.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.ad;
-
-import org.onap.cli.fw.conf.Constants;
-
-/**
- * Oclip Service as reported in api catalog.
- */
-public class OnapService {
- /*
- * Oclip Service name like aai.
- */
- private String serviceName;
-
- /*
- * Oclip Service API version like v1, v2, etc
- */
- private String serviceVersion;
-
- private String basePath;
-
- /**
- * Mode of service consideration. By default, it goes with
- * 'catalog' mode, where basePath will be discovered by
- * the framework using serviceName and serviceVersion
- * Another mode is 'direct', in which bastPath will be
- * same as OnapCredentails.ServiceUrl.
- */
- private String mode = Constants.MODE_DIRECT;
-
- private String authType = Constants.AUTH_NONE;
-
- public String getMode() {
- return mode;
- }
-
- public void setMode(String mode) {
- this.mode = mode;
- }
-
- public boolean isModeDirect() {
- return this.getMode().equals(Constants.MODE_DIRECT);
- }
-
- public String getAuthType() {
- return this.authType;
- }
-
- public void setAuthType(String auth) {
- this.authType = auth;
- }
-
- public boolean isNoAuth() {
- return this.authType.equalsIgnoreCase(Constants.AUTH_NONE);
- }
-
- public String getName() {
- return serviceName;
- }
-
- public void setName(String name) {
- this.serviceName = name;
- }
-
- public String getVersion() {
- return serviceVersion;
- }
-
- public void setVersion(String version) {
- this.serviceVersion = version;
- }
-
- public String getBasePath() {
- return basePath;
- }
-
- public void setBasePath(String basePath) {
- this.basePath = basePath;
- }
-
- @Override
- public String toString() {
- return this.getName() + " " + this.getVersion();
- }
-
-} \ No newline at end of file
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java
deleted file mode 100644
index 28a86a9b..00000000
--- a/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.cmd;
-
-import java.util.Map;
-
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.impl.auth.BasicScheme;
-import org.onap.cli.fw.OnapCommandSchema;
-import org.onap.cli.fw.conf.Constants;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.input.OnapCommandParameter;
-
-@OnapCommandSchema(schema = "basic-login.yaml")
-public class BasicAuthLoginCommand extends OnapHttpCommand {
-
- @Override
- protected void run() throws OnapCommandException {
-
- //get the input arguments
- Map<String, OnapCommandParameter> paramMap = getParametersMap();
- OnapCommandParameter usernameParam = paramMap.get(Constants.DEAFULT_PARAMETER_USERNAME);
- String username = usernameParam.getValue().toString();
- OnapCommandParameter usernamePassword = paramMap.get(Constants.DEAFULT_PARAMETER_PASSWORD);
- String password = usernamePassword.getValue().toString();
-
- //Execute the command to get token
- String authToken = BasicScheme.authenticate(new UsernamePasswordCredentials(
- username, password), "UTF-8", false).getValue();
-
- //Fill out the result part
- this.getResult().getRecordsMap().get(Constants.AUTH_SERVICE_AUTHORIZATION).getValues().add(authToken);
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLogoutCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLogoutCommand.java
deleted file mode 100644
index 553b28f8..00000000
--- a/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLogoutCommand.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.cmd;
-
-import org.onap.cli.fw.OnapCommandSchema;
-import org.onap.cli.fw.error.OnapCommandException;
-
-@OnapCommandSchema(schema = "basic-logout.yaml")
-public class BasicAuthLogoutCommand extends OnapHttpCommand {
-
- @Override
- protected void run() throws OnapCommandException {
- //do nothing // NOSONAR
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/CatalogCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/CatalogCommand.java
deleted file mode 100644
index 34bf90c2..00000000
--- a/framework/src/main/java/org/onap/cli/fw/cmd/CatalogCommand.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.cmd;
-
-import org.onap.cli.fw.OnapCommandSchema;
-import org.onap.cli.fw.error.OnapCommandException;
-
-@OnapCommandSchema(schema = "catalog.yaml")
-public class CatalogCommand extends OnapHttpCommand {
-
- @Override
- protected void run() throws OnapCommandException {
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/OnapCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/OnapCommand.java
index d931aaf3..4b7fe976 100644
--- a/framework/src/main/java/org/onap/cli/fw/OnapCommand.java
+++ b/framework/src/main/java/org/onap/cli/fw/cmd/OnapCommand.java
@@ -14,33 +14,26 @@
* limitations under the License.
*/
-package org.onap.cli.fw;
+package org.onap.cli.fw.cmd;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
-import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.error.OnapCommandHelpFailed;
-import org.onap.cli.fw.error.OnapCommandInvalidParameterType;
-import org.onap.cli.fw.error.OnapCommandInvalidPrintDirection;
-import org.onap.cli.fw.error.OnapCommandInvalidResultAttributeScope;
-import org.onap.cli.fw.error.OnapCommandInvalidSchema;
-import org.onap.cli.fw.error.OnapCommandInvalidSchemaVersion;
import org.onap.cli.fw.error.OnapCommandNotInitialized;
-import org.onap.cli.fw.error.OnapCommandParameterNameConflict;
-import org.onap.cli.fw.error.OnapCommandParameterOptionConflict;
-import org.onap.cli.fw.error.OnapCommandRegistrationFailed;
-import org.onap.cli.fw.error.OnapCommandSchemaNotFound;
import org.onap.cli.fw.info.OnapCommandInfo;
import org.onap.cli.fw.input.OnapCommandParameter;
import org.onap.cli.fw.output.OnapCommandResult;
import org.onap.cli.fw.output.OnapCommandResultAttribute;
import org.onap.cli.fw.output.OnapCommandResultAttributeScope;
-import org.onap.cli.fw.output.ResultType;
+import org.onap.cli.fw.output.OnapCommandResultType;
+import org.onap.cli.fw.schema.OnapCommandSchemaLoader;
import org.onap.cli.fw.utils.OnapCommandHelperUtils;
-import org.onap.cli.fw.utils.OnapCommandSchemaLoaderUtils;
import org.onap.cli.fw.utils.OnapCommandUtils;
/**
@@ -57,19 +50,16 @@ public abstract class OnapCommand {
private OnapCommandInfo info = new OnapCommandInfo();
- private List<OnapCommandParameter> cmdParameters = new ArrayList<>();
+ private Set<OnapCommandParameter> cmdParameters = new HashSet<>();
private OnapCommandResult cmdResult = new OnapCommandResult();
protected boolean isInitialzied = false;
public String getSchemaVersion() {
- return Constants.OPEN_CLI_SCHEMA_VERSION_VALUE_1_0;
+ return OnapCommandConstants.OPEN_CLI_SCHEMA_VERSION_VALUE_1_0;
}
- /**
- * Oclip command description, defined by derived command.
- */
public String getDescription() {
return this.cmdDescription;
}
@@ -78,9 +68,6 @@ public abstract class OnapCommand {
this.cmdDescription = description;
}
- /*
- * Oclip command name like user-create, ns-list, etc , defined by derived command
- */
public String getName() {
return this.cmdName;
}
@@ -97,27 +84,18 @@ public abstract class OnapCommand {
this.info = info;
}
- public void setParameters(List<OnapCommandParameter> parameters) {
+ public void setParameters(Set<OnapCommandParameter> parameters) {
this.cmdParameters = parameters;
}
- /*
- * Oclip command input parameters, defined by derived command
- */
- public List<OnapCommandParameter> getParameters() {
+ public Set<OnapCommandParameter> getParameters() {
return this.cmdParameters;
}
- /*
- * Oclip command input parameters, defined by derived command
- */
public Map<String, OnapCommandParameter> getParametersMap() {
return OnapCommandUtils.getInputMap(this.getParameters());
}
- /*
- * Oclip command output results, defined by derived command
- */
public OnapCommandResult getResult() {
return this.cmdResult;
}
@@ -137,24 +115,7 @@ public abstract class OnapCommand {
/**
* Initialize this command from command schema and assumes schema is already validated.
*
- * @throws OnapCommandRegistrationFailed
- * Command Registration Exception
- * @throws OnapCommandInvalidResultAttributeScope
- * InvalidResultAttribute Exception
- * @throws OnapCommandInvalidPrintDirection
- * InvalidPrintDirection Exception
- * @throws OnapCommandInvalidParameterType
- * InvalidParameterType Exception
- * @throws OnapCommandSchemaNotFound
- * SchemaNotFound Exception
- * @throws OnapCommandInvalidSchema
- * InvalidSchema Exception
- * @throws OnapCommandParameterOptionConflict
- * ParameterOptionConflict Exception
- * @throws OnapCommandParameterNameConflict
- * ParameterNameConflict Exception
- * @throws OnapCommandInvalidSchemaVersion
- * InvalidSchemaVersion Exception
+ * @throws OnapCommandException
*
* @return List of error strings
*/
@@ -165,7 +126,7 @@ public abstract class OnapCommand {
public List<String> initializeSchema(String schema, boolean validate) throws OnapCommandException {
this.setSchemaName(schema);
- List<String> errors = OnapCommandSchemaLoaderUtils.loadSchema(this, schema, true, validate);
+ List<String> errors = OnapCommandSchemaLoader.loadSchema(this, schema, true, validate);
errors.addAll(this.initializeProfileSchema());
this.isInitialzied = true;
@@ -204,17 +165,17 @@ public abstract class OnapCommand {
Map<String, OnapCommandParameter> paramMap = this.getParametersMap();
// -h or --help is always higher precedence !, user can set this value to get help message
- if (Constants.BOOLEAN_TRUE.equals(paramMap.get(Constants.DEFAULT_PARAMETER_HELP).getValue())) {
+ if (OnapCommandConstants.BOOLEAN_TRUE.equals(paramMap.get(OnapCommandConstants.DEFAULT_PARAMETER_HELP).getValue())) {
OnapCommandResult result = new OnapCommandResult();
- result.setType(ResultType.TEXT);
+ result.setType(OnapCommandResultType.TEXT);
result.setOutput(this.printHelp());
return result;
}
// -v or --version is next higher precedence !, user can set this value to get help message
- if (Constants.BOOLEAN_TRUE.equals(paramMap.get(Constants.DEFAULT_PARAMETER_VERSION).getValue())) {
+ if (OnapCommandConstants.BOOLEAN_TRUE.equals(paramMap.get(OnapCommandConstants.DEFAULT_PARAMETER_VERSION).getValue())) {
OnapCommandResult result = new OnapCommandResult();
- result.setType(ResultType.TEXT);
+ result.setType(OnapCommandResultType.TEXT);
result.setOutput(this.printVersion());
return result;
}
@@ -224,17 +185,17 @@ public abstract class OnapCommand {
// -f or --format
this.cmdResult.setType(
- ResultType.get(paramMap.get(Constants.DEFAULT_PARAMETER_OUTPUT_FORMAT).getValue().toString()));
- if (Constants.BOOLEAN_TRUE.equals(paramMap.get(Constants.DEFAULT_PARAMETER_OUTPUT_ATTR_LONG).getValue())) {
+ OnapCommandResultType.get(paramMap.get(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_FORMAT).getValue().toString()));
+ if (OnapCommandConstants.BOOLEAN_TRUE.equals(paramMap.get(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_ATTR_LONG).getValue())) {
this.cmdResult.setScope(OnapCommandResultAttributeScope.LONG);
}
// --no-title
- if (Constants.BOOLEAN_TRUE.equals(paramMap.get(Constants.DEFAULT_PARAMETER_OUTPUT_NO_TITLE).getValue())) {
+ if (OnapCommandConstants.BOOLEAN_TRUE.equals(paramMap.get(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_NO_TITLE).getValue())) {
this.cmdResult.setIncludeTitle(false);
}
// --debug
- if (Constants.BOOLEAN_TRUE.equals(paramMap.get(Constants.DEFAULT_PARAMETER_DEBUG).getValue())) {
+ if (OnapCommandConstants.BOOLEAN_TRUE.equals(paramMap.get(OnapCommandConstants.DEFAULT_PARAMETER_DEBUG).getValue())) {
this.cmdResult.setDebug(true);
}
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/CommandType.java b/framework/src/main/java/org/onap/cli/fw/cmd/OnapCommandType.java
index baaf7e12..e874a14e 100644
--- a/framework/src/main/java/org/onap/cli/fw/cmd/CommandType.java
+++ b/framework/src/main/java/org/onap/cli/fw/cmd/OnapCommandType.java
@@ -23,7 +23,7 @@ import org.onap.cli.fw.error.OnapCommandInvalidParameterType;
* Command type supported by Oclip CLI.
*
*/
-public enum CommandType {
+public enum OnapCommandType {
AUTH,
CATALOG,
@@ -38,7 +38,7 @@ public enum CommandType {
* @throws OnapCommandInvalidParameterType
* exception
*/
- public static CommandType get(String name) throws OnapCommandInvalidCommandType {
+ public static OnapCommandType get(String name) throws OnapCommandInvalidCommandType {
if (AUTH.name().equalsIgnoreCase(name)) {
return AUTH;
} else if (CATALOG.name().equalsIgnoreCase(name)) {
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/OnapHttpCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/OnapHttpCommand.java
deleted file mode 100644
index 892f367a..00000000
--- a/framework/src/main/java/org/onap/cli/fw/cmd/OnapHttpCommand.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.cmd;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.onap.cli.fw.OnapCommand;
-import org.onap.cli.fw.OnapCommandSchema;
-import org.onap.cli.fw.ad.OnapAuthClient;
-import org.onap.cli.fw.ad.OnapService;
-import org.onap.cli.fw.conf.Constants;
-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.OnapCommandFailedMocoGenerate;
-import org.onap.cli.fw.http.HttpInput;
-import org.onap.cli.fw.http.HttpResult;
-import org.onap.cli.fw.output.OnapCommandResultAttribute;
-import org.onap.cli.fw.utils.OnapCommandSchemaLoaderUtils;
-import org.onap.cli.fw.utils.OnapCommandUtils;
-import org.onap.cli.http.mock.MockJsonGenerator;
-import org.onap.cli.http.mock.MockRequest;
-import org.onap.cli.http.mock.MockResponse;
-
-/**
- * Oclip http Command.
- *
- */
-@OnapCommandSchema(type = Constants.HTTP_SCHEMA_PROFILE)
-public class OnapHttpCommand extends OnapCommand {
-
- private HttpInput input = new HttpInput();
-
- private List<Integer> successStatusCodes = new ArrayList<>();
-
- private Map<String, String> resultMap = new HashMap<>();
-
- protected OnapAuthClient authClient;
-
- private OnapService oclipService = new OnapService();
-
- public void setInput(HttpInput input) {
- this.input = input;
- }
-
- @Override
- public String getSchemaVersion() {
- return Constants.OPEN_CLI_SCHEMA_VERSION_VALUE_1_0;
- }
-
- public void setSuccessStatusCodes(List<Integer> successStatusCodes) {
- this.successStatusCodes = successStatusCodes;
- }
-
- public void setResultMap(Map<String, String> resultMap) {
- this.resultMap = resultMap;
- }
-
- public HttpInput getInput() {
- return input;
- }
-
- public List<Integer> getSuccessStatusCodes() {
- return successStatusCodes;
- }
-
- public Map<String, String> getResultMap() {
- return resultMap;
- }
-
- /*
- * Oclip service, this command uses to execute it.
- */
- public OnapService getService() {
- return this.oclipService;
- }
-
- public void setService(OnapService service) {
- this.oclipService = service;
- }
-
- @Override
- protected List<String> initializeProfileSchema() throws OnapCommandException {
- return OnapCommandSchemaLoaderUtils.loadHttpSchema(this, this.getSchemaName(), true, false);
- }
-
- @Override
- protected void validate() throws OnapCommandException {
- if (! this.isAuthRequired()) {
- if (this.getParametersMap().containsKey(Constants.DEAFULT_PARAMETER_USERNAME)) {
- this.getParametersMap().get(Constants.DEAFULT_PARAMETER_USERNAME).setOptional(true);
- }
- if (this.getParametersMap().containsKey(Constants.DEAFULT_PARAMETER_PASSWORD)) {
- this.getParametersMap().get(Constants.DEAFULT_PARAMETER_PASSWORD).setOptional(true);
- }
- }
-
- super.validate();
- }
-
- private boolean isAuthRequired() {
- return !this.getService().isNoAuth()
- && "false".equals(this.getParametersMap().get(Constants.DEFAULT_PARAMETER_NO_AUTH).getValue())
- && this.getInfo().getCommandType().equals(CommandType.CMD);
- }
-
- @Override
- protected void run() throws OnapCommandException {
- try {
- // For auth/catalog type commands, login and logout logic is not required
- boolean isAuthRequired = this.isAuthRequired();
-
- this.authClient = new OnapAuthClient(
- this,
- this.getResult().isDebug());
-
- if (isAuthRequired) {
- this.authClient.login();
- }
-
- this.processRequest();
-
- if (isAuthRequired) {
- this.authClient.logout();
- }
-
- if (this.getResult().isDebug() && authClient != null) {
- this.getResult().setDebugInfo(this.authClient.getDebugInfo());
- }
- } catch (OnapCommandException e) {
- if (this.getResult().isDebug() && authClient != null) {
- this.getResult().setDebugInfo(this.authClient.getDebugInfo());
- }
- throw e;
- }
- }
-
- protected void processRequest() throws OnapCommandException {
-
- HttpInput httpInput = OnapCommandUtils.populateParameters(this.getParametersMap(), this.getInput());
- httpInput.setUri(this.authClient.getServiceUrl() + httpInput.getUri());
-
- HttpResult output = this.authClient.run(httpInput);
-
- this.getResult().setOutput(output);
- if (!this.getSuccessStatusCodes().contains(output.getStatus())) {
- throw new OnapCommandExecutionFailed(this.getName(), output.getBody(), output.getStatus());
- }
-
- Map<String, ArrayList<String>> results = OnapCommandUtils.populateOutputs(this.getResultMap(), output);
- results = OnapCommandUtils.populateOutputsFromInputParameters(results, this.getParametersMap());
-
- for (OnapCommandResultAttribute attr : this.getResult().getRecords()) {
- attr.setValues(results.get(attr.getName()));
- }
- generateJsonMock(httpInput, output, this.getSchemaName());
- }
-
- private void generateJsonMock(HttpInput httpInput, HttpResult httpResult, String schemaName)
- throws OnapCommandFailedMocoGenerate {
-
- if (OnapCommandConfg.isSampleGenerateEnabled()) {
- try {
- MockRequest mockRequest = new MockRequest();
- mockRequest.setMethod(httpInput.getMethod());
- mockRequest.setUri(httpInput.getUri());
- mockRequest.setHeaders(httpInput.getReqHeaders());
- mockRequest.setJson(httpInput.getBody());
-
- MockResponse mockResponse = new MockResponse();
- mockResponse.setStatus(httpResult.getStatus());
- mockResponse.setJson(httpResult.getBody());
-
- MockJsonGenerator.generateMocking(mockRequest, mockResponse, OnapCommandConfg.getSampleGenerateTargetFolder()
- + "/" + schemaName.replace(".yaml", "") + "-moco.json");
- } catch (IOException error) {
- throw new OnapCommandFailedMocoGenerate(schemaName, error);
- }
- }
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaRefreshCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaRefreshCommand.java
index 40d8eee5..2458a141 100644
--- a/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaRefreshCommand.java
+++ b/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaRefreshCommand.java
@@ -18,11 +18,10 @@ package org.onap.cli.fw.cmd;
import java.util.List;
-import org.onap.cli.fw.OnapCommand;
-import org.onap.cli.fw.OnapCommandSchema;
import org.onap.cli.fw.error.OnapCommandException;
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cli.fw.schema.OnapCommandSchemaInfo;
import org.onap.cli.fw.utils.OnapCommandDiscoveryUtils;
-import org.onap.cli.fw.utils.SchemaInfo;
/**
* Refresh external schema.
@@ -34,13 +33,13 @@ public class OnapSchemaRefreshCommand extends OnapCommand {
@Override
protected void run() throws OnapCommandException {
- List<SchemaInfo> schemas = OnapCommandDiscoveryUtils.discoverOrLoadSchemas(true);
+ List<OnapCommandSchemaInfo> schemas = OnapCommandDiscoveryUtils.discoverOrLoadSchemas(true);
int i = 0;
- for (SchemaInfo schema : schemas) {
+ for (OnapCommandSchemaInfo schema : schemas) {
if (schema.isIgnore()) {
continue;
}
-
+
i++;
this.getResult().getRecordsMap().get("sr.no").getValues().add(String.valueOf(i));
this.getResult().getRecordsMap().get("command").getValues().add(schema.getCmdName());
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaValidateCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaValidateCommand.java
index ff3f1c98..8448276b 100644
--- a/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaValidateCommand.java
+++ b/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaValidateCommand.java
@@ -20,14 +20,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.onap.cli.fw.OnapCommand;
-import org.onap.cli.fw.OnapCommandRegistrar;
-import org.onap.cli.fw.OnapCommandSchema;
-import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.input.OnapCommandParameter;
+import org.onap.cli.fw.registrar.OnapCommandRegistrar;
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cli.fw.schema.OnapCommandSchemaLoader;
import org.onap.cli.fw.utils.OnapCommandDiscoveryUtils;
-import org.onap.cli.fw.utils.OnapCommandSchemaLoaderUtils;
/**
* Validate schema command.
@@ -52,10 +51,10 @@ public class OnapSchemaValidateCommand extends OnapCommand {
String ocsVersion = String.valueOf(versionParam.getValue());
String type = OnapCommandDiscoveryUtils.identitySchemaProfileType(
- OnapCommandSchemaLoaderUtils.validateSchemaVersion(location, ocsVersion));
+ OnapCommandSchemaLoader.validateSchemaVersion(location, ocsVersion));
OnapCommand cmd = null;
- if (type.equals(Constants.BASIC_SCHEMA_PROFILE)) {
+ if (type.equals(OnapCommandConstants.BASIC_SCHEMA_PROFILE)) {
cmd = new OnapCommand() {
@Override
protected void run() throws OnapCommandException {
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
deleted file mode 100644
index 19e7b48b..00000000
--- a/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.conf;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-/**
- * Oclip command constants.
- *
- */
-public final class OnapCommandConfg {
-
- private static Properties prps = new Properties();
-
- /**
- * Private constructor.
- */
- private OnapCommandConfg() {
-
- }
-
- static {
- try {
- prps.load(OnapCommandConfg.class.getClassLoader().getResourceAsStream(Constants.CONF));
- } catch (IOException e) {
- throw new RuntimeException(e); // NOSONAR
- }
- }
-
- /**
- * is auth service ignored.
- *
- * @return boolean
- */
- public static boolean isAuthIgnored() {
- if ("true".equals(prps.getProperty(Constants.OPEN_IGNORE_AUTH))) {
- return true;
- }
-
- return false;
- }
-
- /**
- * is discovery should do every time.
- *
- * @return boolean
- */
- public static boolean isDiscoverAlways() {
- if ("true".equals(prps.getProperty(Constants.DISCOVER_ALWAYS))) {
- return true;
- }
-
- return false;
- }
-
- public static String getVersion() {
- return prps.getProperty(Constants.OPEN_CLI_VERSION);
- }
-
- public static String getEnabledProductVersion() {
- String version = System.getenv(Constants.OPEN_OPEN_CLI_PRODUCT_IN_USE_ENV_NAME);
- if (version == null) {
- version = prps.getProperty(Constants.OPEN_CLI_PRODUCT_NAME);
- }
- return version;
- }
-
- /**
- * checks if cookies based auth.
- *
- * @return boolean
- */
- public static boolean isCookiesBasedAuth() {
- if ("true".equals(prps.getProperty(Constants.HTTP_API_KEY_USE_COOKIES))) {
- return true;
- }
-
- return false;
- }
-
- public static String getProductName() {
- return prps.getProperty(Constants.OPEN_CLI_PRODUCT_NAME);
- }
-
- private static Map<String, String> getHeaderValues(String headerKey, Map<String, String> paramMap) {
- Map<String, String> mapHeaders = new HashMap<String, String> ();
- if (prps.containsKey(headerKey)) {
- Arrays.stream(prps.getProperty(headerKey) // NOSONAR
- .split(",")).map(String::trim).forEach(header -> {
- 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;
- }
-
- //mrkanag move this utils class
- public static List<String> getSchemaAttrInfo(String key) {
- return Arrays.stream(prps.getProperty(key).split(",")).map(String::trim).collect(Collectors.toList()); // NOSONAR
- }
-
- public static String getSampleGenerateTargetFolder() {
- return prps.getProperty(Constants.SAMPLE_GEN_TARGET_FOLDER, ".");
- }
-
- public static boolean isSampleGenerateEnabled() {
- return "true".equals(prps.getProperty(Constants.SAMPLE_GEN_ENABLED));
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfig.java b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfig.java
new file mode 100644
index 00000000..079a4410
--- /dev/null
+++ b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfig.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cli.fw.conf;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+import java.util.stream.Collectors;
+
+/**
+ * Oclip command constants.
+ *
+ */
+public final class OnapCommandConfig {
+
+ private static Properties prps = new Properties();
+
+ /**
+ * Private constructor.
+ */
+ private OnapCommandConfig() {
+
+ }
+
+ static {
+ loadProperties(prps, OnapCommandConstants.CONF);
+ for (String prpFile: getCommaSeparatedList(OnapCommandConstants.OPEN_CLI_PLUGIN_PRPS)) {
+ addProperties(prpFile);
+ }
+ }
+
+ private static void loadProperties(Properties prps, String fileName) {
+ try {
+ prps.load(OnapCommandConfig.class.getClassLoader().getResourceAsStream(fileName));
+ } catch (Exception e) { // NOSONAR
+ throw new RuntimeException(e); // NOSONAR
+ }
+ }
+
+ private static void addProperties(String fileName) {
+ Properties ps = new Properties();
+ loadProperties(ps, fileName);
+
+ for (Object key: ps.keySet()) {
+ prps.put(key, ps.get(key));
+ }
+ }
+
+ public static String getPropertyValue(String propertyName) {
+ return prps.getProperty(propertyName);
+ }
+
+ public static List<String> getCommaSeparatedList(String key) {
+ return Arrays.stream(getPropertyValue(key).split(",")).map(String::trim).collect(Collectors.toList()); // NOSONAR
+ }
+}
diff --git a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConstants.java
index 4c7581b7..6f911c29 100644
--- a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java
+++ b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConstants.java
@@ -17,17 +17,14 @@
package org.onap.cli.fw.conf;
/**
- * Constants.
+ * OnapCommandHttpConstants.
*
*/
-public class Constants {
+public class OnapCommandConstants {
//config
public static final String CONF = "open-cli.properties";
- public static final String OPEN_IGNORE_AUTH = "cli.ignore_auth";
public static final String OPEN_CLI_VERSION = "cli.version";
- public static final String HTTP_API_KEY_USE_COOKIES = "cli.http.api_key_use_cookies";
-
public static final String TOP_LEVEL_PARAMS_LIST = "cli.schema.top_level_params_list";
public static final String TOP_LEVEL_MANDATORY_LIST = "cli.schema.top_level_mandatory_list";
public static final String SERVICE_PARAMS_LIST = "cli.schema.service_params_list";
@@ -38,35 +35,23 @@ public class Constants {
public static final String INPUT_PARAMS_MANDATORY_LIST = "cli.schema.input_params_mandatory_list";
public static final String RESULT_PARAMS_LIST = "cli.schema.result_params_list";
public static final String RESULT_PARAMS_MANDATORY_LIST = "cli.schema.result_params_mandatory_list";
- public static final String HTTP_SECTIONS = "cli.schema.http_sections";
- public static final String HTTP_MANDATORY_SECTIONS = "cli.schema.http_mandatory_sections";
- public static final String HTTP_REQUEST_PARAMS = "cli.schema.http_request_params";
- public static final String HTTP_REQUEST_MANDATORY_PARAMS = "cli.schema.http_request_mandatory_params";
- public static final String HTTP_METHODS = "cli.schema.http_methods";
public static final String BOOLEAN_VALUE = "cli.schema.boolean_values";
- public static final String AUTH_VALUES = "cli.schema.auth_values";
- public static final String MODE_VALUES = "cli.schema.mode_values";
+
public static final String COMMAND_TYPE_VALUES = "cli.command.type";
public static final String SCHEMA_TYPES_SUPPORTED = "cli.schema.type.supported";
- //http connection
- public static final String SSLCONTEST_TLS = "TLSV1.2";
- public static final String APPLICATION_JSON = "application/json";
-
public static final String OPEN_CLI_PRODUCT_NAME = "cli.product_name";
+ public static final String OPEN_CLI_PLUGIN_PRPS = "cli.plugins-prps";
//schema
public static final String OPEN_CLI_SCHEMA_VERSION = "open_cli_schema_version";
public static final String OPEN_CLI_SCHEMA_VERSION_VALUE_1_0 = "1.0";
-
public static final String NAME = "name";
-
public static final String DESCRIPTION = "description";
//Info
public static final String INFO = "info";
-
public static final String INFO_PRODUCT = "product";
- public static final String OPEN_OPEN_CLI_PRODUCT_IN_USE_ENV_NAME = "OPEN_CLI_PRODUCT_IN_USE";
+ public static final String OPEN_CLI_PRODUCT_IN_USE_ENV_NAME = "OPEN_CLI_PRODUCT_IN_USE";
public static final String INFO_SERVICE = "service";
public static final String INFO_TYPE = "type";
@@ -94,18 +79,12 @@ public class Constants {
public static final String PARAMETER_TYPE_MAP = "map";
public static final String DEFAULT_PARAMETER_FILE_NAME = "default_input_parameters.yaml";
- public static final String DEFAULT_PARAMETER_HTTP_FILE_NAME = "default_input_parameters_http.yaml";
-
- public static final String DEAFULT_PARAMETER_USERNAME = "host-username";
- public static final String DEAFULT_PARAMETER_PASSWORD = "host-password";
- public static final String DEAFULT_PARAMETER_HOST_URL = "host-url";
public static final String DEFAULT_PARAMETER_HELP = "help";
public static final String DEFAULT_PARAMETER_VERSION = "version";
public static final String DEFAULT_PARAMETER_DEBUG = "debug";
public static final String DEFAULT_PARAMETER_OUTPUT_FORMAT = "format";
public static final String DEFAULT_PARAMETER_OUTPUT_ATTR_LONG = "long";
public static final String DEFAULT_PARAMETER_OUTPUT_NO_TITLE = "no-title";
- public static final String DEFAULT_PARAMETER_NO_AUTH = "no-auth";
//results
public static final String RESULTS = "results";
@@ -124,6 +103,7 @@ public class Constants {
public static final String PORTRAINT_COLUMN_NAME_PROPERTY = "property";
public static final String PORTRAINT_COLUMN_NAME_VALUE = "value";
+ //discovery
public static final String SCHEMA_DIRECTORY = "open-cli-schema";
public static final String YAML_PATTERN = "/**/*.yaml";
public static final String JSON_PATTERN = "/**/*.json";
@@ -136,50 +116,6 @@ public class Constants {
//normal
public static final String BASIC_SCHEMA_PROFILE = "basic";
- public static final String HTTP_SCHEMA_PROFILE = "http";
-
- //http
- public static final String HTTP = "http";
-
- public static final String SERVICE = "service";
- public static final String VERSION = "version";
- public static final String BASE_PATH = "base_path";
- public static final String AUTH = "auth";
- public static final String AUTH_NONE = "none";
- public static final String AUTH_BASIC = "basic";
- public static final String MODE = "mode";
- public static final String MODE_DIRECT = "direct";
- public static final String MODE_CATALOG = "catalog";
-
- public static final String REQUEST = "request";
- public static final String URI = "uri";
- public static final String BODY = "body";
-
- public static final String METHOD_TYPE = "method";
- public static final String POST = "post";
- public static final String GET = "get";
- public static final String DELETE = "delete";
- public static final String PUT = "put";
- public static final String HEAD = "delete";
-
- public static final String HEADERS = "headers";
- public static final String QUERIES = "queries";
- public static final String COOKIES = "cookies";
-
- public static final String SUCCESS_CODES = "success_codes";
-
- public static final String RESULT_MAP = "result_map";
-
- public static final String SAMPLE_RESPONSE = "sample_response";
-
- //swagger
- public static final String EXECUTOR = "exec";
-
- public static final String API = "api";
- 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 BOOLEAN_TRUE = "true";
public static final String BOOLEAN_FALSE = "false";
@@ -189,37 +125,21 @@ public class Constants {
public static final String SCHEMA_FILE_EMPTY = "The schema file cann't be null or empty";
public static final String SCHEMA_FILE_WRONG_EXTN = "Schema file should be '.yaml' extension";
public static final String SCHEMA_FILE_NOT_EXIST = "Schema file doesn't exist";
- public static final String HTTP_SECTION_EMPTY = "Http Section cann't be null or empty";
- public static final String HTTP_BODY_SECTION_EMPTY = "http body section under 'request:' cann't be null or empty";
- public static final String HTTP_BODY_FAILED_PARSING = "The http body json is failed to parse";
- public static final String HTTP_BODY_JSON_EMPTY = "The http body json cann't be null or empty";
- public static final String HTTP_SUCCESS_CODE_INVALID = "Invalid http success code.";
- public static final String HTTP_SAMPLE_RESPONSE_EMPTY = "Sample response cann't be null or empty";
- public static final String HTTP_SAMPLE_RESPONSE_FAILED_PARSING = "The http Sample response json is failed to parse.";
public static final String USE_DIRECTIVE = "use";
- public static final String SAMPLE_GEN_ENABLED = "cli.sample.gen.enable";
- public static final String SAMPLE_GEN_TARGET_FOLDER = "cli.sample.gen.target";
-
public static final String SPL_ENTRY_UUID = "uuid";
public static final String SPL_ENTRY_ENV = "env:";
- //auth plugin
- public static final String AUTH_SERVICE_AUTHORIZATION = "Authorization";
-
- //catalog plugin
- public static final String CATALOG_SERVICE_NAME = "catalog-service-name";
- public static final String CATALOG_SERVICE_VERSION = "catalog-service-version";
- public static final String CATALOG_SERVICE_BASE_PATH = "catalog-service-base-path";
- public static final String CATALOG_SERVICE_HOST_URL = "catalog-service-host-url";
-
public static final String VERSION_INFO = "version.info";
public static final String VERSION_INFO_PLACE_HOLDER_VERSION = "__VERSION__";
public static final String VERSION_INFO_PLACE_HOLDER_AVL_PRD_VER = "__AVAILABLE_PRODUCT_VERSIONS__";
public static final String VERSION_INFO_PLACE_HOLDER_ENB_PRD_VER = "__ENABLED_PRODUCT_VERSIONS__";
- private Constants() {
+ public static final String SAMPLE_GEN_ENABLED = "cli.sample.gen.enable";
+ public static final String SAMPLE_GEN_TARGET_FOLDER = "cli.sample.gen.target";
+
+ private OnapCommandConstants() {
}
}
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandFailedMocoGenerate.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandFailedMocoGenerate.java
deleted file mode 100644
index 37e8fb35..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandFailedMocoGenerate.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-/**
- * Invalid data for generating moco json .
- *
- */
-public class OnapCommandFailedMocoGenerate extends OnapCommandException {
-
- private static final long serialVersionUID = -5386652726982792831L;
-
- private static final String ERROR_CODE = "0xf002";
-
- private static final String ERROR_MSG = "Failed to generate moco json ";
-
- public OnapCommandFailedMocoGenerate(String cmdName, String error) {
- super(ERROR_CODE, ERROR_MSG + cmdName + ", " + error);
- }
-
- public OnapCommandFailedMocoGenerate(String cmdName, Throwable throwable) {
- super(ERROR_CODE, ERROR_MSG + cmdName , throwable);
- }
-
-} \ No newline at end of file
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpFailure.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpFailure.java
deleted file mode 100644
index bec8dd0b..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpFailure.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-/**
- * Command execution failed.
- *
- */
-public class OnapCommandHttpFailure extends OnapCommandException {
- private static final long serialVersionUID = 488775545436993345L;
-
- private static final String ERROR_CODE = "0x3001";
-
- public OnapCommandHttpFailure(String error, long httpStatus) {
- super(ERROR_CODE, error, httpStatus);
- }
-
- public OnapCommandHttpFailure(String error) {
- super(ERROR_CODE, error);
- }
-
- public OnapCommandHttpFailure(Throwable throwable) {
- super(ERROR_CODE, throwable);
- }
-
- public OnapCommandHttpFailure(Throwable throwable, long httpStatus) {
- super(ERROR_CODE, throwable, httpStatus);
- }
-
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpHeaderNotFound.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpHeaderNotFound.java
deleted file mode 100644
index 58fcdfd9..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpHeaderNotFound.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-/**
- * OnapCommandParameterNotFound.
- *
- */
-public class OnapCommandHttpHeaderNotFound extends OnapCommandException {
-
- private static final long serialVersionUID = 6676137916079057963L;
-
- public OnapCommandHttpHeaderNotFound(String name) {
- super("0x3003", "Http header " + name + " is not returned from the service");
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResponseBody.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResponseBody.java
deleted file mode 100644
index 3e98d07d..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResponseBody.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-/**
- * OnapCommandParameterNotFound.
- *
- */
-public class OnapCommandHttpInvalidResponseBody extends OnapCommandException {
-
- private static final long serialVersionUID = 6676137916079057963L;
-
- private static final String ERROR_CODE = "0x3004";
- private static final String ERR_MSG = "Http response body does not have json entry ";
-
- public OnapCommandHttpInvalidResponseBody(String name, String error) {
- super(ERROR_CODE, ERR_MSG + name + ", " + error);
- }
-
- public OnapCommandHttpInvalidResponseBody(String name, Throwable throwable) {
- super(ERROR_CODE, ERR_MSG + name, throwable);
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResultMap.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResultMap.java
deleted file mode 100644
index 9303c6b2..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandHttpInvalidResultMap.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-import java.util.List;
-
-/**
- * Invalid result map in HTTP section.
- *
- */
-public class OnapCommandHttpInvalidResultMap extends OnapCommandException {
-
- private static final long serialVersionUID = 6676137916023457963L;
-
- public OnapCommandHttpInvalidResultMap(List<String> invalidParams) {
- super("0x3005", "Invalide result map parameters : " + invalidParams.toString());
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandInvalidRegistration.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandInvalidRegistration.java
index db4c8e6a..1c90e9a0 100644
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandInvalidRegistration.java
+++ b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandInvalidRegistration.java
@@ -16,7 +16,7 @@
package org.onap.cli.fw.error;
-import org.onap.cli.fw.OnapCommand;
+import org.onap.cli.fw.cmd.OnapCommand;
/**
* Command class invalid.
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandLoginFailed.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandLoginFailed.java
deleted file mode 100644
index e9c82259..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandLoginFailed.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-/**
- * Login failed.
- *
- */
-public class OnapCommandLoginFailed extends OnapCommandException {
-
- private static final long serialVersionUID = 5518154493762956959L;
-
- private static final String ERROR_CODE = "0x4001";
- private static final String ERROR_MESSAGE1 = "Login failed";
-
- public OnapCommandLoginFailed(String error) {
- super(ERROR_CODE, ERROR_MESSAGE1 + ", " + error);
- }
-
- public OnapCommandLoginFailed(String error, int httpStatus) {
- super(ERROR_CODE, ERROR_MESSAGE1 + ", " + error, httpStatus);
- }
-
- public OnapCommandLoginFailed(Throwable throwable) {
- super(ERROR_CODE, ERROR_MESSAGE1, throwable);
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandLogoutFailed.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandLogoutFailed.java
deleted file mode 100644
index df879021..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandLogoutFailed.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-/**
- * Logout failed.
- *
- */
-public class OnapCommandLogoutFailed extends OnapCommandException {
-
- private static final long serialVersionUID = 1150649507734289032L;
- private static final String ERROR_CODE = "0x4002";
- private static final String ERROR_MESSAGE1 = "Logout failed";
-
- public OnapCommandLogoutFailed(String error) {
- super(ERROR_CODE, ERROR_MESSAGE1 +", " + error);
- }
-
- public OnapCommandLogoutFailed(Throwable throwable) {
- super(ERROR_CODE, ERROR_MESSAGE1, throwable);
- }
-
- public OnapCommandLogoutFailed(int statusCode) {
- super(ERROR_CODE, ERROR_MESSAGE1, statusCode);
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandServiceNotFound.java b/framework/src/main/java/org/onap/cli/fw/error/OnapCommandServiceNotFound.java
deleted file mode 100644
index 9cc0e45f..00000000
--- a/framework/src/main/java/org/onap/cli/fw/error/OnapCommandServiceNotFound.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.error;
-
-/**
- * Command not registered in MSB.
- *
- */
-public class OnapCommandServiceNotFound extends OnapCommandException {
-
- private static final long serialVersionUID = 8580121615330415065L;
-
- public OnapCommandServiceNotFound(String service) {
- super("0xd001", "Service " + service + " is not found in MSB");
- }
-}
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
deleted file mode 100644
index 69439bd4..00000000
--- a/framework/src/main/java/org/onap/cli/fw/http/HttpInput.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.http;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Captures HTTP request URI, body and request &query parameters. <br>
- */
-public class HttpInput {
-
- private String reqUri = "";
-
- private String reqBody = "";
-
- private String reqMethod = "";
-
- private String multipartEntityName = "";
-
- private Map<String, String> reqHeaders = new HashMap<>();
-
- private Map<String, String> reqQueries = new HashMap<>();
-
- private Map<String, String> reqCookies = new HashMap<>();
-
- private boolean binaryData;
-
- public String getUri() {
- return this.reqUri;
- }
-
- public HttpInput setUri(String uri) {
- this.reqUri = uri;
- return this;
- }
-
- public String getBody() {
- return this.reqBody;
- }
-
- public HttpInput setBody(String body) {
- this.reqBody = body;
- return this;
- }
-
- public Map<String, String> getReqHeaders() {
- return this.reqHeaders;
- }
-
- /**
- * header parameter setter.
- *
- * @param reqHeaders
- * header map
- * @return HttpInput
- */
- public HttpInput setReqHeaders(Map<String, String> reqHeaders) {
- if (reqHeaders != null) {
- this.reqHeaders = reqHeaders;
- }
- return this;
- }
-
- public String getMethod() {
- return this.reqMethod;
- }
-
- public HttpInput setMethod(String method) {
- this.reqMethod = method;
- 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;
- }
-
- /**
- * Request query parameters.
- *
- * @param reqQueries
- * request queries
- * @return HttpInput
- */
- public HttpInput setReqQueries(Map<String, String> reqQueries) {
- if (reqQueries != null) {
- this.reqQueries = reqQueries;
- }
- return this;
- }
-
- public Map<String, String> getReqCookies() {
- return reqCookies;
- }
-
- public HttpInput setReqCookies(Map<String, String> reqCookies) {
- this.reqCookies = reqCookies;
- return this;
- }
-
- public boolean isBinaryData() {
- return binaryData;
- }
-
- public void setBinaryData(boolean binaryData) {
- this.binaryData = binaryData;
- }
-
- @Override
- public String toString() {
- return "\nURL: " + this.getUri() + "\nMethod: " + this.getMethod() + "\nRequest Queries: "
- + this.getReqQueries() + "\nRequest Body: " + this.getBody() + "\nRequest Headers: "
- + this.getReqHeaders().toString() + "\nRequest Cookies: " + this.getReqCookies().toString()
- + "\nbinaryData=" + this.binaryData;
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/http/HttpResult.java b/framework/src/main/java/org/onap/cli/fw/http/HttpResult.java
deleted file mode 100644
index e000ee15..00000000
--- a/framework/src/main/java/org/onap/cli/fw/http/HttpResult.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.http;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Captures HTTP response status, body and headers. <br>
- *
- */
-public class HttpResult {
-
- private int status;
-
- private String resBody;
-
- private Map<String, String> respHeaders = new HashMap<>();
-
- private Map<String, String> respCookies = new HashMap<>();
-
- public int getStatus() {
- return this.status;
- }
-
- public void setStatus(int status) {
- this.status = status;
- }
-
- public String getBody() {
- return this.resBody;
- }
-
- public void setBody(String body) {
- this.resBody = body;
- }
-
- public void setRespHeaders(Map<String, String> respHeaders) {
- this.respHeaders = respHeaders;
- }
-
- public Map<String, String> getRespHeaders() {
- return this.respHeaders;
- }
-
- public Map<String, String> getRespCookies() {
- return respCookies;
- }
-
- public void setRespCookies(Map<String, String> respCookies) {
- this.respCookies = respCookies;
- }
-
- public boolean isSuccess() {
- return this.getStatus() >= 200 && this.getStatus() <= 300;
- }
-
- @Override
- public String toString() {
- return "\nHTTP Status: " + this.getStatus() + "\nResponse Body: " + this.getBody() + "\nResponse Headers: "
- + this.getRespHeaders() + "\nResponse Cookies: " + this.getRespCookies();
- }
-}
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
deleted file mode 100644
index 6fdf7046..00000000
--- a/framework/src/main/java/org/onap/cli/fw/http/OnapHttpConnection.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.http;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.security.cert.X509Certificate;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.ParseException;
-import org.apache.http.client.CookieStore;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.client.protocol.ClientContext;
-import org.apache.http.config.Registry;
-import org.apache.http.config.RegistryBuilder;
-import org.apache.http.conn.HttpClientConnectionManager;
-import org.apache.http.conn.socket.ConnectionSocketFactory;
-import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.X509HostnameVerifier;
-import org.apache.http.cookie.Cookie;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.entity.mime.MultipartEntity;
-import org.apache.http.entity.mime.content.FileBody;
-import org.apache.http.impl.client.BasicCookieStore;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.impl.client.LaxRedirectStrategy;
-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.apache.http.impl.cookie.BasicClientCookie;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.util.EntityUtils;
-import org.onap.cli.fw.conf.Constants;
-import org.onap.cli.fw.error.OnapCommandHttpFailure;
-
-/**
- * Helps to make http connection.<br>
- */
-public class OnapHttpConnection {
-
- private HttpClient httpClient = null;
-
- Map<String, String> mapCommonHeaders = new HashMap<String, String> ();
-
- protected boolean debug = false;
-
- private String debugDetails = "";
-
- public static class TrustAllX509TrustManager implements X509TrustManager {
-
- @Override
- public X509Certificate[] getAcceptedIssuers() {
- return new X509Certificate[0];
- }
-
- @Override
- public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
- // No need to implement.
- }
-
- @Override
- public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
- // No need to implement.
- }
- }
-
- /**
- * OnapHttpConnection Constructor.
- *
- * @param debug
- * boolean
- * @throws OnapCommandHttpFailure
- * exception
- */
- public OnapHttpConnection(boolean debug) throws OnapCommandHttpFailure {
- this.debug = debug;
- }
-
- private void initHttpClient(boolean isSecured) throws OnapCommandHttpFailure {
- if (this.httpClient == null) {
- try {
- if (isSecured) {
- SSLContext sslContext = SSLContext.getInstance(Constants.SSLCONTEST_TLS);
- sslContext.init(null, new TrustManager[] { new TrustAllX509TrustManager() },
- new java.security.SecureRandom());
- X509HostnameVerifier hostnameVerifier = new AllowAllHostnameVerifier();
- Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder
- .<ConnectionSocketFactory>create()
- .register("https", new SSLConnectionSocketFactory(sslContext, hostnameVerifier)).build();
- HttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
-
- this.httpClient = HttpClients.custom().setConnectionManager(connManager)
- .setRedirectStrategy(new LaxRedirectStrategy()).build();
- } else {
- this.httpClient = HttpClients.createDefault();
- }
- } catch (Exception e) {
- throw new OnapCommandHttpFailure(e);
- }
- }
- }
-
- public String getDebugInfo() {
- return this.debugDetails;
- }
-
- private Map<String, String> getHttpHeaders(HttpResponse resp) {
- Map<String, String> result = new HashMap<>();
-
- Header[] hs = resp.getAllHeaders();
- for (int i = 0; i < hs.length; i++) {
- result.put(hs[i].getName(), hs[i].getValue());
- }
-
- return result;
- }
-
- private String getResponseBody(HttpResponse resp) throws OnapCommandHttpFailure {
- if (resp.getEntity() == null) {
- return null;
- }
- try {
- String body = EntityUtils.toString(resp.getEntity(), StandardCharsets.UTF_8);
- EntityUtils.consume(resp.getEntity());
- return body;
- } catch (IOException e) {
- throw new OnapCommandHttpFailure(e);
- }
- }
-
- private StringEntity getStringEntity(HttpInput input) {
- return new StringEntity(input.getBody(), StandardCharsets.UTF_8);
- }
-
- /**
- * Post. <br>
- *
- * @param input
- * HttpInput Obj
- * @return HttpResult
- * @throws OnapCommandHttpFailure
- * http failure
- */
- public HttpResult post(final HttpInput input) throws OnapCommandHttpFailure {
- input.setMethod("post");
- return this.request(input);
- }
-
- /**
- * Get. <br>
- *
- * @param input
- * input request
- * @return HttpResult
- * @throws OnapCommandHttpFailure
- * excpetion
- */
- public HttpResult get(final HttpInput input) throws OnapCommandHttpFailure {
- input.setMethod("get");
- return this.request(input);
- }
-
- /**
- * Put. <br>
- *
- * @param input
- * input request
- * @return HttpResult
- * @throws OnapCommandHttpFailure
- * Exception
- */
- public HttpResult put(final HttpInput input) throws OnapCommandHttpFailure {
- input.setMethod("put");
- return this.request(input);
- }
-
- /**
- * Delete. <br>
- *
- * @param input
- * input request
- * @return HttpResult
- * @throws OnapCommandHttpFailure
- * exception
- */
- public HttpResult delete(final HttpInput input) throws OnapCommandHttpFailure {
- input.setMethod("delete");
- return this.request(input);
- }
-
- public void setCommonHeaders(Map<String, String> headers) {
- this.mapCommonHeaders = headers;
- }
-
- private void addCommonHeaders(HttpInput input) {
- if (!input.isBinaryData()) {
- input.getReqHeaders().put("Content-Type", Constants.APPLICATION_JSON);
- }
- input.getReqHeaders().put("Accept", Constants.APPLICATION_JSON);
-
- for (String headerName : this.mapCommonHeaders.keySet()) {
- input.getReqHeaders().put(headerName, this.mapCommonHeaders.get(headerName));
- }
- }
-
- private void addCommonCookies(CookieStore cookieStore) {
- for (String headerName : this.mapCommonHeaders.keySet()) {
- Cookie cookie = new BasicClientCookie(headerName, this.mapCommonHeaders.get(headerName));
- cookieStore.addCookie(cookie);
- }
- }
-
- private void updateResultFromCookies(HttpResult result, List<Cookie> cookies) {
- for (Cookie cookie : cookies) {
- result.getRespCookies().put(cookie.getName(), cookie.getValue());
- }
- }
-
- private String getDomain(String url) {
- try {
- return new URL(url).getHost();
- } catch (MalformedURLException e) {
- // url is always proper !!
- return url;
- }
- }
-
- private void updateInputFromCookies(HttpInput input, CookieStore cookieStore) {
- addCommonCookies(cookieStore);
- for (String cookieName : input.getReqCookies().keySet()) {
- BasicClientCookie cookie = new BasicClientCookie(cookieName, input.getReqCookies().get(cookieName));
- cookie.setDomain(this.getDomain(input.getUri()));
- cookieStore.addCookie(cookie);
- }
-
- }
-
- /**
- * Handles http method requests.
- *
- * @param input
- * HttpInput
- * @return HttpResult
- * @throws OnapCommandHttpFailure
- * exception
- */
- public HttpResult request(HttpInput input) throws OnapCommandHttpFailure {
- this.addCommonHeaders(input);
-
- HttpRequestBase requestBase = null;
- if ("post".equals(input.getMethod())) {
- HttpPost httpPost = new HttpPost();
- if (input.isBinaryData()) {
- httpPost.setEntity(getMultipartEntity(input));
- } else {
- httpPost.setEntity(this.getStringEntity(input));
- }
- requestBase = httpPost;
- } else if ("put".equals(input.getMethod())) {
- HttpPut httpPut = new HttpPut();
- httpPut.setEntity(this.getStringEntity(input));
- requestBase = httpPut;
- } else if ("get".equals(input.getMethod())) {
- requestBase = new HttpGet();
- } else if ("delete".equals(input.getMethod())) {
- requestBase = new HttpDelete();
- } else {
- throw new IllegalArgumentException("Invalid HTTP method");
- }
-
- requestBase.setURI(URI.create(input.getUri()));
-
- for (Entry<String, String> h : input.getReqHeaders().entrySet()) {
- requestBase.addHeader(h.getKey(), h.getValue());
- }
-
- HttpResult result = new HttpResult();
-
- try {
- this.debugDetails = "";
- CookieStore cookieStore = new BasicCookieStore();
- updateInputFromCookies(input, cookieStore);
- HttpContext localContext = new BasicHttpContext();
- localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
-
- this.initHttpClient(input.getUri().startsWith("https"));
-
- HttpResponse resp = this.httpClient.execute(requestBase, localContext);
- String respContent = this.getResponseBody(resp);
- result.setBody(respContent);
- result.setStatus(resp.getStatusLine().getStatusCode());
- result.setRespHeaders(this.getHttpHeaders(resp));
- this.updateResultFromCookies(result, cookieStore.getCookies());
- } catch (ParseException | IOException e) {
- throw new OnapCommandHttpFailure(e);
- } finally {
- if (this.debug) {
- this.debugDetails = input + "" + result;
- }
- }
-
- return result;
- }
-
- public void close() {
- this.mapCommonHeaders.clear();
- }
-
- private HttpEntity getMultipartEntity(HttpInput input) {
- FileBody fileBody = new FileBody(new File(input.getBody().trim()));
- MultipartEntity multipartEntity = new MultipartEntity();
- String fileName = input.getMultipartEntityName() != "" ? input.getMultipartEntityName() : "upload";
- multipartEntity.addPart(fileName, fileBody);
- return multipartEntity;
- }
-}
diff --git a/framework/src/main/java/org/onap/cli/fw/info/OnapCommandInfo.java b/framework/src/main/java/org/onap/cli/fw/info/OnapCommandInfo.java
index c52965f9..1496bcbb 100644
--- a/framework/src/main/java/org/onap/cli/fw/info/OnapCommandInfo.java
+++ b/framework/src/main/java/org/onap/cli/fw/info/OnapCommandInfo.java
@@ -16,7 +16,7 @@
package org.onap.cli.fw.info;
-import org.onap.cli.fw.cmd.CommandType;
+import org.onap.cli.fw.cmd.OnapCommandType;
/**
* Oclip Command info like product version, service, contact, etc.
@@ -29,7 +29,7 @@ public class OnapCommandInfo {
private String author;
- private CommandType type = CommandType.CMD;
+ private OnapCommandType type = OnapCommandType.CMD;
private boolean ignore = false;
@@ -57,11 +57,11 @@ public class OnapCommandInfo {
this.author = email;
}
- public CommandType getCommandType() {
+ public OnapCommandType getCommandType() {
return type;
}
- public void setCommandType(CommandType type) {
+ public void setCommandType(OnapCommandType type) {
this.type = type;
}
diff --git a/framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameter.java b/framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameter.java
index ac2e8521..4b21ed4f 100644
--- a/framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameter.java
+++ b/framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameter.java
@@ -58,7 +58,7 @@ public class OnapCommandParameter {
/*
* Parameter type such as int, json, yaml, string, etc
*/
- private ParameterType parameterType;
+ private OnapCommandParameterType parameterType;
/*
* Default value
@@ -130,18 +130,18 @@ public class OnapCommandParameter {
this.longOption = longOption;
}
- public ParameterType getParameterType() {
+ public OnapCommandParameterType getParameterType() {
return parameterType;
}
- public void setParameterType(ParameterType parameterType) {
+ public void setParameterType(OnapCommandParameterType parameterType) {
this.parameterType = parameterType;
if (this.defaultValue.isEmpty()) {
- if (this.getParameterType().equals(ParameterType.BOOL)) {
+ if (this.getParameterType().equals(OnapCommandParameterType.BOOL)) {
// For bool type always the default param is false
this.defaultValue = "false";
- } else if (this.getParameterType().equals(ParameterType.UUID)) {
+ } else if (this.getParameterType().equals(OnapCommandParameterType.UUID)) {
this.defaultValue = UUID.randomUUID().toString();
}
}
@@ -197,10 +197,10 @@ public class OnapCommandParameter {
public void setValue(Object value) throws OnapCommandInvalidParameterValue {
this.rawValue = value;
- if (ParameterType.URL.equals(parameterType) && !value.toString().isEmpty() && !value.toString().startsWith("http")
+ if (OnapCommandParameterType.URL.equals(parameterType) && !value.toString().isEmpty() && !value.toString().startsWith("http")
&& !value.toString().startsWith("/")) {
this.value = "/" + value;
- } else if (ParameterType.ARRAY.equals(parameterType)) {
+ } else if (OnapCommandParameterType.ARRAY.equals(parameterType)) {
if (!(value instanceof List)) {
throw new OnapCommandInvalidParameterValue(this.getName());
}
@@ -212,7 +212,7 @@ public class OnapCommandParameter {
} catch (JsonProcessingException e) {
throw new OnapCommandInvalidParameterValue(this.getName(), e);
}
- } else if (ParameterType.MAP.equals(parameterType)) {
+ } else if (OnapCommandParameterType.MAP.equals(parameterType)) {
if (!(value instanceof Map)) {
throw new OnapCommandInvalidParameterValue(this.getName());
}
@@ -275,13 +275,50 @@ public class OnapCommandParameter {
throw new OnapCommandParameterMissing(this.getName());
}
- if (!this.isOptional() && ParameterType.BINARY.equals(parameterType)) {
+ if (!this.isOptional() && OnapCommandParameterType.BINARY.equals(parameterType)) {
File file = new File(value.toString());
if (!file.isFile()) {
throw new OnapCommandInvalidParameterValue(this.getName());
}
}
- // (mrkanag) validate for type supported ParameterType using constraints
+ // (mrkanag) validate for type supported OnapCommandParameterType using constraints
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((cmdName == null) ? 0 : cmdName.hashCode());
+ result = prime * result + ((longOption == null) ? 0 : longOption.hashCode());
+ result = prime * result + ((shortOption == null) ? 0 : shortOption.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OnapCommandParameter other = (OnapCommandParameter) obj;
+ if (cmdName == null) {
+ if (other.cmdName != null)
+ return false;
+ } else if (!cmdName.equals(other.cmdName))
+ return false;
+ if (longOption == null) {
+ if (other.longOption != null)
+ return false;
+ } else if (!longOption.equals(other.longOption))
+ return false;
+ if (shortOption == null) {
+ if (other.shortOption != null)
+ return false;
+ } else if (!shortOption.equals(other.shortOption))
+ return false;
+ return true;
}
}
diff --git a/framework/src/main/java/org/onap/cli/fw/input/ParameterType.java b/framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameterType.java
index 6a9254f5..85ace4a6 100644
--- a/framework/src/main/java/org/onap/cli/fw/input/ParameterType.java
+++ b/framework/src/main/java/org/onap/cli/fw/input/OnapCommandParameterType.java
@@ -22,7 +22,7 @@ import org.onap.cli.fw.error.OnapCommandInvalidParameterType;
* Parameter type supported by Oclip CLI.
*
*/
-public enum ParameterType {
+public enum OnapCommandParameterType {
/**
* JSON file.
*/
@@ -45,7 +45,7 @@ public enum ParameterType {
* @throws OnapCommandInvalidParameterType
* exception
*/
- public static ParameterType get(String name) throws OnapCommandInvalidParameterType {
+ public static OnapCommandParameterType get(String name) throws OnapCommandInvalidParameterType {
if (JSON.name().equalsIgnoreCase(name)) {
return JSON;
} else if (YAML.name().equalsIgnoreCase(name)) {
diff --git a/framework/src/main/java/org/onap/cli/fw/input/cache/Param.java b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParamEntity.java
index 5a32e886..85473d84 100644
--- a/framework/src/main/java/org/onap/cli/fw/input/cache/Param.java
+++ b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParamEntity.java
@@ -16,7 +16,7 @@
package org.onap.cli.fw.input.cache;
-public class Param {
+public class OnapCommandParamEntity {
private String product;
diff --git a/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
index 0b70b5c1..55833167 100644
--- a/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
+++ b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
@@ -16,15 +16,24 @@
package org.onap.cli.fw.input.cache;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DATA_DIRECTORY;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DATA_PATH_JSON_PATTERN;
+
+import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandLoadProfileFailed;
import org.onap.cli.fw.error.OnapCommandPersistProfileFailed;
-import org.onap.cli.fw.utils.OnapCommandProfileUtils;
+import org.onap.cli.fw.utils.OnapCommandDiscoveryUtils;
+import org.springframework.core.io.Resource;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
public class OnapCommandParameterCache {
@@ -32,7 +41,7 @@ public class OnapCommandParameterCache {
private static OnapCommandParameterCache single = null;
- private String profileName = Constants.PARAM_CACHE_FILE_NAME;
+ private String profileName = OnapCommandConstants.PARAM_CACHE_FILE_NAME;
private OnapCommandParameterCache() {
@@ -78,12 +87,12 @@ public class OnapCommandParameterCache {
}
private void persist() {
- List<Param> params = new ArrayList<>();
+ List<OnapCommandParamEntity> params = new ArrayList<>();
for (String p: this.paramCache.keySet()) {
for (String name: this.paramCache.get(p).keySet()) {
- Param param = new Param();
+ OnapCommandParamEntity param = new OnapCommandParamEntity();
param.setProduct(p);
param.setName(name);
param.setValue(this.paramCache.get(p).get(name));
@@ -93,21 +102,21 @@ public class OnapCommandParameterCache {
}
try {
- OnapCommandProfileUtils.persistProfile(params, this.profileName);
+ this.persistProfile(params, this.profileName);
} catch (OnapCommandPersistProfileFailed e) {
throw new RuntimeException(e); // NOSONAR
}
}
private void load() {
- List<Param> params= new ArrayList<>();
+ List<OnapCommandParamEntity> params= new ArrayList<>();
try {
- params = OnapCommandProfileUtils.loadParamFromCache(this.profileName);
+ params = this.loadParamFromCache(this.profileName);
} catch (OnapCommandLoadProfileFailed e) {
throw new RuntimeException(e); // NOSONAR
}
- for (Param p : params) {
+ for (OnapCommandParamEntity p : params) {
this.add(p.getProduct(), p.getName(), p.getValue());
}
}
@@ -116,4 +125,39 @@ public class OnapCommandParameterCache {
this.profileName = profileName;
this.load();
}
+
+ private void persistProfile(List<OnapCommandParamEntity> params, String profileName) throws OnapCommandPersistProfileFailed {
+ if (params != null) {
+ try {
+ Resource[] resources = OnapCommandDiscoveryUtils.findResources(DATA_DIRECTORY);
+ if (resources != null && resources.length == 1) {
+ String path = resources[0].getURI().getPath();
+ File file = new File(path + File.separator + profileName + ".json");
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.writerWithDefaultPrettyPrinter().writeValue(file, params);
+ }
+ } catch (IOException e1) {
+ throw new OnapCommandPersistProfileFailed(e1);
+ }
+ }
+ }
+
+ private List<OnapCommandParamEntity> loadParamFromCache(String profileName) throws OnapCommandLoadProfileFailed {
+ List<OnapCommandParamEntity> params = new ArrayList<>();
+
+ try {
+ Resource resource = OnapCommandDiscoveryUtils.findResource(profileName + ".json",
+ DATA_PATH_JSON_PATTERN);
+ if (resource != null) {
+ File file = new File(resource.getURI().getPath());
+ ObjectMapper mapper = new ObjectMapper();
+ OnapCommandParamEntity[] list = mapper.readValue(file, OnapCommandParamEntity[].class);
+ params.addAll(Arrays.asList(list));
+ }
+ } catch (IOException e) {
+ throw new OnapCommandLoadProfileFailed(e);
+ }
+
+ return params;
+ }
}
diff --git a/framework/src/main/java/org/onap/cli/fw/output/PrintDirection.java b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandPrintDirection.java
index 96ad713f..5a8e6657 100644
--- a/framework/src/main/java/org/onap/cli/fw/output/PrintDirection.java
+++ b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandPrintDirection.java
@@ -22,7 +22,7 @@ import org.onap.cli.fw.error.OnapCommandInvalidPrintDirection;
* How to print the result.
*
*/
-public enum PrintDirection {
+public enum OnapCommandPrintDirection {
LANDSCAPE, PORTRAIT;
/**
* Get print direction.
@@ -33,7 +33,7 @@ public enum PrintDirection {
* @throws OnapCommandInvalidPrintDirection
* exception
*/
- public static PrintDirection get(String name) throws OnapCommandInvalidPrintDirection {
+ public static OnapCommandPrintDirection get(String name) throws OnapCommandInvalidPrintDirection {
if (LANDSCAPE.name().equalsIgnoreCase(name)) {
return LANDSCAPE;
} else if (PORTRAIT.name().equalsIgnoreCase(name)) {
diff --git a/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResult.java b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResult.java
index ae5d86ca..4eaab81a 100644
--- a/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResult.java
+++ b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResult.java
@@ -21,11 +21,11 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.error.OnapCommandOutputFormatNotsupported;
import org.onap.cli.fw.error.OnapCommandOutputPrintingFailed;
-import org.onap.cli.fw.input.ParameterType;
+import org.onap.cli.fw.input.OnapCommandParameterType;
import org.onap.cli.fw.output.print.OnapCommandPrint;
import org.onap.cli.fw.utils.OnapCommandUtils;
@@ -47,7 +47,7 @@ public class OnapCommandResult {
/*
* Type requested by user
*/
- private ResultType type = ResultType.TABLE;
+ private OnapCommandResultType type = OnapCommandResultType.TABLE;
/*
* Scope requested by user
@@ -65,7 +65,7 @@ public class OnapCommandResult {
*
* loaded from schema file
*/
- private PrintDirection printDirection = PrintDirection.LANDSCAPE;
+ private OnapCommandPrintDirection printDirection = OnapCommandPrintDirection.LANDSCAPE;
private String debugInfo = "";
@@ -84,11 +84,11 @@ public class OnapCommandResult {
*/
private boolean isDebug = false;
- public PrintDirection getPrintDirection() {
+ public OnapCommandPrintDirection getPrintDirection() {
return printDirection;
}
- public void setPrintDirection(PrintDirection printDirection) {
+ public void setPrintDirection(OnapCommandPrintDirection printDirection) {
this.printDirection = printDirection;
}
@@ -123,11 +123,11 @@ public class OnapCommandResult {
return recordMap;
}
- public ResultType getType() {
+ public OnapCommandResultType getType() {
return type;
}
- public void setType(ResultType type) {
+ public void setType(OnapCommandResultType type) {
this.type = type;
}
@@ -189,9 +189,9 @@ public class OnapCommandResult {
OnapCommandPrint print = new OnapCommandPrint();
print.setPrintTitle(this.isIncludeTitle());
- if (this.getPrintDirection().equals(PrintDirection.LANDSCAPE)) {
+ if (this.getPrintDirection().equals(OnapCommandPrintDirection.LANDSCAPE)) {
for (OnapCommandResultAttribute record : this.getScopedRecords()) {
- if (record.getType().equals(ParameterType.JSON)) {
+ if (record.getType().equals(OnapCommandParameterType.JSON)) {
print.addColumn(record.getName(), OnapCommandUtils.jsonFlatten(record.getValues()));
} else {
print.addColumn(record.getName(), record.getValues());
@@ -200,11 +200,11 @@ public class OnapCommandResult {
} else {
// Add property column
OnapCommandResultAttribute prp = new OnapCommandResultAttribute();
- prp.setName(Constants.PORTRAINT_COLUMN_NAME_PROPERTY);
+ prp.setName(OnapCommandConstants.PORTRAINT_COLUMN_NAME_PROPERTY);
prp.setScope(OnapCommandResultAttributeScope.SHORT);
// Add value column
OnapCommandResultAttribute val = new OnapCommandResultAttribute();
- val.setName(Constants.PORTRAINT_COLUMN_NAME_VALUE);
+ val.setName(OnapCommandConstants.PORTRAINT_COLUMN_NAME_VALUE);
val.setScope(OnapCommandResultAttributeScope.SHORT);
for (OnapCommandResultAttribute record : this.getScopedRecords()) {
@@ -224,11 +224,11 @@ public class OnapCommandResult {
printOutput = this.getDebugInfo() + "\n";
}
- if (this.getType().equals(ResultType.JSON)) {
+ if (this.getType().equals(OnapCommandResultType.JSON)) {
return printOutput + print.printJson();
- } else if (this.getType().equals(ResultType.TABLE)) {
+ } else if (this.getType().equals(OnapCommandResultType.TABLE)) {
return printOutput + print.printTable(this.isIncludeSeparator());
- } else if (this.getType().equals(ResultType.CSV)) {
+ } else if (this.getType().equals(OnapCommandResultType.CSV)) {
return printOutput + print.printCsv();
}
diff --git a/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultAttribute.java b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultAttribute.java
index fe4ed32e..c00c88b1 100644
--- a/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultAttribute.java
+++ b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultAttribute.java
@@ -20,7 +20,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.onap.cli.fw.input.ParameterType;
+import org.onap.cli.fw.input.OnapCommandParameterType;
/**
* Oclip command output records, helps to define the title and its description while command is defined and during run
@@ -53,7 +53,7 @@ public class OnapCommandResultAttribute {
*/
private OnapCommandResultAttributeScope outScope = OnapCommandResultAttributeScope.SHORT;
- private ParameterType paramType = ParameterType.STRING;
+ private OnapCommandParameterType paramType = OnapCommandParameterType.STRING;
private boolean isSecured = false;
@@ -92,11 +92,11 @@ public class OnapCommandResultAttribute {
this.outScope = scope;
}
- public ParameterType getType() {
+ public OnapCommandParameterType getType() {
return paramType;
}
- public void setType(ParameterType type) {
+ public void setType(OnapCommandParameterType type) {
this.paramType = type;
}
diff --git a/framework/src/main/java/org/onap/cli/fw/output/ResultType.java b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultType.java
index 49ddf457..ebd13ebd 100644
--- a/framework/src/main/java/org/onap/cli/fw/output/ResultType.java
+++ b/framework/src/main/java/org/onap/cli/fw/output/OnapCommandResultType.java
@@ -20,7 +20,7 @@ package org.onap.cli.fw.output;
* Oclip command result format.
*
*/
-public enum ResultType {
+public enum OnapCommandResultType {
TABLE, CSV, JSON, YAML, TEXT;
/**
@@ -39,13 +39,13 @@ public enum ResultType {
}
/**
- * Get ResultType.
+ * Get OnapCommandResultType.
*
* @param name
* format name
- * @return ResultType
+ * @return OnapCommandResultType
*/
- public static ResultType get(String name) {
+ public static OnapCommandResultType get(String name) {
if (TABLE.name().equalsIgnoreCase(name)) {
return TABLE;
}
diff --git a/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java b/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java
index 96ce59b2..3946c5da 100644
--- a/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java
+++ b/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java
@@ -29,7 +29,7 @@ import java.util.StringTokenizer;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.onap.cli.fw.error.OnapCommandOutputPrintingFailed;
-import org.onap.cli.fw.output.PrintDirection;
+import org.onap.cli.fw.output.OnapCommandPrintDirection;
/**
* Oclip Command Table print.
@@ -39,17 +39,17 @@ public class OnapCommandPrint {
public static final int MAX_COLUMN_LENGTH = 50;
- private PrintDirection direction;
+ private OnapCommandPrintDirection direction;
private Map<String, List<String>> data = new LinkedHashMap<>();
private boolean printTitle = true;
- public PrintDirection getDirection() {
+ public OnapCommandPrintDirection getDirection() {
return direction;
}
- public void setDirection(PrintDirection direction) {
+ public void setDirection(OnapCommandPrintDirection direction) {
this.direction = direction;
}
diff --git a/framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java b/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java
index d50ff464..f8fb73fd 100644
--- a/framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java
+++ b/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.onap.cli.fw;
+package org.onap.cli.fw.registrar;
import java.io.IOException;
import java.util.HashMap;
@@ -24,8 +24,9 @@ import java.util.Map;
import java.util.Set;
import org.apache.commons.io.IOUtils;
-import org.onap.cli.fw.conf.Constants;
-import org.onap.cli.fw.conf.OnapCommandConfg;
+import org.onap.cli.fw.cmd.OnapCommand;
+import org.onap.cli.fw.conf.OnapCommandConfig;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.error.OnapCommandHelpFailed;
import org.onap.cli.fw.error.OnapCommandInvalidRegistration;
@@ -34,15 +35,16 @@ import org.onap.cli.fw.error.OnapCommandProductVersionInvalid;
import org.onap.cli.fw.error.OnapCommandRegistrationProductInfoMissing;
import org.onap.cli.fw.error.OnapUnsupportedSchemaProfile;
import org.onap.cli.fw.input.cache.OnapCommandParameterCache;
+import org.onap.cli.fw.output.OnapCommandPrintDirection;
import org.onap.cli.fw.output.OnapCommandResult;
import org.onap.cli.fw.output.OnapCommandResultAttribute;
import org.onap.cli.fw.output.OnapCommandResultAttributeScope;
-import org.onap.cli.fw.output.PrintDirection;
-import org.onap.cli.fw.output.ResultType;
+import org.onap.cli.fw.output.OnapCommandResultType;
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cli.fw.schema.OnapCommandSchemaInfo;
import org.onap.cli.fw.utils.OnapCommandDiscoveryUtils;
import org.onap.cli.fw.utils.OnapCommandHelperUtils;
import org.onap.cli.fw.utils.OnapCommandUtils;
-import org.onap.cli.fw.utils.SchemaInfo;
/**
@@ -57,7 +59,7 @@ public class OnapCommandRegistrar {
private Set<String> availableProductVersions = new HashSet<>();
- private String enabledProductVersion = OnapCommandConfg.getEnabledProductVersion();
+ private String enabledProductVersion = null;
private boolean isInteractiveMode = false;
@@ -114,6 +116,13 @@ public class OnapCommandRegistrar {
this.registryProfilePlugins.put(profile, cmd);
}
+ private OnapCommandRegistrar() {
+ this.enabledProductVersion = System.getenv(OnapCommandConstants.OPEN_CLI_PRODUCT_IN_USE_ENV_NAME);
+ if (this.enabledProductVersion == null) {
+ this.enabledProductVersion = OnapCommandConfig.getPropertyValue(OnapCommandConstants.OPEN_CLI_PRODUCT_NAME);
+ }
+ }
+
/**
* Get global registrar.
*
@@ -190,7 +199,7 @@ public class OnapCommandRegistrar {
* @throws OnapCommandException
* exception
*/
- public List<SchemaInfo> listCommandInfo() throws OnapCommandException {
+ public List<OnapCommandSchemaInfo> listCommandInfo() throws OnapCommandException {
return OnapCommandDiscoveryUtils.discoverSchemas();
}
@@ -256,11 +265,11 @@ public class OnapCommandRegistrar {
}
private void autoDiscoverSchemas() throws OnapCommandException {
- List<SchemaInfo> schemas = OnapCommandDiscoveryUtils.discoverOrLoadSchemas(true);
+ List<OnapCommandSchemaInfo> schemas = OnapCommandDiscoveryUtils.discoverOrLoadSchemas(true);
Map<String, Class<OnapCommand>> plugins = this.autoDiscoverCommandPlugins();
- for (SchemaInfo schema : schemas) {
+ for (OnapCommandSchemaInfo schema : schemas) {
if (schema.isIgnore()) {
continue;
}
@@ -283,7 +292,7 @@ public class OnapCommandRegistrar {
public String getVersion() {
String version = this.getClass().getPackage().getImplementationVersion();
if (version == null) {
- version = OnapCommandConfg.getVersion();
+ version = OnapCommandConfig.getPropertyValue(OnapCommandConstants.OPEN_CLI_VERSION);
}
String buildTime = OnapCommandHelperUtils.findLastBuildTime();
@@ -297,14 +306,14 @@ public class OnapCommandRegistrar {
String versionInfo = "";
try {
- versionInfo = IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream(Constants.VERSION_INFO));
+ versionInfo = IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream(OnapCommandConstants.VERSION_INFO));
} catch (IOException e) {
//Never occurs // NOSONAR
}
- versionInfo = versionInfo.replaceAll(Constants.VERSION_INFO_PLACE_HOLDER_ENB_PRD_VER, configuredProductVersion);
- versionInfo = versionInfo.replaceAll(Constants.VERSION_INFO_PLACE_HOLDER_AVL_PRD_VER, this.availableProductVersions.toString());
- versionInfo = versionInfo.replaceAll(Constants.VERSION_INFO_PLACE_HOLDER_VERSION + "", version + buildTime);
+ versionInfo = versionInfo.replaceAll(OnapCommandConstants.VERSION_INFO_PLACE_HOLDER_ENB_PRD_VER, configuredProductVersion);
+ versionInfo = versionInfo.replaceAll(OnapCommandConstants.VERSION_INFO_PLACE_HOLDER_AVL_PRD_VER, this.availableProductVersions.toString());
+ versionInfo = versionInfo.replaceAll(OnapCommandConstants.VERSION_INFO_PLACE_HOLDER_VERSION + "", version + buildTime);
return versionInfo;
}
@@ -326,32 +335,32 @@ public class OnapCommandRegistrar {
private String getHelp(boolean isEnabledProductVersionOnly) throws OnapCommandHelpFailed {
OnapCommandResult help = new OnapCommandResult();
- help.setType(ResultType.TABLE);
- help.setPrintDirection(PrintDirection.LANDSCAPE);
+ help.setType(OnapCommandResultType.TABLE);
+ help.setPrintDirection(OnapCommandPrintDirection.LANDSCAPE);
OnapCommandResultAttribute attr = new OnapCommandResultAttribute();
- attr.setName(Constants.NAME.toUpperCase());
- attr.setDescription(Constants.DESCRIPTION);
+ attr.setName(OnapCommandConstants.NAME.toUpperCase());
+ attr.setDescription(OnapCommandConstants.DESCRIPTION);
attr.setScope(OnapCommandResultAttributeScope.SHORT);
help.getRecords().add(attr);
OnapCommandResultAttribute attrVer = new OnapCommandResultAttribute();
if (!isEnabledProductVersionOnly) {
- attrVer.setName(Constants.INFO_PRODUCT.toUpperCase());
- attrVer.setDescription(Constants.DESCRIPTION);
+ attrVer.setName(OnapCommandConstants.INFO_PRODUCT.toUpperCase());
+ attrVer.setDescription(OnapCommandConstants.DESCRIPTION);
attrVer.setScope(OnapCommandResultAttributeScope.SHORT);
help.getRecords().add(attrVer);
}
OnapCommandResultAttribute attrSrv = new OnapCommandResultAttribute();
- attrSrv.setName(Constants.SERVICE.toUpperCase());
- attrSrv.setDescription(Constants.SERVICE);
+ attrSrv.setName(OnapCommandConstants.INFO_SERVICE.toUpperCase());
+ attrSrv.setDescription(OnapCommandConstants.INFO_SERVICE);
attrSrv.setScope(OnapCommandResultAttributeScope.SHORT);
help.getRecords().add(attrSrv);
OnapCommandResultAttribute attrDesc = new OnapCommandResultAttribute();
- attrDesc.setName(Constants.DESCRIPTION.toUpperCase());
- attrDesc.setDescription(Constants.DESCRIPTION);
+ attrDesc.setName(OnapCommandConstants.DESCRIPTION.toUpperCase());
+ attrDesc.setDescription(OnapCommandConstants.DESCRIPTION);
attrDesc.setScope(OnapCommandResultAttributeScope.SHORT);
help.getRecords().add(attrDesc);
diff --git a/framework/src/main/java/org/onap/cli/fw/OnapCommandSchema.java b/framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchema.java
index d5f71044..12eede74 100644
--- a/framework/src/main/java/org/onap/cli/fw/OnapCommandSchema.java
+++ b/framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchema.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.onap.cli.fw;
+package org.onap.cli.fw.schema;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
diff --git a/framework/src/main/java/org/onap/cli/fw/utils/SchemaInfo.java b/framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchemaInfo.java
index beb02a37..67675480 100644
--- a/framework/src/main/java/org/onap/cli/fw/utils/SchemaInfo.java
+++ b/framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchemaInfo.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package org.onap.cli.fw.utils;
+package org.onap.cli.fw.schema;
-import org.onap.cli.fw.cmd.CommandType;
-import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.cmd.OnapCommandType;
+import org.onap.cli.fw.conf.OnapCommandConstants;
/**
- * SchemaInfo is used in discovery caching.
+ * OnapCommandSchemaInfo is used in discovery caching.
*
*/
-public class SchemaInfo {
+public class OnapCommandSchemaInfo {
/**
* Name of the schema file name
@@ -44,11 +44,11 @@ public class SchemaInfo {
*/
private String version;
- private String type = CommandType.CMD.name();
+ private String type = OnapCommandType.CMD.name();
- private String schemaProfile = Constants.BASIC_SCHEMA_PROFILE;
+ private String schemaProfile = OnapCommandConstants.BASIC_SCHEMA_PROFILE;
- private String ignore = Constants.BOOLEAN_FALSE;
+ private String ignore = OnapCommandConstants.BOOLEAN_FALSE;
public String getSchemaName() {
return schemaName;
@@ -107,7 +107,7 @@ public class SchemaInfo {
}
public boolean isIgnore() {
- return Constants.BOOLEAN_TRUE.equalsIgnoreCase(this.getIgnore());
+ return OnapCommandConstants.BOOLEAN_TRUE.equalsIgnoreCase(this.getIgnore());
}
public String getIgnore() {
diff --git a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandSchemaLoaderUtils.java b/framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchemaLoader.java
index 04bfd23c..8aea883e 100644
--- a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandSchemaLoaderUtils.java
+++ b/framework/src/main/java/org/onap/cli/fw/schema/OnapCommandSchemaLoader.java
@@ -14,68 +14,43 @@
* limitations under the License.
*/
-package org.onap.cli.fw.utils;
-
-import static org.onap.cli.fw.conf.Constants.ATTRIBUTES;
-import static org.onap.cli.fw.conf.Constants.AUTH;
-import static org.onap.cli.fw.conf.Constants.AUTH_VALUES;
-import static org.onap.cli.fw.conf.Constants.BODY;
-import static org.onap.cli.fw.conf.Constants.BOOLEAN_TRUE;
-import static org.onap.cli.fw.conf.Constants.COMMAND_TYPE_VALUES;
-import static org.onap.cli.fw.conf.Constants.DEAFULT_PARAMETER_PASSWORD;
-import static org.onap.cli.fw.conf.Constants.DEAFULT_PARAMETER_USERNAME;
-import static org.onap.cli.fw.conf.Constants.DEFAULT_PARAMETER_FILE_NAME;
-import static org.onap.cli.fw.conf.Constants.DEFAULT_PARAMETER_HTTP_FILE_NAME;
-import static org.onap.cli.fw.conf.Constants.DEFAULT_PARAMETER_NO_AUTH;
-import static org.onap.cli.fw.conf.Constants.DEFAULT_VALUE;
-import static org.onap.cli.fw.conf.Constants.DESCRIPTION;
-import static org.onap.cli.fw.conf.Constants.DIRECTION;
-import static org.onap.cli.fw.conf.Constants.HEADERS;
-import static org.onap.cli.fw.conf.Constants.HTTP;
-import static org.onap.cli.fw.conf.Constants.HTTP_MANDATORY_SECTIONS;
-import static org.onap.cli.fw.conf.Constants.HTTP_SECTIONS;
-import static org.onap.cli.fw.conf.Constants.INFO;
-import static org.onap.cli.fw.conf.Constants.INFO_AUTHOR;
-import static org.onap.cli.fw.conf.Constants.INFO_IGNORE;
-import static org.onap.cli.fw.conf.Constants.INFO_PARAMS_LIST;
-import static org.onap.cli.fw.conf.Constants.INFO_PARAMS_MANDATORY_LIST;
-import static org.onap.cli.fw.conf.Constants.INFO_PRODUCT;
-import static org.onap.cli.fw.conf.Constants.INFO_SERVICE;
-import static org.onap.cli.fw.conf.Constants.INFO_TYPE;
-import static org.onap.cli.fw.conf.Constants.INPUT_PARAMS_LIST;
-import static org.onap.cli.fw.conf.Constants.INPUT_PARAMS_MANDATORY_LIST;
-import static org.onap.cli.fw.conf.Constants.IS_INCLUDE;
-import static org.onap.cli.fw.conf.Constants.IS_OPTIONAL;
-import static org.onap.cli.fw.conf.Constants.IS_SECURED;
-import static org.onap.cli.fw.conf.Constants.LONG_OPTION;
-import static org.onap.cli.fw.conf.Constants.METHOD_TYPE;
-import static org.onap.cli.fw.conf.Constants.MODE;
-import static org.onap.cli.fw.conf.Constants.MODE_VALUES;
-import static org.onap.cli.fw.conf.Constants.MULTIPART_ENTITY_NAME;
-import static org.onap.cli.fw.conf.Constants.NAME;
-import static org.onap.cli.fw.conf.Constants.OPEN_CLI_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.REQUEST;
-import static org.onap.cli.fw.conf.Constants.RESULTS;
-import static org.onap.cli.fw.conf.Constants.RESULT_MAP;
-import static org.onap.cli.fw.conf.Constants.RESULT_PARAMS_LIST;
-import static org.onap.cli.fw.conf.Constants.RESULT_PARAMS_MANDATORY_LIST;
-import static org.onap.cli.fw.conf.Constants.SAMPLE_RESPONSE;
-import static org.onap.cli.fw.conf.Constants.SCHEMA_FILE_NOT_EXIST;
-import static org.onap.cli.fw.conf.Constants.SCHEMA_FILE_WRONG_EXTN;
-import static org.onap.cli.fw.conf.Constants.SCHEMA_PATH_PATERN;
-import static org.onap.cli.fw.conf.Constants.SCOPE;
-import static org.onap.cli.fw.conf.Constants.SERVICE;
-import static org.onap.cli.fw.conf.Constants.SERVICE_PARAMS_LIST;
-import static org.onap.cli.fw.conf.Constants.SERVICE_PARAMS_MANDATORY_LIST;
-import static org.onap.cli.fw.conf.Constants.SHORT_OPTION;
-import static org.onap.cli.fw.conf.Constants.SUCCESS_CODES;
-import static org.onap.cli.fw.conf.Constants.TOP_LEVEL_MANDATORY_LIST;
-import static org.onap.cli.fw.conf.Constants.TOP_LEVEL_PARAMS_LIST;
-import static org.onap.cli.fw.conf.Constants.TYPE;
-import static org.onap.cli.fw.conf.Constants.URI;
-import static org.onap.cli.fw.conf.Constants.VERSION;
+package org.onap.cli.fw.schema;
+
+import static org.onap.cli.fw.conf.OnapCommandConstants.ATTRIBUTES;
+import static org.onap.cli.fw.conf.OnapCommandConstants.BOOLEAN_TRUE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.COMMAND_TYPE_VALUES;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DEFAULT_PARAMETER_FILE_NAME;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DEFAULT_VALUE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DESCRIPTION;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DIRECTION;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO_AUTHOR;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO_IGNORE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO_PARAMS_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO_PARAMS_MANDATORY_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO_PRODUCT;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO_SERVICE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INFO_TYPE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INPUT_PARAMS_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.INPUT_PARAMS_MANDATORY_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.IS_INCLUDE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.IS_OPTIONAL;
+import static org.onap.cli.fw.conf.OnapCommandConstants.IS_SECURED;
+import static org.onap.cli.fw.conf.OnapCommandConstants.LONG_OPTION;
+import static org.onap.cli.fw.conf.OnapCommandConstants.NAME;
+import static org.onap.cli.fw.conf.OnapCommandConstants.OPEN_CLI_SCHEMA_VERSION;
+import static org.onap.cli.fw.conf.OnapCommandConstants.PARAMETERS;
+import static org.onap.cli.fw.conf.OnapCommandConstants.RESULTS;
+import static org.onap.cli.fw.conf.OnapCommandConstants.RESULT_PARAMS_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.RESULT_PARAMS_MANDATORY_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.SCHEMA_FILE_NOT_EXIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.SCHEMA_FILE_WRONG_EXTN;
+import static org.onap.cli.fw.conf.OnapCommandConstants.SCHEMA_PATH_PATERN;
+import static org.onap.cli.fw.conf.OnapCommandConstants.SCOPE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.SHORT_OPTION;
+import static org.onap.cli.fw.conf.OnapCommandConstants.TOP_LEVEL_MANDATORY_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.TOP_LEVEL_PARAMS_LIST;
+import static org.onap.cli.fw.conf.OnapCommandConstants.TYPE;
import java.io.File;
import java.io.FileInputStream;
@@ -90,12 +65,10 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.onap.cli.fw.OnapCommand;
-import org.onap.cli.fw.ad.OnapService;
-import org.onap.cli.fw.cmd.CommandType;
-import org.onap.cli.fw.cmd.OnapHttpCommand;
-import org.onap.cli.fw.conf.Constants;
-import org.onap.cli.fw.conf.OnapCommandConfg;
+import org.onap.cli.fw.cmd.OnapCommand;
+import org.onap.cli.fw.cmd.OnapCommandType;
+import org.onap.cli.fw.conf.OnapCommandConfig;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.error.OnapCommandInvalidSchema;
import org.onap.cli.fw.error.OnapCommandInvalidSchemaVersion;
@@ -104,15 +77,17 @@ import org.onap.cli.fw.error.OnapCommandParameterOptionConflict;
import org.onap.cli.fw.error.OnapCommandSchemaNotFound;
import org.onap.cli.fw.info.OnapCommandInfo;
import org.onap.cli.fw.input.OnapCommandParameter;
-import org.onap.cli.fw.input.ParameterType;
+import org.onap.cli.fw.input.OnapCommandParameterType;
+import org.onap.cli.fw.output.OnapCommandPrintDirection;
import org.onap.cli.fw.output.OnapCommandResult;
import org.onap.cli.fw.output.OnapCommandResultAttribute;
import org.onap.cli.fw.output.OnapCommandResultAttributeScope;
-import org.onap.cli.fw.output.PrintDirection;
+import org.onap.cli.fw.utils.OnapCommandDiscoveryUtils;
+import org.onap.cli.fw.utils.OnapCommandUtils;
import org.springframework.core.io.Resource;
import org.yaml.snakeyaml.Yaml;
-public class OnapCommandSchemaLoaderUtils {
+public class OnapCommandSchemaLoader {
/**
* Validates schema version.
@@ -138,10 +113,10 @@ public class OnapCommandSchemaLoaderUtils {
throw new OnapCommandSchemaNotFound(schemaName, e);
}
if (inputStream == null) {
- inputStream = OnapCommandSchemaLoaderUtils.loadSchemaFromFile(schemaName);
+ inputStream = OnapCommandSchemaLoader.loadSchemaFromFile(schemaName);
}
- Map<String, ?> values = OnapCommandSchemaLoaderUtils.loadSchema(inputStream, schemaName);
+ Map<String, ?> values = OnapCommandSchemaLoader.loadSchema(inputStream, schemaName);
String schemaVersion = "";
if (values.keySet().contains(OPEN_CLI_SCHEMA_VERSION)) {
Object obj = values.get(OPEN_CLI_SCHEMA_VERSION);
@@ -173,16 +148,16 @@ public class OnapCommandSchemaLoaderUtils {
validateSchemaVersion(DEFAULT_PARAMETER_FILE_NAME, cmd.getSchemaVersion()) : new HashMap<>();
//mrkanag default_parameter is supported only for parameters.
if (defaultParameterMap.containsKey(INFO)) {
- defaultParameterMap.remove(Constants.INFO);
+ defaultParameterMap.remove(OnapCommandConstants.INFO);
}
- errors.addAll(OnapCommandSchemaLoaderUtils.parseSchema(cmd, defaultParameterMap, validateSchema));
+ errors.addAll(OnapCommandSchemaLoader.parseSchema(cmd, defaultParameterMap, validateSchema));
}
Map<String, List<Map<String, String>>> commandYamlMap =
(Map<String, List<Map<String, String>>>)validateSchemaVersion(schemaName, cmd.getSchemaVersion());
- errors.addAll(OnapCommandSchemaLoaderUtils.parseSchema(cmd, commandYamlMap, validateSchema));
+ errors.addAll(OnapCommandSchemaLoader.parseSchema(cmd, commandYamlMap, validateSchema));
return errors;
} catch (OnapCommandException e) {
@@ -192,37 +167,7 @@ public class OnapCommandSchemaLoaderUtils {
}
}
- public static List<String> loadHttpSchema(OnapHttpCommand cmd, String schemaName, boolean includeDefault,
- boolean validateSchema) throws OnapCommandException {
- try {
- List<String> errors = new ArrayList<>();
- if (includeDefault) {
- Map<String, ?> defaultParameterMap = includeDefault ?
- validateSchemaVersion(DEFAULT_PARAMETER_HTTP_FILE_NAME, cmd.getSchemaVersion()) : new HashMap<>();
-
- //mrkanag default_parameter is supported only for parameters.
- if (defaultParameterMap.containsKey(INFO)) {
- defaultParameterMap.remove(Constants.INFO);
- }
-
- errors.addAll(OnapCommandSchemaLoaderUtils.parseSchema(cmd, defaultParameterMap, validateSchema));
- }
-
- Map<String, List<Map<String, String>>> commandYamlMap =
- (Map<String, List<Map<String, String>>>)validateSchemaVersion(schemaName, cmd.getSchemaVersion());
-
- errors.addAll(OnapCommandSchemaLoaderUtils.parseHttpSchema(cmd, commandYamlMap, validateSchema));
-
- return errors;
-
- } catch (OnapCommandException e) {
- throw e;
- } catch (Exception e) {
- throw new OnapCommandInvalidSchema(schemaName, e);
- }
- }
-
- static List<String> parseSchema(OnapCommand cmd,
+ public static List<String> parseSchema(OnapCommand cmd,
final Map<String, ?> values,
boolean validate) throws OnapCommandException {
@@ -231,8 +176,8 @@ public class OnapCommandSchemaLoaderUtils {
List<String> longOptions = new ArrayList<>();
if (validate) {
- OnapCommandUtils.validateTags(exceptionList, (Map<String, Object>) values, OnapCommandConfg.getSchemaAttrInfo(TOP_LEVEL_PARAMS_LIST),
- OnapCommandConfg.getSchemaAttrInfo(TOP_LEVEL_MANDATORY_LIST), "root level");
+ OnapCommandUtils.validateTags(exceptionList, (Map<String, Object>) values, OnapCommandConfig.getCommaSeparatedList(TOP_LEVEL_PARAMS_LIST),
+ OnapCommandConfig.getCommaSeparatedList(TOP_LEVEL_MANDATORY_LIST), "root level");
}
@@ -261,8 +206,8 @@ public class OnapCommandSchemaLoaderUtils {
if (infoMap != null) {
if (validate) {
OnapCommandUtils.validateTags(exceptionList, (Map<String, Object>) values.get(key),
- OnapCommandConfg.getSchemaAttrInfo(INFO_PARAMS_LIST),
- OnapCommandConfg.getSchemaAttrInfo(INFO_PARAMS_MANDATORY_LIST), INFO);
+ OnapCommandConfig.getCommaSeparatedList(INFO_PARAMS_LIST),
+ OnapCommandConfig.getCommaSeparatedList(INFO_PARAMS_MANDATORY_LIST), INFO);
HashMap<String, String> validationMap = new HashMap<>();
validationMap.put(INFO_TYPE, COMMAND_TYPE_VALUES);
@@ -274,9 +219,9 @@ public class OnapCommandSchemaLoaderUtils {
exceptionList.add("Attribute '" + secKey + "' under '" + INFO + "' is empty");
} else {
String value = String.valueOf(obj);
- if (!OnapCommandConfg.getSchemaAttrInfo(validationMap.get(secKey)).contains(value)) {
+ if (!OnapCommandConfig.getCommaSeparatedList(validationMap.get(secKey)).contains(value)) {
exceptionList.add("Attribute '" + secKey + "' contains invalid value. Valide values are "
- + OnapCommandConfg.getSchemaAttrInfo(validationMap.get(key))); //
+ + OnapCommandConfig.getCommaSeparatedList(validationMap.get(key))); //
}
}
}
@@ -299,7 +244,7 @@ public class OnapCommandSchemaLoaderUtils {
case INFO_TYPE:
Object obj = infoMap.get(key1);
- info.setCommandType(CommandType.get(obj.toString()));
+ info.setCommandType(OnapCommandType.get(obj.toString()));
break;
case INFO_AUTHOR:
@@ -309,7 +254,7 @@ public class OnapCommandSchemaLoaderUtils {
case INFO_IGNORE:
Object ignore = infoMap.get(key1);
- info.setIgnore(ignore.toString().equalsIgnoreCase(Constants.BOOLEAN_TRUE));
+ info.setIgnore(ignore.toString().equalsIgnoreCase(OnapCommandConstants.BOOLEAN_TRUE));
break;
}
}
@@ -341,8 +286,8 @@ public class OnapCommandSchemaLoaderUtils {
}
if (validate) {
- OnapCommandUtils.validateTags(exceptionList, parameter, OnapCommandConfg.getSchemaAttrInfo(INPUT_PARAMS_LIST),
- OnapCommandConfg.getSchemaAttrInfo(INPUT_PARAMS_MANDATORY_LIST), PARAMETERS);
+ OnapCommandUtils.validateTags(exceptionList, parameter, OnapCommandConfig.getCommaSeparatedList(INPUT_PARAMS_LIST),
+ OnapCommandConfig.getCommaSeparatedList(INPUT_PARAMS_MANDATORY_LIST), PARAMETERS);
}
for (Map.Entry<String, String> entry1 : parameter.entrySet()) {
@@ -390,7 +335,7 @@ public class OnapCommandSchemaLoaderUtils {
case TYPE:
try {
- param.setParameterType(ParameterType.get(parameter.get(key2)));
+ param.setParameterType(OnapCommandParameterType.get(parameter.get(key2)));
} catch (OnapCommandException ex) {
OnapCommandUtils.throwOrCollect(ex, exceptionList, validate);
}
@@ -461,7 +406,7 @@ public class OnapCommandSchemaLoaderUtils {
switch (key3) {
case DIRECTION:
try {
- result.setPrintDirection(PrintDirection.get((String) valueMap.get(key3)));
+ result.setPrintDirection(OnapCommandPrintDirection.get((String) valueMap.get(key3)));
} catch (OnapCommandException ex) {
OnapCommandUtils.throwOrCollect(ex, exceptionList, validate);
}
@@ -473,8 +418,8 @@ public class OnapCommandSchemaLoaderUtils {
for (Map<String, String> map : attrs) {
OnapCommandResultAttribute attr = new OnapCommandResultAttribute();
if (validate) {
- OnapCommandUtils.validateTags(exceptionList, map, OnapCommandConfg.getSchemaAttrInfo(RESULT_PARAMS_LIST),
- OnapCommandConfg.getSchemaAttrInfo(RESULT_PARAMS_MANDATORY_LIST), ATTRIBUTES);
+ OnapCommandUtils.validateTags(exceptionList, map, OnapCommandConfig.getCommaSeparatedList(RESULT_PARAMS_LIST),
+ OnapCommandConfig.getCommaSeparatedList(RESULT_PARAMS_MANDATORY_LIST), ATTRIBUTES);
}
Set<String> resultParamNames = new HashSet<>();
@@ -508,7 +453,7 @@ public class OnapCommandSchemaLoaderUtils {
case TYPE:
try {
- attr.setType(ParameterType.get(map.get(key4)));
+ attr.setType(OnapCommandParameterType.get(map.get(key4)));
} catch (OnapCommandException ex) {
OnapCommandUtils.throwOrCollect(ex, exceptionList, validate);
}
@@ -548,173 +493,6 @@ public class OnapCommandSchemaLoaderUtils {
return exceptionList;
}
- /**
- * Load the schema.
- *
- * @param cmd
- * OnapHttpCommand
- * @param schemaName
- * schema name
- * @throws OnapCommandException
- * on error
- */
- static ArrayList<String> parseHttpSchema(OnapHttpCommand cmd,
- final Map<String, ?> values,
- boolean validate) throws OnapCommandException {
- ArrayList<String> errorList = new ArrayList<>();
- try {
- Map<String, ?> valMap = (Map<String, ?>) values.get(HTTP);
-
- if (valMap != null) {
- if (validate) {
- OnapCommandUtils.validateTags(errorList, valMap, OnapCommandConfg.getSchemaAttrInfo(HTTP_SECTIONS),
- OnapCommandConfg.getSchemaAttrInfo(HTTP_MANDATORY_SECTIONS), PARAMETERS);
- errorList.addAll(OnapCommandUtils.validateHttpSchemaSection(values));
- }
- for (Map.Entry<String, ?> entry1 : valMap.entrySet()) {
- String key1 = entry1.getKey();
-
- switch (key1) {
- case REQUEST:
- Map<String, ?> map = (Map<String, ?>) valMap.get(key1);
-
- for (Map.Entry<String, ?> entry2 : map.entrySet()) {
- try {
- String key2 = entry2.getKey();
-
- switch (key2) {
- case URI:
- Object obj = map.get(key2);
- cmd.getInput().setUri(obj.toString());
- break;
- case METHOD_TYPE:
- Object method = map.get(key2);
- cmd.getInput().setMethod(method.toString());
- break;
- case BODY:
- Object body = map.get(key2);
- cmd.getInput().setBody(body.toString());
- break;
- case HEADERS:
- Map<String, String> head = (Map<String, String>) map.get(key2);
- cmd.getInput().setReqHeaders(head);
- break;
- case QUERIES:
- Map<String, String> query = (Map<String, String>) map.get(key2);
-
- cmd.getInput().setReqQueries(query);
- break;
- case MULTIPART_ENTITY_NAME:
- Object multipartEntityName = map.get(key2);
- cmd.getInput().setMultipartEntityName(multipartEntityName.toString());
- break;
- }
- }catch (Exception ex) {
- OnapCommandUtils.throwOrCollect(new OnapCommandInvalidSchema(cmd.getSchemaName(), ex), errorList, validate);
- }
- }
- break;
-
- case SERVICE:
- Map<String, String> serviceMap = (Map<String, String>) valMap.get(key1);
-
- if (serviceMap != null) {
- if (validate) {
- OnapCommandUtils.validateTags(errorList, (Map<String, Object>) valMap.get(key1),
- OnapCommandConfg.getSchemaAttrInfo(SERVICE_PARAMS_LIST),
- OnapCommandConfg.getSchemaAttrInfo(SERVICE_PARAMS_MANDATORY_LIST), SERVICE);
-
- HashMap<String, String> validationMap = new HashMap<>();
- validationMap.put(AUTH, AUTH_VALUES);
- validationMap.put(MODE, MODE_VALUES);
-
- for (String secKey : validationMap.keySet()) {
- if (serviceMap.containsKey(secKey)) {
- Object obj = serviceMap.get(secKey);
- if (obj == null) {
- errorList.add("Attribute '" + secKey + "' under '" + SERVICE + "' is empty");
- } else {
- String value = String.valueOf(obj);
- if (!OnapCommandConfg.getSchemaAttrInfo(validationMap.get(secKey)).contains(value)) {
- errorList.add("Attribute '" + secKey + "' contains invalid value. Valide values are "
- + OnapCommandConfg.getSchemaAttrInfo(validationMap.get(key1))); //
- }
- }
- }
- }
- }
-
- OnapService srv = new OnapService();
-
- for (Map.Entry<String, String> entry : serviceMap.entrySet()) {
- String key = entry.getKey();
-
- switch (key) {
- case NAME:
- srv.setName(serviceMap.get(key));
- break;
-
- case VERSION:
- srv.setVersion(serviceMap.get(key).toString());
- break;
-
- case AUTH:
- Object obj = serviceMap.get(key);
- srv.setAuthType(obj.toString());
-
- //On None type, username, password and no_auth are invalid
- if (srv.isNoAuth()) {
- cmd.getParametersMap().get(DEAFULT_PARAMETER_USERNAME).setInclude(false);
- cmd.getParametersMap().get(DEAFULT_PARAMETER_PASSWORD).setInclude(false);
- cmd.getParametersMap().get(DEFAULT_PARAMETER_NO_AUTH).setInclude(false);
- }
- break;
-
- //mrkanag: from auth command, add the parameters to the command's parameters list
-
- case MODE:
- Object mode = serviceMap.get(key);
- srv.setMode(mode.toString());
- break;
- }
- }
- cmd.setService(srv);
- }
- break;
-
- case SUCCESS_CODES:
- if (validate) {
- OnapCommandUtils.validateHttpSccessCodes(errorList, (List<Object>) valMap.get(key1));
- }
- cmd.setSuccessStatusCodes((ArrayList) valMap.get(key1));
- break;
-
- case RESULT_MAP:
- if (validate) {
- OnapCommandUtils.validateHttpResultMap(errorList, values);
- }
- cmd.setResultMap((Map<String, String>) valMap.get(key1));
- break;
-
- case SAMPLE_RESPONSE:
- // (mrkanag) implement sample response handling
- break;
- }
- }
- }
- }catch (OnapCommandException e) {
- OnapCommandUtils.throwOrCollect(e, errorList, validate);
- }
-
- //Handle the parameters for auth
- if (!cmd.getService().isNoAuth()) {
- OnapCommand login = OnapCommandDiscoveryUtils.findAuthCommand(cmd, "login");
- OnapCommandUtils.copyParamSchemasFrom(login, cmd);
- }
-
- return errorList;
- }
-
public static InputStream loadSchemaFromFile(String schemaLocation) throws OnapCommandInvalidSchema {
File schemaFile = new File(schemaLocation);
try {
@@ -743,7 +521,7 @@ public class OnapCommandSchemaLoaderUtils {
*/
public static Map<String, ?> loadSchema(Resource resource) throws OnapCommandInvalidSchema {
try {
- return OnapCommandSchemaLoaderUtils.loadSchema(resource.getInputStream(), resource.getFilename());
+ return OnapCommandSchemaLoader.loadSchema(resource.getInputStream(), resource.getFilename());
} catch (IOException e) {
throw new OnapCommandInvalidSchema(resource.getFilename(), e);
}
diff --git a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandDiscoveryUtils.java b/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandDiscoveryUtils.java
index e1b3ea2b..7d305a86 100644
--- a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandDiscoveryUtils.java
+++ b/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandDiscoveryUtils.java
@@ -16,13 +16,13 @@
package org.onap.cli.fw.utils;
-import static org.onap.cli.fw.conf.Constants.DATA_DIRECTORY;
-import static org.onap.cli.fw.conf.Constants.DATA_PATH_JSON_PATTERN;
-import static org.onap.cli.fw.conf.Constants.DISCOVERY_FILE;
-import static org.onap.cli.fw.conf.Constants.NAME;
-import static org.onap.cli.fw.conf.Constants.OPEN_CLI_SCHEMA_VERSION;
-import static org.onap.cli.fw.conf.Constants.SCHEMA_DIRECTORY;
-import static org.onap.cli.fw.conf.Constants.SCHEMA_PATH_PATERN;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DATA_DIRECTORY;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DATA_PATH_JSON_PATTERN;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DISCOVERY_FILE;
+import static org.onap.cli.fw.conf.OnapCommandConstants.NAME;
+import static org.onap.cli.fw.conf.OnapCommandConstants.OPEN_CLI_SCHEMA_VERSION;
+import static org.onap.cli.fw.conf.OnapCommandConstants.SCHEMA_DIRECTORY;
+import static org.onap.cli.fw.conf.OnapCommandConstants.SCHEMA_PATH_PATERN;
import java.io.File;
import java.io.IOException;
@@ -34,16 +34,15 @@ import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
-import org.onap.cli.fw.OnapCommand;
-import org.onap.cli.fw.OnapCommandRegistrar;
-import org.onap.cli.fw.cmd.OnapHttpCommand;
-import org.onap.cli.fw.conf.Constants;
-import org.onap.cli.fw.conf.OnapCommandConfg;
+import org.onap.cli.fw.cmd.OnapCommand;
+import org.onap.cli.fw.conf.OnapCommandConfig;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandDiscoveryFailed;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.error.OnapCommandInstantiationFailed;
import org.onap.cli.fw.error.OnapCommandInvalidSchema;
-import org.onap.cli.fw.error.OnapCommandNotFound;
+import org.onap.cli.fw.schema.OnapCommandSchemaInfo;
+import org.onap.cli.fw.schema.OnapCommandSchemaLoader;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
@@ -64,11 +63,11 @@ public class OnapCommandDiscoveryUtils {
* @throws OnapCommandDiscoveryFailed
* exception
*/
- public static SchemaInfo getSchemaInfo(String cmd, String version) throws OnapCommandException {
- List<SchemaInfo> list = OnapCommandDiscoveryUtils.discoverOrLoadSchemas(false);
- SchemaInfo schemaInfo = null;
+ public static OnapCommandSchemaInfo getSchemaInfo(String cmd, String version) throws OnapCommandException {
+ List<OnapCommandSchemaInfo> list = OnapCommandDiscoveryUtils.discoverOrLoadSchemas(false);
+ OnapCommandSchemaInfo schemaInfo = null;
if (list != null) {
- for (SchemaInfo schema : list) {
+ for (OnapCommandSchemaInfo schema : list) {
if (cmd.equals(schema.getCmdName()) && version.equals(schema.getProduct())) {
schemaInfo = schema;
break;
@@ -87,9 +86,10 @@ public class OnapCommandDiscoveryUtils {
* @throws OnapCommandDiscoveryFailed
* exception
*/
- public static List<SchemaInfo> discoverOrLoadSchemas(boolean forceRefresh) throws OnapCommandException {
- List<SchemaInfo> schemas = new ArrayList<>();
- if (forceRefresh || OnapCommandConfg.isDiscoverAlways() || !OnapCommandDiscoveryUtils.isAlreadyDiscovered()) {
+ public static List<OnapCommandSchemaInfo> discoverOrLoadSchemas(boolean forceRefresh) throws OnapCommandException {
+ List<OnapCommandSchemaInfo> schemas = new ArrayList<>();
+ if (forceRefresh || Boolean.parseBoolean(OnapCommandConfig.getPropertyValue(OnapCommandConstants.DISCOVER_ALWAYS))
+ || !OnapCommandDiscoveryUtils.isAlreadyDiscovered()) {
schemas = OnapCommandDiscoveryUtils.discoverSchemas();
if (!schemas.isEmpty()) {
OnapCommandDiscoveryUtils.persistSchemaInfo(schemas);
@@ -101,7 +101,7 @@ public class OnapCommandDiscoveryUtils {
if (resource != null) {
File file = new File(resource.getURI().getPath());
ObjectMapper mapper = new ObjectMapper();
- SchemaInfo[] list = mapper.readValue(file, SchemaInfo[].class);
+ OnapCommandSchemaInfo[] list = mapper.readValue(file, OnapCommandSchemaInfo[].class);
schemas.addAll(Arrays.asList(list));
}
} catch (IOException e) {
@@ -144,7 +144,7 @@ public class OnapCommandDiscoveryUtils {
* @throws OnapCommandDiscoveryFailed
* exception
*/
- public static void persistSchemaInfo(List<SchemaInfo> schemas) throws OnapCommandDiscoveryFailed {
+ public static void persistSchemaInfo(List<OnapCommandSchemaInfo> schemas) throws OnapCommandDiscoveryFailed {
if (schemas != null) {
try {
Resource[] resources = OnapCommandDiscoveryUtils.findResources(DATA_DIRECTORY);
@@ -219,13 +219,13 @@ public class OnapCommandDiscoveryUtils {
public static String identitySchemaProfileType(Map<String, ?> schemaYamlMap) {
- for (String schemeType : OnapCommandConfg.getSchemaAttrInfo(Constants.SCHEMA_TYPES_SUPPORTED)) {
+ for (String schemeType : OnapCommandConfig.getCommaSeparatedList(OnapCommandConstants.SCHEMA_TYPES_SUPPORTED)) {
if (schemaYamlMap.get(schemeType) != null) {
return schemeType;
}
}
- return Constants.BASIC_SCHEMA_PROFILE;
+ return OnapCommandConstants.BASIC_SCHEMA_PROFILE;
}
/**
@@ -237,8 +237,8 @@ public class OnapCommandDiscoveryUtils {
* @throws OnapCommandInvalidSchema
* exception
*/
- public static List<SchemaInfo> discoverSchemas() throws OnapCommandException {
- List<SchemaInfo> extSchemas = new ArrayList<>();
+ public static List<OnapCommandSchemaInfo> discoverSchemas() throws OnapCommandException {
+ List<OnapCommandSchemaInfo> extSchemas = new ArrayList<>();
try {
Resource[] res = findResources(SCHEMA_PATH_PATERN);
if (res != null && res.length > 0) {
@@ -246,21 +246,21 @@ public class OnapCommandDiscoveryUtils {
for (Resource resource : res) {
try {
- resourceMap = OnapCommandSchemaLoaderUtils.loadSchema(resource);
+ resourceMap = OnapCommandSchemaLoader.loadSchema(resource);
} catch (OnapCommandException e) {
OnapCommandUtils.LOG.error("Ignores invalid schema " + resource.getURI().toString(), e);
continue;
}
if (resourceMap != null && resourceMap.size() > 0) {
- SchemaInfo schema = new SchemaInfo();
+ OnapCommandSchemaInfo schema = new OnapCommandSchemaInfo();
schema.setSchemaURI(resource.getURI().toString());
Object obj = resourceMap.get(OPEN_CLI_SCHEMA_VERSION);
schema.setVersion(obj.toString());
- if (!schema.getVersion().equalsIgnoreCase(Constants.OPEN_CLI_SCHEMA_VERSION_VALUE_1_0)) {
+ if (!schema.getVersion().equalsIgnoreCase(OnapCommandConstants.OPEN_CLI_SCHEMA_VERSION_VALUE_1_0)) {
OnapCommandUtils.LOG.info("Unsupported Schema version found " + schema.getSchemaURI());
continue;
}
@@ -268,17 +268,17 @@ public class OnapCommandDiscoveryUtils {
schema.setSchemaName(resource.getFilename());
schema.setCmdName((String) resourceMap.get(NAME));
- Map<String, ?> infoMap = (Map<String, ?>) resourceMap.get(Constants.INFO);
- if (infoMap != null && infoMap.get(Constants.INFO_TYPE) != null) {
- schema.setType(infoMap.get(Constants.INFO_TYPE).toString());
+ Map<String, ?> infoMap = (Map<String, ?>) resourceMap.get(OnapCommandConstants.INFO);
+ if (infoMap != null && infoMap.get(OnapCommandConstants.INFO_TYPE) != null) {
+ schema.setType(infoMap.get(OnapCommandConstants.INFO_TYPE).toString());
}
- if (infoMap != null && infoMap.get(Constants.INFO_PRODUCT) != null) {
- schema.setProduct(infoMap.get(Constants.INFO_PRODUCT).toString());
+ if (infoMap != null && infoMap.get(OnapCommandConstants.INFO_PRODUCT) != null) {
+ schema.setProduct(infoMap.get(OnapCommandConstants.INFO_PRODUCT).toString());
}
- if (infoMap != null && infoMap.get(Constants.INFO_IGNORE) != null) {
- schema.setIgnore(infoMap.get(Constants.INFO_IGNORE).toString());
+ if (infoMap != null && infoMap.get(OnapCommandConstants.INFO_IGNORE) != null) {
+ schema.setIgnore(infoMap.get(OnapCommandConstants.INFO_IGNORE).toString());
}
schema.setSchemaProfile(identitySchemaProfileType(resourceMap));
@@ -322,27 +322,4 @@ public class OnapCommandDiscoveryUtils {
}
}
-
- /**
- *
- * @param authAction login/logout
- * @return
- * @throws OnapCommandException
- */
- public static OnapCommand findAuthCommand(OnapHttpCommand forCmd, String authAction) throws OnapCommandException {
- OnapCommand auth = null;
- try {
- //mrkanag: fix this to discover the auth command by matching info->product & service
- auth = OnapCommandRegistrar.getRegistrar().get(
- forCmd.getInfo().getService() + "-" +
- forCmd.getService().getAuthType() + "-" + authAction,
- forCmd.getInfo().getProduct());
- } catch (OnapCommandNotFound e) {
- auth = OnapCommandRegistrar.getRegistrar().get(
- forCmd.getService().getAuthType() + "-" + authAction,
- forCmd.getInfo().getProduct());
- }
-
- return auth;
- }
}
diff --git a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandHelperUtils.java b/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandHelperUtils.java
index f5ac764b..5e8c3f52 100644
--- a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandHelperUtils.java
+++ b/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandHelperUtils.java
@@ -16,24 +16,24 @@
package org.onap.cli.fw.utils;
-import static org.onap.cli.fw.conf.Constants.DESCRIPTION;
-import static org.onap.cli.fw.conf.Constants.NAME;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DESCRIPTION;
+import static org.onap.cli.fw.conf.OnapCommandConstants.NAME;
import java.io.IOException;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
-import org.onap.cli.fw.OnapCommand;
+import org.onap.cli.fw.cmd.OnapCommand;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.error.OnapCommandHelpFailed;
import org.onap.cli.fw.input.OnapCommandParameter;
-import org.onap.cli.fw.input.ParameterType;
+import org.onap.cli.fw.input.OnapCommandParameterType;
+import org.onap.cli.fw.output.OnapCommandPrintDirection;
import org.onap.cli.fw.output.OnapCommandResult;
import org.onap.cli.fw.output.OnapCommandResultAttribute;
import org.onap.cli.fw.output.OnapCommandResultAttributeScope;
-import org.onap.cli.fw.output.PrintDirection;
-import org.onap.cli.fw.output.ResultType;
+import org.onap.cli.fw.output.OnapCommandResultType;
public class OnapCommandHelperUtils {
@@ -87,8 +87,8 @@ public class OnapCommandHelperUtils {
// Add parameters
OnapCommandResult paramTable = new OnapCommandResult();
- paramTable.setPrintDirection(PrintDirection.LANDSCAPE);
- paramTable.setType(ResultType.TABLE);
+ paramTable.setPrintDirection(OnapCommandPrintDirection.LANDSCAPE);
+ paramTable.setType(OnapCommandResultType.TABLE);
paramTable.setIncludeTitle(false);
paramTable.setIncludeSeparator(false);
@@ -137,8 +137,8 @@ public class OnapCommandHelperUtils {
}
optSecondCol += " It is of type " + param.getParameterType().name() + ".";
- if (param.getParameterType().equals(ParameterType.JSON)
- || param.getParameterType().equals(ParameterType.YAML)) {
+ if (param.getParameterType().equals(OnapCommandParameterType.JSON)
+ || param.getParameterType().equals(OnapCommandParameterType.YAML)) {
optSecondCol += " It's recommended to input the complete path of the file, which is having the value for it.";
}
if (param.isOptional()) {
@@ -168,8 +168,8 @@ public class OnapCommandHelperUtils {
// Add results
OnapCommandResult resultTable = new OnapCommandResult();
- resultTable.setPrintDirection(PrintDirection.PORTRAIT);
- resultTable.setType(ResultType.TABLE);
+ resultTable.setPrintDirection(OnapCommandPrintDirection.PORTRAIT);
+ resultTable.setType(OnapCommandResultType.TABLE);
resultTable.setIncludeTitle(false);
resultTable.setIncludeSeparator(false);
@@ -195,7 +195,7 @@ public class OnapCommandHelperUtils {
}
// Error
- help += "\n\nError::\n\n On error, it prints <HTTP STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>\n";
+ help += "\n\nError::\n\n On error, it prints <STATUS CODE>::<ERROR CODE>::<ERROR MESSAGE>\n";
return help;
}
diff --git a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandProfileUtils.java b/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandProfileUtils.java
deleted file mode 100644
index b1fff95d..00000000
--- a/framework/src/main/java/org/onap/cli/fw/utils/OnapCommandProfileUtils.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cli.fw.utils;
-
-import static org.onap.cli.fw.conf.Constants.DATA_DIRECTORY;
-import static org.onap.cli.fw.conf.Constants.DATA_PATH_JSON_PATTERN;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.onap.cli.fw.error.OnapCommandLoadProfileFailed;
-import org.onap.cli.fw.error.OnapCommandPersistProfileFailed;
-import org.onap.cli.fw.input.cache.Param;
-import org.springframework.core.io.Resource;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class OnapCommandProfileUtils {
-
- public static List<Param> loadParamFromCache(String profileName) throws OnapCommandLoadProfileFailed {
- List<Param> params = new ArrayList<>();
-
- try {
- Resource resource = OnapCommandDiscoveryUtils.findResource(profileName + ".json",
- DATA_PATH_JSON_PATTERN);
- if (resource != null) {
- File file = new File(resource.getURI().getPath());
- ObjectMapper mapper = new ObjectMapper();
- Param[] list = mapper.readValue(file, Param[].class);
- params.addAll(Arrays.asList(list));
- }
- } catch (IOException e) {
- throw new OnapCommandLoadProfileFailed(e);
- }
-
- return params;
- }
-
- public static void persistProfile(List<Param> params, String profileName) throws OnapCommandPersistProfileFailed {
- if (params != null) {
- try {
- Resource[] resources = OnapCommandDiscoveryUtils.findResources(DATA_DIRECTORY);
- if (resources != null && resources.length == 1) {
- String path = resources[0].getURI().getPath();
- File file = new File(path + File.separator + profileName + ".json");
- ObjectMapper mapper = new ObjectMapper();
- mapper.writerWithDefaultPrettyPrinter().writeValue(file, params);
- }
- } catch (IOException e1) {
- throw new OnapCommandPersistProfileFailed(e1);
- }
- }
- }
-
-}
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 57a2e303..ad739cd7 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
@@ -16,63 +16,31 @@
package org.onap.cli.fw.utils;
-import static org.onap.cli.fw.conf.Constants.ATTRIBUTES;
-import static org.onap.cli.fw.conf.Constants.BODY;
-import static org.onap.cli.fw.conf.Constants.BOOLEAN_VALUE;
-import static org.onap.cli.fw.conf.Constants.HEADERS;
-import static org.onap.cli.fw.conf.Constants.HTTP;
-import static org.onap.cli.fw.conf.Constants.HTTP_BODY_FAILED_PARSING;
-import static org.onap.cli.fw.conf.Constants.HTTP_BODY_JSON_EMPTY;
-import static org.onap.cli.fw.conf.Constants.HTTP_METHODS;
-import static org.onap.cli.fw.conf.Constants.HTTP_REQUEST_MANDATORY_PARAMS;
-import static org.onap.cli.fw.conf.Constants.HTTP_REQUEST_PARAMS;
-import static org.onap.cli.fw.conf.Constants.HTTP_SUCCESS_CODE_INVALID;
-import static org.onap.cli.fw.conf.Constants.METHOD;
-import static org.onap.cli.fw.conf.Constants.NAME;
-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.REQUEST;
-import static org.onap.cli.fw.conf.Constants.RESULTS;
-import static org.onap.cli.fw.conf.Constants.RESULT_MAP;
-import static org.onap.cli.fw.conf.Constants.URI;
-
-import java.io.IOException;
+import static org.onap.cli.fw.conf.OnapCommandConstants.BOOLEAN_VALUE;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.UUID;
-import java.util.stream.Collectors;
-import org.onap.cli.fw.OnapCommand;
-import org.onap.cli.fw.cmd.OnapHttpCommand;
-import org.onap.cli.fw.conf.Constants;
-import org.onap.cli.fw.conf.OnapCommandConfg;
+import org.onap.cli.fw.cmd.OnapCommand;
+import org.onap.cli.fw.conf.OnapCommandConfig;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandHttpHeaderNotFound;
-import org.onap.cli.fw.error.OnapCommandHttpInvalidResponseBody;
-import org.onap.cli.fw.error.OnapCommandHttpInvalidResultMap;
import org.onap.cli.fw.error.OnapCommandInvalidParameterValue;
import org.onap.cli.fw.error.OnapCommandParameterNotFound;
import org.onap.cli.fw.error.OnapCommandResultEmpty;
-import org.onap.cli.fw.error.OnapCommandResultMapProcessingFailed;
-import org.onap.cli.fw.http.HttpInput;
-import org.onap.cli.fw.http.HttpResult;
import org.onap.cli.fw.input.OnapCommandParameter;
-import org.onap.cli.fw.input.ParameterType;
+import org.onap.cli.fw.input.OnapCommandParameterType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.JsonPath;
-import net.minidev.json.JSONArray;
-import net.minidev.json.JSONObject;
-
/**
* Provides helper method to parse Yaml files and produce required objects.
*
@@ -87,7 +55,7 @@ public class OnapCommandUtils {
}
- static void throwOrCollect(OnapCommandException ex, List<String> list, boolean shouldCollectException)
+ public static void throwOrCollect(OnapCommandException ex, List<String> list, boolean shouldCollectException)
throws OnapCommandException {
if (shouldCollectException) {
list.add(ex.getMessage());
@@ -96,7 +64,7 @@ public class OnapCommandUtils {
}
}
- static void validateTags(List<String> schemaErrors, Map<String, ?> yamlMap, List<String> totalParams,
+ public static void validateTags(List<String> schemaErrors, Map<String, ?> yamlMap, List<String> totalParams,
List<String> mandatoryParams, String section) {
// mrkanag capture invalid entries as well
for (String param : totalParams) {
@@ -123,76 +91,19 @@ public class OnapCommandUtils {
* string
* @return boolean
*/
- static boolean validateBoolean(String toValidate) {
- return OnapCommandConfg.getSchemaAttrInfo(BOOLEAN_VALUE).contains(toValidate.toLowerCase());
+ public static boolean validateBoolean(String toValidate) {
+ return OnapCommandConfig.getCommaSeparatedList(BOOLEAN_VALUE).contains(toValidate.toLowerCase());
}
- private static String emptySection(String section) {
+ public static String emptySection(String section) {
return "The section '" + section + ":' cann't be null or empty";
}
- static String invalidBooleanValueMessage(String section, String attribute, String value) {
+ public static String invalidBooleanValueMessage(String section, String attribute, String value) {
return "The value '" + value + "' of '" + attribute + "' present under '" + section + "' should be boolean";
}
- private static Set<String> validateHttpQueries(Map<String, Object> requestMap) {
- Map<String, Object> queries = (Map<String, Object>) requestMap.get(QUERIES);
- Set<String> queryParamNames = new HashSet<>();
- if (queries != null) {
- for (Entry<String, Object> entry : queries.entrySet()) {
- parseParameters(String.valueOf(entry.getValue()), queryParamNames);
- }
- }
- return queryParamNames;
- }
-
-
- private static Set<String> validateHttpHeaders(Map<String, Object> requestMap) {
-
- Map<String, Object> headers = (Map<String, Object>) requestMap.get(HEADERS);
- Set<String> headerParamNames = new HashSet<>();
- if (headers != null) {
- for (Entry<String, Object> entry : headers.entrySet()) {
- parseParameters(String.valueOf(entry.getValue()), headerParamNames);
- }
- }
- return headerParamNames;
- }
-
- private static Set<String> validateHttpBody(List<String> errorList, Map<String, Object> requestMap) {
- Set<String> bodyParamNames = new HashSet<>();
- Object bodyString = requestMap.get(BODY);
- if (bodyString == null) {
- return bodyParamNames;
- }
-
- String body = String.valueOf(bodyString);
- JSONObject obj = null;
- try {
- obj = new ObjectMapper().readValue(body, JSONObject.class);
- } catch (IOException e1) { // NOSONAR
- errorList.add(HTTP_BODY_FAILED_PARSING);
- }
- if (obj == null || "".equals(obj.toString())) {
- errorList.add(HTTP_BODY_JSON_EMPTY);
- }
- parseParameters(body, bodyParamNames);
-
- return bodyParamNames;
- }
-
- private static Set<String> validateHttpUri(List<String> errorList, Map<String, Object> requestMap) {
- Set<String> uriParamNames = new HashSet<>();
- String uri = (String) requestMap.get(URI);
- if (uri == null || uri.isEmpty()) {
- errorList.add(emptySection(URI));
- return uriParamNames;
- }
- parseParameters(uri, uriParamNames);
- return uriParamNames;
- }
-
- private static void parseParameters(String line, Set<String> paramNames) {
+ public static void parseParameters(String line, Set<String> paramNames) {
int currentIdx = 0;
while (currentIdx < line.length()) {
@@ -209,108 +120,6 @@ public class OnapCommandUtils {
}
- private static Set<String> getRequestParams(Map<String, ?> yamlMap) {
-
- Set<String> set = new HashSet<>();
-
- @SuppressWarnings("unchecked")
- List<Map<String, Object>> inputParams = (List<Map<String, Object>>) yamlMap.get(PARAMETERS);
-
- if (inputParams != null) {
- for (Map<String, Object> map : inputParams) {
- for (Entry<String, Object> entry : map.entrySet()) {
- Object key = entry.getKey();
-
- if (NAME.equals(key)) {
- set.add(String.valueOf(entry.getValue()));
- break;
- }
- }
- }
- }
-
- return set;
- }
-
- static void validateHttpResultMap(List<String> errorList, Map<String, ?> values) throws OnapCommandException {
- Map<String, ?> valMap = (Map<String, ?>) values.get(HTTP);
- List<Map<String, String>> attributes = (List<Map<String, String>>) ((Map<String, ?>)values.get(RESULTS)).get(ATTRIBUTES);
- Set<String> resultMapParams = ((Map<String, String>) valMap.get(RESULT_MAP)).keySet();
-
- Set<String> resultAttNames = attributes.stream().map(map -> map.get(NAME))
- .collect(Collectors.toSet());
-
- List<String> invaliResultMapParams = resultMapParams.stream()
- .filter(p -> !resultAttNames.contains(p)).collect(Collectors.toList());
-
- if (!invaliResultMapParams.isEmpty()) {
- throwOrCollect(new OnapCommandHttpInvalidResultMap(invaliResultMapParams), errorList, true);
- }
- }
-
- static void validateHttpSccessCodes(List<String> errorList, List<Object> requestSuccessCodes) {
-
- if (requestSuccessCodes == null || requestSuccessCodes.isEmpty()) {
- errorList.add(HTTP_SUCCESS_CODE_INVALID);
- return;
- }
-
- for (Object successCode : requestSuccessCodes) {
- Integer code = (Integer) successCode;
- if (code < 200 || code >= 300) {
- if ( code != 404) {
- errorList.add(HTTP_SUCCESS_CODE_INVALID);
- }
- }
- }
-
- }
-
- static ArrayList<String> validateHttpSchemaSection(Map<String, ?> values) {
- ArrayList<String> errorList = new ArrayList<>();
- Map<String, ?> map = (Map<String, ?>) values.get(HTTP);
- Map<String, Object> requestMap = (Map<String, Object>) map.get(REQUEST);
-
- if (requestMap != null && !requestMap.isEmpty()) {
- validateTags(errorList, requestMap, OnapCommandConfg.getSchemaAttrInfo(HTTP_REQUEST_PARAMS),
- OnapCommandConfg.getSchemaAttrInfo(HTTP_REQUEST_MANDATORY_PARAMS), REQUEST);
- String method = (String) requestMap.get(METHOD);
- if (method != null && !method.isEmpty()) {
- if (!OnapCommandConfg.getSchemaAttrInfo(HTTP_METHODS).contains(method.toLowerCase())) {
- errorList.add("Attribute '" + METHOD + "' under '" + REQUEST + "' is invalid, correct types are "
- + OnapCommandConfg.getSchemaAttrInfo(HTTP_METHODS).toString());
- }
- } else {
- errorList.add("Http request method cann't be null or empty");
- }
-
- Set<String> requestParams = getRequestParams(values);
-
- Set<String> uriParams = validateHttpUri(errorList, requestMap);
-
- Set<String> bodyParams = validateHttpBody(errorList, requestMap);
-
- Set<String> headerParams = validateHttpHeaders(requestMap);
-
- Set<String> queryParams = validateHttpQueries(requestMap);
-
- HashSet<String> totoalParams = new HashSet<>(uriParams);
- totoalParams.addAll(bodyParams);
- totoalParams.addAll(headerParams);
- totoalParams.addAll(queryParams);
-
- List<String> nonDeclaredParams = totoalParams.stream().filter(param -> !requestParams.contains(param))
- .collect(Collectors.toList());
-
- nonDeclaredParams.stream().forEach(p -> errorList.add("The parameter '" + p
- + "' declared under 'parameters:' section is not mapped into request section."));
- } else {
- errorList.add(emptySection(REQUEST));
- }
- return errorList;
- }
-
-
/**
* Create Dict from list of Parameters.
*
@@ -318,7 +127,7 @@ public class OnapCommandUtils {
* list of parameters
* @return map
*/
- public static Map<String, OnapCommandParameter> getInputMap(List<OnapCommandParameter> inputs) {
+ public static Map<String, OnapCommandParameter> getInputMap(Set<OnapCommandParameter> inputs) {
Map<String, OnapCommandParameter> map = new HashMap<>();
for (OnapCommandParameter param : inputs) {
map.put(param.getName(), param);
@@ -361,28 +170,6 @@ public class OnapCommandUtils {
}
/**
- * Construct method name.
- *
- * @param name
- * name
- * @param prefix
- * prefix
- * @return string
- */
- public static String formMethodNameFromAttributeName(String name, String prefix) {
- if (name == null || name.isEmpty()) {
- return name;
- }
-
- String methodName = prefix;
- for (String tk : name.split("-")) {
- methodName += Character.toString(tk.charAt(0)).toUpperCase();
- methodName += tk.substring(1);
- }
- return methodName;
- }
-
- /**
* There are unique values like uuid is supported, so when input, output (default) values has
* these special entries, then it will get replaced with it's value
*
@@ -410,13 +197,13 @@ public class OnapCommandUtils {
String value = "";
switch (splEntry) {
- case Constants.SPL_ENTRY_UUID:
+ case OnapCommandConstants.SPL_ENTRY_UUID:
value = UUID.randomUUID().toString();
break;
default:
- if (splEntry.startsWith(Constants.SPL_ENTRY_ENV)) {
+ if (splEntry.startsWith(OnapCommandConstants.SPL_ENTRY_ENV)) {
//start to read after env:ENV_VAR_NAME
String envVarName = splEntry.substring(4);
value = System.getenv(envVarName);
@@ -463,10 +250,10 @@ public class OnapCommandUtils {
String value = params.get(paramName).getValue().toString();
OnapCommandParameter param = params.get(paramName);
- if (ParameterType.ARRAY.equals(param.getParameterType())
- || ParameterType.MAP.equals(param.getParameterType())
- || ParameterType.JSON.equals(param.getParameterType())
- || ParameterType.YAML.equals(param.getParameterType())) {
+ if (OnapCommandParameterType.ARRAY.equals(param.getParameterType())
+ || OnapCommandParameterType.MAP.equals(param.getParameterType())
+ || OnapCommandParameterType.JSON.equals(param.getParameterType())
+ || OnapCommandParameterType.YAML.equals(param.getParameterType())) {
// ignore the front and back double quotes in json body
result += line.substring(currentIdx, idxS - 1) + value;
currentIdx = idxE + 2;
@@ -479,190 +266,6 @@ public class OnapCommandUtils {
return result;
}
- private static ArrayList<String> replaceLineFromOutputResults(String line, HttpResult resultHttp)
- throws OnapCommandHttpHeaderNotFound, OnapCommandHttpInvalidResponseBody,
- OnapCommandResultMapProcessingFailed, OnapCommandResultEmpty {
- String headerProcessedLine = "";
-
- ArrayList<String> result = new ArrayList<>();
- if (!line.contains("$b{") && !line.contains("$h{")) {
- result.add(line);
- return result;
- }
-
- /**
- * In case of empty response body [] or {}
- **/
- if (resultHttp.getBody().length() <= 2) {
- return result;
- }
-
- /**
- * Process headers macros : line: $h{abc}-$b{$.[*].xyz} , After processing line will be [abc's
- * value]-$b{$.[*].xyz}
- **/
- int currentIdx = 0;
- while (currentIdx < line.length()) {
- int idxS = line.indexOf("$h{", currentIdx);
- if (idxS == -1) {
- headerProcessedLine += line.substring(currentIdx);
- break;
- }
- int idxE = line.indexOf("}", idxS);
- String headerName = line.substring(idxS + 3, idxE);
- headerName = headerName.trim();
- if (!resultHttp.getRespHeaders().containsKey(headerName)) {
- throw new OnapCommandHttpHeaderNotFound(headerName);
- }
- String value = resultHttp.getRespHeaders().get(headerName);
-
- headerProcessedLine += line.substring(currentIdx, idxS) + value;
- currentIdx = idxE + 1;
- }
-
- // Process body jsonpath macros
- List<Object> values = new ArrayList<>();
- String bodyProcessedPattern = "";
- currentIdx = 0;
- int maxRows = 1; // in normal case, only one row will be there
- while (currentIdx < headerProcessedLine.length()) {
- int idxS = headerProcessedLine.indexOf("$b{", currentIdx);
- if (idxS == -1) {
- bodyProcessedPattern += headerProcessedLine.substring(currentIdx);
- break;
- }
- int idxE = headerProcessedLine.indexOf("}", idxS);
- String jsonPath = headerProcessedLine.substring(idxS + 3, idxE);
- jsonPath = jsonPath.trim();
- try {
- // JSONArray or String
- Object value = JsonPath.read(resultHttp.getBody(), jsonPath);
- if (value instanceof JSONArray) {
- JSONArray arr = (JSONArray) value;
- if (arr.size() > maxRows) {
- maxRows = arr.size();
- }
- }
- bodyProcessedPattern += headerProcessedLine.substring(currentIdx, idxS) + "%s";
- values.add(value);
- currentIdx = idxE + 1;
- } catch (Exception e) {
- throw new OnapCommandHttpInvalidResponseBody(jsonPath, e);
- }
- }
-
- if (bodyProcessedPattern.isEmpty()) {
- result.add(headerProcessedLine);
- return result;
- } else {
- for (int i = 0; i < maxRows; i++) {
- currentIdx = 0;
- String bodyProcessedLine = "";
- int positionalIdx = 0; // %s positional idx
- while (currentIdx < bodyProcessedPattern.length()) {
- int idxS = bodyProcessedPattern.indexOf("%s", currentIdx);
- if (idxS == -1) {
- bodyProcessedLine += bodyProcessedPattern.substring(currentIdx);
- break;
- }
- int idxE = idxS + 2; // %s
- try {
- Object value = values.get(positionalIdx);
- String valueS = String.valueOf(value);
- if (value instanceof JSONArray) {
- JSONArray arr = (JSONArray) value;
- if (!arr.isEmpty()) {
- valueS = arr.get(i).toString();
- } else {
- throw new OnapCommandResultEmpty();
- }
- }
-
- bodyProcessedLine += bodyProcessedPattern.substring(currentIdx, idxS) + valueS;
- currentIdx = idxE;
- positionalIdx++;
- } catch (OnapCommandResultEmpty e) {
- throw e;
- } catch (Exception e) {
- throw new OnapCommandResultMapProcessingFailed(line, e);
- }
- }
- result.add(bodyProcessedLine);
- }
-
- return result;
- }
- }
-
- /**
- * Set argument to param value.
- *
- * @param params
- * map
- * @param input
- * HttpInput
- * @return HttpInput
- * @throws OnapCommandParameterNotFound
- * exception
- * @throws OnapCommandInvalidParameterValue
- * exception
- */
- public static HttpInput populateParameters(Map<String, OnapCommandParameter> params, HttpInput input)
- throws OnapCommandException {
- HttpInput inp = new HttpInput();
- for (OnapCommandParameter param : params.values()) {
- if (ParameterType.BINARY.equals(param.getParameterType())) {
- inp.setBinaryData(true);
- break;
- }
- }
- inp.setBody(replaceLineFromInputParameters(input.getBody(), params));
- inp.setUri(replaceLineFromInputParameters(input.getUri(), params));
- inp.setMethod(input.getMethod().toLowerCase());
- for (String h : input.getReqHeaders().keySet()) {
- String value = input.getReqHeaders().get(h);
- inp.getReqHeaders().put(h, replaceLineFromInputParameters(value, params));
- }
-
- for (String h : input.getReqQueries().keySet()) {
- String value = input.getReqQueries().get(h);
- inp.getReqQueries().put(h, replaceLineFromInputParameters(value, params));
- }
-
- return inp;
- }
-
- /**
- * Populate result.
- *
- * @param resultMap
- * map
- * @param resultHttp
- * HttpResult
- * @return map
- * @throws OnapCommandHttpHeaderNotFound
- * header not found exception
- * @throws OnapCommandHttpInvalidResponseBody
- * invalid response body exception
- * @throws OnapCommandResultMapProcessingFailed
- * map processing failed exception
- */
- public static Map<String, ArrayList<String>> populateOutputs(Map<String, String> resultMap, HttpResult resultHttp)
- throws OnapCommandException {
- Map<String, ArrayList<String>> resultsProcessed = new HashMap<>();
-
- for (Entry<String, String> entry : resultMap.entrySet()) {
- String key = entry.getKey();
- try {
- resultsProcessed.put(key, replaceLineFromOutputResults(resultMap.get(key), resultHttp));
- } catch(OnapCommandResultEmpty e) {
- // pass // NOSONAR
- }
- }
-
- return resultsProcessed;
- }
-
/**
* Populate result from input parameters.
*
@@ -671,12 +274,7 @@ public class OnapCommandUtils {
* @param params
* Map<String, OnapCommandParameter>
* @return map
- * @throws OnapCommandHttpHeaderNotFound
- * header not found exception
- * @throws OnapCommandHttpInvalidResponseBody
- * invalid response body exception
- * @throws OnapCommandResultMapProcessingFailed
- * map processing failed exception
+ * @throws OnapCommandException
*/
public static Map<String, ArrayList<String>> populateOutputsFromInputParameters(
Map<String, ArrayList<String>> resultMap,
diff --git a/framework/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand b/framework/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand
deleted file mode 100644
index 1993bcb6..00000000
--- a/framework/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand
+++ /dev/null
@@ -1,6 +0,0 @@
-org.onap.cli.fw.cmd.OnapSchemaValidateCommand
-org.onap.cli.fw.cmd.OnapSchemaRefreshCommand
-org.onap.cli.fw.cmd.BasicAuthLoginCommand
-org.onap.cli.fw.cmd.BasicAuthLogoutCommand
-org.onap.cli.fw.cmd.CatalogCommand
-org.onap.cli.fw.cmd.OnapHttpCommand \ No newline at end of file
diff --git a/framework/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand b/framework/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand
new file mode 100644
index 00000000..89648bf5
--- /dev/null
+++ b/framework/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand
@@ -0,0 +1,2 @@
+org.onap.cli.fw.cmd.OnapSchemaValidateCommand
+org.onap.cli.fw.cmd.OnapSchemaRefreshCommand \ No newline at end of file
diff --git a/framework/src/main/resources/log4j.properties b/framework/src/main/resources/log4j.properties
index f117ef6e..419faf30 100644
--- a/framework/src/main/resources/log4j.properties
+++ b/framework/src/main/resources/log4j.properties
@@ -1,4 +1,4 @@
-log4j.rootLogger=ERROR, file
+log4j.rootLogger=ALL, file
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
diff --git a/framework/src/main/resources/open-cli-schema/http/basic-login.yaml b/framework/src/main/resources/open-cli-schema/http/basic-login.yaml
deleted file mode 100644
index 36473df7..00000000
--- a/framework/src/main/resources/open-cli-schema/http/basic-login.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-open_cli_schema_version: 1.0
-
-name: basic-login
-
-description: basic login auth command
-
-info:
- product: open-cli
- service: basic-auth
- type: auth
- author: Kanagaraj Manickam kanagaraj.manickam@huawei.com
-
-results:
- direction: portrait
- attributes:
- - name: Authorization
- description: Authorization
- scope: short
- type: string
diff --git a/framework/src/main/resources/open-cli-schema/http/basic-logout.yaml b/framework/src/main/resources/open-cli-schema/http/basic-logout.yaml
deleted file mode 100644
index f4acc0ae..00000000
--- a/framework/src/main/resources/open-cli-schema/http/basic-logout.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-open_cli_schema_version: 1.0
-
-name: basic-logout
-
-description: basic logout auth command
-
-info:
- product: open-cli
- service: basic-auth
- type: auth
- author: Kanagaraj Manickam kanagaraj.manickam@huawei.com
-
-parameters:
- - name: host-username
- is_include: false
- - name: host-password
- is_include: false
- - name: no-auth
- is_include: false \ No newline at end of file
diff --git a/framework/src/main/resources/open-cli-schema/http/catalog.yaml b/framework/src/main/resources/open-cli-schema/http/catalog.yaml
deleted file mode 100644
index 508955f5..00000000
--- a/framework/src/main/resources/open-cli-schema/http/catalog.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-open_cli_schema_version: 1.0
-
-name: catalog
-
-description: cli catalog command to find the base path for service.
-
-info:
- product: open-cli
- service: catalog
- type: catalog
- author: Kanagaraj Manickam kanagaraj.manickam@huawei.com
-
-parameters:
- - name: catalog-service-name
- type: string
- description: service name registered in catalog service
- short_option: l
- long_option: catalog-service-name
- is_optional: false
- - name: catalog-service-version
- type: string
- description: service version registered in catalog service
- short_option: i
- long_option: catalog-service-version
- is_optional: false
- - name: host-username
- is_include: false
- - name: host-password
- is_include: false
- - name: no-auth
- is_include: false
-results:
- direction: portrait
- attributes:
- - name: catalog-service-host-url
- description: Service connection url
- scope: short
- type: string
- default_value: ${host-url}
- - name: catalog-service-base-path
- description: service base path, to append with host-url for connecting the service.
- scope: short
- type: string
- default_value: / \ No newline at end of file
diff --git a/framework/src/main/resources/open-cli-schema/http/default_input_parameters_http.yaml b/framework/src/main/resources/open-cli-schema/http/default_input_parameters_http.yaml
deleted file mode 100644
index d7fbe03c..00000000
--- a/framework/src/main/resources/open-cli-schema/http/default_input_parameters_http.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-open_cli_schema_version: 1.0
-
-info:
- product: open-cli
- service: default-param
- ignore: true
-
-parameters:
- - name: host-username
- type: string
- description: Host user name
- short_option: u
- long_option: host-username
- default_value: $s{env:OPEN_CLI_HOST_USERNAME}
- is_optional: false
- - name: host-password
- type: string
- description: Host user password
- short_option: p
- long_option: host-password
- default_value: $s{env:OPEN_CLI_HOST_PASSWORD}
- is_secured: true
- is_optional: false
- - name: host-url
- type: url
- description: host url in http(s)
- short_option: m
- long_option: host-url
- is_optional: false
- default_value: $s{env:OPEN_CLI_HOST_URL}
- - name: no-auth
- type: bool
- description: whether to authenticate user or not
- short_option: a
- long_option: no-auth
- default_value: false \ No newline at end of file
diff --git a/framework/src/main/resources/open-cli.properties b/framework/src/main/resources/open-cli.properties
index b009472b..c8792835 100644
--- a/framework/src/main/resources/open-cli.properties
+++ b/framework/src/main/resources/open-cli.properties
@@ -1,8 +1,6 @@
-cli.ignore_auth=false
-cli.http.api_key_use_cookies=true
-cli.discover_always=false
cli.product_name=open-cli
cli.version=1.0
+cli.discover_always=false
#schema validation
cli.schema.top_level_params_list=open_cli_schema_version,name,description,parameters,results,http,info
@@ -17,29 +15,16 @@ cli.schema.input_params_mandatory_list=name,description,type
cli.schema.result_params_list=name,description,scope,type,is_secured, default_value
cli.schema.result_params_mandatory_list=name, description, type, scope
-#http
-cli.schema.http_sections=request,service,success_codes,result_map,sample_response
-cli.schema.http_mandatory_sections=request, success_codes
-
-cli.schema.http_request_params=uri,method,body,headers,queries,multipart_entity_name
-cli.schema.http_request_mandatory_params=uri,method
-
-cli.schema.service_params_list=name,version,auth,mode
-cli.schema.service_params_mandatory_list=auth,mode
-
-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
cli.command.type=cmd,auth,catalog
-#product version
-cli.product.version=open-cli
-
# moco properties
-cli.sample.gen.enable=false
+cli.sample.gen.enable=true
cli.sample.gen.target=.
# mrkanag Move this to db, once exteranl command registration is supported in place of discovery
-cli.schema.type.supported=http
+cli.schema.type.supported=
+
+#other properties to load (it should be hanled when plugins are made as externally register-able
+#when command plugin management support is enabled in oclip
+cli.plugins-prps= \ No newline at end of file