/** * Creates instances of CloudSim's PowerPe class from a host registry. * * @param hr a host registry. * @return a list of PowerPe instances. * @since 1.0 */ static List<Pe> createPes(HostRegistry hr) { List<Pe> list = new ArrayList<Pe>(); for (int i = 0; i < hr.getNumOfPes(); i++) { Optional<PeProvisioner> pp = PE_PROVISIONER.getExtensionInstanceByName(hr.getPeProvisionerAlias(), hr.getMipsPerPe()); if (!pp.isPresent()) { Dialog.showErrorMessage( null, format("Error on loading the PE provisioning policy [%s]", hr.getPeProvisionerAlias())); return null; } list.add(new Pe(i, pp.get())); } return list; }
/** * Creates instances of CloudSim's PowerHost class from a list of host registers. * * @param hostList a list of datacenter registers * @return a list of PowerHost instances. * @since 1.0 */ static List<PowerHost> createHosts(final List<HostRegistry> hostList) { final List<PowerHost> list = new ArrayList<PowerHost>(); int i = 0; for (HostRegistry hr : hostList) { for (int n = 0; n < hr.getAmount(); n++) { List<Pe> peList = createPes(hr); if (peList == null) { return null; } Optional<RamProvisioner> rp = RAM_PROVISIONER.getExtensionInstanceByName(hr.getRamProvisionerAlias(), hr.getRam()); if (!rp.isPresent()) { Dialog.showErrorMessage( null, format("Error on loading the RAM provisioner [%s]", hr.getRamProvisionerAlias())); return null; } Optional<BwProvisioner> bp = BW_PROVISIONER.getExtensionInstanceByName( hr.getBwProvisionerAlias(), (long) hr.getBw()); if (!bp.isPresent()) { Dialog.showErrorMessage( null, format( "Error on loading the bandwidth provisioner [%s]", hr.getBwProvisionerAlias())); return null; } Optional<VmScheduler> vs = VM_SCHEDULER.getExtensionInstanceByName(hr.getSchedulingPolicyAlias(), peList); if (!vs.isPresent()) { Dialog.showErrorMessage( null, format( "Error on loading the VM scheduling policy [%s]", hr.getSchedulingPolicyAlias())); return null; } Optional<PowerModel> pm = POWER_MODEL.getExtensionInstanceByName( hr.getPowerModelAlias(), hr.getMaxPower(), hr.getStaticPowerPercent()); if (!pm.isPresent()) { Dialog.showErrorMessage( null, format("Error on loading the power model [%s]", hr.getPowerModelAlias())); return null; } list.add(new PowerHost(i, rp.get(), bp.get(), hr.getStorage(), peList, vs.get(), pm.get())); i++; } } return list; }