/** * Describe the launch configurations that have been created * * @param configNames the names of the configurations to show, null for all * @return A list of {@link LaunchConfiguration} configs * @throws AutoScalingException wraps checked exceptions */ public List<LaunchConfiguration> describeLaunchConfigurations(List<String> configNames) throws AutoScalingException { Map<String, String> params = new HashMap<String, String>(); if (configNames != null && configNames.size() > 0) { int i = 0; for (String name : configNames) { params.put("LaunchConfigurationNames.member." + (i + 1), name); i++; } } HttpGet method = new HttpGet(); DescribeLaunchConfigurationsResponse response = makeRequestInt( method, "DescribeLaunchConfigurations", params, DescribeLaunchConfigurationsResponse.class); List<com.xerox.amazonws.typica.autoscale.jaxb.LaunchConfiguration> result = response.getDescribeLaunchConfigurationsResult().getLaunchConfigurations().getMembers(); List<LaunchConfiguration> ret = new ArrayList<LaunchConfiguration>(); for (com.xerox.amazonws.typica.autoscale.jaxb.LaunchConfiguration config : result) { LaunchConfiguration newConfig = new LaunchConfiguration(config.getLaunchConfigurationName(), config.getImageId(), 1, 1); newConfig.setKeyName(config.getKeyName()); newConfig.setSecurityGroup(config.getSecurityGroups().getMembers()); newConfig.setUserData(config.getUserData().getBytes()); newConfig.setInstanceType(InstanceType.getTypeFromString(config.getInstanceType())); newConfig.setKernelId(config.getKernelId()); newConfig.setRamdiskId(config.getRamdiskId()); List<BlockDeviceMapping> mappings = new ArrayList<BlockDeviceMapping>(); for (com.xerox.amazonws.typica.autoscale.jaxb.BlockDeviceMapping mapping : config.getBlockDeviceMappings().getMembers()) { mappings.add(new BlockDeviceMapping(mapping.getVirtualName(), mapping.getDeviceName())); } newConfig.setBlockDevicemappings(mappings); ret.add(newConfig); } return ret; }
/** * Create a launch configuration * * @param config the launch configuration * @throws AutoScalingException wraps checked exceptions */ public void createLaunchConfiguration(LaunchConfiguration config) throws AutoScalingException { Map<String, String> params = new HashMap<String, String>(); params.put("LaunchConfigurationName", config.getConfigName()); params.put("ImageId", config.getImageId()); // params.put("MinCount", "" + config.getMinCount()); // params.put("MaxCount", "" + config.getMaxCount()); byte[] userData = config.getUserData(); if (userData != null && userData.length > 0) { params.put("UserData", new String(Base64.encodeBase64(userData))); } params.put("AddressingType", "public"); String keyName = config.getKeyName(); if (keyName != null && !keyName.trim().equals("")) { params.put("KeyName", keyName); } if (config.getSecurityGroup() != null) { for (int i = 0; i < config.getSecurityGroup().size(); i++) { params.put("SecurityGroup." + (i + 1), config.getSecurityGroup().get(i)); } } params.put("InstanceType", config.getInstanceType().getTypeId()); if (config.getAvailabilityZone() != null && !config.getAvailabilityZone().trim().equals("")) { params.put("Placement.AvailabilityZone", config.getAvailabilityZone()); } if (config.getKernelId() != null && !config.getKernelId().trim().equals("")) { params.put("KernelId", config.getKernelId()); } if (config.getRamdiskId() != null && !config.getRamdiskId().trim().equals("")) { params.put("RamdiskId", config.getRamdiskId()); } if (config.getBlockDevicemappings() != null) { for (int i = 0; i < config.getBlockDevicemappings().size(); i++) { BlockDeviceMapping bdm = config.getBlockDevicemappings().get(i); params.put("BlockDeviceMapping." + (i + 1) + ".VirtualName", bdm.getVirtualName()); params.put("BlockDeviceMapping." + (i + 1) + ".DeviceName", bdm.getDeviceName()); } } HttpGet method = new HttpGet(); // CreateLaunchConfigurationResponse response = makeRequestInt( method, "CreateLaunchConfiguration", params, CreateLaunchConfigurationResponse.class); }