List of usage examples for com.amazonaws.services.autoscaling.model CreateLaunchConfigurationRequest setIamInstanceProfile
public void setIamInstanceProfile(String iamInstanceProfile)
The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.
From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public String createLaunchConfig(GroupBean request) throws Exception { CreateLaunchConfigurationRequest configurationRequest = new CreateLaunchConfigurationRequest(); configurationRequest.setImageId(request.getImage_id()); configurationRequest.setKeyName("ops"); String configId = genLaunchConfigId(request.getGroup_name()); configurationRequest.setLaunchConfigurationName(configId); configurationRequest.setAssociatePublicIpAddress( request.getAssign_public_ip() != null && request.getAssign_public_ip()); if (request.getSecurity_group() != null) { configurationRequest.setSecurityGroups(Arrays.asList(request.getSecurity_group())); }//w ww .ja v a 2 s. c o m configurationRequest.setIamInstanceProfile(request.getIam_role()); configurationRequest.setInstanceType(request.getInstance_type()); InstanceMonitoring monitoring = new InstanceMonitoring(); // DO NOT enable detailed instance monitoring monitoring.setEnabled(false); configurationRequest.setInstanceMonitoring(monitoring); configurationRequest.setUserData(request.getUser_data()); aasClient.createLaunchConfiguration(configurationRequest); return configId; }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
private String createLaunchConfigInternal(String groupName, AwsVmBean request, String bidPrice) throws Exception { String launchConfigId = genLaunchConfigId(groupName); CreateLaunchConfigurationRequest configurationRequest = new CreateLaunchConfigurationRequest(); configurationRequest.setImageId(request.getImage()); configurationRequest.setKeyName(vmKeyName); configurationRequest.setLaunchConfigurationName(launchConfigId); configurationRequest.setAssociatePublicIpAddress(request.getAssignPublicIp()); if (request.getSecurityZone() != null) { configurationRequest.setSecurityGroups(Arrays.asList(request.getSecurityZone())); }/*from w w w .j a va 2s .co m*/ if (bidPrice != null) { configurationRequest.setSpotPrice(bidPrice); } if (request.getRole() == null) { configurationRequest.setIamInstanceProfile(String.format(roleTemplate, ownerId, defaultRole)); } else { configurationRequest.setIamInstanceProfile(String.format(roleTemplate, ownerId, request.getRole())); } configurationRequest.setInstanceType(request.getHostType()); InstanceMonitoring monitoring = new InstanceMonitoring(); // DO NOT enable detailed instance monitoring monitoring.setEnabled(false); configurationRequest.setInstanceMonitoring(monitoring); if (StringUtils.isEmpty(request.getRawUserDataString())) { String userData = transformUserDataConfigToString(groupName, request.getUserDataConfigs()); configurationRequest.setUserData(Base64.encodeBase64String(userData.getBytes())); } else { configurationRequest.setUserData(Base64.encodeBase64String(request.getRawUserDataString().getBytes())); } aasClient.createLaunchConfiguration(configurationRequest); return launchConfigId; }
From source file:com.pinterest.clusterservice.cm.AwsVmManager.java
License:Apache License
private String createLaunchConfig(String clusterName, AwsVmBean awsVmBean) throws Exception { try {/*from w w w.j av a2 s . com*/ CreateLaunchConfigurationRequest configRequest = new CreateLaunchConfigurationRequest(); String launchConfigId = genLaunchConfigId(clusterName); configRequest.setLaunchConfigurationName(launchConfigId); configRequest.setKeyName(AWS_VM_KEYNAME); configRequest.setImageId(awsVmBean.getImage()); configRequest.setInstanceType(awsVmBean.getHostType()); configRequest.setSecurityGroups(Arrays.asList(awsVmBean.getSecurityZone())); configRequest.setAssociatePublicIpAddress(awsVmBean.getAssignPublicIp()); String userData = transformUserDataConfigToString(clusterName, awsVmBean.getUserDataConfigs()); configRequest.setUserData(Base64.encodeBase64String(userData.getBytes())); if (awsVmBean.getRole() == null) { configRequest.setIamInstanceProfile(String.format(AWS_ROLE_TEMPLATE, ownerId, AWS_DEFAULT_ROLE)); } else { configRequest.setIamInstanceProfile(String.format(AWS_ROLE_TEMPLATE, ownerId, awsVmBean.getRole())); } configRequest.setInstanceMonitoring(new InstanceMonitoring().withEnabled(false)); aasClient.createLaunchConfiguration(configRequest); return launchConfigId; } catch (AmazonClientException e) { LOG.error(String.format("Failed to create launch config for %s: %s", clusterName, e.getMessage())); throw new Exception( String.format("Failed to create launch config for %s: %s", clusterName, e.getMessage())); } }
From source file:com.pinterest.clusterservice.cm.AwsVmManager.java
License:Apache License
private String updateLaunchConfig(String clusterName, AwsVmBean oldBean, AwsVmBean newBean) throws Exception { try {/*from w w w. j a va 2s . c om*/ CreateLaunchConfigurationRequest configRequest = new CreateLaunchConfigurationRequest(); String launchConfigId = genLaunchConfigId(clusterName); configRequest.setLaunchConfigurationName(launchConfigId); configRequest.setKeyName(AWS_VM_KEYNAME); configRequest.setImageId(newBean.getImage() != null ? newBean.getImage() : oldBean.getImage()); configRequest .setInstanceType(newBean.getHostType() != null ? newBean.getHostType() : oldBean.getHostType()); configRequest.setSecurityGroups(Arrays.asList( newBean.getSecurityZone() != null ? newBean.getSecurityZone() : oldBean.getSecurityZone())); configRequest .setAssociatePublicIpAddress(newBean.getAssignPublicIp() != null ? newBean.getAssignPublicIp() : oldBean.getAssignPublicIp()); String userData; if (newBean.getUserDataConfigs() != null) { userData = transformUserDataConfigToString(clusterName, newBean.getUserDataConfigs()); } else { userData = transformUserDataConfigToString(clusterName, oldBean.getUserDataConfigs()); } configRequest.setUserData(Base64.encodeBase64String(userData.getBytes())); if (newBean.getRole() != null) { configRequest.setIamInstanceProfile(String.format(AWS_ROLE_TEMPLATE, ownerId, newBean.getRole())); } else { configRequest.setIamInstanceProfile(String.format(AWS_ROLE_TEMPLATE, ownerId, oldBean.getRole())); } configRequest.setInstanceMonitoring(new InstanceMonitoring().withEnabled(false)); aasClient.createLaunchConfiguration(configRequest); return launchConfigId; } catch (AmazonClientException e) { LOG.error(String.format("Failed to update launch config for %s: %s", clusterName, e.getMessage())); throw new Exception( String.format("Failed to udpate launch config for %s: %s", clusterName, e.getMessage())); } }