logger.debug("Updating inventory item cache for connection [" + connection.getId() + "]: " +
connection.getAlias());
List<String> processedKeys = new ArrayList<>();
List<JSONObject> externalInventoryItems;
ExternalIntegrationClient client = getClient(connection);
if (client instanceof AWSClient) {
AWSClient awsClient = null;
try {
awsClient = new AWSClient(connection);
// Get the EC2 inventory items
externalInventoryItems = (awsClient.getEC2Instances());
// Get the S3 inventory items
externalInventoryItems.addAll(awsClient.getS3BucketsAsJson());
} finally {
if (awsClient != null) {
awsClient.cleanUp();
}
}
} else if (client instanceof GitHubClient) {
externalInventoryItems = ((GitHubClient) client).getRepositories();
} else if (client instanceof GoogleAnalyticsClient) {
externalInventoryItems = ((GoogleAnalyticsClient) client).getProfiles();
} else if (client instanceof JiraClient) {
externalInventoryItems = ((JiraClient)client).getProjects(false);
} else if (client instanceof PingdomClient) {
externalInventoryItems = ((PingdomClient)client).checks();
} else if (client instanceof FeedClient) {
return;
} else if (client instanceof TwitterClient) {
return;
} else {
throw new IllegalArgumentException(client.getClass().getName() + " is not a supported external client.");
}
logger.debug(" Provider id: " + connection.getProviderId());
logger.debug(" Inventory items found: " + externalInventoryItems.size());