Search in sources :

Example 6 with ServiceDescriptorRestRep

use of com.emc.vipr.model.catalog.ServiceDescriptorRestRep in project coprhd-controller by CoprHD.

the class ServiceCatalog method createService.

public static ServiceDef createService(CatalogServiceRestRep service, String basePath) {
    ServiceDescriptorRestRep descriptor = service.getServiceDescriptor();
    ServiceDef def = new ServiceDef();
    def.id = service.getId().toString();
    def.name = service.getName();
    def.title = service.getTitle();
    def.description = service.getDescription();
    def.roles = descriptor != null ? descriptor.getRoles() : Collections.<String>emptyList();
    def.image = service.getImage();
    def.parentId = getParentId(service.getCatalogCategory());
    def.path = getPath(basePath, def.name);
    return def;
}
Also used : ServiceDescriptorRestRep(com.emc.vipr.model.catalog.ServiceDescriptorRestRep)

Example 7 with ServiceDescriptorRestRep

use of com.emc.vipr.model.catalog.ServiceDescriptorRestRep in project coprhd-controller by CoprHD.

the class Services method showForm.

/**
 * Builds a form for a particular service
 */
public static void showForm(String serviceId) {
    TenantSelector.addRenderArgs();
    boolean isTestWorkflow = false;
    CatalogServiceRestRep service = CatalogServiceUtils.getCatalogService(uri(serviceId));
    if (null == service.getCatalogCategory()) {
        isTestWorkflow = true;
    }
    List<CatalogServiceFieldRestRep> serviceFields = service.getCatalogServiceFields();
    // If serviceDescriptor is null render another template that spells out the problem for the user.
    ServiceDescriptorRestRep serviceDescriptor = service.getServiceDescriptor();
    if (serviceDescriptor == null) {
        corruptedService(service);
    }
    Map<String, Object> fieldOptions = new HashMap<String, Object>();
    // add the breadcrumb
    if (!isTestWorkflow) {
        addBreadCrumbToRenderArgs(service);
    } else {
        addBreadCrumbToRenderArgs(service, Common.reverseRoute(WorkflowBuilder.class, "view"));
    }
    // Mark the service as recently used
    // RecentUtils.usedService(service);
    Map<String, AssetFieldDescriptor> assetFieldDescriptors = ServiceFormUtils.createAssetFieldDescriptors(serviceDescriptor);
    // Calculate default values for all fields
    Map<String, String> defaultValues = getDefaultValues(serviceDescriptor);
    // Calculate asset parameters for any fields that are overridden
    Map<String, String> overriddenValues = getOverriddenValues(service);
    Map<String, String> availableAssets = getAvailableAssets(assetFieldDescriptors, overriddenValues);
    // Load any Asset Options for root fields so they are rendered directly onto the form
    List<ServiceFieldRestRep> allFields = ServiceDescriptorUtils.getAllFieldList(serviceDescriptor.getItems());
    for (ServiceFieldRestRep field : allFields) {
        if (field.isAsset()) {
            // Compute to see if we have all dependencies. We have all dependencies if fieldsWeDependOn is empty
            // or it only contains fields we have in our overridden values.
            AssetFieldDescriptor fieldDescriptor = assetFieldDescriptors.get(field.getName());
            boolean hasAllDependencies = overriddenValues.keySet().containsAll(fieldDescriptor.fieldsWeDependOn);
            boolean isOverridden = overriddenValues.containsKey(field.getName());
            if (hasAllDependencies && !isOverridden) {
                List<AssetOption> options = getAssetOptions(field, availableAssets);
                fieldOptions.put(field.getType() + "-options", options);
                // If a required field is missing any options, display a warning message
                if (options.isEmpty() && field.isRequired() && !field.getType().equalsIgnoreCase("field")) {
                    flash.put("rawWarning", MessagesUtils.get("service.missingAssets", field.getLabel()));
                }
            }
        }
    }
    Gson gson = new Gson();
    String defaultValuesJSON = gson.toJson(defaultValues);
    String assetFieldDescriptorsJSON = gson.toJson(assetFieldDescriptors);
    String overriddenValuesJSON = gson.toJson(overriddenValues);
    boolean showForm = true;
    // Display an error message and don't display the form if an execution window is required but none are defined
    if (Boolean.TRUE.equals(service.isExecutionWindowRequired()) && !hasExecutionWindows()) {
        flash.error(MessagesUtils.get("service.noExecutionWindows"));
        showForm = false;
    }
    renderArgs.data.putAll(new ImmutableMap.Builder<String, Object>().put("service", service).put("serviceFields", serviceFields).put("serviceDescriptor", serviceDescriptor).put("assetFieldDescriptorsJSON", assetFieldDescriptorsJSON).put("defaultValuesJSON", defaultValuesJSON).put("overriddenValuesJSON", overriddenValuesJSON).put("showForm", new Boolean(showForm)).build());
    // Adding to request, as renderArgs can't be dynamically named
    request.current().args.putAll(fieldOptions);
    copyRenderArgsToAngular();
    angularRenderArgs().putAll(fieldOptions);
    angularRenderArgs().putAll(ImmutableMap.of("assetFieldDescriptors", assetFieldDescriptors, "defaultValues", defaultValues, "overriddenValues", overriddenValues));
    render();
}
Also used : AssetOption(com.emc.vipr.model.catalog.AssetOption) HashMap(java.util.HashMap) Gson(com.google.gson.Gson) ImmutableMap(com.google.common.collect.ImmutableMap) CatalogServiceFieldRestRep(com.emc.vipr.model.catalog.CatalogServiceFieldRestRep) ServiceDescriptorRestRep(com.emc.vipr.model.catalog.ServiceDescriptorRestRep) AssetFieldDescriptor(util.ServiceFormUtils.AssetFieldDescriptor) CatalogServiceFieldRestRep(com.emc.vipr.model.catalog.CatalogServiceFieldRestRep) ServiceFieldRestRep(com.emc.vipr.model.catalog.ServiceFieldRestRep) CatalogServiceRestRep(com.emc.vipr.model.catalog.CatalogServiceRestRep)

Example 8 with ServiceDescriptorRestRep

use of com.emc.vipr.model.catalog.ServiceDescriptorRestRep in project coprhd-controller by CoprHD.

the class AssetOptions method getAssetDependencies.

public List<String> getAssetDependencies(String assetType, URI catalogServiceId) {
    CatalogServiceRestRep catalogService = parent.services().get(catalogServiceId);
    ServiceDescriptorRestRep serviceDescriptor = catalogService.getServiceDescriptor();
    return getAssetDependencies(assetType, serviceDescriptor);
}
Also used : ServiceDescriptorRestRep(com.emc.vipr.model.catalog.ServiceDescriptorRestRep) CatalogServiceRestRep(com.emc.vipr.model.catalog.CatalogServiceRestRep)

Example 9 with ServiceDescriptorRestRep

use of com.emc.vipr.model.catalog.ServiceDescriptorRestRep in project coprhd-controller by CoprHD.

the class AssetOptionsApi method dependencies.

public static void dependencies(String asset, String service) {
    // The 'service' may be the baseService or a service ID
    ServiceDescriptorRestRep descriptor;
    if (StringUtils.isEmpty(service)) {
        error(Messages.get("AssetOptionsApi.serviceParameterIsRequired"));
    }
    if (service.startsWith("urn:")) {
        CatalogServiceRestRep catalogService = CatalogServiceUtils.getCatalogService(uri(service));
        descriptor = catalogService.getServiceDescriptor();
    } else {
        descriptor = ServiceDescriptorUtils.getDescriptor(service);
    }
    Set<String> allAssetTypes = ServiceDescriptorUtils.getAllAssetTypes(descriptor);
    List<String> dependencies = calculateAssetDependencies(cleanAssetType(asset), allAssetTypes);
    List<Reference> references = Lists.newArrayList();
    for (String dependency : dependencies) {
        references.add(newAssetOptionsReference(dependency));
    }
    renderApi(references);
}
Also used : ServiceDescriptorRestRep(com.emc.vipr.model.catalog.ServiceDescriptorRestRep) Reference(com.emc.vipr.model.catalog.Reference) ApiMapperUtils.newAssetOptionsReference(util.api.ApiMapperUtils.newAssetOptionsReference) CatalogServiceRestRep(com.emc.vipr.model.catalog.CatalogServiceRestRep)

Example 10 with ServiceDescriptorRestRep

use of com.emc.vipr.model.catalog.ServiceDescriptorRestRep in project coprhd-controller by CoprHD.

the class CatalogApi method serviceDescriptor.

public static void serviceDescriptor(String serviceId) {
    CatalogServiceRestRep service = CatalogServiceUtils.getCatalogService(uri(serviceId));
    ServiceDescriptorRestRep descriptor = service.getServiceDescriptor();
    // Remove any locked fields so user does not see things they cannot change
    for (CatalogServiceFieldRestRep catalogServiceField : service.getCatalogServiceFields()) {
        if (catalogServiceField.getOverride()) {
            ServiceFieldRestRep serviceField = ServiceDescriptorUtils.getField(descriptor, catalogServiceField.getName());
            descriptor.getItems().remove(serviceField);
        }
    }
    renderPrettyJson(descriptor);
}
Also used : ServiceDescriptorRestRep(com.emc.vipr.model.catalog.ServiceDescriptorRestRep) CatalogServiceFieldRestRep(com.emc.vipr.model.catalog.CatalogServiceFieldRestRep) CatalogServiceFieldRestRep(com.emc.vipr.model.catalog.CatalogServiceFieldRestRep) ServiceFieldRestRep(com.emc.vipr.model.catalog.ServiceFieldRestRep) CatalogServiceRestRep(com.emc.vipr.model.catalog.CatalogServiceRestRep)

Aggregations

ServiceDescriptorRestRep (com.emc.vipr.model.catalog.ServiceDescriptorRestRep)14 CatalogServiceRestRep (com.emc.vipr.model.catalog.CatalogServiceRestRep)7 CatalogServiceFieldRestRep (com.emc.vipr.model.catalog.CatalogServiceFieldRestRep)3 ServiceFieldRestRep (com.emc.vipr.model.catalog.ServiceFieldRestRep)3 AssetOption (com.emc.vipr.model.catalog.AssetOption)2 WorkflowServiceDescriptor (com.emc.sa.catalog.WorkflowServiceDescriptor)1 ServiceDescriptor (com.emc.sa.descriptor.ServiceDescriptor)1 TaskUtil (com.emc.vipr.client.core.impl.TaskUtil)1 OrderCreateParam (com.emc.vipr.model.catalog.OrderCreateParam)1 Reference (com.emc.vipr.model.catalog.Reference)1 ServiceDescriptorList (com.emc.vipr.model.catalog.ServiceDescriptorList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 Gson (com.google.gson.Gson)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 GET (javax.ws.rs.GET)1 Path (javax.ws.rs.Path)1 Produces (javax.ws.rs.Produces)1 Util (play.mvc.Util)1