Example usage for com.amazonaws.services.ec2.model DescribeInstanceAttributeResult getInstanceAttribute

List of usage examples for com.amazonaws.services.ec2.model DescribeInstanceAttributeResult getInstanceAttribute

Introduction

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

Prototype


public InstanceAttribute getInstanceAttribute() 

Source Link

Document

Describes an instance attribute.

Usage

From source file:com.cloudera.director.aws.ec2.EC2Provider.java

License:Apache License

/**
 * Get EBS volumes attached to the specified virtual instance id.
 *
 * @return list of ebs volumes/*from w w  w. ja  v  a2 s .co m*/
 */
@VisibleForTesting
List<Volume> getVolumes(String virtualInstanceId) {
    String ec2InstanceId = getOnlyElement(
            getEC2InstanceIdsByVirtualInstanceId(Collections.singletonList(virtualInstanceId)).values());

    DescribeInstanceAttributeResult results = client
            .describeInstanceAttribute(new DescribeInstanceAttributeRequest().withInstanceId(ec2InstanceId)
                    .withAttribute(InstanceAttributeName.BlockDeviceMapping));

    List<InstanceBlockDeviceMapping> blockDeviceMappings = results.getInstanceAttribute()
            .getBlockDeviceMappings();

    List<String> volumeIds = Lists.newArrayList();
    for (InstanceBlockDeviceMapping mapping : blockDeviceMappings) {
        volumeIds.add(mapping.getEbs().getVolumeId());
    }

    DescribeVolumesResult volumeResults = client
            .describeVolumes(new DescribeVolumesRequest().withVolumeIds(volumeIds));

    return volumeResults.getVolumes();
}

From source file:com.cloudera.director.aws.ec2.EC2Provider.java

License:Apache License

private void fillMissingProperties(Instance instance) {
    try {//from   w w w.  j av a 2s .  c om
        DescribeInstanceAttributeRequest request = new DescribeInstanceAttributeRequest()
                .withInstanceId(instance.getInstanceId()).withAttribute(InstanceAttributeName.SriovNetSupport);

        DescribeInstanceAttributeResult result = client.describeInstanceAttribute(request);
        String sriovNetSupport = result.getInstanceAttribute().getSriovNetSupport();
        instance.setSriovNetSupport(sriovNetSupport);
    } catch (AmazonServiceException e) {
        // In practice, users may not have appropriate IAM permission for
        // DescribeInstanceAttribute. We need to be more forgiving in those cases,
        // and simply leave a warning in the log here.
        LOG.warn("Could not fill missing properties. Failed to perform " + "DescribeInstanceAttribute action.",
                e);
    }
}

From source file:com.yosanai.java.aws.console.DefaultAWSConnectionProvider.java

License:Open Source License

@Override
public boolean getApiTermination(String instanceId) throws Exception {
    boolean ret = false;
    if (StringUtils.isNotBlank(instanceId)) {
        DescribeInstanceAttributeResult describeInstanceAttributeResult = getConnection()
                .describeInstanceAttribute(
                        new DescribeInstanceAttributeRequest(instanceId, DISABLE_API_TERMINATION));
        ret = !describeInstanceAttributeResult.getInstanceAttribute().getDisableApiTermination();
    }/*w ww. j av  a  2  s .  co m*/
    return ret;
}

From source file:org.finra.dm.dao.impl.Ec2DaoImpl.java

License:Apache License

/**
 * Adds the security groups to an EC2 instance.
 *
 * @param ec2InstanceId, the ec2 instance id.
 * @param securityGroups, security groups to be added.
 * @param awsParams, awsParamsDto object
 *
 * @return updated security groups.//from  ww w . j av a2 s  .  c  o m
 */
@Override
public List<String> addSecurityGroupsToEc2Instance(String ec2InstanceId, List<String> securityGroups,
        AwsParamsDto awsParams) {
    Set<String> updatedSecurityGroups = new HashSet<>();
    for (String securityGroup : securityGroups) {
        updatedSecurityGroups.add(securityGroup);
    }

    // Get existing security groups
    DescribeInstanceAttributeRequest describeInstanceAttributeRequest = new DescribeInstanceAttributeRequest()
            .withInstanceId(ec2InstanceId).withAttribute(InstanceAttributeName.GroupSet);

    DescribeInstanceAttributeResult describeInstanceAttributeResult = ec2Operations
            .describeInstanceAttribute(getEc2Client(awsParams), describeInstanceAttributeRequest);

    List<GroupIdentifier> groups = describeInstanceAttributeResult.getInstanceAttribute().getGroups();
    for (GroupIdentifier groupIdentifier : groups) {
        updatedSecurityGroups.add(groupIdentifier.getGroupId());
    }

    // Add security group on master EC2 instance
    ModifyInstanceAttributeRequest modifyInstanceAttributeRequest = new ModifyInstanceAttributeRequest()
            .withInstanceId(ec2InstanceId).withGroups(updatedSecurityGroups);

    ec2Operations.modifyInstanceAttribute(getEc2Client(awsParams), modifyInstanceAttributeRequest);

    return new ArrayList<>(updatedSecurityGroups);
}

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 {/*from   w w  w  . ja v a 2s  .  c o  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);
}