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"
}
]