You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2016/07/17 21:46:18 UTC

[4/4] jclouds-labs git commit: [JCLOUDS-1139] add an option to not deallocate a VM when suspending

[JCLOUDS-1139] add an option to not deallocate a VM when suspending


Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/787af1dc
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/787af1dc
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/787af1dc

Branch: refs/heads/master
Commit: 787af1dc812800075b8efefa86379525159ada90
Parents: e1c55b4
Author: Ladislav Thon <lt...@redhat.com>
Authored: Thu Jul 14 15:48:37 2016 +0200
Committer: Ignasi Barrera <na...@apache.org>
Committed: Sun Jul 17 23:35:31 2016 +0200

----------------------------------------------------------------------
 .../jclouds/azurecompute/AzureComputeProviderMetadata.java  | 2 ++
 .../azurecompute/compute/AzureComputeServiceAdapter.java    | 5 ++++-
 .../compute/config/AzureComputeServiceContextModule.java    | 9 +++++++++
 .../jclouds/azurecompute/config/AzureComputeProperties.java | 2 ++
 4 files changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/787af1dc/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
index 731b52f..4a82f67 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.azurecompute;
 
+import static org.jclouds.azurecompute.config.AzureComputeProperties.DEALLOCATE_WHEN_SUSPENDING;
 import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
 import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
 import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
@@ -53,6 +54,7 @@ public class AzureComputeProviderMetadata extends BaseProviderMetadata {
       properties.setProperty(OPERATION_POLL_MAX_PERIOD, "15");
       properties.setProperty(TCP_RULE_FORMAT, "tcp_%s-%s");
       properties.setProperty(TCP_RULE_REGEXP, "tcp_\\d{1,5}-\\d{1,5}");
+      properties.setProperty(DEALLOCATE_WHEN_SUSPENDING, "true");
       return properties;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/787af1dc/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
index 394dc65..ea579de 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
@@ -72,6 +72,7 @@ public class AzureComputeServiceAdapter implements ComputeServiceAdapter<Deploym
 
    private static final String DEFAULT_LOGIN_PASSWORD = "Azur3Compute!";
    public static final String POST_SHUTDOWN_ACTION = "StoppedDeallocated";
+   private static final String POST_SHUTDOWN_ACTION_NO_DEALLOCATE = "Stopped";
 
    @Resource
    @Named(ComputeServiceConstants.COMPUTE_LOGGER)
@@ -419,7 +420,9 @@ public class AzureComputeServiceAdapter implements ComputeServiceAdapter<Deploym
       final CloudService cloudService = api.getCloudServiceApi().get(id);
       if (cloudService != null) {
          logger.debug("Suspending %s ...", id);
-         trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).shutdown(id, POST_SHUTDOWN_ACTION));
+         String postShutdownAction = azureComputeConstants.deallocateWhenSuspending()
+                 ? POST_SHUTDOWN_ACTION : POST_SHUTDOWN_ACTION_NO_DEALLOCATE;
+         trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).shutdown(id, postShutdownAction));
          logger.debug("Suspended %s", id);
       }
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/787af1dc/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
index 8d902d1..e6d8812 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.azurecompute.compute.config;
 
+import static org.jclouds.azurecompute.config.AzureComputeProperties.DEALLOCATE_WHEN_SUSPENDING;
 import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
 import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
 import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
@@ -122,6 +123,10 @@ public class AzureComputeServiceContextModule
       @Inject
       private String tcpRuleRegexpProperty;
 
+      @Named(DEALLOCATE_WHEN_SUSPENDING)
+      @Inject
+      private String deallocateWhenSuspending;
+
       public Long operationTimeout() {
          return Long.parseLong(operationTimeoutProperty);
       }
@@ -141,6 +146,10 @@ public class AzureComputeServiceContextModule
       public String tcpRuleRegexp() {
          return tcpRuleRegexpProperty;
       }
+
+      public boolean deallocateWhenSuspending() {
+         return Boolean.parseBoolean(deallocateWhenSuspending);
+      }
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/787af1dc/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
index 9592f4c..381e1b8 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
@@ -31,4 +31,6 @@ public class AzureComputeProperties {
 
    public static final String TCP_RULE_REGEXP = "jclouds.azurecompute.tcp.rule.regexp";
 
+   public static final String DEALLOCATE_WHEN_SUSPENDING = "jclouds.azurecompute.deallocate.when.suspending";
+
 }