private AtlasNamedAccountCredentials getCredentials(String accountName) { return (AtlasNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); }
public static String resolveAccountByNameOrType(String accountName, AccountCredentials.Type accountType, AccountCredentialsRepository accountCredentialsRepository) { AccountCredentials credentials; if (StringUtils.hasLength(accountName)) { credentials = accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); } else { credentials = accountCredentialsRepository .getOne(accountType) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account of type " + accountType + ".")); } return credentials.getName(); }
private MemoryNamedAccountCredentials getCredentials(String accountName, ObjectType objectType) { MemoryNamedAccountCredentials credentials = (MemoryNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); credentials.getObjects().putIfAbsent(objectType, new ConcurrentHashMap<>()); credentials.getMetadata().putIfAbsent(objectType, new ConcurrentHashMap<>()); return credentials; }
private String determineProjectId(String metricsAccountName, StackdriverCanaryScope stackdriverCanaryScope) { String projectId = stackdriverCanaryScope.getProject(); if (StringUtils.isEmpty(projectId)) { GoogleNamedAccountCredentials stackdriverCredentials = (GoogleNamedAccountCredentials)accountCredentialsRepository .getOne(metricsAccountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + metricsAccountName + ".")); projectId = stackdriverCredentials.getProject(); } return projectId; }
@Override public List<Map<String, Object>> listObjectKeys(String accountName, ObjectType objectType, List<String> applications, boolean skipIndex) { ConfigBinNamedAccountCredentials credentials = (ConfigBinNamedAccountCredentials) accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); if (!skipIndex && objectType == ObjectType.CANARY_CONFIG) { Set<Map<String, Object>> canaryConfigSet = canaryConfigIndex.getCanaryConfigSummarySet(credentials, applications); return Lists.newArrayList(canaryConfigSet); } else { String ownerApp = credentials.getOwnerApp(); String configType = credentials.getConfigType(); ConfigBinRemoteService remoteService = credentials.getRemoteService(); String jsonBody = retry.retry(() -> remoteService.list(ownerApp, configType), MAX_RETRIES, RETRY_BACKOFF); try { List<String> ids = kayentaObjectMapper.readValue(jsonBody, new TypeReference<List<String>>() {}); if (ids.size() > 0) { return ids .stream() .map(i -> metadataFor(credentials, i)) .collect(Collectors.toList()); } } catch (IOException e) { log.error("List failed on path {}: {}", ownerApp, e); } return Collections.emptyList(); } }
@Override public List<MetricSet> queryMetrics(String accountName, CanaryConfig canaryConfig, CanaryMetricConfig canaryMetricConfig, CanaryScope canaryScope) { InfluxDbNamedAccountCredentials accountCredentials = (InfluxDbNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); InfluxDbRemoteService remoteService = accountCredentials.getInfluxDbRemoteService(); InfluxdbCanaryMetricSetQueryConfig queryConfig = (InfluxdbCanaryMetricSetQueryConfig)canaryMetricConfig.getQuery(); String query = queryBuilder.build(queryConfig, canaryScope); log.debug("query={}", query); String metricSetName = canaryMetricConfig.getName(); List<InfluxDbResult> influxDbResults = queryInfluxdb(remoteService, metricSetName, query); return buildMetricSets(metricSetName, influxDbResults); }
} else { GraphiteNamedAccountCredentials accountCredentials = (GraphiteNamedAccountCredentials) accountCredentialsRepository.getOne(metricsAccountName) .orElseThrow(() -> new IllegalArgumentException( String.format("Unable to resolve account %s.", metricsAccountName)));
@Override public void deleteObject(String accountName, ObjectType objectType, String objectKey) { ConfigBinNamedAccountCredentials credentials = (ConfigBinNamedAccountCredentials) accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); String ownerApp = credentials.getOwnerApp();
@Override public <T> T loadObject(String accountName, ObjectType objectType, String objectKey) throws IllegalArgumentException, NotFoundException { ConfigBinNamedAccountCredentials credentials = (ConfigBinNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); String ownerApp = credentials.getOwnerApp(); String configType = credentials.getConfigType(); ConfigBinRemoteService remoteService = credentials.getRemoteService(); String json; try { json = retry.retry(() -> remoteService.get(ownerApp, configType, objectKey), MAX_RETRIES, RETRY_BACKOFF); } catch (RetrofitError e) { throw new NotFoundException("No such object named " + objectKey); } try { return kayentaObjectMapper.readValue(json, objectType.getTypeReference()); } catch (Throwable e) { log.error("Read failed on path {}: {}", objectKey, e); throw new IllegalStateException(e); } }
@Override public List<Map<String, Object>> listObjectKeys(String accountName, ObjectType objectType, List<String> applications, boolean skipIndex) { AwsNamedAccountCredentials credentials = (AwsNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + "."));
@Override public <T> void storeObject(String accountName, ObjectType objectType, String objectKey, T obj, String filename, boolean isAnUpdate) { ConfigBinNamedAccountCredentials credentials = (ConfigBinNamedAccountCredentials) accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); String ownerApp = credentials.getOwnerApp();
@Override public List<Map<String, Object>> listObjectKeys(String accountName, ObjectType objectType, List<String> applications, boolean skipIndex) { GoogleNamedAccountCredentials credentials = (GoogleNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + "."));
/** * Check to see if the bucket exists, creating it if it is not there. */ public void ensureBucketExists(String accountName) { AwsNamedAccountCredentials credentials = (AwsNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); AmazonS3 amazonS3 = credentials.getAmazonS3(); String bucket = credentials.getBucket(); String region = credentials.getRegion(); HeadBucketRequest request = new HeadBucketRequest(bucket); try { amazonS3.headBucket(request); } catch (AmazonServiceException e) { if (e.getStatusCode() == 404) { if (com.amazonaws.util.StringUtils.isNullOrEmpty(region)) { log.warn("Bucket {} does not exist. Creating it in default region.", bucket); amazonS3.createBucket(bucket); } else { log.warn("Bucket {} does not exist. Creating it in region {}.", bucket, region); amazonS3.createBucket(bucket, region); } } else { log.error("Could not create bucket {}: {}", bucket, e); throw e; } } }
@Override public <T> T loadObject(String accountName, ObjectType objectType, String objectKey) throws IllegalArgumentException, NotFoundException { AwsNamedAccountCredentials credentials = (AwsNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); AmazonS3 amazonS3 = credentials.getAmazonS3(); String bucket = credentials.getBucket(); String path; try { path = resolveSingularPath(objectType, objectKey, credentials, amazonS3, bucket); } catch (IllegalArgumentException e) { throw new NotFoundException(e.getMessage()); } try { S3Object s3Object = amazonS3.getObject(bucket, path); return deserialize(s3Object, objectType.getTypeReference()); } catch (AmazonS3Exception e) { log.error("Failed to load {} {}: {}", objectType.getGroup(), objectKey, e.getStatusCode()); if (e.getStatusCode() == 404) { throw new NotFoundException("No file at path " + path + "."); } throw e; } catch (IOException e) { throw new IllegalStateException("Unable to deserialize object (key: " + objectKey + ")", e); } }
.getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); Storage storage = credentials.getStorage();
CanaryScope canaryScope) throws IOException { GraphiteNamedAccountCredentials accountCredentials = (GraphiteNamedAccountCredentials) accountCredentialsRepository.getOne(metricsAccountName) .orElseThrow(() -> new IllegalArgumentException( String.format("Unable to resolve account %s.", metricsAccountName)));
(SignalFxNamedAccountCredentials) accountCredentialsRepository.getOne(metricsAccountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + metricsAccountName + "."));
NewRelicNamedAccountCredentials accountCredentials = (NewRelicNamedAccountCredentials) accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException( "Unable to resolve account " + accountName + "."));
@Override public List<MetricSet> queryMetrics(String accountName, CanaryConfig canaryConfig, CanaryMetricConfig canaryMetricConfig, CanaryScope canaryScope) { DatadogNamedAccountCredentials accountCredentials = (DatadogNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + "."));
@Override public <T> T loadObject(String accountName, ObjectType objectType, String objectKey) throws IllegalArgumentException, NotFoundException { GoogleNamedAccountCredentials credentials = (GoogleNamedAccountCredentials)accountCredentialsRepository .getOne(accountName) .orElseThrow(() -> new IllegalArgumentException("Unable to resolve account " + accountName + ".")); Storage storage = credentials.getStorage(); String bucketName = credentials.getBucket(); StorageObject item; try { item = resolveSingularItem(objectType, objectKey, credentials, storage, bucketName); } catch (IllegalArgumentException e) { throw new NotFoundException(e.getMessage()); } try { StorageObject storageObject = storage.objects().get(bucketName, item.getName()).execute(); return deserialize(storage, storageObject, objectType.getTypeReference()); } catch (IOException e) { if (e instanceof HttpResponseException) { HttpResponseException hre = (HttpResponseException)e; log.error("Failed to load {} {}: {} {}", objectType.getGroup(), objectKey, hre.getStatusCode(), hre.getStatusMessage()); if (hre.getStatusCode() == 404) { throw new NotFoundException("No file at path " + item.getName() + "."); } } throw new IllegalStateException(e); } }