Add sample plugin 47/14847/1
authorKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Sat, 23 Sep 2017 16:28:32 +0000 (21:58 +0530)
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Sat, 23 Sep 2017 16:28:32 +0000 (21:58 +0530)
CLI-48

Change-Id: Iaef4fec04df0eaedf84616bdcaf03612627feb8c
Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
deployment/http/web/version.json [new file with mode: 0644]
plugins/pom.xml
plugins/sample/pom.xml [new file with mode: 0644]
plugins/sample/src/main/java/org/onap/cli/sample/OnapHelloWorldCommand.java [new file with mode: 0644]
plugins/sample/src/main/resources/META-INF/services/org.onap.cli.fw.OnapCommand [new file with mode: 0644]
plugins/sample/src/main/resources/onap-cli-schema/hello-world-http.yaml [new file with mode: 0644]
plugins/sample/src/main/resources/onap-cli-schema/hello-world.yaml [new file with mode: 0644]
pom.xml

diff --git a/deployment/http/web/version.json b/deployment/http/web/version.json
new file mode 100644 (file)
index 0000000..cbdc9a0
--- /dev/null
@@ -0,0 +1 @@
+{"name": "oclip", "version": "1.0"}
\ No newline at end of file
index 0ef6c30..104a568 100644 (file)
@@ -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 (file)
index 0000000..2283e9f
--- /dev/null
@@ -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 (file)
index 0000000..01d9da1
--- /dev/null
@@ -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 (file)
index 0000000..dfd6b3d
--- /dev/null
@@ -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 (file)
index 0000000..64144d3
--- /dev/null
@@ -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 (file)
index 0000000..9a2c6b6
--- /dev/null
@@ -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
+
diff --git a/pom.xml b/pom.xml
index 63e48d7..e72b058 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
     Copyright 2017 Huawei Technologies Co., Ltd.
 
@@ -13,8 +13,7 @@
     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">
+ --><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>
@@ -41,7 +40,7 @@
         <module>main</module>
         <module>deployment</module>
         <module>validation</module>
-    </modules>
+  </modules>
 
     <distributionManagement>
       <site>
@@ -84,4 +83,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
+</project>
\ No newline at end of file