use of alien4cloud.model.orchestrators.locations.LocationResourceTemplate in project alien4cloud by alien4cloud.
the class LocationResourceServiceTest method getResourcesForUnconfiguredLocationShouldReturnEmptyList.
@Test
public void getResourcesForUnconfiguredLocationShouldReturnEmptyList() {
ILocationResourceAccessor accessor = locationResourceService.accessor(UNCONFIGURED_LOCATION_ID);
List<LocationResourceTemplate> resources = accessor.getResources();
Assert.assertEquals(0, resources.size());
}
use of alien4cloud.model.orchestrators.locations.LocationResourceTemplate in project alien4cloud by alien4cloud.
the class LocationResourceServiceTest method getResourcesOfType.
@Test
public void getResourcesOfType() {
ILocationResourceAccessor accessor = locationResourceService.accessor(LOCATION_ID);
List<LocationResourceTemplate> resources = accessor.getResources(CONFIGURED_TYPE);
Assert.assertEquals(TYPE_CONFIGURED_ELEMENTS, resources.size());
}
use of alien4cloud.model.orchestrators.locations.LocationResourceTemplate in project alien4cloud by alien4cloud.
the class LocationResourceService method addResourceTemplate.
private LocationResourceTemplate addResourceTemplate(Location location, String resourceName, String resourceTypeName) {
NodeType resourceType = csarRepoSearchService.getRequiredElementInDependencies(NodeType.class, resourceTypeName, location.getDependencies());
NodeTemplate nodeTemplate = templateBuilder.buildNodeTemplate(location.getDependencies(), resourceType);
LocationResourceTemplate locationResourceTemplate = new LocationResourceTemplate();
locationResourceTemplate.setGenerated(false);
fillAndSaveLocationResourceTemplate(location, resourceName, locationResourceTemplate, resourceType, nodeTemplate);
return locationResourceTemplate;
}
use of alien4cloud.model.orchestrators.locations.LocationResourceTemplate in project alien4cloud by alien4cloud.
the class LocationResourceService method getLocationResourcesFromOrchestrator.
/*
* (non-Javadoc)
*
* @see
* alien4cloud.orchestrators.locations.services.ILocationResourceService#getLocationResourcesFromOrchestrator(alien4cloud.model.orchestrators.locations.
* Location)
*/
@Override
public LocationResources getLocationResourcesFromOrchestrator(Location location) {
LocationResources locationResources = new LocationResources();
Orchestrator orchestrator = orchestratorService.getOrFail(location.getOrchestratorId());
IOrchestratorPlugin orchestratorInstance = orchestratorPluginService.getOrFail(orchestrator.getId());
ILocationConfiguratorPlugin configuratorPlugin = orchestratorInstance.getConfigurator(location.getInfrastructureType());
fillLocationResourceTypes(configuratorPlugin.getResourcesTypes(), locationResources, location.getDependencies());
fillPoliciesLocationResourceTypes(configuratorPlugin.getPoliciesTypes(), locationResources, location.getDependencies());
// add LocationResourceTemplate
List<LocationResourceTemplate> locationResourceTemplates = getResourcesTemplates(location.getId());
setLocationRessource(locationResourceTemplates, locationResources);
// add PolicyLocationResourceTemplate
locationResources.getPolicyTemplates().addAll(getPoliciesResourcesTemplates(location.getId()));
return locationResources;
}
use of alien4cloud.model.orchestrators.locations.LocationResourceTemplate in project alien4cloud by alien4cloud.
the class LocationResourceService method getLocationResources.
/*
* (non-Javadoc)
*
* @see alien4cloud.orchestrators.locations.services.ILocationResourceService#getLocationResources(alien4cloud.model.orchestrators.locations.Location)
*/
@Override
public LocationResources getLocationResources(Location location) {
Orchestrator orchestrator = orchestratorService.get(location.getOrchestratorId());
Optional<LocationResources> locationResourcesFromOrchestrator = Optional.empty();
if (orchestrator != null && orchestratorPluginService.get(orchestrator.getId()) != null) {
locationResourcesFromOrchestrator = Optional.ofNullable(getLocationResourcesFromOrchestrator(location));
}
// Also get resource templates from outside of the orchestrator definition - eg custom resources
List<LocationResourceTemplate> locationResourceTemplates = getResourcesTemplates(location.getId());
LocationResources locationResources = new LocationResources(getLocationResourceTypes(locationResourceTemplates));
// process policies types also
List<PolicyLocationResourceTemplate> policyLocationResourceTemplates = getPoliciesResourcesTemplates(location.getId());
locationResources.addFrom(getPoliciesLocationResourceTypes(policyLocationResourceTemplates));
/*
* If the orchestrator is present, take node types computed from the resources template
* as "Custom resources types". If not, consider this is an orchestrator-free location.
*/
locationResourcesFromOrchestrator.ifPresent(orchestratorResources -> {
locationResources.getCapabilityTypes().putAll(orchestratorResources.getCapabilityTypes());
locationResources.getConfigurationTypes().putAll(orchestratorResources.getConfigurationTypes());
locationResources.getNodeTypes().putAll(orchestratorResources.getNodeTypes());
locationResources.getProvidedTypes().addAll(orchestratorResources.getNodeTypes().keySet());
locationResources.getAllNodeTypes().putAll(orchestratorResources.getAllNodeTypes());
locationResources.getOnDemandTypes().putAll(orchestratorResources.getOnDemandTypes());
locationResources.getPolicyTypes().putAll(orchestratorResources.getPolicyTypes());
});
setLocationRessource(locationResourceTemplates, locationResources);
locationResources.getPolicyTemplates().addAll(policyLocationResourceTemplates);
return locationResources;
}
Aggregations