use of com.sequenceiq.cloudbreak.cloud.model.CloudAccessConfig in project cloudbreak by hortonworks.
the class AwsPlatformResources method accessConfigs.
@Override
public CloudAccessConfigs accessConfigs(CloudCredential cloudCredential, Region region, Map<String, String> filters) {
String queryFailedMessage = "Could not get instance profile roles from Amazon: ";
CloudAccessConfigs cloudAccessConfigs = new CloudAccessConfigs(new HashSet<>());
AwsCredentialView awsCredentialView = new AwsCredentialView(cloudCredential);
AmazonIdentityManagement client = awsClient.createAmazonIdentityManagement(awsCredentialView);
try {
ListInstanceProfilesResult listRolesResult = client.listInstanceProfiles();
for (InstanceProfile instanceProfile : listRolesResult.getInstanceProfiles()) {
Map<String, Object> properties = new HashMap<>();
properties.put("arn", instanceProfile.getArn());
properties.put("creationDate", instanceProfile.getCreateDate().toString());
if (!instanceProfile.getRoles().isEmpty()) {
String roleName = instanceProfile.getRoles().get(0).getArn();
properties.put("roleArn", Strings.isNullOrEmpty(roleName) ? instanceProfile.getArn() : roleName);
}
cloudAccessConfigs.getCloudAccessConfigs().add(new CloudAccessConfig(instanceProfile.getInstanceProfileName(), instanceProfile.getInstanceProfileId(), properties));
}
} catch (AmazonServiceException ase) {
if (ase.getStatusCode() == UNAUTHORIZED) {
String policyMessage = "Could not get instance profile roles because the user does not have enough permission.";
LOGGER.info(policyMessage + ase);
throw new CloudConnectorException(policyMessage, ase);
} else {
LOGGER.error(queryFailedMessage, ase);
throw new CloudConnectorException(queryFailedMessage + ase.getMessage(), ase);
}
} catch (Exception e) {
LOGGER.error(queryFailedMessage, e);
throw new CloudConnectorException(queryFailedMessage + e.getMessage(), e);
}
return cloudAccessConfigs;
}
use of com.sequenceiq.cloudbreak.cloud.model.CloudAccessConfig in project cloudbreak by hortonworks.
the class CloudAccessConfigsToPlatformAccessConfigsResponseConverter method convert.
@Override
public PlatformAccessConfigsResponse convert(CloudAccessConfigs source) {
PlatformAccessConfigsResponse platformAccessConfigsResponse = new PlatformAccessConfigsResponse();
Set<AccessConfigJson> result = new HashSet<>();
for (CloudAccessConfig entry : source.getCloudAccessConfigs()) {
AccessConfigJson actual = new AccessConfigJson(entry.getName(), entry.getId(), entry.getProperties());
result.add(actual);
}
platformAccessConfigsResponse.setAccessConfigs(result);
return platformAccessConfigsResponse;
}
Aggregations