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