Example usage for com.amazonaws.services.ec2.model DescribeInstanceAttributeRequest setInstanceId

List of usage examples for com.amazonaws.services.ec2.model DescribeInstanceAttributeRequest setInstanceId

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model DescribeInstanceAttributeRequest setInstanceId.

Prototype


public void setInstanceId(String instanceId) 

Source Link

Document

The ID of the instance.

Usage

From source file:org.zalando.stups.fullstop.plugin.RegistryPlugin.java

License:Apache License

private Map getUserData(final CloudTrailEvent event, final String instanceId) {

    AmazonEC2Client ec2Client = cachingClientProvider.getClient(AmazonEC2Client.class,
            event.getEventData().getUserIdentity().getAccountId(),
            Region.getRegion(Regions.fromName(event.getEventData().getAwsRegion())));

    DescribeInstanceAttributeRequest describeInstanceAttributeRequest = new DescribeInstanceAttributeRequest();
    describeInstanceAttributeRequest.setInstanceId(instanceId);
    describeInstanceAttributeRequest.setAttribute(USER_DATA);

    DescribeInstanceAttributeResult describeInstanceAttributeResult;
    try {/*  w  w  w.j  a v a2 s. co m*/
        describeInstanceAttributeResult = ec2Client.describeInstanceAttribute(describeInstanceAttributeRequest);
    } catch (AmazonServiceException e) {
        LOG.error(e.getMessage());
        violationStore
                .save(new ViolationBuilder(format("InstanceId: %s doesn't have any userData.", instanceId))
                        .withEvent(event).build());
        return null;
    }

    String userData = describeInstanceAttributeResult.getInstanceAttribute().getUserData();

    if (userData == null) {
        violationStore
                .save(new ViolationBuilder(format("InstanceId: %s doesn't have any userData.", instanceId))
                        .withEvent(event).build());
        return null;
    }

    byte[] bytesUserData = Base64.decode(userData);
    String decodedUserData = new String(bytesUserData);

    Yaml yaml = new Yaml();

    return (Map) yaml.load(decodedUserData);
}