diff options
author | Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com> | 2017-09-23 21:58:32 +0530 |
---|---|---|
committer | Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com> | 2017-09-23 21:58:32 +0530 |
commit | f60eabf0527a3b800d63e4c59097e49bb860fb16 (patch) | |
tree | 508b9f17579a0a56d88fa45cabcb9149435b600e /plugins | |
parent | fbcf7425ab04e8a06412e82b63bac42f19b25aef (diff) |
Add sample plugin
CLI-48
Change-Id: Iaef4fec04df0eaedf84616bdcaf03612627feb8c
Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Diffstat (limited to 'plugins')
6 files changed, 162 insertions, 0 deletions
diff --git a/plugins/pom.xml b/plugins/pom.xml index 0ef6c302..104a568e 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -48,6 +48,7 @@ <module>aai</module> <module>sdc</module> <module>so</module> + <module>sample</module> </modules> <build> <pluginManagement> diff --git a/plugins/sample/pom.xml b/plugins/sample/pom.xml new file mode 100644 index 00000000..2283e9f0 --- /dev/null +++ b/plugins/sample/pom.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + 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. + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.onap.cli</groupId> + <artifactId>cli-plugins</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + <artifactId>cli-plugins-sample</artifactId> + <name>cli/plugins/sample</name> + <packaging>jar</packaging> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + </plugin> + </plugins> + </build> +</project> diff --git a/plugins/sample/src/main/java/org/onap/cli/sample/OnapHelloWorldCommand.java b/plugins/sample/src/main/java/org/onap/cli/sample/OnapHelloWorldCommand.java new file mode 100644 index 00000000..01d9da19 --- /dev/null +++ b/plugins/sample/src/main/java/org/onap/cli/sample/OnapHelloWorldCommand.java @@ -0,0 +1,45 @@ +/* + * 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.sample; + +import java.util.Map; + +import org.onap.cli.fw.OnapCommand; +import org.onap.cli.fw.OnapCommandSchema; +import org.onap.cli.fw.error.OnapCommandException; +import org.onap.cli.fw.input.OnapCommandParameter; + +/** + * Hello world. + */ +@OnapCommandSchema(name = "hello-world", version = "sample-1.0", schema = "hello-world.yaml") +public class OnapHelloWorldCommand extends OnapCommand { + + @Override + protected void run() throws OnapCommandException { + //Read the input arguments + Map<String, OnapCommandParameter> paramMap = getParametersMap(); + OnapCommandParameter nameP = paramMap.get("name"); + String name = String.valueOf(nameP.getValue()); + + //Process command + String output = "Hello " + name; + + //Populate outputs + this.getResult().getRecordsMap().get("output").getValues().add(output); + } +} diff --git a/plugins/sample/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand b/plugins/sample/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand new file mode 100644 index 00000000..dfd6b3de --- /dev/null +++ b/plugins/sample/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand @@ -0,0 +1 @@ +org.onap.cli.sample.OnapHelloWorldCommand
\ No newline at end of file diff --git a/plugins/sample/src/main/resources/onap-cli-schema/hello-world-http.yaml b/plugins/sample/src/main/resources/onap-cli-schema/hello-world-http.yaml new file mode 100644 index 00000000..64144d37 --- /dev/null +++ b/plugins/sample/src/main/resources/onap-cli-schema/hello-world-http.yaml @@ -0,0 +1,43 @@ +open_cli_schema_version: 1.0 + +name: hello-world-http + +description: First cmd hello world using http runing under lighttpd in cli at http://<cli-ip>:8080/version.json + +version: sample-1.0 + +service: + name: sample-service + version: 1.0.0 + auth: none + mode: direct + +parameters: + - name: name + description: name of the person + long_option: name + short_option: b + default_value: ${DEMO_NAME} + type: string + is_optional: false + +results: + direction: landscape + attributes: + - name: output + description: hello world output + type: string + scope: short + +http: + request: + uri: /version.json + method: GET + success_codes: + - 200 + - 201 + result_map: + output: Hello ${name}, You are running on $b{$.name} $b{$.version} + + sample_response: + body: {"name": "oclip", "version": "1.0"}
\ No newline at end of file diff --git a/plugins/sample/src/main/resources/onap-cli-schema/hello-world.yaml b/plugins/sample/src/main/resources/onap-cli-schema/hello-world.yaml new file mode 100644 index 00000000..9a2c6b67 --- /dev/null +++ b/plugins/sample/src/main/resources/onap-cli-schema/hello-world.yaml @@ -0,0 +1,31 @@ +open_cli_schema_version: 1.0 + +name: hello-world + +description: First cmd hello world + +version: sample-1.0 + +service: + name: sample-service + version: 1.0.0 + auth: none + mode: direct + +parameters: + - name: name + description: name of the person + long_option: name + short_option: b + default_value: ${DEMO_NAME} + type: string + is_optional: false + +results: + direction: landscape + attributes: + - name: output + description: hello world output + type: string + scope: short + |