use of es.bsc.compss.types.resources.description.CloudInstanceTypeDescription in project compss by bsc-wdc.
the class CloudProviderTest method testCreateOneVMOneResourceSameDescription.
@Test
public void testCreateOneVMOneResourceSameDescription() {
Map<String, String> properties = new HashMap<>();
CloudProvider cp = null;
try {
cp = new CloudProvider(PROVIDER_NAME, 0, RUNTIME_CONNECTOR, null, null, properties);
} catch (Exception e) {
fail("Could not create the Cloud Provider");
return;
}
String imageName = "IMAGE" + (int) (Math.random() * 10000);
CloudImageDescription cid = new CloudImageDescription(imageName, new HashMap<>());
cp.addCloudImage(cid);
String typeName = "TYPE" + (int) (Math.random() * 10000);
float type1Memory = (float) Math.random() * 5;
MethodResourceDescription mrd1 = new MethodResourceDescription();
mrd1.setMemorySize(type1Memory);
CloudInstanceTypeDescription citd = new CloudInstanceTypeDescription(typeName, mrd1);
cp.addInstanceType(citd);
CloudMethodResourceDescription cmrd = new CloudMethodResourceDescription(citd, cid);
ResourceCreationRequest crc = cp.requestResourceCreation(cmrd);
if (cp.getCurrentVMCount() != 1) {
fail("Cloud Provider is not properly accounting the number of requested VMs");
}
List<ResourceCreationRequest> pendingRequests = cp.getPendingRequests();
Set<CloudMethodWorker> workers = cp.getHostedWorkers();
if (!pendingRequests.contains(crc)) {
fail("Cloud Provider is not properly registering the pending creations requests");
}
if (pendingRequests.size() != 1) {
fail("Cloud Provider is not properly registering the pending creations requests");
}
if (!workers.isEmpty()) {
fail("Cloud Provider is not properly registering the hosted workers");
}
String vmName = "VM" + (int) (Math.random() * 1000);
CloudMethodWorker cmw = new CloudMethodWorker(vmName, cp, cmrd, new FakeNode(vmName), 0, 0, 0, 0, new HashMap<>());
CloudMethodResourceDescription granted = new CloudMethodResourceDescription(citd, cid);
cp.confirmedCreation(crc, cmw, granted);
if (cp.getCurrentVMCount() != 1) {
fail("Cloud Provider is not properly accounting the number of requested VMs");
}
pendingRequests = cp.getPendingRequests();
workers = cp.getHostedWorkers();
if (!pendingRequests.isEmpty()) {
fail("Cloud Provider is not properly registering the pending creations requests");
}
if (workers.size() != 1) {
fail("Cloud Provider is not properly registering the hosted workers");
}
if (!workers.contains(cmw)) {
fail("Cloud Provider is not properly registering the hosted workers");
}
}
use of es.bsc.compss.types.resources.description.CloudInstanceTypeDescription in project compss by bsc-wdc.
the class CloudManagerTest method createResourceDescriptionFromProvider.
private CloudMethodResourceDescription createResourceDescriptionFromProvider(CloudProvider cp1) {
CloudImageDescription cid = null;
CloudInstanceTypeDescription citd = null;
for (String imageName : cp1.getAllImageNames()) {
cid = cp1.getImage(imageName);
break;
}
for (String instanceType : cp1.getAllInstanceTypeNames()) {
citd = cp1.getInstanceType(instanceType);
break;
}
return new CloudMethodResourceDescription(citd, cid);
}
use of es.bsc.compss.types.resources.description.CloudInstanceTypeDescription in project compss by bsc-wdc.
the class Converter method getHardwareDescription.
/**
*********************************************************************************************************************
*************************************** COMPSs TO CONN **************************************************************
* *******************************************************************************************************************
*/
/**
* Returns the hardware description
*
* @param cmrd
* @return
*/
public static HardwareDescription getHardwareDescription(CloudMethodResourceDescription cmrd) {
List<Processor> processors = Converter.getConnectorProcessors(cmrd.getProcessors());
int cpuCU = cmrd.getTotalCPUComputingUnits();
int gpuCU = cmrd.getTotalGPUComputingUnits();
int fpgaCU = cmrd.getTotalFPGAComputingUnits();
float memSize = cmrd.getMemorySize();
String memType = cmrd.getMemoryType();
float storageSize = cmrd.getStorageSize();
String storageType = cmrd.getStorageType();
int timeUnit = cmrd.getPriceTimeUnit();
float priceUnit = cmrd.getPricePerUnit();
String imageName = cmrd.getImage().getImageName();
Map<CloudInstanceTypeDescription, int[]> composition = cmrd.getTypeComposition();
String instanceType = null;
for (CloudInstanceTypeDescription type : composition.keySet()) {
instanceType = type.getName();
break;
}
Map<String, String> imageProp = cmrd.getImage().getProperties();
// FIXME Using CPU Computing units, should check all units
return new HardwareDescription(processors, cpuCU, gpuCU, fpgaCU, memSize, memType, storageSize, storageType, timeUnit, priceUnit, imageName, instanceType, imageProp);
}
use of es.bsc.compss.types.resources.description.CloudInstanceTypeDescription in project compss by bsc-wdc.
the class CloudProvider method getResourceDescription.
public CloudMethodResourceDescription getResourceDescription(String instanceTypeName, String imageName) {
CloudMethodResourceDescription result = null;
CloudInstanceTypeDescription type = typeManager.getType(instanceTypeName);
if (type != null) {
CloudImageDescription image = imgManager.getImage(imageName);
if (image != null) {
result = new CloudMethodResourceDescription(type, image);
result.setValue(cost.getMachineCostPerHour(result));
} else {
LOGGER.warn(WARN_NO_VALID_IMAGE);
}
} else {
LOGGER.warn(WARN_NO_VALID_INSTANCE);
}
return result;
}
use of es.bsc.compss.types.resources.description.CloudInstanceTypeDescription in project compss by bsc-wdc.
the class CloudManagerTest method createProvider.
private static CloudProvider createProvider(CloudManager cm) {
String providerName = "Provider" + (int) (Math.random() * 10000);
Map<String, String> properties = new HashMap<>();
CloudProvider cp = null;
try {
cp = cm.registerCloudProvider(providerName, 0, RUNTIME_CONNECTOR, null, null, properties);
} catch (Exception e) {
fail("Could not create the Cloud Provider");
}
String imageName = "IMAGE" + (int) (Math.random() * 10000);
CloudImageDescription cid = new CloudImageDescription(imageName, new HashMap<>());
cp.addCloudImage(cid);
String typeName = "TYPE" + (int) (Math.random() * 10000);
float type1Memory = (float) Math.random() * 5;
MethodResourceDescription mrd1 = new MethodResourceDescription();
mrd1.setMemorySize(type1Memory);
CloudInstanceTypeDescription citd = new CloudInstanceTypeDescription(typeName, mrd1);
cp.addInstanceType(citd);
return cp;
}
Aggregations