From 52a736802c707d75104dff25d551a1f8df76d100 Mon Sep 17 00:00:00 2001 From: Eric Multanen Date: Tue, 25 Sep 2018 17:00:35 -0700 Subject: Fix calls to multicloud adapter Fix up the json body of the POST call to multicloud. Improve checkout of responses from multicloud calls. Change-Id: I1fb47460b54e9e5b478815d3b531d5bdbe1fe3dc Issue-ID: SO-1082 Signed-off-by: Eric Multanen --- .../org/onap/so/openstack/utils/MsoHeatUtils.java | 3 +- .../so/openstack/utils/MsoMulticloudParam.java | 110 --------- .../so/openstack/utils/MsoMulticloudUtils.java | 266 +++++++++++++++------ .../utils/MulticloudCreateHeatResponse.java | 77 ++++++ .../utils/MulticloudCreateLinkResponse.java | 76 ++++++ .../openstack/utils/MulticloudCreateResponse.java | 90 +++++++ .../utils/MulticloudCreateStackResponse.java | 60 +++++ .../openstack/utils/MulticloudQueryResponse.java | 90 +++++++ .../onap/so/openstack/utils/MulticloudRequest.java | 120 ++++++++++ 9 files changed, 706 insertions(+), 186 deletions(-) delete mode 100644 adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudParam.java create mode 100644 adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateHeatResponse.java create mode 100644 adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateLinkResponse.java create mode 100644 adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateResponse.java create mode 100644 adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateStackResponse.java create mode 100644 adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudQueryResponse.java create mode 100644 adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudRequest.java (limited to 'adapters/mso-adapter-utils/src') diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtils.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtils.java index 15f84890b7..476bff3692 100644 --- a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtils.java +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtils.java @@ -277,8 +277,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{ boolean backout) throws MsoException { // Take out the multicloud inputs, if present. - String[] directives = { "oof_directives", "sdnc_directives", "generic_vnf_id", "vf_module_id" }; - for (String key : directives) { + for (String key : MsoMulticloudUtils.MULTICLOUD_INPUTS) { if (stackInputs.containsKey(key)) { stackInputs.remove(key); if (stackInputs.isEmpty()) { diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudParam.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudParam.java deleted file mode 100644 index 9b2475a1c4..0000000000 --- a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudParam.java +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2018 Intel Corp. All rights reserved. - * ================================================================================ - * 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.openstack.utils; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class MsoMulticloudParam { - - @JsonProperty("generic-vnf-id") - private String genericVnfId; - - @JsonProperty("vf-module-id") - private String vfModuleId; - - @JsonProperty("oof_directives") - private String oofDirectives; - - @JsonProperty("sdnc_directives") - private String sdncDirectives; - - @JsonProperty("template_type") - private String templateType; - - @JsonProperty("template_data") - private String templateData; - - public void setGenericVnfId(String genericVnfId){ - this.genericVnfId = genericVnfId; - } - - public String getGenericVnfId(){ - return this.genericVnfId; - } - - public void setVfModuleId(String vfModuleId){ - this.vfModuleId = vfModuleId; - } - - public String getVfModuleId(){ - return this.vfModuleId; - } - - public void setOofDirectives(String oofDirectives){ - this.oofDirectives = oofDirectives; - } - - public String getOofDirectives(){ - return this.oofDirectives; - } - - public void setSdncDirectives(String sdncDirectives){ - this.sdncDirectives = sdncDirectives; - } - - public String getSdncDirectives(){ - return this.sdncDirectives; - } - - public void setTemplateType(String templateType){ - this.templateType = templateType; - } - - public String TemplateType(){ - return this.templateType; - } - - public void setTemplateData(String templateData){ - this.templateData = templateData; - } - - public String getTemplateData(){ - return this.templateData; - } - - @Override - public String toString() { - return String.format("MulticloudParam{" - + "genericVnfId='%s'," - + " vfModuleId='%s'," - + " oofDirectives='%s'," - + " sdncDirectives='%s'," - + " templateType='%s'," - + " templateData='%s'" - + "}", - genericVnfId, - vfModuleId, - oofDirectives, - sdncDirectives, - templateType, - templateData); - } -} diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java index 4ed35a4d28..306de05eea 100644 --- a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java @@ -21,13 +21,21 @@ package org.onap.so.openstack.utils; import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.Scanner; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriBuilderException; +import javax.ws.rs.core.Response.StatusType; import javax.ws.rs.core.Response; +import org.apache.http.HttpStatus; +import org.onap.so.db.catalog.beans.CloudIdentity; +import org.onap.so.utils.CryptoUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.onap.so.adapters.vdu.CloudInfo; @@ -48,24 +56,27 @@ import org.onap.so.openstack.exceptions.MsoOpenstackException; import org.onap.so.openstack.mappers.StackInfoMapper; import org.onap.so.client.HttpClient; import org.onap.so.client.RestClient; -import org.onap.so.cloud.CloudConfig; import org.onap.so.db.catalog.beans.CloudSite; import org.onap.so.utils.TargetEntity; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.env.Environment; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.stereotype.Component; +import com.fasterxml.jackson.databind.ObjectMapper; import com.woorea.openstack.heat.model.CreateStackParam; import com.woorea.openstack.heat.model.Stack; @Component public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ - @Autowired - protected CloudConfig cloudConfig; - - @Autowired - private Environment env; + public static final String OOF_DIRECTIVES = "oof_directives"; + public static final String SDNC_DIRECTIVES = "sdnc_directives"; + public static final String GENERIC_VNF_ID = "generic_vnf_id"; + public static final String VF_MODULE_ID = "vf_module_id"; + public static final String TEMPLATE_TYPE = "template_type"; + public static final List MULTICLOUD_INPUTS = + Arrays.asList(OOF_DIRECTIVES, SDNC_DIRECTIVES, GENERIC_VNF_ID, VF_MODULE_ID, TEMPLATE_TYPE); private static final String ONAP_IP = "ONAP_IP"; @@ -75,6 +86,8 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ private static final Logger logger = LoggerFactory.getLogger(MsoMulticloudUtils.class); + private static final ObjectMapper JSON_MAPPER = new ObjectMapper(); + /****************************************************************************** * * Methods (and associated utilities) to implement the VduPlugin interface @@ -135,59 +148,90 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ Map heatFiles, boolean backout) throws MsoException { - // Get the directives, if present. - String oofDirectives = null; - String sdncDirectives = null; - String genericVnfId = null; - String vfModuleId = null; + logger.trace("Started MsoMulticloudUtils.createStack"); - String key = "oof_directives"; - if (!stackInputs.isEmpty() && stackInputs.containsKey(key)) { - oofDirectives = (String) stackInputs.get(key); - stackInputs.remove(key); - } - key = "sdnc_directives"; - if (!stackInputs.isEmpty() && stackInputs.containsKey(key)) { - sdncDirectives = (String) stackInputs.get(key); - stackInputs.remove(key); - } - key = "generic_vnf_id"; - if (!stackInputs.isEmpty() && stackInputs.containsKey(key)) { - genericVnfId = (String) stackInputs.get(key); - stackInputs.remove(key); - } - key = "vf_module_id"; - if (!stackInputs.isEmpty() && stackInputs.containsKey(key)) { - vfModuleId = (String) stackInputs.get(key); - stackInputs.remove(key); + // Get the directives, if present. + String oofDirectives = ""; + String sdncDirectives = ""; + String genericVnfId = ""; + String vfModuleId = ""; + String templateType = ""; + + for (String key: MULTICLOUD_INPUTS) { + if (!stackInputs.isEmpty() && stackInputs.containsKey(key)) { + if ( key == OOF_DIRECTIVES) {oofDirectives = (String) stackInputs.get(key);} + if ( key == SDNC_DIRECTIVES) {sdncDirectives = (String) stackInputs.get(key);} + if ( key == GENERIC_VNF_ID) {genericVnfId = (String) stackInputs.get(key);} + if ( key == VF_MODULE_ID) {vfModuleId = (String) stackInputs.get(key);} + if ( key == TEMPLATE_TYPE) {templateType = (String) stackInputs.get(key);} + if (logger.isDebugEnabled()) { + logger.debug(String.format("Found %s: %s", key, stackInputs.get(key))); + } + stackInputs.remove(key); + } } // create the multicloud payload CreateStackParam stack = createStackParam(stackName, heatTemplate, stackInputs, timeoutMinutes, environment, files, heatFiles); - MsoMulticloudParam multicloudParam = new MsoMulticloudParam(); - multicloudParam.setGenericVnfId(genericVnfId); - multicloudParam.setVfModuleId(vfModuleId); - multicloudParam.setOofDirectives(oofDirectives); - multicloudParam.setSdncDirectives(sdncDirectives); - multicloudParam.setTemplateType("heat"); - multicloudParam.setTemplateData(stack.toString()); + MulticloudRequest multicloudRequest= new MulticloudRequest(); + HttpEntity request = null; + try { + multicloudRequest.setGenericVnfId(genericVnfId); + multicloudRequest.setVfModuleId(vfModuleId); + multicloudRequest.setOofDirectives(oofDirectives); + multicloudRequest.setSdncDirectives(sdncDirectives); + multicloudRequest.setTemplateType(templateType); + if (logger.isDebugEnabled()) { + logger.debug(String.format("Stack Template Data is: %s", stack.toString().substring(16))); + } + multicloudRequest.setTemplateData(JSON_MAPPER.writeValueAsString(stack)); + if (logger.isDebugEnabled()) { + logger.debug(String.format("Multicloud Request is: %s", multicloudRequest.toString())); + } + CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(() -> + new MsoCloudSiteNotFound(cloudSiteId)); + CloudIdentity cloudIdentity = cloudSite.getIdentityService(); + HttpHeaders headers = new HttpHeaders(); + headers.set ("X-Auth-User", cloudIdentity.getMsoId ()); + headers.set ("X-Auth-Key", CryptoUtils.decryptCloudConfigPassword(cloudIdentity.getMsoPass ())); + headers.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON.toString()); + headers.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON.toString()); + + if (logger.isDebugEnabled()) { + logger.debug(String.format("Multicloud Request Headers: %s", headers.toString())); + } + request = new HttpEntity<>(multicloudRequest, headers); + } catch (Exception e) { + logger.debug("ERROR making multicloud JSON body ", e); + } String multicloudEndpoint = getMulticloudEndpoint(cloudSiteId, null); + if (logger.isDebugEnabled()) { + logger.debug(String.format("Multicloud Endpoint is: %s", multicloudEndpoint)); + } RestClient multicloudClient = getMulticloudClient(multicloudEndpoint); - if (multicloudClient != null) { - Response res = multicloudClient.post(multicloudParam); - logger.debug("Multicloud Post response is: " + res); - } + Response response = multicloudClient.post(request); - Stack responseStack = new Stack(); - responseStack.setStackStatus(HeatStatus.CREATED.toString()); + StackInfo responseStackInfo = new StackInfo(); + responseStackInfo.setName(stackName); + responseStackInfo.setStatus(mapResponseToHeatStatus(response)); - return new StackInfoMapper(responseStack).map(); + MulticloudCreateResponse multicloudResponseBody = null; + if (response.getStatus() == Response.Status.CREATED.getStatusCode() && response.hasEntity()) { + multicloudResponseBody = getCreateBody((java.io.InputStream)response.getEntity()); + responseStackInfo.setCanonicalName(multicloudResponseBody.getWorkloadId()); + if (logger.isDebugEnabled()) { + logger.debug("Multicloud Create Response Body: " + multicloudResponseBody); + } + } + + return responseStackInfo; } + @Override public Map queryStackForOutputs(String cloudSiteId, String tenantId, String stackName) throws MsoException { logger.debug("MsoHeatUtils.queryStackForOutputs)"); @@ -211,64 +255,129 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ */ @Override public StackInfo queryStack (String cloudSiteId, String tenantId, String stackName) throws MsoException { - logger.debug ("Query multicloud HEAT stack: " + stackName + " in tenant " + tenantId); + if (logger.isDebugEnabled()) { + logger.debug (String.format("Query multicloud HEAT stack: %s in tenant %s", stackName, tenantId)); + } - String multicloudEndpoint = getMulticloudEndpoint(cloudSiteId, stackName); + StackInfo returnInfo = new StackInfo(); + returnInfo.setName(stackName); + String multicloudEndpoint = getMulticloudEndpoint(cloudSiteId, stackName); RestClient multicloudClient = getMulticloudClient(multicloudEndpoint); if (multicloudClient != null) { Response response = multicloudClient.get(); - logger.debug("Multicloud Get response is: " + response); + if (logger.isDebugEnabled()) { + logger.debug (String.format("Mulicloud GET Response: %s", response.toString())); + } + + returnInfo.setStatus(mapResponseToHeatStatus(response)); - return new StackInfo (stackName, HeatStatus.CREATED); + MulticloudQueryResponse multicloudQueryBody = null; + if (response.getStatus() == Response.Status.OK.getStatusCode() && response.hasEntity()) { + multicloudQueryBody = getQueryBody((java.io.InputStream)response.getEntity()); + returnInfo.setCanonicalName(multicloudQueryBody.getWorkloadId()); + if (logger.isDebugEnabled()) { + logger.debug("Multicloud Create Response Body: " + multicloudQueryBody.toString()); + } + } } - return new StackInfo (stackName, HeatStatus.NOTFOUND); + return returnInfo; + } public StackInfo deleteStack (String cloudSiteId, String tenantId, String stackName) throws MsoException { - logger.debug ("Delete multicloud HEAT stack: " + stackName + " in tenant " + tenantId); + if (logger.isDebugEnabled()) { + logger.debug (String.format("Delete multicloud HEAT stack: %s in tenant %s", stackName, tenantId)); + } + StackInfo returnInfo = new StackInfo(); + returnInfo.setName(stackName); + Response response = null; String multicloudEndpoint = getMulticloudEndpoint(cloudSiteId, stackName); - RestClient multicloudClient = getMulticloudClient(multicloudEndpoint); if (multicloudClient != null) { - Response response = multicloudClient.delete(); - logger.debug("Multicloud Get response is: " + response); - - return new StackInfo (stackName, HeatStatus.DELETING); + response = multicloudClient.delete(); + if (logger.isDebugEnabled()) { + logger.debug(String.format("Multicloud Delete response is: %s", response.getEntity().toString())); + } } - - return new StackInfo (stackName, HeatStatus.FAILED); + returnInfo.setStatus(mapResponseToHeatStatus(response)); + return returnInfo; } // --------------------------------------------------------------- // PRIVATE FUNCTIONS FOR USE WITHIN THIS CLASS + private HeatStatus mapResponseToHeatStatus(Response response) { + if (response.getStatusInfo().getStatusCode() == Response.Status.OK.getStatusCode()) { + return HeatStatus.CREATED; + } else if (response.getStatusInfo().getStatusCode() == Response.Status.CREATED.getStatusCode()) { + return HeatStatus.CREATED; + } else if (response.getStatusInfo().getStatusCode() == Response.Status.NO_CONTENT.getStatusCode()) { + return HeatStatus.CREATED; + } else if (response.getStatusInfo().getStatusCode() == Response.Status.BAD_REQUEST.getStatusCode()) { + return HeatStatus.FAILED; + } else if (response.getStatusInfo().getStatusCode() == Response.Status.UNAUTHORIZED.getStatusCode()) { + return HeatStatus.FAILED; + } else if (response.getStatusInfo().getStatusCode() == Response.Status.NOT_FOUND.getStatusCode()) { + return HeatStatus.NOTFOUND; + } else if (response.getStatusInfo().getStatusCode() == Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) { + return HeatStatus.FAILED; + } else { + return HeatStatus.UNKNOWN; + } + } + private MulticloudCreateResponse getCreateBody(java.io.InputStream in) { + Scanner scanner = new Scanner(in); + scanner.useDelimiter("\\Z"); + String body = ""; + if (scanner.hasNext()) { + body = scanner.next(); + } + scanner.close(); - private String getMsbHost() { - // MSB_IP will be set as ONAP_IP environment parameter in install flow. - String msbIp = System.getenv().get(ONAP_IP); + try { + return new ObjectMapper().readerFor(MulticloudCreateResponse.class).readValue(body); + } catch (Exception e) { + logger.debug("Exception retrieving multicloud vfModule POST response body " + e); + } + return null; + } - // if ONAP IP is not set. get it from config file. - if (null == msbIp || msbIp.isEmpty()) { - msbIp = env.getProperty("mso.msb-ip", DEFAULT_MSB_IP); + private MulticloudQueryResponse getQueryBody(java.io.InputStream in) { + Scanner scanner = new Scanner(in); + scanner.useDelimiter("\\Z"); + String body = ""; + if (scanner.hasNext()) { + body = scanner.next(); } - Integer msbPort = env.getProperty("mso.msb-port", Integer.class, DEFAULT_MSB_PORT); + scanner.close(); - return UriBuilder.fromPath("").host(msbIp).port(msbPort).scheme("http").build().toString(); + try { + return new ObjectMapper().readerFor(MulticloudQueryResponse.class).readValue(body); + } catch (Exception e) { + logger.debug("Exception retrieving multicloud workload query response body " + e); + } + return null; } private String getMulticloudEndpoint(String cloudSiteId, String workloadId) throws MsoCloudSiteNotFound { CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(() -> new MsoCloudSiteNotFound(cloudSiteId)); - String endpoint = getMsbHost() + cloudSite.getIdentityService().getIdentityUrl(); + String endpoint = cloudSite.getIdentityService().getIdentityUrl(); if (workloadId != null) { - return endpoint + workloadId; + if (logger.isDebugEnabled()) { + logger.debug(String.format("Multicloud Endpoint is: %s/%s", endpoint, workloadId)); + } + return String.format("%s/%s", endpoint, workloadId); } else { + if (logger.isDebugEnabled()) { + logger.debug(String.format("Multicloud Endpoint is: %s", endpoint)); + } return endpoint; } } @@ -277,13 +386,13 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ RestClient client = null; try { client= new HttpClient(UriBuilder.fromUri(endpoint).build().toURL(), - "application/json", TargetEntity.OPENSTACK_ADAPTER); + MediaType.APPLICATION_JSON.toString(), TargetEntity.MULTICLOUD); } catch (MalformedURLException e) { - logger.debug("Encountered malformed URL error getting multicloud rest client " + e.getMessage()); + logger.debug(String.format("Encountered malformed URL error getting multicloud rest client %s", e.getMessage())); } catch (IllegalArgumentException e) { - logger.debug("Encountered illegal argument getting multicloud rest client " + e.getMessage()); + logger.debug(String.format("Encountered illegal argument getting multicloud rest client %s",e.getMessage())); } catch (UriBuilderException e) { - logger.debug("Encountered URI builder error getting multicloud rest client " + e.getMessage()); + logger.debug(String.format("Encountered URI builder error getting multicloud rest client %s", e.getMessage())); } return client; } @@ -382,7 +491,7 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ try { // Delete the Multicloud stack - StackInfo stackInfo = deleteStack (tenantId, cloudSiteId, instanceId, true); + StackInfo stackInfo = deleteStack (tenantId, cloudSiteId, instanceId); // Populate a VduInstance based on the deleted Cloudify Deployment object VduInstance vduInstance = stackInfoToVduInstance(stackInfo); @@ -425,6 +534,9 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ { VduInstance vduInstance = new VduInstance(); + if (logger.isDebugEnabled()) { + logger.debug(String.format("StackInfo to convert: %s", stackInfo.getParameters().toString())); + } // The full canonical name as the instance UUID vduInstance.setVduInstanceId(stackInfo.getCanonicalName()); vduInstance.setVduInstanceName(stackInfo.getName()); @@ -447,6 +559,12 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{ // There are lots of HeatStatus values, so this is a bit long... HeatStatus heatStatus = stackInfo.getStatus(); String statusMessage = stackInfo.getStatusMessage(); + logger.debug("HeatStatus = " + heatStatus + " msg = " + statusMessage); + + if (logger.isDebugEnabled()) { + logger.debug(String.format("Stack Status: %s", heatStatus.toString())); + logger.debug(String.format("Stack Status Message: %s", statusMessage)); + } if (heatStatus == HeatStatus.INIT || heatStatus == HeatStatus.BUILDING) { vduStatus.setState(VduStateType.INSTANTIATING); diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateHeatResponse.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateHeatResponse.java new file mode 100644 index 0000000000..543ad07d52 --- /dev/null +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateHeatResponse.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2018 Intel Corp. All rights reserved. + * ================================================================================ + * 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.openstack.utils; + +import java.io.Serializable; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.ToStringBuilder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "links" +}) +public class MulticloudCreateHeatResponse implements Serializable { + private final static long serialVersionUID = -5215028275577848311L; + + @JsonProperty("id") + private String id; + @JsonProperty("links") + private List links; + + @JsonCreator + public MulticloudCreateHeatResponse( + @JsonProperty("id") String id, + @JsonProperty("links") List links) { + this.id = id; + this.links = links; + } + + @JsonProperty("id") + public String getId() { + return id; + } + + @JsonProperty("id") + public void setId(String id) { + this.id = id; + } + + @JsonProperty("links") + public List getLinks() { + return links; + } + + @JsonProperty("links") + public void setLinks(List links) { + this.links = links; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("id", id).append("links", links).toString(); + } +} diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateLinkResponse.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateLinkResponse.java new file mode 100644 index 0000000000..b609ac96c4 --- /dev/null +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateLinkResponse.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2018 Intel Corp. All rights reserved. + * ================================================================================ + * 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.openstack.utils; + +import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.ToStringBuilder; + + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "href", + "rel" +}) +public class MulticloudCreateLinkResponse implements Serializable { + private final static long serialVersionUID = -5215028275577848311L; + + @JsonProperty("href") + private String href; + @JsonProperty("rel") + private String rel; + + @JsonCreator + public MulticloudCreateLinkResponse( + @JsonProperty("href") String href, + @JsonProperty("rel") String rel) { + this.href = href; + this.rel = rel; + } + + @JsonProperty("href") + public String getHref() { + return href; + } + + @JsonProperty("href") + public void setHref(String href) { + this.href = href; + } + + @JsonProperty("rel") + public String getRel() { + return rel; + } + + @JsonProperty("rel") + public void setRel(String rel) { + this.rel = rel; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("href", href).append("rel", rel).toString(); + } +} diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateResponse.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateResponse.java new file mode 100644 index 0000000000..fafd4a074d --- /dev/null +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateResponse.java @@ -0,0 +1,90 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2018 Intel Corp. All rights reserved. + * ================================================================================ + * 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.openstack.utils; + +import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.ToStringBuilder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "template_type", + "workload_id", + "template_response" +}) +public class MulticloudCreateResponse implements Serializable { + private final static long serialVersionUID = -5215028275577848311L; + + @JsonProperty("template_type") + private String templateType; + @JsonProperty("workload_id") + private String workloadId; + @JsonProperty("template_response") + private MulticloudCreateStackResponse templateResponse; + + @JsonCreator + public MulticloudCreateResponse( + @JsonProperty("template_type") String templateType, + @JsonProperty("workload_id") String workloadId, + @JsonProperty("template_response") MulticloudCreateStackResponse templateResponse) { + this.templateType = templateType; + this.workloadId = workloadId; + this.templateResponse = templateResponse; + } + + @JsonProperty("template_type") + public String getTemplateType() { + return templateType; + } + + @JsonProperty("template_type") + public void setTemplateType(String templateType) { + this.templateType = templateType; + } + + @JsonProperty("workload_id") + public String getWorkloadId() { + return workloadId; + } + + @JsonProperty("workload_id") + public void setWorkloadId(String workloadId) { + this.workloadId = workloadId; + } + + @JsonProperty("template_response") + public void setTemplateResponse(MulticloudCreateStackResponse templateResponse) { + this.templateResponse = templateResponse; + } + + @JsonProperty("template_response") + public MulticloudCreateStackResponse getTemplateResponse() { + return templateResponse; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("templateType", templateType).append("workloadId", workloadId).append("templateResponse", templateResponse).toString(); + } +} diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateStackResponse.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateStackResponse.java new file mode 100644 index 0000000000..f1d44a8814 --- /dev/null +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudCreateStackResponse.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2018 Intel Corp. All rights reserved. + * ================================================================================ + * 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.openstack.utils; + +import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.ToStringBuilder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "stack" +}) +public class MulticloudCreateStackResponse implements Serializable { + private final static long serialVersionUID = -5215028275577848311L; + + @JsonProperty("stack") + private MulticloudCreateHeatResponse stack; + + @JsonCreator + public MulticloudCreateStackResponse( + @JsonProperty("stack") MulticloudCreateHeatResponse stack) { + this.stack = stack; + } + + @JsonProperty("stack") + public MulticloudCreateHeatResponse getStack() { + return stack; + } + + @JsonProperty("stack") + public void setStack(MulticloudCreateHeatResponse stack) { + this.stack = stack; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("stack", stack).toString(); + } +} diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudQueryResponse.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudQueryResponse.java new file mode 100644 index 0000000000..b22e9dc03e --- /dev/null +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudQueryResponse.java @@ -0,0 +1,90 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2018 Intel Corp. All rights reserved. + * ================================================================================ + * 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.openstack.utils; + +import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.ToStringBuilder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "template_type", + "workload_id", + "workload_status" +}) +public class MulticloudQueryResponse implements Serializable { + private final static long serialVersionUID = -5215028275577848311L; + + @JsonProperty("template_type") + private String templateType; + @JsonProperty("workload_id") + private String workloadId; + @JsonProperty("workload_status") + private String workloadStatus; + + @JsonCreator + public MulticloudQueryResponse( + @JsonProperty("template_type") String templateType, + @JsonProperty("workload_id") String workloadId, + @JsonProperty("workload_status") String workloadStatus) { + this.templateType = templateType; + this.workloadId = workloadId; + this.workloadStatus = workloadStatus; + } + + @JsonProperty("template_type") + public String getTemplateType() { + return templateType; + } + + @JsonProperty("template_type") + public void setTemplateType(String templateType) { + this.templateType = templateType; + } + + @JsonProperty("workload_id") + public String getWorkloadId() { + return workloadId; + } + + @JsonProperty("workload_id") + public void setWorkloadId(String workloadId) { + this.workloadId = workloadId; + } + + @JsonProperty("workload_status") + public String getWorkloadStatus() { + return workloadStatus; + } + + @JsonProperty("workload_status") + public void setWorkloadStatus(String workloadStatus) { + this.workloadStatus = workloadStatus; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("templateType", templateType).append("workloadId", workloadId).append("workloadStatus", workloadStatus).toString(); + } +} diff --git a/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudRequest.java b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudRequest.java new file mode 100644 index 0000000000..fefc0951f6 --- /dev/null +++ b/adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MulticloudRequest.java @@ -0,0 +1,120 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2018 Intel Corp. All rights reserved. + * ================================================================================ + * 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.openstack.utils; + +import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.ToStringBuilder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "generic-vnf-id", + "vf-module-id", + "oof_directives", + "sdnc_directives", + "template_type", + "template_data" +}) +public class MulticloudRequest implements Serializable { + private final static long serialVersionUID = -5215028275577848311L; + + @JsonProperty("generic-vnf-id") + private String genericVnfId; + @JsonProperty("vf-module-id") + private String vfModuleId; + @JsonProperty("oof_directives") + private String oofDirectives; + @JsonProperty("sdnc_directives") + private String sdncDirectives; + @JsonProperty("template_type") + private String templateType; + @JsonProperty("template_data") + private String templateData; + + + @JsonProperty("generic-vnf-id") + public String getGenericVnfId() { + return genericVnfId; + } + + @JsonProperty("generic-vnf-id") + public void setGenericVnfId(String genericVnfId) { + this.genericVnfId = genericVnfId; + } + + @JsonProperty("vf-module-id") + public String getVfModuleId() { + return vfModuleId; + } + + @JsonProperty("vf-module-id") + public void setVfModuleId(String vfModuleId) { + this.vfModuleId = vfModuleId; + } + + @JsonProperty("oof_directives") + public String getOofDirectives() { + return oofDirectives; + } + + @JsonProperty("oof_directives") + public void setOofDirectives(String oofDirectives) { + this.oofDirectives = oofDirectives; + } + + @JsonProperty("sdnc_directives") + public String getSdncDirectives() { + return sdncDirectives; + } + + @JsonProperty("sdnc_directives") + public void setSdncDirectives(String sdncDirectives) { + this.sdncDirectives = sdncDirectives; + } + + @JsonProperty("template_type") + public String getTemplateType() { + return templateType; + } + + @JsonProperty("template_type") + public void setTemplateType(String templateType) { + this.templateType = templateType; + } + + @JsonProperty("template_data") + public String getTemplateData() { + return templateData; + } + + @JsonProperty("template_data") + public void setTemplateData(String templateData) { + this.templateData = templateData; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("genericVnfId", genericVnfId).append("vfModuleId", vfModuleId).append("oofDirectives", oofDirectives).append("sdncDirectives", sdncDirectives).append("templateType", templateType).append("templateData", templateData).toString(); + } + +} -- cgit 1.2.3-korg