Search in sources :

Example 16 with CloudInstanceTypeDescription

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");
    }
}
Also used : HashMap(java.util.HashMap) CloudImageDescription(es.bsc.compss.types.resources.description.CloudImageDescription) CloudMethodResourceDescription(es.bsc.compss.types.resources.description.CloudMethodResourceDescription) FakeNode(es.bsc.compss.types.fake.FakeNode) CloudInstanceTypeDescription(es.bsc.compss.types.resources.description.CloudInstanceTypeDescription) CloudMethodWorker(es.bsc.compss.types.resources.CloudMethodWorker) CloudMethodResourceDescription(es.bsc.compss.types.resources.description.CloudMethodResourceDescription) MethodResourceDescription(es.bsc.compss.types.resources.MethodResourceDescription) Test(org.junit.Test)

Example 17 with CloudInstanceTypeDescription

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);
}
Also used : CloudImageDescription(es.bsc.compss.types.resources.description.CloudImageDescription) CloudInstanceTypeDescription(es.bsc.compss.types.resources.description.CloudInstanceTypeDescription) CloudMethodResourceDescription(es.bsc.compss.types.resources.description.CloudMethodResourceDescription)

Example 18 with CloudInstanceTypeDescription

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);
}
Also used : Processor(es.bsc.conn.types.Processor) HardwareDescription(es.bsc.conn.types.HardwareDescription) CloudInstanceTypeDescription(es.bsc.compss.types.resources.description.CloudInstanceTypeDescription)

Example 19 with CloudInstanceTypeDescription

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;
}
Also used : CloudInstanceTypeDescription(es.bsc.compss.types.resources.description.CloudInstanceTypeDescription) CloudImageDescription(es.bsc.compss.types.resources.description.CloudImageDescription) CloudMethodResourceDescription(es.bsc.compss.types.resources.description.CloudMethodResourceDescription)

Example 20 with CloudInstanceTypeDescription

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;
}
Also used : HashMap(java.util.HashMap) CloudProvider(es.bsc.compss.types.CloudProvider) CloudImageDescription(es.bsc.compss.types.resources.description.CloudImageDescription) CloudInstanceTypeDescription(es.bsc.compss.types.resources.description.CloudInstanceTypeDescription) CloudMethodResourceDescription(es.bsc.compss.types.resources.description.CloudMethodResourceDescription) MethodResourceDescription(es.bsc.compss.types.resources.MethodResourceDescription)

Aggregations

CloudInstanceTypeDescription (es.bsc.compss.types.resources.description.CloudInstanceTypeDescription)39 CloudMethodResourceDescription (es.bsc.compss.types.resources.description.CloudMethodResourceDescription)29 CloudImageDescription (es.bsc.compss.types.resources.description.CloudImageDescription)22 MethodResourceDescription (es.bsc.compss.types.resources.MethodResourceDescription)21 HashMap (java.util.HashMap)21 Test (org.junit.Test)13 CloudMethodWorker (es.bsc.compss.types.resources.CloudMethodWorker)10 CloudProvider (es.bsc.compss.types.CloudProvider)9 FakeNode (es.bsc.compss.types.fake.FakeNode)8 Map (java.util.Map)6 Implementation (es.bsc.compss.types.implementations.Implementation)5 ResourceCreationRequest (es.bsc.compss.types.ResourceCreationRequest)4 MOProfile (es.bsc.compss.scheduler.multiobjective.types.MOProfile)3 JSONObject (org.json.JSONObject)3 es.bsc.compss.types.project.jaxb (es.bsc.compss.types.project.jaxb)2 LinkedList (java.util.LinkedList)2 ConstructConfigurationException (es.bsc.compss.exceptions.ConstructConfigurationException)1 NoResourceAvailableException (es.bsc.compss.exceptions.NoResourceAvailableException)1 ExtendedCloudMethodWorker (es.bsc.compss.types.ExtendedCloudMethodWorker)1 MethodImplementation (es.bsc.compss.types.implementations.MethodImplementation)1