aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2017-08-17 12:17:58 +0530
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2017-08-17 12:18:43 +0530
commita2b0adac6b2d29011e543e460a3286ed51a49aa4 (patch)
tree0624970c26b72183826ed3ba5a6a39f54f8ae0fc
parent5f7b874a73aaca110ad093cb6ca530407f54df1c (diff)
Add customer & subscription management commands
CLI-13 Change-Id: Ia21006ca1dae3a451782c7c2e4df535e05ecaca6 Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
-rw-r--r--main/src/test/java/org/onap/cli/main/OnapCliMainTest.java6
-rw-r--r--plugins/aai/pom.xml41
-rw-r--r--plugins/aai/src/main/resources/onap-cli-schema/customer/customer-create-schema.yaml32
-rw-r--r--plugins/aai/src/main/resources/onap-cli-schema/customer/customer-list-schema.yaml25
-rw-r--r--plugins/aai/src/main/resources/onap-cli-schema/customer/customer-show-schema.yaml49
-rw-r--r--plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-create-schema.yaml62
-rw-r--r--plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-list-schema.yaml39
-rw-r--r--plugins/pom.xml1
8 files changed, 255 insertions, 0 deletions
diff --git a/main/src/test/java/org/onap/cli/main/OnapCliMainTest.java b/main/src/test/java/org/onap/cli/main/OnapCliMainTest.java
index 754dff83..3f4b04a4 100644
--- a/main/src/test/java/org/onap/cli/main/OnapCliMainTest.java
+++ b/main/src/test/java/org/onap/cli/main/OnapCliMainTest.java
@@ -87,6 +87,12 @@ public class OnapCliMainTest {
this.handle(new String[] { "sample-test", "--help" });
}
+ @Ignore
+ @Test
+ public void testAAICustomerList() {
+ this.handle(new String[] { "customer-list", "-u", "AAI", "-p", "AAI", "-m", "https://192.168.17.12:8443" });
+ }
+
@Test
public void testHelpSampleCreateCommand() throws OnapCommandException {
ClassLoader cl = ClassLoader.getSystemClassLoader();
diff --git a/plugins/aai/pom.xml b/plugins/aai/pom.xml
new file mode 100644
index 00000000..98514b8d
--- /dev/null
+++ b/plugins/aai/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-aai</artifactId>
+ <name>cli/plugins/aai</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/aai/src/main/resources/onap-cli-schema/customer/customer-create-schema.yaml b/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-create-schema.yaml
new file mode 100644
index 00000000..58c1a094
--- /dev/null
+++ b/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-create-schema.yaml
@@ -0,0 +1,32 @@
+onap_cmd_schema_version: 1.0
+name: customer-create
+description: Create a customer in Onap
+service:
+ name: aai
+ version: v8
+ auth: basic
+ mode: direct
+
+parameters:
+ - name: customer-name
+ description: Onap customer name
+ type: string
+ short_option: x
+ long_option: customer-name
+ is_optional: false
+ - name: subscriber-name
+ description: Onap subscriber name
+ type: string
+ short_option: y
+ long_option: subscriber-name
+ is_optional: false
+
+http:
+ request:
+ uri: /aai/v8/business/customers/customer/${customer-name}
+ method: PUT
+ body: '{"global-customer-id": "${customer-name}", "subscriber-name": "${subscriber-name}", "subscriber-type": "INFRA"}'
+ success_codes:
+ - 201
+ sample_response:
+ body: ''
diff --git a/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-list-schema.yaml b/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-list-schema.yaml
new file mode 100644
index 00000000..3d81166a
--- /dev/null
+++ b/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-list-schema.yaml
@@ -0,0 +1,25 @@
+onap_cmd_schema_version: 1.0
+name: customer-list
+description: Lists the registetred customers in Onap
+service:
+ name: aai
+ version: v8
+ auth: basic
+ mode: direct
+results:
+ direction: landscape
+ attributes:
+ - name: name
+ description: Onap customer name
+ scope: short
+ type: string
+http:
+ request:
+ uri: /aai/v8/business/customers
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ name: $b{customer.[*].global-customer-id}
+ sample_response:
+ body: '{"customer":[{"global-customer-id":"Demonstration","subscriber-name":"Demonstration","subscriber-type":"INFRA","resource-version":"1500729865","service-subscriptions":{"service-subscription":[{"service-type":"vFW","resource-version":"1500729865","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}},{"service-type":"vLB","resource-version":"1500729865","service-instances":{"service-instance":[{"service-instance-id":"d6167ea1-ff83-4236-9b32-37494dfb7537","service-instance-name":"demoVLB-1","persona-model-id":"af01a849-721b-407d-a880-be836e26ee81","persona-model-version":"1.0","resource-version":"1501154574","relationship-list":{"relationship":[{"related-to":"generic-vnf","related-link":"https://192.168.17.12:8443/aai/v8/network/generic-vnfs/generic-vnf/16c6d95d-44e3-4527-aa63-a495bf8e776e/","relationship-data":[{"relationship-key":"generic-vnf.vnf-id","relationship-value":"16c6d95d-44e3-4527-aa63-a495bf8e776e"}],"related-to-property":[{"property-key":"generic-vnf.vnf-name","property-value":"demoVLB-1-VNF-1"}]}]}}]},"relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}}]}},{"global-customer-id":"Linan","subscriber-name":"Linan","subscriber-type":"INFRA","resource-version":"1501768482","service-subscriptions":{"service-subscription":[{"service-type":"vFW","resource-version":"1501768482","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}},{"service-type":"vLB","resource-version":"1501768482","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}}]}},{"global-customer-id":"DemoCust_7151e36a-1a57-4993-b513-54134f2b8f19","subscriber-name":"DemoCust_7151e36a-1a57-4993-b513-54134f2b8f19","subscriber-type":"INFRA","resource-version":"1501766760","service-subscriptions":{"service-subscription":[{"service-type":"vFW","resource-version":"1501766760","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}}]}}]}' \ No newline at end of file
diff --git a/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-show-schema.yaml b/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-show-schema.yaml
new file mode 100644
index 00000000..7923779a
--- /dev/null
+++ b/plugins/aai/src/main/resources/onap-cli-schema/customer/customer-show-schema.yaml
@@ -0,0 +1,49 @@
+onap_cmd_schema_version: 1.0
+name: customer-show
+description: Lists the registetred customers in Onap
+service:
+ name: aai
+ version: v8
+ auth: basic
+ mode: direct
+
+parameters:
+ - name: customer-name
+ description: Onap customer name
+ type: string
+ short_option: x
+ long_option: customer-name
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: name
+ description: Onap customer name
+ scope: short
+ type: string
+ - name: subscriber-name
+ description: Onap subscriber name
+ scope: short
+ type: string
+ - name: resource-version
+ description: Onap subscriber resource version
+ scope: long
+ type: string
+ - name: subscriber-type
+ description: Onap subscriber type
+ scope: long
+ type: string
+http:
+ request:
+ uri: /aai/v8/business/customers/customer/${customer-name}
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ name: $b{$.global-customer-id}
+ subscriber-name: $b{$.subscriber-name}
+ subscriber-type: $b{$.subscriber-type}
+ resource-version: $b{$.resource-version}
+ sample_response:
+ body: '{"global-customer-id":"Linan","subscriber-name":"Linan","subscriber-type":"INFRA","resource-version":"1501768482","service-subscriptions":{"service-subscription":[{"service-type":"vFW","resource-version":"1501768482","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}},{"service-type":"vLB","resource-version":"1501768482","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}}]}}'
diff --git a/plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-create-schema.yaml b/plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-create-schema.yaml
new file mode 100644
index 00000000..58b5fc53
--- /dev/null
+++ b/plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-create-schema.yaml
@@ -0,0 +1,62 @@
+onap_cmd_schema_version: 1.0
+name: subscription-create
+description: Create a subscription for a customer in Onap
+service:
+ name: aai
+ version: v8
+ auth: basic
+ mode: direct
+
+parameters:
+ - name: customer-name
+ description: Onap customer name
+ type: string
+ short_option: x
+ long_option: customer-name
+ is_optional: false
+ - name: subscriber-name
+ description: Onap subscriber name
+ type: string
+ short_option: y
+ long_option: subscriber-name
+ is_optional: false
+ - name: cloud-type
+ description: Onap cloud type (openstack, rackspace)
+ type: string
+ short_option: z
+ long_option: cloud-type
+ is_optional: false
+ - name: cloud-region
+ description: Onap cloud region
+ type: string
+ short_option: r
+ long_option: cloud-region
+ is_optional: false
+ - name: cloud-tenant-id
+ description: Onap cloud tenant id
+ type: string
+ short_option: c
+ long_option: cloud-tenant-id
+ is_optional: false
+ - name: service-type
+ description: Onap service type
+ type: string
+ short_option: e
+ long_option: service-type
+ is_optional: false
+ - name: resource-version
+ description: Onap subscription resource version. It is mandatory for existing customer to create a new subscription
+ type: string
+ short_option: g
+ long_option: resource-version
+ is_optional: true
+http:
+ request:
+ uri: /aai/v8/business/customers/customer/${customer-name}
+ method: PUT
+ body: '{"global-customer-id": "${customer-name}", "subscriber-name": "${subscriber-name}", "subscriber-type": "INFRA", "resource-version":"${resource-version}", "service-subscriptions":{"service-subscription":[{"relationship-list":{"relationship":[{"related-to":"tenant","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"${cloud-type}"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"${cloud-region}"},{"relationship-key":"tenant.tenant-id","relationship-value":"${cloud-tenant-id}"}]}]},"service-type":"${service-type}"}]}}}'
+ success_codes:
+ - 200
+ - 201
+ sample_response:
+ body: ''
diff --git a/plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-list-schema.yaml b/plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-list-schema.yaml
new file mode 100644
index 00000000..e3131eb0
--- /dev/null
+++ b/plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-list-schema.yaml
@@ -0,0 +1,39 @@
+onap_cmd_schema_version: 1.0
+name: subscription-list
+description: Lists the subscription for a given customer in Onap
+service:
+ name: aai
+ version: v8
+ auth: basic
+ mode: direct
+
+parameters:
+ - name: customer-name
+ description: Onap customer name
+ type: string
+ short_option: x
+ long_option: customer-name
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: service-type
+ description: Onap service type
+ scope: short
+ type: string
+
+http:
+ request:
+ uri: /aai/v8/business/customers/customer/${customer-name}
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ service-type: $b{$.service-subscriptions.service-subscription.[*].service-type}
+ sample_response:
+ body: '{"global-customer-id":"Linan","subscriber-name":"Linan","subscriber-type":"INFRA","resource-version":"1501768482","service-subscriptions":{"service-subscription":[{"service-type":"vFW","resource-version":"1501768482","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}},{"service-type":"vLB","resource-version":"1501768482","relationship-list":{"relationship":[{"related-to":"tenant","related-link":"https://192.168.17.12:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/RegionOne/tenants/tenant/e69e6d64b44347509c3fc512391f34a6/","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Rackspace"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"tenant.tenant-id","relationship-value":"e69e6d64b44347509c3fc512391f34a6"}],"related-to-property":[{"property-key":"tenant.tenant-name","property-value":"onap"}]}]}}]}}'
+
+
+
+
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 93ac3b0f..40e7b8e6 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -45,6 +45,7 @@
</dependencies>
<modules>
<module>msb</module>
+ <module>aai</module>
</modules>
<build>
<pluginManagement>