You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ab...@apache.org on 2014/10/22 01:32:49 UTC

[6/7] git commit: CloudStack doesn't do empty tag values

CloudStack doesn't do empty tag values


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

Branch: refs/heads/jclouds-756
Commit: 2ac80c09495f24fe53be9449618c0d5fbaefd620
Parents: e3b78b7
Author: Andrew Bayer <an...@gmail.com>
Authored: Tue Oct 21 15:20:38 2014 -0700
Committer: Andrew Bayer <an...@gmail.com>
Committed: Tue Oct 21 15:20:38 2014 -0700

----------------------------------------------------------------------
 .../compute/functions/VirtualMachineToNodeMetadata.java      | 8 ++++++--
 .../compute/strategy/CloudStackComputeServiceAdapter.java    | 8 +++++++-
 .../cloudstack/parse/ListVirtualMachinesResponseTest.java    | 2 +-
 .../src/test/resources/listvirtualmachinesresponse.json      | 2 +-
 4 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/2ac80c09/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/VirtualMachineToNodeMetadata.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/VirtualMachineToNodeMetadata.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/VirtualMachineToNodeMetadata.java
index 5421396..a9596e3 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/VirtualMachineToNodeMetadata.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/VirtualMachineToNodeMetadata.java
@@ -17,10 +17,12 @@
 package org.jclouds.cloudstack.compute.functions;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Predicates.equalTo;
+import static com.google.common.base.Predicates.not;
 import static com.google.common.collect.Iterables.filter;
 import static com.google.common.collect.Iterables.transform;
+import static com.google.common.collect.Maps.filterValues;
 import static com.google.common.collect.Sets.newHashSet;
-import static org.jclouds.compute.util.ComputeServiceUtils.addMetadataAndParseTagsFromValuesOfEmptyString;
 import static org.jclouds.location.predicates.LocationPredicates.idEquals;
 import static org.jclouds.util.InetAddresses2.isPrivateIPAddress;
 
@@ -126,7 +128,9 @@ public class VirtualMachineToNodeMetadata implements Function<VirtualMachine, No
             tagsBuilder.put(tag.getKey(), tag.getValue());
          }
 
-         addMetadataAndParseTagsFromValuesOfEmptyString(builder, tagsBuilder.build());
+         Map<String, String> tagMap = tagsBuilder.build();
+         builder.tags(filterValues(tagMap, equalTo("jclouds-empty-tag-placeholder")).keySet())
+               .userMetadata(filterValues(tagMap, not(equalTo("jclouds-empty-tag-placeholder"))));
       }
 
       builder.hardware(new HardwareBuilder()

http://git-wip-us.apache.org/repos/asf/jclouds/blob/2ac80c09/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
index 3e666a7..9387844 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
@@ -40,6 +40,7 @@ import java.util.Set;
 import com.google.common.base.Predicate;
 import com.google.common.base.Supplier;
 import com.google.common.cache.LoadingCache;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.ImmutableSet.Builder;
 import com.google.common.collect.Sets;
@@ -244,7 +245,12 @@ public class CloudStackComputeServiceAdapter implements
       }
 
       try {
-         Map<String, String> common = metadataAndTagsAsValuesOfEmptyString(template.getOptions());
+         ImmutableMap.Builder<String, String> builder = ImmutableMap.<String, String> builder();
+         builder.putAll(template.getOptions().getUserMetadata());
+         for (String tag : template.getOptions().getTags())
+            builder.put(tag, "jclouds-empty-tag-placeholder");
+         Map<String, String> common = builder.build();
+
          if (!common.isEmpty()) {
             logger.debug(">> adding tags %s to virtualmachine(%s)", common, vm.getId());
             CreateTagsOptions tagOptions = CreateTagsOptions.Builder.resourceIds(vm.getId())

http://git-wip-us.apache.org/repos/asf/jclouds/blob/2ac80c09/apis/cloudstack/src/test/java/org/jclouds/cloudstack/parse/ListVirtualMachinesResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/parse/ListVirtualMachinesResponseTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/parse/ListVirtualMachinesResponseTest.java
index 4b0094b..8d2d8e6 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/parse/ListVirtualMachinesResponseTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/parse/ListVirtualMachinesResponseTest.java
@@ -85,7 +85,7 @@ public class ListVirtualMachinesResponseTest extends BaseSetParserTest<VirtualMa
                         .resourceId("54")
                         .resourceType(Tag.ResourceType.USER_VM)
                         .key("another-tag")
-                        .value("")
+                        .value("jclouds-empty-tag-placeholder")
                         .domain("ROOT")
                         .domainId("1")
                         .build()))

http://git-wip-us.apache.org/repos/asf/jclouds/blob/2ac80c09/apis/cloudstack/src/test/resources/listvirtualmachinesresponse.json
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/resources/listvirtualmachinesresponse.json b/apis/cloudstack/src/test/resources/listvirtualmachinesresponse.json
index f5c0b04..a623589 100644
--- a/apis/cloudstack/src/test/resources/listvirtualmachinesresponse.json
+++ b/apis/cloudstack/src/test/resources/listvirtualmachinesresponse.json
@@ -57,7 +57,7 @@
                     "key": "another-tag",
                     "resourceid": "54",
                     "resourcetype": "UserVm",
-                    "value": ""
+                    "value": "jclouds-empty-tag-placeholder"
                 }
 
             ]