private CloudSpace toCloudSpace(Map<String, Object> resource) { return resourceMapper.mapResource(resource, CloudSpace.class); }
@SuppressWarnings("unchecked") private CloudServiceInstance mapServiceInstanceResource(Map<String, Object> resource) { CloudServiceInstance serviceInstance = new CloudServiceInstance(getV2Meta(resource), getNameOfV2Resource(resource)); serviceInstance.setType(getAttributeOfV2Resource(resource, "type", String.class)); serviceInstance.setDashboardUrl(getAttributeOfV2Resource(resource, "dashboard_url", String.class)); serviceInstance.setCredentials(getAttributeOfV2Resource(resource, "credentials", Map.class)); Map<String, Object> servicePlanResource = getEmbeddedResource(resource, "service_plan"); if (servicePlanResource != null) { serviceInstance.setServicePlan(mapServicePlanResource(servicePlanResource)); } CloudService service = mapServiceResource(resource); serviceInstance.setService(service); List<Map<String, Object>> bindingsResource = getEmbeddedResourceList(getEntity(resource), "service_bindings"); List<CloudServiceBinding> bindings = new ArrayList<>(bindingsResource.size()); for (Map<String, Object> bindingResource : bindingsResource) { bindings.add(mapServiceBinding(bindingResource)); } serviceInstance.setBindings(bindings); return serviceInstance; }
private CloudSecurityGroup mapApplicationSecurityGroupResource(Map<String, Object> resource) { return new CloudSecurityGroup(getV2Meta(resource), getNameOfV2Resource(resource), getSecurityGroupRules(resource), getAttributeOfV2Resource(resource, "running_default", Boolean.class), getAttributeOfV2Resource(resource, "staging_default", Boolean.class)); }
private CloudQuota mapQuotaResource(Map<String, Object> resource) { Boolean nonBasicServicesAllowed = getAttributeOfV2Resource(resource, "non_basic_services_allowed", Boolean.class); int totalServices = getAttributeOfV2Resource(resource, "total_services", Integer.class); int totalRoutes = getAttributeOfV2Resource(resource, "total_routes", Integer.class); long memoryLimit = getAttributeOfV2Resource(resource, "memory_limit", Long.class); return new CloudQuota(getV2Meta(resource), getNameOfV2Resource(resource), nonBasicServicesAllowed, totalServices, totalRoutes, memoryLimit); }
private CloudServicePlan mapServicePlanResource(Map<String, Object> servicePlanResource) { Boolean publicPlan = getAttributeOfV2Resource(servicePlanResource, "public", Boolean.class); return new CloudServicePlan(getV2Meta(servicePlanResource), getAttributeOfV2Resource(servicePlanResource, "name", String.class), getAttributeOfV2Resource(servicePlanResource, "description", String.class), getAttributeOfV2Resource(servicePlanResource, "free", Boolean.class), publicPlan == null ? true : publicPlan, getAttributeOfV2Resource(servicePlanResource, "extra", String.class), getAttributeOfV2Resource(servicePlanResource, "unique_id", String.class)); }
private CloudSecurityGroup mapApplicationSecurityGroupResource(Map<String, Object> resource) { return new CloudSecurityGroup(getMeta(resource), getNameOfResource(resource), getSecurityGroupRules(resource), getEntityAttribute(resource, "running_default", Boolean.class), getEntityAttribute(resource, "staging_default", Boolean.class)); }
@SuppressWarnings("unchecked") public <T> T mapResource(Map<String, Object> resource, Class<T> targetClass) { if (targetClass == CloudSpace.class) { return (T) mapSpaceResource(resource); return (T) mapOrganizationResource(resource); return (T) mapDomainResource(resource); return (T) mapRouteResource(resource); return (T) mapApplicationResource(resource); return (T) mapEventResource(resource); return (T) mapTaskResource(resource); return (T) mapServiceResource(resource); return (T) mapServiceInstanceResource(resource); return (T) mapServiceOfferingResource(resource); return (T) mapServiceKeyResource(resource); return (T) mapServiceBrokerResource(resource); return (T) mapStackResource(resource); return (T) mapQuotaResource(resource);
@SuppressWarnings("unchecked") public <T> T mapResource(Map<String, Object> resource, Class<T> targetClass) { if (targetClass == CloudSpace.class) { return (T) mapSpaceResource(resource); return (T) mapOrganizationResource(resource); return (T) mapDomainResource(resource); return (T) mapRouteResource(resource); return (T) mapApplicationResource(resource); return (T) mapEventResource(resource); return (T) mapServiceResource(resource); return (T) mapServiceInstanceResource(resource); return (T) mapServiceOfferingResource(resource); return (T) mapServiceBrokerResource(resource); return (T) mapStackResource(resource); return (T) mapQuotaResource(resource); return (T) mapApplicationSecurityGroupResource(resource); return (T) mapJobResource(resource);
@SuppressWarnings("unchecked") private CloudServiceInstance mapServiceInstanceResource(Map<String, Object> resource) { CloudServiceInstance serviceInstance = new CloudServiceInstance(getMeta(resource), getNameOfResource(resource)); serviceInstance.setType(getEntityAttribute(resource, "type", String.class)); serviceInstance.setDashboardUrl(getEntityAttribute(resource, "dashboard_url", String.class)); serviceInstance.setCredentials(getEntityAttribute(resource, "credentials", Map.class)); Map<String, Object> servicePlanResource = getEmbeddedResource(resource, "service_plan"); serviceInstance.setServicePlan(mapServicePlanResource(servicePlanResource)); CloudService service = mapServiceResource(resource); serviceInstance.setService(service); List<Map<String, Object>> bindingsResource = getEmbeddedResourceList(getEntity(resource), "service_bindings"); List<CloudServiceBinding> bindings = new ArrayList<>(bindingsResource.size()); for (Map<String, Object> bindingResource : bindingsResource) { bindings.add(mapServiceBinding(bindingResource)); } serviceInstance.setBindings(bindings); return serviceInstance; }
@SuppressWarnings({ "unchecked", "rawtypes" }) private CloudApplication mapApplicationResource(Map<String, Object> resource) { CloudApplication app = new CloudApplication(getV2Meta(resource), getNameOfV2Resource(resource)); app.setInstances(getAttributeOfV2Resource(resource, "instances", Integer.class)); app.setServices(new ArrayList<String>()); app.setState(CloudApplication.AppState.valueOf(getAttributeOfV2Resource(resource, "state", String.class))); Integer runningInstancesAttribute = getAttributeOfV2Resource(resource, "running_instances", Integer.class); if (runningInstancesAttribute != null) { app.setRunningInstances(runningInstancesAttribute); String command = getAttributeOfV2Resource(resource, "command", String.class); String buildpack = getAttributeOfV2Resource(resource, "buildpack", String.class); String detectedBuildpack = getAttributeOfV2Resource(resource, "detected_buildpack", String.class); Map<String, Object> stackResource = getEmbeddedResource(resource, "stack"); CloudStack stack = mapStackResource(stackResource); Integer healthCheckTimeout = getAttributeOfV2Resource(resource, "health_check_timeout", Integer.class); String healthCheckType = getAttributeOfV2Resource(resource, "health_check_type", String.class); String healthCheckHttpEndpoint = getAttributeOfV2Resource(resource, "health_check_http_endpoint", String.class); Boolean sshEnabled = getAttributeOfV2Resource(resource, "enable_ssh", Boolean.class); String dockerImage = getAttributeOfV2Resource(resource, "docker_image", String.class); Map<String, String> dockerCredentials = getAttributeOfV2Resource(resource, "docker_credentials", Map.class); DockerInfo dockerInfo = createDockerInfo(dockerImage, dockerCredentials); String stateAsString = getAttributeOfV2Resource(resource, "package_state", String.class); if (stateAsString != null) { PackageState packageState = PackageState.valueOf(stateAsString); String stagingFailedDescription = getAttributeOfV2Resource(resource, "staging_failed_description", String.class); app.setStagingError(stagingFailedDescription);
private CloudServiceOffering mapServiceOfferingResource(Map<String, Object> resource) { CloudServiceOffering cloudServiceOffering = new CloudServiceOffering(getV2Meta(resource), getAttributeOfV2Resource(resource, "label", String.class), getAttributeOfV2Resource(resource, "provider", String.class), getAttributeOfV2Resource(resource, "version", String.class), getAttributeOfV2Resource(resource, "description", String.class), getAttributeOfV2Resource(resource, "active", Boolean.class), getAttributeOfV2Resource(resource, "bindable", Boolean.class), getAttributeOfV2Resource(resource, "url", String.class), getAttributeOfV2Resource(resource, "info_url", String.class), getAttributeOfV2Resource(resource, "unique_id", String.class), getAttributeOfV2Resource(resource, "extra", String.class), getAttributeOfV2Resource(resource, "documentation_url", String.class)); List<Map<String, Object>> servicePlanList = getEmbeddedResourceList(getEntity(resource), "service_plans"); if (servicePlanList != null) { for (Map<String, Object> servicePlanResource : servicePlanList) { CloudServicePlan servicePlan = mapServicePlanResource(servicePlanResource); servicePlan.setServiceOffering(cloudServiceOffering); cloudServiceOffering.addCloudServicePlan(servicePlan); } } return cloudServiceOffering; }
private CloudOrganization mapOrganizationResource(Map<String, Object> resource) { Boolean billingEnabled = getAttributeOfV2Resource(resource, "billing_enabled", Boolean.class); Map<String, Object> quotaDefinition = getEmbeddedResource(resource, "quota_definition"); CloudQuota quota = null; if (quotaDefinition != null) { quota = mapQuotaResource(quotaDefinition); } return new CloudOrganization(getV2Meta(resource), getNameOfV2Resource(resource), quota, billingEnabled); }
@SuppressWarnings({ "unchecked", "rawtypes" }) private CloudApplication mapApplicationResource(Map<String, Object> resource) { CloudApplication app = new CloudApplication( getMeta(resource), getNameOfResource(resource)); app.setInstances(getEntityAttribute(resource, "instances", Integer.class)); app.setServices(new ArrayList<String>()); app.setState(CloudApplication.AppState.valueOf(getEntityAttribute(resource, "state", String.class))); Integer runningInstancesAttribute = getEntityAttribute(resource, "running_instances", Integer.class); if (runningInstancesAttribute != null) { app.setRunningInstances(runningInstancesAttribute); String command = getEntityAttribute(resource, "command", String.class); String buildpack = getEntityAttribute(resource, "buildpack", String.class); String detectedBuildpack = getEntityAttribute(resource, "detected_buildpack", String.class); Map<String, Object> stackResource = getEmbeddedResource(resource, "stack"); CloudStack stack = mapStackResource(stackResource); Integer healthCheckTimeout = getEntityAttribute(resource, "health_check_timeout", Integer.class); Staging staging = new Staging(command, buildpack, stack.getName(), healthCheckTimeout, detectedBuildpack); app.setStaging(staging); Map<String, Object> spaceResource = getEmbeddedResource(resource, "space"); CloudSpace space = mapSpaceResource(spaceResource); app.setSpace(space); Map envMap = getEntityAttribute(resource, "environment_json", Map.class); if (envMap.size() > 0) { app.setEnv(envMap);
private CloudServiceOffering mapServiceOfferingResource(Map<String, Object> resource) { CloudServiceOffering cloudServiceOffering = new CloudServiceOffering( getMeta(resource), getEntityAttribute(resource, "label", String.class), getEntityAttribute(resource, "provider", String.class), getEntityAttribute(resource, "version", String.class), getEntityAttribute(resource, "description", String.class), getEntityAttribute(resource, "active", Boolean.class), getEntityAttribute(resource, "bindable", Boolean.class), getEntityAttribute(resource, "url", String.class), getEntityAttribute(resource, "info_url", String.class), getEntityAttribute(resource, "unique_id", String.class), getEntityAttribute(resource, "extra", String.class), getEntityAttribute(resource, "documentation_url", String.class)); List<Map<String, Object>> servicePlanList = getEmbeddedResourceList(getEntity(resource), "service_plans"); if (servicePlanList != null) { for (Map<String, Object> servicePlanResource : servicePlanList) { CloudServicePlan servicePlan = mapServicePlanResource(servicePlanResource); servicePlan.setServiceOffering(cloudServiceOffering); cloudServiceOffering.addCloudServicePlan(servicePlan); } } return cloudServiceOffering; }
private CloudOrganization mapOrganizationResource(Map<String, Object> resource) { Boolean billingEnabled = getEntityAttribute(resource, "billing_enabled", Boolean.class); Map<String, Object> quotaDefinition = getEmbeddedResource(resource, "quota_definition"); CloudQuota quota = null; if (quotaDefinition != null) { quota = mapQuotaResource(quotaDefinition); } return new CloudOrganization(getMeta(resource), getNameOfResource(resource), quota, billingEnabled); }
@Override public List<CloudSpace> getSpacesBoundToSecurityGroup(String securityGroupName) { Map<String, Object> urlVars = new HashMap<String, Object>(); // Need to go a few levels out to get the Organization that Spaces needs String urlPath = "/v2/security_groups?q=name:{name}&inline-relations-depth=2"; urlVars.put("name", securityGroupName); List<Map<String, Object>> resourceList = getAllResources(urlPath, urlVars); List<CloudSpace> spaces = new ArrayList<CloudSpace>(); if (resourceList.size() > 0) { Map<String, Object> resource = resourceList.get(0); Map<String, Object> securityGroupResource = CloudEntityResourceMapper.getEntity(resource); List<Map<String, Object>> spaceResources = CloudEntityResourceMapper.getEmbeddedResourceList(securityGroupResource, "spaces"); for(Map<String, Object> spaceResource: spaceResources){ spaces.add(resourceMapper.mapResource(spaceResource, CloudSpace.class)); } }else { throw new IllegalArgumentException("Security group named '" + securityGroupName + "' not found."); } return spaces; }
private CloudRoute mapRouteResource(Map<String, Object> resource) { @SuppressWarnings("unchecked") List<Object> apps = getAttributeOfV2Resource(resource, "apps", List.class); String host = getAttributeOfV2Resource(resource, "host", String.class); CloudDomain domain = mapDomainResource(getEmbeddedResource(resource, "domain")); return new CloudRoute(getV2Meta(resource), host, domain, apps.size()); }
private CloudSpace mapSpaceResource(Map<String, Object> resource) { Map<String, Object> organizationMap = getEmbeddedResource(resource, "organization"); CloudOrganization organization = null; if (organizationMap != null) { organization = mapOrganizationResource(organizationMap); } return new CloudSpace(getV2Meta(resource), getNameOfV2Resource(resource), organization); }
private CloudSpace mapSpaceResource(Map<String, Object> resource) { Map<String, Object> organizationMap = getEmbeddedResource(resource, "organization"); CloudOrganization organization = null; if (organizationMap != null) { organization = mapOrganizationResource(organizationMap); } return new CloudSpace(getMeta(resource), getNameOfResource(resource), organization); }
private CloudRoute mapRouteResource(Map<String, Object> resource) { @SuppressWarnings("unchecked") List<Object> apps = getEntityAttribute(resource, "apps", List.class); String host = getEntityAttribute(resource, "host", String.class); CloudDomain domain = mapDomainResource(getEmbeddedResource(resource, "domain")); return new CloudRoute(getMeta(resource), host, domain, apps.size()); }