From da1dbc7caabb874832ac417430d529cc861f537a Mon Sep 17 00:00:00 2001 From: Kanagaraj M Date: Thu, 5 Sep 2019 18:43:33 +0530 Subject: Make the search more flexible Issue-ID: CLI-166 Change-Id: Ib00fe8325e46f30c773f9c886e08e21996ac18be Signed-off-by: Kanagaraj Manickam k00365106 --- .../zip/src/main/release/conf/open-cli.properties | 2 +- .../cli/fw/store/OnapCommandExecutionStore.java | 25 ++++++++--- framework/src/test/resources/open-cli.properties | 49 ++++++++++++++++++++++ .../onap/cli/fw/cmd/cmd/OpenCommandShellCmd.java | 4 +- 4 files changed, 72 insertions(+), 8 deletions(-) create mode 100644 framework/src/test/resources/open-cli.properties diff --git a/deployment/zip/src/main/release/conf/open-cli.properties b/deployment/zip/src/main/release/conf/open-cli.properties index 76048e69..47df222a 100644 --- a/deployment/zip/src/main/release/conf/open-cli.properties +++ b/deployment/zip/src/main/release/conf/open-cli.properties @@ -20,7 +20,7 @@ cli.artifact.dir=$s{env:OPEN_CLI_HOME}/data/artifacts cli.tmp.dir=$s{env:OPEN_CLI_HOME}/data/tmp #timeout in seconds cli.grpc.client.timeout=60 -cli.execution.search.mode=find +cli.execution.search.mode=file #schema validation cli.schema.base.sections=open_cli_schema_version,name,description,parameters,results,info diff --git a/framework/src/main/java/org/onap/cli/fw/store/OnapCommandExecutionStore.java b/framework/src/main/java/org/onap/cli/fw/store/OnapCommandExecutionStore.java index d032a99c..e8b43891 100644 --- a/framework/src/main/java/org/onap/cli/fw/store/OnapCommandExecutionStore.java +++ b/framework/src/main/java/org/onap/cli/fw/store/OnapCommandExecutionStore.java @@ -214,7 +214,7 @@ public class OnapCommandExecutionStore { String storePath = getBasePath() + File.separator + executionId + SEPARATOR + product + SEPARATOR + service + SEPARATOR + cmd + - (profile != null ? (SEPARATOR + profile) : "" ); + SEPARATOR + (profile != null ? profile : "" ); try { File dir = new File(storePath); @@ -319,9 +319,25 @@ public class OnapCommandExecutionStore { try { List dirs = new ArrayList<>(); - if (SEARCH_MODE.equals(SearchMode.file)) { - for (File f: new File(getBasePath()).listFiles()) - dirs.add(f.getAbsolutePath()); + if (System.getProperty("os.name").toLowerCase().startsWith("windows") || SEARCH_MODE.equals(SearchMode.file)) { + for (File f: new File(getBasePath()).listFiles()) { + if(search.containsKey("execution-id")) { + if (f.getName().startsWith(search.get("execution-id"))) + dirs.add(f.getAbsolutePath()); + + continue; + } + + if(search.containsKey("request-id")) { + if (f.getName().startsWith(search.get("request-id"))) + dirs.add(f.getAbsolutePath()); + + continue; + } + + else + dirs.add(f.getAbsolutePath()); + } } else { //find results -type d -newermt '2019-02-11 10:00:00' ! -newermt '2019-02-11 15:10:00' -name "*__*__profile-list*" //find 'results' -type d -newermt '2019-02-11T10:00:00.000' ! -newermt '2019-02-11T15:10:00.000' -name "*__*__profile*" @@ -388,7 +404,6 @@ public class OnapCommandExecutionStore { if (new File(executionStorePath + File.separator + "executionId").exists()) exectuion.setId(FileUtils.readFileToString(new File(executionStorePath + File.separator + "executionId"))); exectuion.setProduct(FileUtils.readFileToString(new File(executionStorePath + File.separator + "product"))); - exectuion.setProfile(FileUtils.readFileToString(new File(executionStorePath + File.separator + "profile"))); exectuion.setService(FileUtils.readFileToString(new File(executionStorePath + File.separator + "service"))); exectuion.setCommand(FileUtils.readFileToString(new File(executionStorePath + File.separator + "command"))); if (new File(executionStorePath + File.separator + "profile").exists()) diff --git a/framework/src/test/resources/open-cli.properties b/framework/src/test/resources/open-cli.properties new file mode 100644 index 00000000..bd8a6acf --- /dev/null +++ b/framework/src/test/resources/open-cli.properties @@ -0,0 +1,49 @@ +# Copyright 2018 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. + +cli.product_name=open-cli +cli.version=3.0.0 +cli.discover_always=false +cli.data.dir=./data +cli.artifact.dir=./data/artifacts +cli.tmp.dir=./data/tmp +#timeout in seconds +cli.grpc.client.timeout=60 +cli.execution.search.mode=file +#schema validation +cli.schema.base.sections=open_cli_schema_version,name,description,parameters,results,info +cli.schema.base.sections.mandatory=open_cli_schema_version + +cli.schema.base.info.sections=product,service,type,author,ignore,state +cli.schema.base.info.sections.mandatory=product,service + +cli.schema.base.parameters.sections=name,description,type,short_option,long_option, is_optional,default_value,is_secured,is_include,is_default_param +cli.schema.base.parameters.sections.mandatory=name,description,type + +cli.schema.base.results.sections=name,description,scope,type,is_secured, default_value +cli.schema.base.results.sections.mandatory=name, description, type, scope + +cli.schema.boolean_values=true,false +cli.schema.command.type=cmd,auth,catalog + +# moco properties +cli.sample.gen.enable=false +cli.sample.gen.target=./open-cli-sample + +# mrkanag Move this to db, once exteranl command registration is supported in place of discovery +cli.schema.profile.available=http,snmp,cmd + +#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.schema.profile.confs= \ No newline at end of file diff --git a/profiles/command/src/main/java/org/onap/cli/fw/cmd/cmd/OpenCommandShellCmd.java b/profiles/command/src/main/java/org/onap/cli/fw/cmd/cmd/OpenCommandShellCmd.java index bc864529..3d2d4e4f 100644 --- a/profiles/command/src/main/java/org/onap/cli/fw/cmd/cmd/OpenCommandShellCmd.java +++ b/profiles/command/src/main/java/org/onap/cli/fw/cmd/cmd/OpenCommandShellCmd.java @@ -238,7 +238,7 @@ public class OpenCommandShellCmd extends OnapCommand { } if (this.output.equals("$stdout")) { - if (pr.getStdout() != null) { + if (this.getExecutionContext() != null) { try (FileInputStream is = new FileInputStream(this.getStdoutPath())){ outputValue = pr.streamToString(is); } catch (IOException e) { @@ -248,7 +248,7 @@ public class OpenCommandShellCmd extends OnapCommand { outputValue = pr.getOutput(); } else if (this.output.equals("$stderr")) { - if (pr.getStderr() != null) { + if (this.getExecutionContext() != null) { try (FileInputStream is = new FileInputStream(this.getStderrPath())) { outputValue = pr.streamToString(is); } catch (IOException e) { -- cgit 1.2.3-korg