aboutsummaryrefslogtreecommitdiffstats
path: root/plans/so/integration-etsi-testing/so-simulators/multicloud-simulator/src/main/java/org/onap/so/multicloudsimulator/controller/MultiCloudController.java
diff options
context:
space:
mode:
Diffstat (limited to 'plans/so/integration-etsi-testing/so-simulators/multicloud-simulator/src/main/java/org/onap/so/multicloudsimulator/controller/MultiCloudController.java')
-rw-r--r--plans/so/integration-etsi-testing/so-simulators/multicloud-simulator/src/main/java/org/onap/so/multicloudsimulator/controller/MultiCloudController.java263
1 files changed, 110 insertions, 153 deletions
diff --git a/plans/so/integration-etsi-testing/so-simulators/multicloud-simulator/src/main/java/org/onap/so/multicloudsimulator/controller/MultiCloudController.java b/plans/so/integration-etsi-testing/so-simulators/multicloud-simulator/src/main/java/org/onap/so/multicloudsimulator/controller/MultiCloudController.java
index b0e13362..c99e246e 100644
--- a/plans/so/integration-etsi-testing/so-simulators/multicloud-simulator/src/main/java/org/onap/so/multicloudsimulator/controller/MultiCloudController.java
+++ b/plans/so/integration-etsi-testing/so-simulators/multicloud-simulator/src/main/java/org/onap/so/multicloudsimulator/controller/MultiCloudController.java
@@ -1,171 +1,128 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright 2021 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.
+ * ============LICENSE_END=========================================================
+ */
package org.onap.so.multicloudsimulator.controller;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.MediaType;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.onap.so.multicloudsimulator.beans.InstanceResponse;
-import org.onap.so.multicloudsimulator.beans.MulticloudInstanceRequest;
+import org.apache.commons.io.IOUtils;
+import org.onap.so.multicloudsimulator.beans.InstanceOutput;
import org.onap.so.multicloudsimulator.beans.MulticloudCreateResponse;
+import org.onap.so.multicloudsimulator.beans.MulticloudInstanceRequest;
+import org.onap.so.multicloudsimulator.beans.InstanceResponse;
+import org.onap.so.multicloudsimulator.beans.InstanceNameOutput;
import org.onap.so.multicloudsimulator.beans.MulticloudRequest;
-import org.onap.so.openstack.beans.HeatStatus;
import org.springframework.http.ResponseEntity;
-
-import org.springframework.web.bind.annotation.*;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
-import java.net.URI;
+import java.io.InputStream;
import static org.onap.so.multicloudsimulator.utils.Constants.BASE_URL;
+
@RestController
@RequestMapping(path = BASE_URL)
public class MultiCloudController {
- public static final String X_HTTP_METHOD_OVERRIDE = "X-HTTP-Method-Override";
- private static final Logger LOGGER = LoggerFactory.getLogger(MultiCloudController.class);
- public MulticloudCreateResponse multicloudCreateResponse = new MulticloudCreateResponse();
-
- @PostMapping(value="/v1/instance")
- public ResponseEntity<?> createInstance(@RequestBody MulticloudInstanceRequest req){
- System.out.println("MultiCloud createInstance ");
- InstanceResponse InstanceResponse = new InstanceResponse();
-
- return ResponseEntity.ok(InstanceResponse);
- }
-
- @GetMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload", produces = {
- MediaType.APPLICATION_JSON })
- public ResponseEntity<?> getInstance(
- @PathVariable("cloud-owner") String cloudOwner, @PathVariable("cloud-region-id") String cloudRegionId,
- @RequestParam(value = "depth", required = false, defaultValue = "0") Integer depth,
- @RequestParam(name = "format", required = false) final String name, final HttpServletRequest request) throws IOException {
-
- LOGGER.info("found CloudOwner {} in cache", cloudOwner);
- LOGGER.info("found cloudRegionId {} in cache", cloudRegionId);
- LOGGER.info("found name {} in cache", name);
- JSONObject json = new JSONObject();
-
- json.put("template_type", "heat");
- json.put("workload_id", "");
- json.put("workload_status", "GET_COMPLETE");
- JSONObject workload = new JSONObject();
- workload.put("stacks", HeatStatus.NOTFOUND);
- json.put("workload_status_reason", workload);
-
- return ResponseEntity.ok(json);
- }
-
- @PostMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload",
- consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
- produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public ResponseEntity<?> postCreateInstance(
- @RequestBody final MulticloudRequest inputRequest, @PathVariable("cloud-owner") final String cloudOwner,
- @PathVariable("cloud-region-id") final String cloudRegionId,
- @RequestHeader(value = X_HTTP_METHOD_OVERRIDE, required = false) final String xHttpHeaderOverride,
- final HttpServletRequest request) throws IOException {
-
- LOGGER.info("input request {}: ",inputRequest.toString());
- String input = "{\n" +
- " \"template_type\": \"heat\",\n" +
- " \"workload_id\": \"sad_sammet\",\n" +
- " \"template_response\": [\n" +
- " {\n" +
- " \"GVK\": {\n" +
- " \"Group\": \"k8s.plugin.opnfv.org\",\n" +
- " \"Version\": \"v1alpha1\",\n" +
- " \"Kind\": \"Network\"\n" +
- " },\n" +
- " \"Name\": \"k8s-region-2-onap-nf-20210120t221126760z-management-network\"\n" +
- " },\n" +
- " {\n" +
- " \"GVK\": {\n" +
- " \"Group\": \"k8s.plugin.opnfv.org\",\n" +
- " \"Version\": \"v1alpha1\",\n" +
- " \"Kind\": \"Network\"\n" +
- " },\n" +
- " \"Name\": \"k8s-region-2-onap-nf-20210120t221126760z-protected-network\"\n" +
- " },\n" +
- " {\n" +
- " \"GVK\": {\n" +
- " \"Group\": \"k8s.plugin.opnfv.org\",\n" +
- " \"Version\": \"v1alpha1\",\n" +
- " \"Kind\": \"Network\"\n" +
- " },\n" +
- " \"Name\": \"k8s-region-2-onap-nf-20210120t221126760z-unprotected-network\"\n" +
- " },\n" +
- " {\n" +
- " \"GVK\": {\n" +
- " \"Group\": \"k8s.cni.cncf.io\",\n" +
- " \"Version\": \"v1\",\n" +
- " \"Kind\": \"NetworkAttachmentDefinition\"\n" +
- " },\n" +
- " \"Name\": \"k8s-region-2-onap-nf-20210120t221126760z-ovn-nat\"\n" +
- " }\n" +
- " ],\n" +
- " \"workload_status\": \"CREATE_COMPLETE\",\n" +
- " \"workload_status_reason\": \"test\"\n" +
- "}";
-
- ObjectMapper objectMapper = new ObjectMapper();
- JSONObject workload = new JSONObject();
-
- workload.put("stack",true);
-
- JsonNode jsonNode = objectMapper.readTree(workload.toJSONString());
- MulticloudCreateResponse multiResponse = objectMapper.readValue(input, MulticloudCreateResponse.class);
- multiResponse.setWorkloadStatusReason(null);
-
- LOGGER.info("workload reason: {}",multiResponse.getWorkloadStatusReason());
- multiResponse.setWorkloadId("sad_sammet");
- multiResponse.setTemplateType("heat");
- multiResponse.setWorkloadStatus("CREATE_COMPLETE");
-
- return ResponseEntity.status(201).body(multiResponse);
- }
-
- @GetMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}", produces = {
- MediaType.APPLICATION_JSON })
- public ResponseEntity<?> getInstanceName(
- @PathVariable("cloud-owner") String cloudOwner, @PathVariable("cloud-region-id") String cloudRegionId,
- @PathVariable("workload-id") String workloadId,
- @RequestParam(value = "depth", required = false, defaultValue = "0") Integer depth,
- @RequestParam(name = "format", required = false) final String name, final HttpServletRequest request) throws IOException {
-
- LOGGER.info("Calling getInstanceName");
- LOGGER.info("found CloudOwner {} in cache", cloudOwner);
- LOGGER.info("found cloudRegionId {} in cache", cloudRegionId);
- LOGGER.info("found name {} in cache", name);
- JSONObject json = new JSONObject();
-
- json.put("template_type", "heat");
- json.put("workload_id", "sad_sammet");
- json.put("workload_status", "CREATE_COMPLETE");
- JSONObject workload = new JSONObject();
- workload.put("stacks", true);
- json.put("workload_status_reason", null);
-
- return ResponseEntity.ok(json);
- }
-
- @PostMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}",
- consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
- produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public ResponseEntity<?> postCreateInstanceName(
- @RequestBody final MulticloudRequest inputRequest, @PathVariable("cloud-owner") final String cloudOwner,
- @PathVariable("workload-id") String workloadId,
- @PathVariable("cloud-region-id") final String cloudRegionId,
- @RequestHeader(value = X_HTTP_METHOD_OVERRIDE, required = false) final String xHttpHeaderOverride,
- final HttpServletRequest request) throws IOException {
-
- LOGGER.info("Calling postCreateInstanceName");
-
- return ResponseEntity.status(405).build();
- }
-}
+ public static final String X_HTTP_METHOD_OVERRIDE = "X-HTTP-Method-Override";
+ private static final Logger LOGGER = LoggerFactory.getLogger(MultiCloudController.class);
+
+ @PostMapping(value = "/v1/instance")
+ public ResponseEntity<?> createInstance(@RequestBody MulticloudInstanceRequest req) {
+ System.out.println("MultiCloud createInstance ");
+ final InstanceResponse InstanceResponse = new InstanceResponse();
+
+ LOGGER.info("Calling createInstance");
+ return ResponseEntity.ok(InstanceResponse);
+ }
+
+ @GetMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload", produces = { MediaType.APPLICATION_JSON })
+ public ResponseEntity<?> getInstance(@PathVariable("cloud-owner") String cloudOwner,
+ @PathVariable("cloud-region-id") String cloudRegionId,
+ @RequestParam(value = "depth", required = false, defaultValue = "0") Integer depth,
+ @RequestParam(name = "format", required = false) final String name, final HttpServletRequest request)
+ throws Exception {
+
+ LOGGER.info("found CloudOwner {}", cloudOwner);
+ LOGGER.info("found cloudRegionId {}", cloudRegionId);
+ LOGGER.info("found name {}", name);
+ final InputStream instanceOutput = InstanceOutput.getInstance();
+ final String output = IOUtils.toString(instanceOutput, "utf-8");
+
+ return ResponseEntity.ok(output);
+ }
+
+ @PostMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload", consumes = { MediaType.APPLICATION_JSON,
+ MediaType.APPLICATION_XML }, produces = { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ public ResponseEntity<?> postCreateInstance(@RequestBody final MulticloudCreateResponse inputRequest,
+ @PathVariable("cloud-owner") final String cloudOwner,
+ @PathVariable("cloud-region-id") final String cloudRegionId,
+ @RequestHeader(value = X_HTTP_METHOD_OVERRIDE, required = false) final String xHttpHeaderOverride,
+ final HttpServletRequest request) throws IOException {
+
+ LOGGER.info("Calling postCreateInstance");
+ inputRequest.setWorkloadStatusReason(null);
+
+ inputRequest.setWorkloadId("sad_sammet");
+ inputRequest.setTemplateType("heat");
+ inputRequest.setWorkloadStatus("CREATE_COMPLETE");
+
+ return ResponseEntity.status(201).body(inputRequest);
+ }
+
+ @GetMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}", produces = {
+ MediaType.APPLICATION_JSON })
+ public ResponseEntity<?> getInstanceName(@PathVariable("cloud-owner") final String cloudOwner,
+ @PathVariable("cloud-region-id") final String cloudRegionId, @PathVariable("workload-id") final String workloadId,
+ @RequestParam(value = "depth", required = false, defaultValue = "0") final Integer depth,
+ @RequestParam(name = "format", required = false) final String name, final HttpServletRequest request)
+ throws Exception {
+
+ LOGGER.info("Calling getInstanceName");
+ LOGGER.info("found CloudOwner {}", cloudOwner);
+ LOGGER.info("found cloudRegionId {}", cloudRegionId);
+ LOGGER.info("found name {}", name);
+ final InputStream instanceNameOutput = InstanceNameOutput.getInstanceName();
+ final String output = IOUtils.toString(instanceNameOutput, "utf-8");
+
+ return ResponseEntity.ok(output);
+ }
+
+ @PostMapping(value = "/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}", consumes = {
+ MediaType.APPLICATION_JSON,
+ MediaType.APPLICATION_XML }, produces = { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ public ResponseEntity<?> postCreateInstanceName(@RequestBody final MulticloudRequest inputRequest,
+ @PathVariable("cloud-owner") final String cloudOwner, @PathVariable("workload-id") String workloadId,
+ @PathVariable("cloud-region-id") final String cloudRegionId,
+ @RequestHeader(value = X_HTTP_METHOD_OVERRIDE, required = false) final String xHttpHeaderOverride,
+ final HttpServletRequest request) throws IOException {
+
+ LOGGER.info("Calling postCreateInstanceName");
+
+ return ResponseEntity.status(405).build();
+ }
+} \ No newline at end of file