private MachineDetails[] locateManagementMachines() throws CLIStatusException { if (provisioning instanceof ManagementLocator) { final ManagementLocator locator = (ManagementLocator) provisioning; MachineDetails[] mds; try { mds = locator.getExistingManagementServers(); } catch (final CloudProvisioningException e) { throw new CLIStatusException( e, CloudifyErrorMessages.MANAGEMENT_SERVERS_FAILED_TO_READ.getName(), e.getMessage()); } if (mds.length == 0) { throw new CLIStatusException( CloudifyErrorMessages.MANAGEMENT_SERVERS_NOT_LOCATED.getName()); } if (mds.length != this.cloud.getProvider().getNumberOfManagementMachines()) { throw new CLIStatusException( CloudifyErrorMessages.MANAGEMENT_SERVERS_NUMBER_NOT_MATCH.getName(), cloud.getProvider().getNumberOfManagementMachines(), mds.length); } return mds; } else { throw new CLIStatusException( CloudifyErrorMessages.MANAGEMENT_LOCATOR_NOT_SUPPORTED.getName(), this.cloud.getName()); } }
private MachineDetails[] locateManagementMachinesFromFile() throws CLIStatusException { if (provisioning instanceof ManagementLocator) { ObjectMapper mapper = new ObjectMapper(); ControllerDetails[] controllers = null; try { controllers = mapper.readValue( this.existingManagersFile, TypeFactory.arrayType(ControllerDetails.class)); } catch (IOException e) { throw new IllegalArgumentException( "Failed to read managers file: " + this.existingManagersFile.getAbsolutePath() + ". Error was: " + e.getMessage(), e); } final ManagementLocator locator = (ManagementLocator) provisioning; MachineDetails[] mds; try { mds = locator.getExistingManagementServers(controllers); } catch (final CloudProvisioningException e) { throw new CLIStatusException( e, CloudifyErrorMessages.MANAGEMENT_SERVERS_FAILED_TO_READ.getName(), e.getMessage()); } if (mds.length == 0) { throw new CLIStatusException( CloudifyErrorMessages.MANAGEMENT_SERVERS_NOT_LOCATED.getName()); } if (mds.length != this.cloud.getProvider().getNumberOfManagementMachines()) { throw new CLIStatusException( CloudifyErrorMessages.MANAGEMENT_SERVERS_NUMBER_NOT_MATCH.getName(), cloud.getProvider().getNumberOfManagementMachines(), mds.length); } return mds; } else { throw new CLIStatusException( CloudifyErrorMessages.MANAGEMENT_LOCATOR_NOT_SUPPORTED.getName(), this.cloud.getName()); } }