And adding SecurityGroupExtension to compute service
Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/commit/34c5c465 Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/tree/34c5c465 Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/diff/34c5c465 Branch: refs/heads/jclouds-101 Commit: 34c5c4656a788e8597e51639c039b30eb32cc4ca Parents: f969fb7 Author: Andrew Bayer <[email protected]> Authored: Fri Jun 7 15:43:10 2013 -0700 Committer: Andrew Bayer <[email protected]> Committed: Fri Jun 7 15:43:10 2013 -0700 ---------------------------------------------------------------------- .../main/java/org/jclouds/compute/ComputeService.java | 9 +++++++++ .../compute/config/BaseComputeServiceContextModule.java | 7 +++++++ .../jclouds/compute/internal/BaseComputeService.java | 12 +++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/34c5c465/compute/src/main/java/org/jclouds/compute/ComputeService.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/ComputeService.java b/compute/src/main/java/org/jclouds/compute/ComputeService.java index 610090a..a7c2519 100644 --- a/compute/src/main/java/org/jclouds/compute/ComputeService.java +++ b/compute/src/main/java/org/jclouds/compute/ComputeService.java @@ -27,6 +27,7 @@ import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.Template; import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.extensions.ImageExtension; +import org.jclouds.compute.extensions.SecurityGroupExtension; import org.jclouds.compute.internal.BaseComputeService; import org.jclouds.compute.options.RunScriptOptions; import org.jclouds.compute.options.TemplateOptions; @@ -383,5 +384,13 @@ public interface ComputeService { @Beta Optional<ImageExtension> getImageExtension(); + /** + * Returns the {@link SecurityGroupExtension} for this provider if it implements it. + * + * @return an optional of the {@link SecurityGroupExtension} or {@link Optional#absent()} if not + * implemented + */ + @Beta + Optional<SecurityGroupExtension> getSecurityGroupExtension(); } http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/34c5c465/compute/src/main/java/org/jclouds/compute/config/BaseComputeServiceContextModule.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/config/BaseComputeServiceContextModule.java b/compute/src/main/java/org/jclouds/compute/config/BaseComputeServiceContextModule.java index 7581e86..7307196 100644 --- a/compute/src/main/java/org/jclouds/compute/config/BaseComputeServiceContextModule.java +++ b/compute/src/main/java/org/jclouds/compute/config/BaseComputeServiceContextModule.java @@ -44,6 +44,7 @@ import org.jclouds.compute.domain.OsFamily; import org.jclouds.compute.domain.Template; import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.extensions.ImageExtension; +import org.jclouds.compute.extensions.SecurityGroupExtension; import org.jclouds.compute.functions.CreateSshClientOncePortIsListeningOnNode; import org.jclouds.compute.functions.DefaultCredentialsFromImageOrOverridingCredentials; import org.jclouds.compute.functions.TemplateOptionsToStatement; @@ -306,5 +307,11 @@ public abstract class BaseComputeServiceContextModule extends AbstractModule { return Optional.absent(); } + @Provides + @Singleton + protected Optional<SecurityGroupExtension> provideSecurityGroupExtension(Injector i){ + return Optional.absent(); + } + } http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/34c5c465/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java b/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java index fd177ac..75ea787 100644 --- a/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java +++ b/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java @@ -66,6 +66,7 @@ import org.jclouds.compute.domain.NodeMetadataBuilder; import org.jclouds.compute.domain.Template; import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.extensions.ImageExtension; +import org.jclouds.compute.extensions.SecurityGroupExtension; import org.jclouds.compute.options.RunScriptOptions; import org.jclouds.compute.options.TemplateOptions; import org.jclouds.compute.reference.ComputeServiceConstants; @@ -141,6 +142,7 @@ public class BaseComputeService implements ComputeService { private final RunScriptOnNode.Factory runScriptOnNodeFactory; private final ListeningExecutorService userExecutor; private final Optional<ImageExtension> imageExtension; + private final Optional<SecurityGroupExtension> securityGroupExtension; @Inject protected BaseComputeService(ComputeServiceContext context, Map<String, Credentials> credentialStore, @@ -158,7 +160,7 @@ public class BaseComputeService implements ComputeService { InitializeRunScriptOnNodeOrPlaceInBadMap.Factory initScriptRunnerFactory, InitAdminAccess initAdminAccess, RunScriptOnNode.Factory runScriptOnNodeFactory, PersistNodeCredentials persistNodeCredentials, Timeouts timeouts, @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor, - Optional<ImageExtension> imageExtension) { + Optional<ImageExtension> imageExtension, Optional<SecurityGroupExtension> securityGroupExtension) { this.context = checkNotNull(context, "context"); this.credentialStore = checkNotNull(credentialStore, "credentialStore"); this.images = checkNotNull(images, "images"); @@ -184,6 +186,7 @@ public class BaseComputeService implements ComputeService { this.persistNodeCredentials = checkNotNull(persistNodeCredentials, "persistNodeCredentials"); this.userExecutor = checkNotNull(userExecutor, "userExecutor"); this.imageExtension = checkNotNull(imageExtension, "imageExtension"); + this.securityGroupExtension = checkNotNull(securityGroupExtension, "securityGroupExtension"); } /** @@ -714,4 +717,11 @@ public class BaseComputeService implements ComputeService { return imageExtension; } + /** + * {@inheritDoc} + */ + @Override + public Optional<SecurityGroupExtension> getSecurityGroupExtension() { + return securityGroupExtension; + } }
