From a2b0adac6b2d29011e543e460a3286ed51a49aa4 Mon Sep 17 00:00:00 2001 From: Kanagaraj Manickam k00365106 Date: Thu, 17 Aug 2017 12:17:58 +0530 Subject: Add customer & subscription management commands CLI-13 Change-Id: Ia21006ca1dae3a451782c7c2e4df535e05ecaca6 Signed-off-by: Kanagaraj Manickam k00365106 --- .../java/org/onap/cli/main/OnapCliMainTest.java | 6 +++ plugins/aai/pom.xml | 41 ++++++++++++++ .../customer/customer-create-schema.yaml | 32 +++++++++++ .../customer/customer-list-schema.yaml | 25 +++++++++ .../customer/customer-show-schema.yaml | 49 +++++++++++++++++ .../subscription/subscription-create-schema.yaml | 62 ++++++++++++++++++++++ .../subscription/subscription-list-schema.yaml | 39 ++++++++++++++ plugins/pom.xml | 1 + 8 files changed, 255 insertions(+) create mode 100644 plugins/aai/pom.xml create mode 100644 plugins/aai/src/main/resources/onap-cli-schema/customer/customer-create-schema.yaml create mode 100644 plugins/aai/src/main/resources/onap-cli-schema/customer/customer-list-schema.yaml create mode 100644 plugins/aai/src/main/resources/onap-cli-schema/customer/customer-show-schema.yaml create mode 100644 plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-create-schema.yaml create mode 100644 plugins/aai/src/main/resources/onap-cli-schema/subscription/subscription-list-schema.yaml 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 @@ + + + + + 4.0.0 + + + org.onap.cli + cli-plugins + 1.0.0-SNAPSHOT + + + cli-plugins-aai + cli/plugins/aai + jar + + + + org.apache.maven.plugins + maven-dependency-plugin + + + + 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 @@ msb + aai -- cgit 1.2.3-korg