From 0c60b45c8dfed2d3b66e36fd25aae6a100351f96 Mon Sep 17 00:00:00 2001 From: Kanagaraj Manickam k00365106 Date: Wed, 5 Sep 2018 11:30:36 +0530 Subject: VTP: Add schema-list command To list the commands available under given product Issue-ID: VNFSDK-305 Change-Id: I932b1cebd9d2493b175814c67a63b5c8267288ab Signed-off-by: Kanagaraj Manickam k00365106 --- .../org/onap/cli/fw/cmd/OnapSchemaListCommand.java | 58 ++++++++++++++++++++++ .../services/org.onap.cli.fw.cmd.OnapCommand | 3 +- .../resources/open-cli-schema/schema-list.yaml | 55 ++++++++++++++++++++ .../onap/cli/fw/utils/OnapCommandUtilsTest.java | 2 +- 4 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaListCommand.java create mode 100644 framework/src/main/resources/open-cli-schema/schema-list.yaml (limited to 'framework') diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaListCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaListCommand.java new file mode 100644 index 00000000..bbd350b7 --- /dev/null +++ b/framework/src/main/java/org/onap/cli/fw/cmd/OnapSchemaListCommand.java @@ -0,0 +1,58 @@ +/* + * 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. + */ + +package org.onap.cli.fw.cmd; + +import java.util.List; + +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; + +/** + * Refresh external schema. + * + */ +@OnapCommandSchema(schema = "schema-list.yaml") +public class OnapSchemaListCommand extends OnapCommand { + + @Override + protected void run() throws OnapCommandException { + + String product = getParametersMap().get("product").getValue().toString(); + + List schemas = OnapCommandDiscoveryUtils.discoverOrLoadSchemas(true); + int i = 0; + for (OnapCommandSchemaInfo schema : schemas) { + if (schema.isIgnore()) { + continue; + } + + if (schema.getProduct().equalsIgnoreCase(product)) { + i++; + + this.getResult().getRecordsMap().get("sr.no").getValues().add(String.valueOf(i)); + this.getResult().getRecordsMap().get("command").getValues().add(schema.getCmdName()); + this.getResult().getRecordsMap().get("schema").getValues().add(schema.getSchemaName()); + this.getResult().getRecordsMap().get("ocs-version").getValues().add(schema.getVersion()); + + this.getResult().getRecordsMap().get("type").getValues().add(schema.getSchemaProfile()); + } + } + } + +} 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 index 285f8f38..85294cbb 100644 --- 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 @@ -13,4 +13,5 @@ # limitations under the License. org.onap.cli.fw.cmd.OnapSchemaValidateCommand -org.onap.cli.fw.cmd.OnapSchemaRefreshCommand \ No newline at end of file +org.onap.cli.fw.cmd.OnapSchemaRefreshCommand +org.onap.cli.fw.cmd.OnapSchemaListCommand \ No newline at end of file diff --git a/framework/src/main/resources/open-cli-schema/schema-list.yaml b/framework/src/main/resources/open-cli-schema/schema-list.yaml new file mode 100644 index 00000000..44172d75 --- /dev/null +++ b/framework/src/main/resources/open-cli-schema/schema-list.yaml @@ -0,0 +1,55 @@ +# 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. + +open_cli_schema_version: 1.0 +name: schema-list +description: OCLIP command to list available schema + +info: + product: open-cli + service: schema + type: cmd + author: Kanagaraj Manickam kanagaraj.manickam@huawei.com + +parameters: + - name: product + type: string + description: For a given product version + short_option: l + long_option: product + is_optional: false + +results: + direction: landscape + attributes: + - name: sr.no + description: Serial Number + scope: short + type: string + - name: command + description: Command name + scope: short + type: string + - name: schema + description: Schema name + scope: short + type: string + - name: ocs-version + description: Schema version + scope: short + type: string + - name: type + description: Command type + scope: short + type: string \ No newline at end of file diff --git a/framework/src/test/java/org/onap/cli/fw/utils/OnapCommandUtilsTest.java b/framework/src/test/java/org/onap/cli/fw/utils/OnapCommandUtilsTest.java index c038e2dc..dd956b93 100644 --- a/framework/src/test/java/org/onap/cli/fw/utils/OnapCommandUtilsTest.java +++ b/framework/src/test/java/org/onap/cli/fw/utils/OnapCommandUtilsTest.java @@ -242,7 +242,7 @@ public class OnapCommandUtilsTest { @Test public void findOnapCommandsTest() { List> cmds = OnapCommandDiscoveryUtils.discoverCommandPlugins(); - assertTrue(cmds.size() == 3); + assertTrue(cmds.size() == 4); } @Test -- cgit 1.2.3-korg