summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--framework/src/main/java/org/onap/cli/fw/utils/ProcessRunner.java8
-rw-r--r--framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionListCommandTest.java69
-rw-r--r--framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionShowErrCommandTest.java52
-rw-r--r--framework/src/test/java/org/onap/cli/fw/utils/ProcessRunnerTest.java45
-rw-r--r--products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-delete-schema-elalto.yaml52
-rw-r--r--products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-flavor-list-schema-elalto.yaml81
-rw-r--r--products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-list-schema-elalto.yaml71
7 files changed, 371 insertions, 7 deletions
diff --git a/framework/src/main/java/org/onap/cli/fw/utils/ProcessRunner.java b/framework/src/main/java/org/onap/cli/fw/utils/ProcessRunner.java
index db7245c7..d36a0d6c 100644
--- a/framework/src/main/java/org/onap/cli/fw/utils/ProcessRunner.java
+++ b/framework/src/main/java/org/onap/cli/fw/utils/ProcessRunner.java
@@ -153,17 +153,11 @@ public class ProcessRunner {
public String streamToString(InputStream stream) throws IOException {
StringBuilder sb = new StringBuilder();
- BufferedReader br = null;
- try {
- br = new BufferedReader(new InputStreamReader(stream));
+ try (BufferedReader br = new BufferedReader(new InputStreamReader(stream))) {
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + System.getProperty("line.separator"));
}
- } finally {
- if (br != null) {
- br.close();
- }
}
return sb.toString();
}
diff --git a/framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionListCommandTest.java b/framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionListCommandTest.java
new file mode 100644
index 00000000..c7be1383
--- /dev/null
+++ b/framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionListCommandTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2019 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.execution;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.cli.fw.error.OnapCommandException;
+import org.onap.cli.fw.output.OnapCommandResultAttribute;
+import org.onap.cli.fw.store.OnapCommandExecutionStoreTest;
+import org.onap.cli.fw.utils.FileUtil;
+
+import java.io.File;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class OnapCommandExceutionListCommandTest {
+ static OnapCommandExecutionStoreTest executionStoreTest;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ executionStoreTest = new OnapCommandExecutionStoreTest();
+ executionStoreTest.setUp();
+ executionStoreTest.storeExectutionStartTest();
+ }
+
+ @Test
+ public void runTest() throws OnapCommandException {
+ OnapCommandExceutionListCommand cmd = new OnapCommandExceutionListCommand();
+ cmd.initializeSchema("execution-list.yaml");
+ cmd.execute();
+ List<OnapCommandResultAttribute> oclipCommandResultAttributes = cmd.getResult()
+ .getRecords();
+ assertTrue(oclipCommandResultAttributes.size() > 1);
+
+ }
+ public static boolean deleteDirectory(File file) {
+ if (!file.exists()) {
+ return true;
+ }
+ if (file.isDirectory()) {
+ for (File f : file.listFiles()) {
+ deleteDirectory(f);
+ }
+ }
+ return file.delete();
+ }
+@AfterClass
+ public static void tearDown() throws Exception {
+ String dirPathForExecutions = System.getProperty("user.dir") + File.separator + "data/executions";
+ File executionsFile = new File(dirPathForExecutions);
+ assertTrue(deleteDirectory(executionsFile));
+ }
+} \ No newline at end of file
diff --git a/framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionShowErrCommandTest.java b/framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionShowErrCommandTest.java
new file mode 100644
index 00000000..0aa1c3f5
--- /dev/null
+++ b/framework/src/test/java/org/onap/cli/fw/cmd/execution/OnapCommandExceutionShowErrCommandTest.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2019 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.execution;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.cli.fw.error.OnapCommandException;
+import org.onap.cli.fw.store.OnapCommandExecutionStoreTest;
+import org.onap.cli.fw.utils.FileUtil;
+
+import java.io.File;
+
+import static org.junit.Assert.*;
+
+public class OnapCommandExceutionShowErrCommandTest {
+ static OnapCommandExecutionStoreTest executionStoreTest;
+ @BeforeClass
+ public static void setUp() throws Exception {
+ executionStoreTest= new OnapCommandExecutionStoreTest();
+ executionStoreTest.setUp();
+ executionStoreTest.storeExectutionStartTest();
+ }
+ @Test
+ public void runTest() throws OnapCommandException {
+ OnapCommandExceutionShowErrCommand cmd=new OnapCommandExceutionShowErrCommand();
+ cmd.initializeSchema("execution-show-err.yaml");
+ cmd.getParametersMap().get("execution-id").setValue("requestId");
+ cmd.execute();
+ assertNotNull(cmd.getResult().getOutput());
+ }
+
+ @AfterClass
+ public static void tearDown() throws Exception {
+ String dirPathForExecutions = System.getProperty("user.dir") + File.separator + "data/executions";
+ File executionsDir = new File(dirPathForExecutions);
+ assertTrue(OnapCommandExceutionListCommandTest.deleteDirectory(executionsDir));
+ }
+} \ No newline at end of file
diff --git a/framework/src/test/java/org/onap/cli/fw/utils/ProcessRunnerTest.java b/framework/src/test/java/org/onap/cli/fw/utils/ProcessRunnerTest.java
new file mode 100644
index 00000000..2e5b2ab9
--- /dev/null
+++ b/framework/src/test/java/org/onap/cli/fw/utils/ProcessRunnerTest.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2018 Samsung Electronics 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.utils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import org.apache.commons.io.IOUtils;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ProcessRunnerTest {
+ ProcessRunner processRunner;
+
+ @Before
+ public void setUp() throws Exception {
+ processRunner = new ProcessRunner("ls -l");
+ }
+
+ @After
+ public void tearDown() throws Exception {}
+
+ @Test
+ public void testStreamToString() throws IOException {
+ InputStream stubInputStream = IOUtils.toInputStream("Test stream", "UTF-8");
+ String out = processRunner.streamToString(stubInputStream);
+ Assert.assertEquals("Test stream\n", out);
+ }
+
+}
diff --git a/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-delete-schema-elalto.yaml b/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-delete-schema-elalto.yaml
new file mode 100644
index 00000000..f206438f
--- /dev/null
+++ b/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-delete-schema-elalto.yaml
@@ -0,0 +1,52 @@
+# Copyright 2019 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: cloud-delete
+description: Delete a cloud region from Onap
+
+info:
+ product: onap-elalto
+ service: aai
+ author: ONAP CLI Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: cloud-name
+ description: Onap cloud name
+ type: string
+ short_option: x
+ long_option: cloud-name
+ is_optional: false
+ - name: region-name
+ description: Onap cloud region name
+ type: string
+ short_option: y
+ long_option: region-name
+ is_optional: false
+ - name: resource-version
+ description: Onap cloud region version
+ type: uuid
+ short_option: z
+ long_option: resource-version
+ is_optional: true
+http:
+ service:
+ auth: basic
+ mode: direct
+ request:
+ uri: /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/${cloud-name}/${region-name}?resource-version=${resource-version}
+ method: DELETE
+ success_codes:
+ - 204
+ - 404
diff --git a/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-flavor-list-schema-elalto.yaml b/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-flavor-list-schema-elalto.yaml
new file mode 100644
index 00000000..0dee8068
--- /dev/null
+++ b/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-flavor-list-schema-elalto.yaml
@@ -0,0 +1,81 @@
+# Copyright 2019 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: cloud-flavor-list
+description: List the flavors in a cloud region and its capabilities including HPA with -s option
+
+info:
+ product: onap-elalto
+ service: aai
+ author: ONAP CLI Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: cloud-region
+ description: Name of cloud region
+ type: string
+ short_option: x
+ long_option: name
+ is_optional: false
+ - name: cloud-owner
+ description: Name of cloud owner
+ type: string
+ short_option: y
+ long_option: cloud-owner
+ is_optional: false
+
+
+results:
+ direction: landscape
+ attributes:
+ - name: flavor
+ description: Name of Flavor
+ scope: short
+ type: string
+ - name: resource-version
+ description: Resource version of the Flavor
+ scope: short
+ type: string
+ - name: vcpus
+ description: Number of VCPUs
+ scope: short
+ type: string
+ - name: ram-size
+ description: RAM Size for flavor
+ scope: short
+ type: string
+ - name: disk-size
+ description: Disk size for flavor
+ scope: short
+ type: string
+ - name: ID
+ description: flavor ID in cloud
+ scope: long
+ type: string
+http:
+ service:
+ auth: basic
+ mode: direct
+ request:
+ uri: /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/${cloud-owner}/${cloud-region}/flavors?depth=all
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ flavor: $b{flavor.[*].flavor-name}
+ vcpus: $b{flavor.[*].flavor-vcpus}
+ ram-size: $b{flavor.[*].flavor-ram}
+ disk-size: $b{flavor.[*].flavor-disk}
+ resource-version: $b{flavor.[*].resource-version}
+ ID: $b{flavor.[*].flavor-id}
diff --git a/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-list-schema-elalto.yaml b/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-list-schema-elalto.yaml
new file mode 100644
index 00000000..582842b4
--- /dev/null
+++ b/products/onap-elalto/features/aai/src/main/resources/open-cli-schema/infra/cloud/cloud-list-schema-elalto.yaml
@@ -0,0 +1,71 @@
+# Copyright 2019 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: cloud-list
+description: List the configured clouds and Onap service subscriptions
+
+info:
+ product: onap-elalto
+ service: aai
+ author: ONAP CLI Team onap-discuss@lists.onap.org
+
+results:
+ direction: landscape
+ attributes:
+ - name: cloud
+ description: Onap cloud
+ scope: short
+ type: string
+ - name: region
+ description: Onap cloud region
+ scope: short
+ type: string
+ - name: tenant
+ description: Onap cloud tenat
+ scope: long
+ type: string
+ - name: tenant-id
+ description: Onap cloud tenat id
+ scope: long
+ type: string
+ - name: customer
+ description: Onap cloud customer
+ scope: long
+ type: string
+ - name: service
+ description: Onap cloud service
+ scope: long
+ type: string
+ - name: resource-version
+ description: Onap cloud resource version
+ scope: short
+ type: string
+http:
+ service:
+ auth: basic
+ mode: direct
+ request:
+ uri: /aai/v16/cloud-infrastructure/cloud-regions
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ cloud: $b{cloud-region.[*].cloud-owner}
+ region: $b{cloud-region.[*].cloud-region-id}
+ resource-version: $b{cloud-region.[*].resource-version}
+ tenant: $b{cloud-region.[*].tenants.tenant.[*].tenant-name}
+ tenant-id: $b{cloud-region.[*].tenants.tenant.[*].tenant-id}
+ customer: $b{cloud-region.[*].tenants.tenant.[*].relationship-list.relationship.[*].relationship-data.[?(@.relationship-key == 'customer.global-customer-id')].relationship-value}
+ service: $b{cloud-region.[*].tenants.tenant.[*].relationship-list.relationship.[*].relationship-data.[?(@.relationship-key == 'service-subscription.service-type')].relationship-value}