Example usage for com.amazonaws.services.cloudfront.model Distribution.Method equals

List of usage examples for com.amazonaws.services.cloudfront.model Distribution.Method equals

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudfront.model Distribution.Method equals.

Prototype

@Override
    public boolean equals(Object obj) 

Source Link

Usage

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);
}