/** * Creates instances of CloudSim's DatacenterBroker class from a list of customer registers. * * @param customerList a list of customer instances. * @return a map containing names of customers as keys and DatacenterBroker instances as values. * @since 1.0 */ static HashMap<String, DatacenterBroker> createBrokers() { List<CustomerRegistry> customerList = CustomerRegistryBusiness.getListOfCustomers(); HashMap<String, DatacenterBroker> map = new HashMap<String, DatacenterBroker>(); try { for (CustomerRegistry cr : customerList) { UtilizationProfile up = cr.getUtilizationProfile(); String name = cr.getName(); Optional<DatacenterBroker> broker = DATACENTER_BROKER.getExtensionInstanceByName(up.getBrokerPolicyAlias(), name); if (!broker.isPresent()) { Dialog.showErrorMessage( null, format("Error on loading datacenter broker [%s]", up.getBrokerPolicyAlias())); return null; } int brokerId = broker.get().getId(); List<Vm> vmList = createVms(cr.getVmList(), brokerId); if (vmList == null) { return null; } broker.get().submitVmList(vmList); List<Cloudlet> cloudletList = createCloudlets(up, brokerId, new CustomerRegistryDAO().getNumOfVms(cr.getId())); if (cloudletList == null) { return null; } broker.get().submitCloudletList(cloudletList); map.put(cr.getName(), broker.get()); } } catch (IOException | ServiceDeniedException ex) { LOG.error(ex.getMessage(), ex); } return map; }