Search in sources :

Example 21 with StackInfo

use of org.onap.so.openstack.beans.StackInfo in project so by onap.

the class MsoMulticloudUtils method getStackStatus.

private StackInfo getStackStatus(String cloudSiteId, String cloudOwner, String tenantId, String instanceId, boolean pollForCompletion, int timeoutMinutes, boolean backout) throws MsoException {
    StackInfo stackInfo;
    // If client has requested a final response, poll for stack completion
    if (pollForCompletion) {
        // Set a time limit on overall polling.
        // Use the resource (template) timeout for Openstack (expressed in minutes)
        // and add one poll interval to give Openstack a chance to fail on its own.s
        int createPollInterval = Integer.parseInt(this.environment.getProperty(createPollIntervalProp, CREATE_POLL_INTERVAL_DEFAULT));
        int pollTimeout = (timeoutMinutes * 60) + createPollInterval;
        // New 1610 - poll on delete if we rollback - use same values for now
        int deletePollInterval = createPollInterval;
        int deletePollTimeout = pollTimeout;
        boolean createTimedOut = false;
        StringBuilder stackErrorStatusReason = new StringBuilder("");
        logger.debug("createPollInterval={}, pollTimeout={} ", createPollInterval, pollTimeout);
        while (true) {
            try {
                stackInfo = queryStack(cloudSiteId, cloudOwner, tenantId, instanceId);
                logger.debug("{} ({})", stackInfo.getStatus(), instanceId);
                if (HeatStatus.BUILDING.equals(stackInfo.getStatus())) {
                    // Sleep and try again unless timeout has been reached
                    if (pollTimeout <= 0) {
                        // Note that this should not occur, since there is a timeout specified
                        // in the Openstack (multicloud?) call.
                        logger.error(String.format("%s %s %s %s %s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_TIMEOUT.toString(), cloudOwner, cloudSiteId, tenantId, instanceId, stackInfo.getStatus(), "", "", ErrorCode.AvailabilityError.getValue(), "Create stack timeout"));
                        createTimedOut = true;
                        break;
                    }
                    sleep(createPollInterval * 1000L);
                    pollTimeout -= createPollInterval;
                    logger.debug("pollTimeout remaining: {}", pollTimeout);
                } else {
                    // save off the status & reason msg before we attempt delete
                    stackErrorStatusReason.append("Stack error (" + stackInfo.getStatus() + "): " + stackInfo.getStatusMessage());
                    break;
                }
            } catch (MsoException me) {
                // Try to roll back the stack
                if (!backout) {
                    logger.warn(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack error, stack deletion suppressed", "", "", ErrorCode.BusinessProcessError.getValue(), "Exception in Create Stack, stack deletion suppressed"));
                } else {
                    try {
                        logger.debug("Create Stack error - unable to query for stack status - attempting to delete stack: " + instanceId + " - This will likely fail and/or we won't be able to query to see if delete worked");
                        StackInfo deleteInfo = deleteStack(cloudSiteId, cloudOwner, tenantId, instanceId);
                        // this may be a waste of time - if we just got an exception trying to query the stack -
                        // we'll just
                        // get another one, n'est-ce pas?
                        boolean deleted = false;
                        while (!deleted) {
                            try {
                                StackInfo queryInfo = queryStack(cloudSiteId, cloudOwner, tenantId, instanceId);
                                logger.debug("Deleting {}, status: {}", instanceId, queryInfo.getStatus());
                                if (HeatStatus.DELETING.equals(queryInfo.getStatus())) {
                                    if (deletePollTimeout <= 0) {
                                        logger.error(String.format("%s %s %s %s %s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_TIMEOUT.toString(), cloudOwner, cloudSiteId, tenantId, instanceId, queryInfo.getStatus(), "", "", ErrorCode.AvailabilityError.getValue(), "Rollback: DELETE stack timeout"));
                                        break;
                                    } else {
                                        sleep(deletePollInterval * 1000L);
                                        deletePollTimeout -= deletePollInterval;
                                    }
                                } else if (HeatStatus.NOTFOUND.equals(queryInfo.getStatus())) {
                                    logger.debug("DELETE_COMPLETE for {}", instanceId);
                                    deleted = true;
                                    continue;
                                } else {
                                    // evaluate
                                    break;
                                }
                            } catch (Exception e3) {
                                // Just log this one. We will report the original exception.
                                logger.error(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack: Nested exception rolling back stack: " + e3, "", "", ErrorCode.BusinessProcessError.getValue(), "Create Stack: Nested exception rolling back stack on error on query"));
                            }
                        }
                    } catch (Exception e2) {
                        // Just log this one. We will report the original exception.
                        logger.error(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack: Nested exception rolling back stack: " + e2, "", "", ErrorCode.BusinessProcessError.getValue(), "Create Stack: Nested exception rolling back stack"));
                    }
                }
                // Propagate the original exception from Stack Query.
                me.addContext(CREATE_STACK);
                throw me;
            }
        }
        if (!HeatStatus.CREATED.equals(stackInfo.getStatus())) {
            logger.error(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack error:  Polling complete with non-success status: " + stackInfo.getStatus() + ", " + stackInfo.getStatusMessage(), "", "", ErrorCode.BusinessProcessError.getValue(), "Create Stack error"));
            // Rollback the stack creation, since it is in an indeterminate state.
            if (!backout) {
                logger.warn(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack errored, stack deletion suppressed", "", "", ErrorCode.BusinessProcessError.getValue(), "Create Stack error, stack deletion suppressed"));
            } else {
                try {
                    logger.debug("Create Stack errored - attempting to DELETE stack: " + instanceId);
                    logger.debug("deletePollInterval=" + deletePollInterval + ", deletePollTimeout=" + deletePollTimeout);
                    StackInfo deleteInfo = deleteStack(cloudSiteId, cloudOwner, tenantId, instanceId);
                    boolean deleted = false;
                    while (!deleted) {
                        try {
                            StackInfo queryInfo = queryStack(cloudSiteId, cloudOwner, tenantId, instanceId);
                            logger.debug("Deleting {}, status: {}", instanceId, queryInfo.getStatus());
                            if (HeatStatus.DELETING.equals(queryInfo.getStatus())) {
                                if (deletePollTimeout <= 0) {
                                    logger.error(String.format("%s %s %s %s %s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_TIMEOUT.toString(), cloudOwner, cloudSiteId, tenantId, instanceId, queryInfo.getStatus(), "", "", ErrorCode.AvailabilityError.getValue(), "Rollback: DELETE stack timeout"));
                                    break;
                                } else {
                                    sleep(deletePollInterval * 1000L);
                                    deletePollTimeout -= deletePollInterval;
                                }
                            } else if (HeatStatus.NOTFOUND.equals(queryInfo.getStatus())) {
                                logger.debug("DELETE_COMPLETE for {}", instanceId);
                                deleted = true;
                                continue;
                            } else {
                                // got a status other than DELETE_IN_PROGRESS or DELETE_COMPLETE - so break and
                                // evaluate
                                logger.warn(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack errored, stack deletion FAILED", "", "", ErrorCode.BusinessProcessError.getValue(), "Create Stack error, stack deletion FAILED"));
                                logger.debug("Stack deletion FAILED on a rollback of a create - " + instanceId + ", status=" + queryInfo.getStatus() + ", reason=" + queryInfo.getStatusMessage());
                                break;
                            }
                        } catch (MsoException me2) {
                            // Just log this one. We will report the original exception.
                            logger.debug("Exception thrown trying to delete " + instanceId + " on a create->rollback: " + me2.getContextMessage(), me2);
                            logger.warn(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack errored, then stack deletion FAILED - exception thrown", "", "", ErrorCode.BusinessProcessError.getValue(), me2.getContextMessage()));
                        }
                    }
                    StringBuilder errorContextMessage;
                    if (createTimedOut) {
                        errorContextMessage = new StringBuilder("Stack Creation Timeout");
                    } else {
                        errorContextMessage = stackErrorStatusReason;
                    }
                    if (deleted) {
                        errorContextMessage.append(" - stack successfully deleted");
                    } else {
                        errorContextMessage.append(" - encountered an error trying to delete the stack");
                    }
                } catch (MsoException e2) {
                    // shouldn't happen - but handle
                    logger.error(String.format("%s %s %s %s %d %s", MessageEnum.RA_CREATE_STACK_ERR.toString(), "Create Stack: Nested exception rolling back stack: " + e2, "", "", ErrorCode.BusinessProcessError.getValue(), "Exception in Create Stack: rolling back stack"));
                }
            }
            MsoOpenstackException me = new MsoOpenstackException(0, "", stackErrorStatusReason.toString());
            me.addContext(CREATE_STACK);
            throw me;
        }
    } else {
        // Get initial status, since it will have been null after the create.
        stackInfo = queryStack(cloudSiteId, cloudOwner, tenantId, instanceId);
        logger.debug("Multicloud stack query status is: {}", stackInfo.getStatus());
    }
    return stackInfo;
}
Also used : MsoException(org.onap.so.openstack.exceptions.MsoException) StackInfo(org.onap.so.openstack.beans.StackInfo) MsoAdapterException(org.onap.so.openstack.exceptions.MsoAdapterException) VduException(org.onap.so.adapters.vdu.VduException) MsoOpenstackException(org.onap.so.openstack.exceptions.MsoOpenstackException) MalformedURLException(java.net.MalformedURLException) UriBuilderException(javax.ws.rs.core.UriBuilderException) MsoException(org.onap.so.openstack.exceptions.MsoException) MsoOpenstackException(org.onap.so.openstack.exceptions.MsoOpenstackException)

Example 22 with StackInfo

use of org.onap.so.openstack.beans.StackInfo in project so by onap.

the class MsoMulticloudUtils method createStack.

/**
 ****************************************************************************
 *
 * Methods (and associated utilities) to implement the VduPlugin interface
 *
 ******************************************************************************
 */
/**
 * Create a new Stack in the specified cloud location and tenant. The Heat template and parameter map are passed in
 * as arguments, along with the cloud access credentials. It is expected that parameters have been validated and
 * contain at minimum the required parameters for the given template with no extra (undefined) parameters..
 *
 * The Stack name supplied by the caller must be unique in the scope of this tenant. However, it should also be
 * globally unique, as it will be the identifier for the resource going forward in Inventory. This latter is managed
 * by the higher levels invoking this function.
 *
 * The caller may choose to let this function poll Openstack for completion of the stack creation, or may handle
 * polling itself via separate calls to query the status. In either case, a StackInfo object will be returned
 * containing the current status. When polling is enabled, a status of CREATED is expected. When not polling, a
 * status of BUILDING is expected.
 *
 * An error will be thrown if the requested Stack already exists in the specified Tenant and Cloud.
 *
 * For 1510 - add "environment", "files" (nested templates), and "heatFiles" (get_files) as parameters for
 * createStack. If environment is non-null, it will be added to the stack. The nested templates and get_file entries
 * both end up being added to the "files" on the stack. We must combine them before we add them to the stack if
 * they're both non-null.
 *
 * @param cloudSiteId The cloud (may be a region) in which to create the stack
 * @param cloudOwner the cloud owner of the cloud site in which to create the stack
 * @param tenantId The Openstack ID of the tenant in which to create the Stack
 * @param stackName The name of the stack to create
 * @param heatTemplate The Heat template
 * @param stackInputs A map of key/value inputs
 * @param pollForCompletion Indicator that polling should be handled in Java vs. in the client
 * @param environment An optional yaml-format string to specify environmental parameters
 * @param files a Map<String, Object> that lists the child template IDs (file is the string, object is an int of
 *        Template id)
 * @param heatFiles a Map<String, Object> that lists the get_file entries (fileName, fileBody)
 * @param backout Do not delete stack on create Failure - defaulted to True
 * @return A StackInfo object
 * @throws MsoOpenstackException Thrown if the Openstack API call returns an exception.
 */
@SuppressWarnings("unchecked")
@Override
public StackInfo createStack(String cloudSiteId, String cloudOwner, String tenantId, String stackName, VduModelInfo vduModel, String heatTemplate, Map<String, ?> stackInputs, boolean pollForCompletion, int timeoutMinutes, String environment, Map<String, Object> files, Map<String, Object> heatFiles, boolean backout, boolean failIfExists) throws MsoException {
    logger.trace("Started MsoMulticloudUtils.createStack");
    // Get the directives, if present.
    String oofDirectives = "{}";
    String sdncDirectives = "{}";
    String userDirectives = "{}";
    String genericVnfId = "";
    String vfModuleId = "";
    String templateType = "";
    for (String key : MULTICLOUD_INPUTS) {
        if (!stackInputs.isEmpty() && stackInputs.containsKey(key)) {
            if (OOF_DIRECTIVES.equals(key)) {
                oofDirectives = (String) stackInputs.get(key);
            }
            if (SDNC_DIRECTIVES.equals(key)) {
                sdncDirectives = (String) stackInputs.get(key);
            }
            if (USER_DIRECTIVES.equals(key)) {
                userDirectives = (String) stackInputs.get(key);
            }
            if (TEMPLATE_TYPE.equals(key)) {
                templateType = (String) stackInputs.get(key);
            }
            if (logger.isDebugEnabled()) {
                logger.debug(String.format("Found %s: %s", key, stackInputs.get(key)));
            }
            stackInputs.remove(key);
        }
    }
    if (!stackInputs.isEmpty() && stackInputs.containsKey(VF_MODULE_ID)) {
        vfModuleId = (String) stackInputs.get(VF_MODULE_ID);
    }
    if (!stackInputs.isEmpty() && stackInputs.containsKey(VNF_ID)) {
        genericVnfId = (String) stackInputs.get(VNF_ID);
    }
    // create the multicloud payload
    CreateStackParam stack = createStackParam(stackName, heatTemplate, stackInputs, timeoutMinutes, environment, files, heatFiles);
    MulticloudRequest multicloudRequest = new MulticloudRequest();
    multicloudRequest.setGenericVnfId(genericVnfId);
    multicloudRequest.setVfModuleId(vfModuleId);
    multicloudRequest.setVfModuleModelInvariantId(vduModel.getModelInvariantUUID());
    multicloudRequest.setVfModuleModelVersionId(vduModel.getModelUUID());
    multicloudRequest.setVfModuleModelCustomizationId(vduModel.getModelCustomizationUUID());
    multicloudRequest.setTemplateType(templateType);
    multicloudRequest.setTemplateData(stack);
    multicloudRequest.setOofDirectives(getDirectiveNode(oofDirectives));
    multicloudRequest.setSdncDirectives(getDirectiveNode(sdncDirectives));
    multicloudRequest.setUserDirectives(getDirectiveNode(userDirectives));
    if (logger.isDebugEnabled()) {
        logger.debug(String.format("Multicloud Request is: %s", multicloudRequest.toString()));
    }
    String multicloudEndpoint = getMulticloudEndpoint(cloudSiteId, cloudOwner, null, false);
    RestClient multicloudClient = getMulticloudClient(multicloudEndpoint, tenantId);
    if (multicloudClient == null) {
        MsoOpenstackException me = new MsoOpenstackException(0, "", "Multicloud client could not be initialized");
        me.addContext(CREATE_STACK);
        throw me;
    }
    Response response = multicloudClient.post(multicloudRequest);
    MulticloudCreateResponse multicloudResponseBody = null;
    if (response.hasEntity()) {
        multicloudResponseBody = getCreateBody((java.io.InputStream) response.getEntity());
    }
    if (response.getStatus() == Response.Status.CREATED.getStatusCode() && multicloudResponseBody != null) {
        String canonicalName = stackName + "/";
        if (multicloudResponseBody != null) {
            canonicalName = canonicalName + multicloudResponseBody.getWorkloadId();
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Multicloud Create Response Body: {}", multicloudResponseBody);
        }
        StackInfo stackStatus = getStackStatus(cloudSiteId, cloudOwner, tenantId, canonicalName, pollForCompletion, timeoutMinutes, backout);
        if (HeatStatus.CREATED.equals(stackStatus.getStatus())) {
            multicloudAaiUpdate(cloudSiteId, cloudOwner, tenantId, genericVnfId, vfModuleId, canonicalName, pollForCompletion, timeoutMinutes);
        }
        return stackStatus;
    }
    StringBuilder stackErrorStatusReason = new StringBuilder(response.getStatusInfo().getReasonPhrase());
    if (null != multicloudResponseBody) {
        stackErrorStatusReason.append(multicloudResponseBody.toString());
    }
    MsoOpenstackException me = new MsoOpenstackException(0, "", stackErrorStatusReason.toString());
    me.addContext(CREATE_STACK);
    throw me;
}
Also used : Response(javax.ws.rs.core.Response) RestClient(org.onap.so.client.RestClient) CreateStackParam(com.woorea.openstack.heat.model.CreateStackParam) StackInfo(org.onap.so.openstack.beans.StackInfo) MsoOpenstackException(org.onap.so.openstack.exceptions.MsoOpenstackException)

Example 23 with StackInfo

use of org.onap.so.openstack.beans.StackInfo in project so by onap.

the class MsoMulticloudUtils method queryStackForOutputs.

@Override
public Map<String, Object> queryStackForOutputs(String cloudSiteId, String cloudOwner, String tenantId, String stackName) throws MsoException {
    logger.debug("MsoHeatUtils.queryStackForOutputs)");
    StackInfo heatStack = this.queryStack(cloudSiteId, cloudOwner, tenantId, stackName);
    if (heatStack == null || heatStack.getStatus() == HeatStatus.NOTFOUND) {
        return null;
    }
    return heatStack.getOutputs();
}
Also used : StackInfo(org.onap.so.openstack.beans.StackInfo)

Example 24 with StackInfo

use of org.onap.so.openstack.beans.StackInfo in project so by onap.

the class MsoMulticloudUtils method multicloudAaiUpdate.

private void multicloudAaiUpdate(String cloudSiteId, String cloudOwner, String tenantId, String genericVnfId, String vfModuleId, String workloadId, boolean pollForCompletion, int timeoutMinutes) {
    String stackId = null;
    int offset = workloadId.indexOf('/');
    if (offset > 0 && offset < (workloadId.length() - 1)) {
        stackId = workloadId.substring(offset + 1);
    } else {
        stackId = workloadId;
    }
    MulticloudRequest multicloudRequest = new MulticloudRequest();
    multicloudRequest.setGenericVnfId(genericVnfId);
    multicloudRequest.setVfModuleId(vfModuleId);
    String multicloudEndpoint = getMulticloudEndpoint(cloudSiteId, cloudOwner, stackId, false);
    RestClient multicloudClient = getMulticloudClient(multicloudEndpoint, tenantId);
    if (multicloudClient == null) {
        if (logger.isDebugEnabled())
            logger.debug("Multicloud client could not be initialized");
        return;
    }
    Response response = multicloudClient.post(multicloudRequest);
    if (response.getStatus() != Response.Status.ACCEPTED.getStatusCode()) {
        if (logger.isDebugEnabled())
            logger.debug("Multicloud AAI update request failed: {} {}", response.getStatus(), response.getStatusInfo());
        return;
    }
    if (!pollForCompletion) {
        return;
    }
    int updatePollInterval = Integer.parseInt(this.environment.getProperty(createPollIntervalProp, CREATE_POLL_INTERVAL_DEFAULT));
    int pollTimeout = (timeoutMinutes * 60) + updatePollInterval;
    boolean updateTimedOut = false;
    logger.debug("updatePollInterval={}, pollTimeout={}", updatePollInterval, pollTimeout);
    StackInfo stackInfo = null;
    while (true) {
        try {
            stackInfo = queryStack(cloudSiteId, cloudOwner, tenantId, workloadId);
            if (logger.isDebugEnabled())
                logger.debug("{} ({})", stackInfo.getStatus(), workloadId);
            if (HeatStatus.UPDATING.equals(stackInfo.getStatus())) {
                if (pollTimeout <= 0) {
                    // in the Openstack (multicloud?) call.
                    if (logger.isDebugEnabled())
                        logger.debug("Multicloud AAI update timeout failure: {} {} {} {}", cloudOwner, cloudSiteId, tenantId, workloadId);
                    updateTimedOut = true;
                    break;
                }
                sleep(updatePollInterval * 1000L);
                pollTimeout -= updatePollInterval;
                if (logger.isDebugEnabled())
                    logger.debug("pollTimeout remaining: {}", pollTimeout);
            } else {
                break;
            }
        } catch (MsoException me) {
            if (logger.isDebugEnabled())
                logger.debug("Multicloud AAI update exception: {} {} {} {}", cloudOwner, cloudSiteId, tenantId, workloadId, me);
            return;
        }
    }
    if (updateTimedOut) {
        if (logger.isDebugEnabled())
            logger.debug("Multicloud AAI update request failed: {} {}", response.getStatus(), response.getStatusInfo());
    } else if (!HeatStatus.UPDATED.equals(stackInfo.getStatus())) {
        if (logger.isDebugEnabled())
            logger.debug("Multicloud AAI update request failed: {} {}", response.getStatus(), response.getStatusInfo());
    } else {
        if (logger.isDebugEnabled())
            logger.debug("Multicloud AAI update successful: {} {}", response.getStatus(), response.getStatusInfo());
    }
}
Also used : Response(javax.ws.rs.core.Response) MsoException(org.onap.so.openstack.exceptions.MsoException) RestClient(org.onap.so.client.RestClient) StackInfo(org.onap.so.openstack.beans.StackInfo)

Example 25 with StackInfo

use of org.onap.so.openstack.beans.StackInfo in project so by onap.

the class MsoHeatUtils method instantiateVdu.

/**
 *****************************************************************************
 *
 * Methods (and associated utilities) to implement the VduPlugin interface
 *
 ******************************************************************************
 */
/**
 * VduPlugin interface for instantiate function.
 *
 * Translate the VduPlugin parameters to the corresponding 'createStack' parameters, and then invoke the existing
 * function.
 */
@Override
public VduInstance instantiateVdu(CloudInfo cloudInfo, String instanceName, Map<String, Object> inputs, VduModelInfo vduModel, boolean rollbackOnFailure) throws VduException {
    String cloudSiteId = cloudInfo.getCloudSiteId();
    String cloudOwner = cloudInfo.getCloudOwner();
    String tenantId = cloudInfo.getTenantId();
    // Translate the VDU ModelInformation structure to that which is needed for
    // creating the Heat stack. Loop through the artifacts, looking specifically
    // for MAIN_TEMPLATE and ENVIRONMENT. Any other artifact will
    // be attached as a FILE.
    String heatTemplate = null;
    Map<String, Object> nestedTemplates = new HashMap<>();
    Map<String, Object> files = new HashMap<>();
    String heatEnvironment = null;
    for (VduArtifact vduArtifact : vduModel.getArtifacts()) {
        if (vduArtifact.getType() == ArtifactType.MAIN_TEMPLATE) {
            heatTemplate = new String(vduArtifact.getContent());
        } else if (vduArtifact.getType() == ArtifactType.NESTED_TEMPLATE) {
            nestedTemplates.put(vduArtifact.getName(), new String(vduArtifact.getContent()));
        } else if (vduArtifact.getType() == ArtifactType.ENVIRONMENT) {
            heatEnvironment = new String(vduArtifact.getContent());
        }
    }
    try {
        StackInfo stackInfo = createStack(cloudSiteId, cloudOwner, tenantId, instanceName, vduModel, heatTemplate, // poll
        inputs, // poll
        true, // completion
        vduModel.getTimeoutMinutes(), heatEnvironment, nestedTemplates, files, rollbackOnFailure, false);
        // Populate a vduInstance from the StackInfo
        return stackInfoToVduInstance(stackInfo);
    } catch (Exception e) {
        throw new VduException("MsoHeatUtils (instantiateVDU): createStack Exception", e);
    }
}
Also used : HashMap(java.util.HashMap) StackInfo(org.onap.so.openstack.beans.StackInfo) VduArtifact(org.onap.so.adapters.vdu.VduArtifact) VduException(org.onap.so.adapters.vdu.VduException) OpenStackConnectException(com.woorea.openstack.base.client.OpenStackConnectException) OpenStackResponseException(com.woorea.openstack.base.client.OpenStackResponseException) MsoException(org.onap.so.openstack.exceptions.MsoException) MsoOpenstackException(org.onap.so.openstack.exceptions.MsoOpenstackException) IOException(java.io.IOException) HttpClientErrorException(org.springframework.web.client.HttpClientErrorException) VduException(org.onap.so.adapters.vdu.VduException)

Aggregations

StackInfo (org.onap.so.openstack.beans.StackInfo)38 MsoException (org.onap.so.openstack.exceptions.MsoException)17 HashMap (java.util.HashMap)11 Test (org.junit.Test)11 Stack (com.woorea.openstack.heat.model.Stack)9 CloudSite (org.onap.so.db.catalog.beans.CloudSite)8 MsoOpenstackException (org.onap.so.openstack.exceptions.MsoOpenstackException)8 VduException (org.onap.so.adapters.vdu.VduException)7 BaseTest (org.onap.so.BaseTest)6 MsoAdapterException (org.onap.so.openstack.exceptions.MsoAdapterException)6 Heat (com.woorea.openstack.heat.Heat)4 MalformedURLException (java.net.MalformedURLException)4 Response (javax.ws.rs.core.Response)4 UriBuilderException (javax.ws.rs.core.UriBuilderException)4 RestClient (org.onap.so.client.RestClient)4 HeatTemplate (org.onap.so.db.catalog.beans.HeatTemplate)4 StackInfoMapper (org.onap.so.openstack.mappers.StackInfoMapper)4 OpenStackConnectException (com.woorea.openstack.base.client.OpenStackConnectException)3 OpenStackRequest (com.woorea.openstack.base.client.OpenStackRequest)3 OpenStackResponseException (com.woorea.openstack.base.client.OpenStackResponseException)3