List of usage examples for com.amazonaws.services.cloudfront.model Distribution.Method equals
@Override public boolean equals(Object obj)
From source file:ch.cyberduck.core.cloudfront.CloudFrontDistributionConfiguration.java
License:Open Source License
@Override public Distribution read(final Path file, final Distribution.Method method, final LoginCallback prompt) throws BackgroundException { final Path container = containerService.getContainer(file); return this.authenticated(new Authenticated<Distribution>() { @Override//w w w .j a va 2s . c om public Distribution call() throws BackgroundException { try { if (log.isDebugEnabled()) { log.debug(String.format("List %s distributions", method)); } final AmazonCloudFront client = client(container); if (method.equals(Distribution.STREAMING)) { for (StreamingDistributionSummary d : client .listStreamingDistributions(new ListStreamingDistributionsRequest()) .getStreamingDistributionList().getItems()) { final S3Origin config = d.getS3Origin(); if (config != null) { final URI origin = getOrigin(container, method); if (config.getDomainName().equals(origin.getHost())) { // We currently only support one distribution per bucket final Distribution distribution = readStreamingDistribution(client, d, container, method); cache.put(container, distribution); return distribution; } } } } else if (method.equals(Distribution.DOWNLOAD)) { // List distributions restricting to bucket name origin for (DistributionSummary d : client.listDistributions(new ListDistributionsRequest()) .getDistributionList().getItems()) { for (Origin o : d.getOrigins().getItems()) { final S3OriginConfig config = o.getS3OriginConfig(); if (config != null) { final URI origin = getOrigin(container, method); if (o.getDomainName().equals(origin.getHost())) { // We currently only support one distribution per bucket final Distribution distribution = readDownloadDistribution(client, d, container, method); cache.put(container, distribution); return distribution; } } } } } else if (method.equals(Distribution.CUSTOM) || method.equals(Distribution.WEBSITE_CDN)) { for (DistributionSummary d : client.listDistributions(new ListDistributionsRequest()) .getDistributionList().getItems()) { for (Origin o : d.getOrigins().getItems()) { // Listing all distributions and look for custom origin final CustomOriginConfig config = o.getCustomOriginConfig(); if (config != null) { final URI origin = getOrigin(container, method); if (o.getDomainName().equals(origin.getHost())) { // We currently only support one distribution per bucket final Distribution distribution = readDownloadDistribution(client, d, container, method); cache.put(container, distribution); return distribution; } } } } } final URI origin = getOrigin(container, method); // Return disabled configuration return new Distribution(origin, method, false); } catch (AmazonClientException e) { throw new AmazonServiceExceptionMappingService().map("Cannot read CDN configuration", e); } } }, prompt); }
From source file:ch.cyberduck.core.cloudfront.CloudFrontDistributionConfiguration.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public <T> T getFeature(final Class<T> type, final Distribution.Method method) { if (type == Purge.class || type == Index.class) { if (method.equals(Distribution.DOWNLOAD) || method.equals(Distribution.WEBSITE_CDN) || method.equals(Distribution.CUSTOM)) { return (T) this; }// ww w .j av a 2 s . co m } if (type == DistributionLogging.class) { if (method.equals(Distribution.DOWNLOAD) || method.equals(Distribution.STREAMING) || method.equals(Distribution.CUSTOM)) { return (T) this; } } if (type == AnalyticsProvider.class) { if (method.equals(Distribution.DOWNLOAD) || method.equals(Distribution.STREAMING) || method.equals(Distribution.CUSTOM)) { return (T) new QloudstatAnalyticsProvider(); } } if (type == Cname.class) { return (T) this; } if (type == IdentityConfiguration.class) { return (T) new AmazonIdentityConfiguration(bookmark); } return null; }
From source file:ch.cyberduck.core.cloudfront.CloudFrontDistributionConfiguration.java
License:Open Source License
private Distribution readStreamingDistribution(final AmazonCloudFront client, final StreamingDistributionSummary summary, final Path container, final Distribution.Method method) throws BackgroundException { // Retrieve distributions configuration to access current logging status settings. try {// ww w. ja v a 2s .c o m final GetStreamingDistributionConfigResult response = client .getStreamingDistributionConfig(new GetStreamingDistributionConfigRequest(summary.getId())); final StreamingDistributionConfig configuration = response.getStreamingDistributionConfig(); final Distribution distribution = new Distribution(this.getOrigin(container, method), method, summary.isEnabled()); distribution.setId(summary.getId()); distribution.setDeployed("Deployed".equals(summary.getStatus())); distribution.setUrl(URI.create( String.format("%s://%s%s", method.getScheme(), summary.getDomainName(), method.getContext()))); distribution.setSslUrl(method.equals(Distribution.DOWNLOAD) || method.equals(Distribution.CUSTOM) ? URI.create(String.format("https://%s%s", summary.getDomainName(), method.getContext())) : null); distribution.setReference(configuration.getCallerReference()); distribution.setEtag(response.getETag()); distribution.setStatus(LocaleFactory.localizedString(summary.getStatus(), "S3")); distribution.setCNAMEs(configuration.getAliases().getItems() .toArray(new String[configuration.getAliases().getItems().size()])); distribution.setLogging(configuration.getLogging().isEnabled()); distribution .setLoggingContainer(StringUtils.isNotBlank(configuration.getLogging().getBucket()) ? ServiceUtils.findBucketNameInHostname(configuration.getLogging().getBucket(), new S3Protocol().getDefaultHostname()) : null); if (this.getFeature(Purge.class, method) != null) { distribution.setInvalidationStatus(this.readInvalidationStatus(client, distribution)); } if (this.getFeature(DistributionLogging.class, method) != null) { try { distribution.setContainers(new S3BucketListService(session).list( new Path(String.valueOf(Path.DELIMITER), EnumSet.of(Path.Type.volume, Path.Type.directory)), new DisabledListProgressListener()).toList()); } catch (AccessDeniedException | InteroperabilityException e) { log.warn(String.format("Failure listing buckets. %s", e.getMessage())); } } return distribution; } catch (AmazonClientException e) { throw new AmazonServiceExceptionMappingService().map("Cannot read CDN configuration", e); } }
From source file:ch.cyberduck.core.cloudfront.CloudFrontDistributionConfiguration.java
License:Open Source License
private Distribution readDownloadDistribution(final AmazonCloudFront client, final DistributionSummary summary, final Path container, final Distribution.Method method) throws BackgroundException { // Retrieve distributions configuration to access current logging status settings. try {//from w w w . j ava 2 s . com final GetDistributionConfigResult response = client .getDistributionConfig(new GetDistributionConfigRequest(summary.getId())); final DistributionConfig configuration = response.getDistributionConfig(); final Distribution distribution = new Distribution(this.getOrigin(container, method), method, summary.isEnabled()); distribution.setId(summary.getId()); distribution.setDeployed("Deployed".equals(summary.getStatus())); distribution.setUrl(URI.create( String.format("%s://%s%s", method.getScheme(), summary.getDomainName(), method.getContext()))); distribution.setSslUrl(method.equals(Distribution.DOWNLOAD) || method.equals(Distribution.CUSTOM) ? URI.create(String.format("https://%s%s", summary.getDomainName(), method.getContext())) : null); distribution.setReference(configuration.getCallerReference()); distribution.setEtag(response.getETag()); distribution.setStatus(LocaleFactory.localizedString(summary.getStatus(), "S3")); distribution.setCNAMEs(configuration.getAliases().getItems() .toArray(new String[configuration.getAliases().getItems().size()])); distribution.setLogging(configuration.getLogging().isEnabled()); distribution .setLoggingContainer(StringUtils.isNotBlank(configuration.getLogging().getBucket()) ? ServiceUtils.findBucketNameInHostname(configuration.getLogging().getBucket(), new S3Protocol().getDefaultHostname()) : null); if (StringUtils.isNotBlank(configuration.getDefaultRootObject())) { distribution.setIndexDocument(configuration.getDefaultRootObject()); } if (this.getFeature(Purge.class, method) != null) { distribution.setInvalidationStatus(this.readInvalidationStatus(client, distribution)); } if (this.getFeature(DistributionLogging.class, method) != null) { distribution.setContainers(new S3BucketListService(session).list( new Path(String.valueOf(Path.DELIMITER), EnumSet.of(Path.Type.volume, Path.Type.directory)), new DisabledListProgressListener()).toList()); } return distribution; } catch (AmazonClientException e) { throw new AmazonServiceExceptionMappingService().map("Cannot read CDN configuration", e); } }
From source file:ch.cyberduck.core.cloudfront.WebsiteCloudFrontDistributionConfiguration.java
License:Open Source License
@Override public String getName(final Distribution.Method method) { if (method.equals(Distribution.WEBSITE)) { return method.toString(); }/*from w w w.j a va 2 s .c om*/ return super.getName(method); }
From source file:ch.cyberduck.core.cloudfront.WebsiteCloudFrontDistributionConfiguration.java
License:Open Source License
@Override protected URI getOrigin(final Path container, final Distribution.Method method) { if (method.equals(Distribution.WEBSITE_CDN)) { return URI.create(String.format("http://%s", this.getWebsiteHostname(container))); }/*from w w w . ja va 2 s . c o m*/ return super.getOrigin(container, method); }
From source file:ch.cyberduck.core.cloudfront.WebsiteCloudFrontDistributionConfiguration.java
License:Open Source License
@Override public Distribution read(final Path container, final Distribution.Method method, final LoginCallback prompt) throws BackgroundException { if (method.equals(Distribution.WEBSITE)) { try {//from ww w. ja v a 2 s .com final WebsiteConfig configuration = session.getClient().getWebsiteConfig(container.getName()); final Distribution distribution = new Distribution(this.getOrigin(container, method), method, configuration.isWebsiteConfigActive()); distribution.setStatus(LocaleFactory.localizedString("Deployed", "S3")); // http://example-bucket.s3-website-us-east-1.amazonaws.com/ distribution.setUrl(URI .create(String.format("%s://%s", method.getScheme(), this.getWebsiteHostname(container)))); distribution.setIndexDocument(configuration.getIndexDocumentSuffix()); distribution.setContainers(new S3BucketListService(session).list( new Path(String.valueOf(Path.DELIMITER), EnumSet.of(Path.Type.volume, Path.Type.directory)), new DisabledListProgressListener()).toList()); return distribution; } catch (ServiceException e) { // Not found. Website configuration not enabled. final Distribution distribution = new Distribution(this.getOrigin(container, method), method, false); distribution.setStatus(e.getErrorMessage()); distribution.setUrl(URI .create(String.format("%s://%s", method.getScheme(), this.getWebsiteHostname(container)))); return distribution; } } else { return super.read(container, method, prompt); } }
From source file:ch.cyberduck.core.cloudfront.WebsiteCloudFrontDistributionConfiguration.java
License:Open Source License
@Override protected OriginProtocolPolicy getPolicy(final Distribution.Method method) { if (method.equals(Distribution.WEBSITE_CDN)) { return OriginProtocolPolicy.HttpOnly; }/*from w ww.ja v a 2s . c om*/ return super.getPolicy(method); }
From source file:ch.cyberduck.core.cloudfront.WebsiteCloudFrontDistributionConfiguration.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public <T> T getFeature(final Class<T> type, final Distribution.Method method) { if (type == Index.class) { if (method.equals(Distribution.WEBSITE)) { return (T) this; }// w w w . j a v a2s. com } if (type == Cname.class) { return (T) this; } return super.getFeature(type, method); }