Search in sources :

Example 1 with ServiceTemplate

use of net.juniper.contrail.api.types.ServiceTemplate in project cloudstack by apache.

the class ServiceInstanceModel method locateServiceTemplate.

private ServiceTemplate locateServiceTemplate(ModelController controller) {
    ServiceTemplate tmpl;
    try {
        ApiConnector api = controller.getApiAccessor();
        tmpl = (ServiceTemplate) api.findById(ServiceTemplate.class, _templateId);
    } catch (IOException ex) {
        s_logger.warn("service-template read", ex);
        throw new CloudRuntimeException("Unable to create service-template object", ex);
    }
    if (tmpl == null) {
        tmpl = new ServiceTemplate();
        tmpl.setName(_templateName);
        tmpl.setUuid(_templateId);
        ServiceTemplateType props = new ServiceTemplateType("in-network", null, _templateUrl, false, null);
        tmpl.setProperties(props);
        try {
            ApiConnector api = controller.getApiAccessor();
            api.create(tmpl);
        } catch (IOException ex) {
            throw new CloudRuntimeException("Unable to create service-template object", ex);
        }
    }
    return tmpl;
}
Also used : CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) ServiceTemplate(net.juniper.contrail.api.types.ServiceTemplate) ApiConnector(net.juniper.contrail.api.ApiConnector) ServiceTemplateType(net.juniper.contrail.api.types.ServiceTemplateType) IOException(java.io.IOException)

Example 2 with ServiceTemplate

use of net.juniper.contrail.api.types.ServiceTemplate in project cloudstack by apache.

the class ServiceInstanceModel method build.

/**
 * Recreate the model object from the Contrail API which is main for this type of object.
 * @param siObj
 */
public void build(ModelController controller, ServiceInstance siObj) {
    ApiConnector api = controller.getApiAccessor();
    _serviceInstance = siObj;
    _fqName = StringUtils.join(siObj.getQualifiedName(), ':');
    ServiceInstanceType props = siObj.getProperties();
    // TODO: read management network names and cache network objects.
    ObjectReference ref = siObj.getServiceTemplate().get(0);
    if (ref != null) {
        try {
            ServiceTemplate tmpl = (ServiceTemplate) api.findById(ServiceTemplate.class, ref.getUuid());
            _templateId = tmpl.getUuid();
        } catch (IOException ex) {
            s_logger.warn("service-template read", ex);
        }
    }
}
Also used : ServiceInstanceType(net.juniper.contrail.api.types.ServiceInstanceType) ObjectReference(net.juniper.contrail.api.ObjectReference) ApiConnector(net.juniper.contrail.api.ApiConnector) ServiceTemplate(net.juniper.contrail.api.types.ServiceTemplate) IOException(java.io.IOException)

Aggregations

IOException (java.io.IOException)2 ApiConnector (net.juniper.contrail.api.ApiConnector)2 ServiceTemplate (net.juniper.contrail.api.types.ServiceTemplate)2 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)1 ObjectReference (net.juniper.contrail.api.ObjectReference)1 ServiceInstanceType (net.juniper.contrail.api.types.ServiceInstanceType)1 ServiceTemplateType (net.juniper.contrail.api.types.ServiceTemplateType)1