Make the search more flexible 33/95033/2
authorKanagaraj M <mkr1481@gmail.com>
Thu, 5 Sep 2019 13:13:33 +0000 (18:43 +0530)
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Thu, 5 Sep 2019 13:41:01 +0000 (19:11 +0530)
Issue-ID: CLI-166

Change-Id: Ib00fe8325e46f30c773f9c886e08e21996ac18be
Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
deployment/zip/src/main/release/conf/open-cli.properties
framework/src/main/java/org/onap/cli/fw/store/OnapCommandExecutionStore.java
framework/src/test/resources/open-cli.properties [new file with mode: 0644]
profiles/command/src/main/java/org/onap/cli/fw/cmd/cmd/OpenCommandShellCmd.java

index 76048e6..47df222 100644 (file)
@@ -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
index d032a99..e8b4389 100644 (file)
@@ -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 <String> 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 (file)
index 0000000..bd8a6ac
--- /dev/null
@@ -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
index bc86452..3d2d4e4 100644 (file)
@@ -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) {