@Override public boolean apply(Allocation allocInfo) throws MetadataException, AuthException, VerificationException { RunInstancesType msg = allocInfo.getRequest(); String imageId = msg.getImageId(); VmType vmType = allocInfo.getVmType(); try { BootableSet bootSet = Emis.newBootableSet(imageId); allocInfo.setBootableSet(bootSet); // Add (1024L * 1024L * 10) to handle NTFS min requirements. if (!bootSet.isBlockStorage()) { if (Platform.windows.equals(bootSet.getMachine().getPlatform()) && bootSet.getMachine().getImageSizeBytes() > ((1024L * 1024L * 1024L * vmType.getDisk()) + (1024L * 1024L * 10))) { throw new ImageInstanceTypeVerificationException( "Unable to run instance " + bootSet.getMachine().getDisplayName() + " in which the size " + bootSet.getMachine().getImageSizeBytes() + " bytes of the instance is greater than the vmType " + vmType.getDisplayName() + " size " + vmType.getDisk() + " GB."); } else if (bootSet.getMachine().getImageSizeBytes() > ((1024L * 1024L * 1024L * vmType.getDisk()))) { throw new ImageInstanceTypeVerificationException( "Unable to run instance " + bootSet.getMachine().getDisplayName() + " in which the size " + bootSet.getMachine().getImageSizeBytes() + " bytes of the instance is greater than the vmType " + vmType.getDisplayName() + " size " + vmType.getDisk() + " GB."); } } } catch (VerificationException e) { throw e; } catch (MetadataException ex) { LOG.error(ex); throw ex; } catch (RuntimeException ex) { LOG.error(ex); throw new VerificationException( "Failed to verify references for request: " + msg.toSimpleString() + " because of: " + ex.getMessage(), ex); } return true; }
public static Allocation start(final VmInstance vm) { BootableSet bootSet = Emis.recreateBootableSet(vm); return new Allocation( vm.getReservationId(), vm.getInstanceId(), vm.getInstanceUuid(), vm.getUserData(), vm.getExpiration(), vm.lookupPartition(), vm.getKeyPair(), bootSet, vm.getVmType(), vm.getNetworkGroups(), vm.isUsePrivateAddressing(), vm.getMonitoring(), vm.getClientToken(), vm.getIamInstanceProfileArn(), vm.getIamInstanceProfileId(), vm.getIamRoleArn()); }