Search in sources :

Example 1 with MsoTenantNotFound

use of org.onap.so.openstack.exceptions.MsoTenantNotFound in project so by onap.

the class MsoHeatUtils method queryStack.

/**
 * Query for a single stack (by Name) in a tenant. This call will always return a StackInfo object. If the stack
 * does not exist, an "empty" StackInfo will be returned - containing only the stack name and a status of NOTFOUND.
 *
 * @param tenantId The Openstack ID of the tenant in which to query
 * @param cloudSiteId The cloud identifier (may be a region) in which to query
 * @param cloudOwner the cloud owner of the cloud site in which to query
 * @param stackName The name of the stack to query (may be simple or canonical)
 * @return A StackInfo object
 * @throws MsoOpenstackException Thrown if the Openstack API call returns an exception.
 */
public StackInfo queryStack(String cloudSiteId, String cloudOwner, String tenantId, String stackName) throws MsoException {
    logger.debug("Query HEAT stack: {} in tenant {}", stackName, tenantId);
    Heat heatClient = null;
    try {
        heatClient = getHeatClient(cloudSiteId, tenantId);
    } catch (MsoTenantNotFound e) {
        // Tenant doesn't exist, so stack doesn't either
        logger.debug("Tenant with id " + tenantId + "not found.", e);
        return new StackInfo(stackName, HeatStatus.NOTFOUND);
    } catch (MsoException me) {
        // Got an Openstack error. Propagate it
        logger.error("{} {} Openstack Exception on Token request: ", MessageEnum.RA_CONNECTION_EXCEPTION, ErrorCode.AvailabilityError.getValue(), me);
        me.addContext("QueryStack");
        throw me;
    }
    // Query the Stack.
    // An MsoException will propagate transparently to the caller.
    Stack heatStack = queryHeatStack(heatClient, stackName);
    if (heatStack == null) {
        // Stack does not exist. Return a StackInfo with status NOTFOUND
        return new StackInfo(stackName, HeatStatus.NOTFOUND);
    }
    return new StackInfoMapper(heatStack).map();
}
Also used : StackInfoMapper(org.onap.so.openstack.mappers.StackInfoMapper) Heat(com.woorea.openstack.heat.Heat) MsoException(org.onap.so.openstack.exceptions.MsoException) MsoTenantNotFound(org.onap.so.openstack.exceptions.MsoTenantNotFound) StackInfo(org.onap.so.openstack.beans.StackInfo) Stack(com.woorea.openstack.heat.model.Stack)

Aggregations

Heat (com.woorea.openstack.heat.Heat)1 Stack (com.woorea.openstack.heat.model.Stack)1 StackInfo (org.onap.so.openstack.beans.StackInfo)1 MsoException (org.onap.so.openstack.exceptions.MsoException)1 MsoTenantNotFound (org.onap.so.openstack.exceptions.MsoTenantNotFound)1 StackInfoMapper (org.onap.so.openstack.mappers.StackInfoMapper)1