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

Reply via email to