/** * 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); }
public Request<CreateInstanceRequest> marshall(CreateInstanceRequest createInstanceRequest) { if (createInstanceRequest == null) { throw new AmazonClientException("Invalid argument passed to marshall(...)"); } Request<CreateInstanceRequest> request = new DefaultRequest<CreateInstanceRequest>(createInstanceRequest, "AWSOpsWorks"); String target = "OpsWorks_20130218.CreateInstance"; request.addHeader("X-Amz-Target", target); request.setHttpMethod(HttpMethodName.POST); request.setResourcePath(""); try { StringWriter stringWriter = new StringWriter(); JSONWriter jsonWriter = new JSONWriter(stringWriter); jsonWriter.object(); if (createInstanceRequest.getStackId() != null) { jsonWriter.key("StackId").value(createInstanceRequest.getStackId()); } com.amazonaws.internal.ListWithAutoConstructFlag<String> layerIdsList = (com.amazonaws.internal.ListWithAutoConstructFlag<String>) (createInstanceRequest.getLayerIds()); if (layerIdsList != null && !(layerIdsList.isAutoConstruct() && layerIdsList.isEmpty())) { jsonWriter.key("LayerIds"); jsonWriter.array(); for (String layerIdsListValue : layerIdsList) { if (layerIdsListValue != null) { jsonWriter.value(layerIdsListValue); } } jsonWriter.endArray(); } if (createInstanceRequest.getInstanceType() != null) { jsonWriter.key("InstanceType").value(createInstanceRequest.getInstanceType()); } if (createInstanceRequest.getAutoScalingType() != null) { jsonWriter.key("AutoScalingType").value(createInstanceRequest.getAutoScalingType()); } if (createInstanceRequest.getHostname() != null) { jsonWriter.key("Hostname").value(createInstanceRequest.getHostname()); } if (createInstanceRequest.getOs() != null) { jsonWriter.key("Os").value(createInstanceRequest.getOs()); } if (createInstanceRequest.getAmiId() != null) { jsonWriter.key("AmiId").value(createInstanceRequest.getAmiId()); } if (createInstanceRequest.getSshKeyName() != null) { jsonWriter.key("SshKeyName").value(createInstanceRequest.getSshKeyName()); } if (createInstanceRequest.getAvailabilityZone() != null) { jsonWriter.key("AvailabilityZone").value(createInstanceRequest.getAvailabilityZone()); } if (createInstanceRequest.getVirtualizationType() != null) { jsonWriter.key("VirtualizationType").value(createInstanceRequest.getVirtualizationType()); } if (createInstanceRequest.getSubnetId() != null) { jsonWriter.key("SubnetId").value(createInstanceRequest.getSubnetId()); } if (createInstanceRequest.getArchitecture() != null) { jsonWriter.key("Architecture").value(createInstanceRequest.getArchitecture()); } if (createInstanceRequest.getRootDeviceType() != null) { jsonWriter.key("RootDeviceType").value(createInstanceRequest.getRootDeviceType()); } com.amazonaws.internal.ListWithAutoConstructFlag<BlockDeviceMapping> blockDeviceMappingsList = (com.amazonaws.internal.ListWithAutoConstructFlag<BlockDeviceMapping>) (createInstanceRequest.getBlockDeviceMappings()); if (blockDeviceMappingsList != null && !(blockDeviceMappingsList.isAutoConstruct() && blockDeviceMappingsList.isEmpty())) { jsonWriter.key("BlockDeviceMappings"); jsonWriter.array(); for (BlockDeviceMapping blockDeviceMappingsListValue : blockDeviceMappingsList) { if (blockDeviceMappingsListValue != null) { jsonWriter.object(); if (blockDeviceMappingsListValue.getDeviceName() != null) { jsonWriter.key("DeviceName").value(blockDeviceMappingsListValue.getDeviceName()); } if (blockDeviceMappingsListValue.getNoDevice() != null) { jsonWriter.key("NoDevice").value(blockDeviceMappingsListValue.getNoDevice()); } if (blockDeviceMappingsListValue.getVirtualName() != null) { jsonWriter.key("VirtualName").value(blockDeviceMappingsListValue.getVirtualName()); } EbsBlockDevice ebs = blockDeviceMappingsListValue.getEbs(); if (ebs != null) { jsonWriter.key("Ebs"); jsonWriter.object(); if (ebs.getSnapshotId() != null) { jsonWriter.key("SnapshotId").value(ebs.getSnapshotId()); } if (ebs.getIops() != null) { jsonWriter.key("Iops").value(ebs.getIops()); } if (ebs.getVolumeSize() != null) { jsonWriter.key("VolumeSize").value(ebs.getVolumeSize()); } if (ebs.getVolumeType() != null) { jsonWriter.key("VolumeType").value(ebs.getVolumeType()); } if (ebs.isDeleteOnTermination() != null) { jsonWriter.key("DeleteOnTermination").value(ebs.isDeleteOnTermination()); } jsonWriter.endObject(); } jsonWriter.endObject(); } } jsonWriter.endArray(); } if (createInstanceRequest.isInstallUpdatesOnBoot() != null) { jsonWriter .key("InstallUpdatesOnBoot") .value(createInstanceRequest.isInstallUpdatesOnBoot()); } if (createInstanceRequest.isEbsOptimized() != null) { jsonWriter.key("EbsOptimized").value(createInstanceRequest.isEbsOptimized()); } if (createInstanceRequest.getAgentVersion() != null) { jsonWriter.key("AgentVersion").value(createInstanceRequest.getAgentVersion()); } jsonWriter.endObject(); String snippet = stringWriter.toString(); byte[] content = snippet.getBytes(UTF8); request.setContent(new StringInputStream(snippet)); request.addHeader("Content-Length", Integer.toString(content.length)); request.addHeader("Content-Type", "application/x-amz-json-1.1"); } catch (Throwable t) { throw new AmazonClientException("Unable to marshall request to JSON: " + t.getMessage(), t); } return request; }