Example usage for com.amazonaws.services.autoscaling.model CreateLaunchConfigurationRequest setUserData

List of usage examples for com.amazonaws.services.autoscaling.model CreateLaunchConfigurationRequest setUserData

Introduction

In this page you can find the example usage for com.amazonaws.services.autoscaling.model CreateLaunchConfigurationRequest setUserData.

Prototype


public void setUserData(String userData) 

Source Link

Document

The Base64-encoded user data to make available to the launched EC2 instances.

Usage

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()));
    }//from   w w  w.j a  v  a2  s.  co 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  ava  2  s.c  o  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 {/* w  ww  .  j a  v  a  2 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 ww.j  a v a  2s  .com*/
        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()));
    }
}