Updated Branches:
  refs/heads/master cd56d135c -> 1804f2b6b

JCLOUDS-381. Allow explicit naming of nodes, decouple group identity from node 
name


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

Branch: refs/heads/master
Commit: 1804f2b6b4c2672135ecc349ed97f52cffc5267c
Parents: cd56d13
Author: Andrew Bayer <[email protected]>
Authored: Fri Nov 22 10:45:46 2013 -0800
Committer: Andrew Bayer <[email protected]>
Committed: Sun Nov 24 14:17:08 2013 -0800

----------------------------------------------------------------------
 .../functions/MachineInDatacenterToNodeMetadata.java      | 10 +++++++---
 ...nsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java |  3 +++
 .../v6_5/compute/JoyentCloudComputeServiceExpectTest.java |  2 +-
 joyent-cloudapi/src/test/resources/new_machine.json       |  2 +-
 4 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1804f2b6/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/functions/MachineInDatacenterToNodeMetadata.java
----------------------------------------------------------------------
diff --git 
a/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/functions/MachineInDatacenterToNodeMetadata.java
 
b/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/functions/MachineInDatacenterToNodeMetadata.java
index f3bacb6..1192e73 100644
--- 
a/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/functions/MachineInDatacenterToNodeMetadata.java
+++ 
b/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/functions/MachineInDatacenterToNodeMetadata.java
@@ -23,6 +23,7 @@ import static com.google.common.collect.Iterables.tryFind;
 import static com.google.common.collect.Maps.filterKeys;
 import static 
org.jclouds.compute.util.ComputeServiceUtils.addMetadataAndParseTagsFromCommaDelimitedValue;
 import static org.jclouds.compute.util.ComputeServiceUtils.getSpace;
+import static org.jclouds.compute.util.ComputeServiceUtils.groupFromMapOrName;
 
 import java.util.Map;
 import java.util.Set;
@@ -94,7 +95,7 @@ public class MachineInDatacenterToNodeMetadata implements 
Function<MachineInData
       builder.name(from.getName());
       builder.hostname(from.getId());
       builder.location(zone);
-      addMetadataAndParseTagsFromCommaDelimitedValue(builder, 
filterKeys(from.getMetadata(), new Predicate<String>() {
+      Map<String, String> metadataMap = filterKeys(from.getMetadata(), new 
Predicate<String>() {
 
          @Override
          public boolean apply(String input) {
@@ -105,8 +106,11 @@ public class MachineInDatacenterToNodeMetadata implements 
Function<MachineInData
             return true;
          }
 
-      }));
-      
builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.getName()));
+      });
+      addMetadataAndParseTagsFromCommaDelimitedValue(builder, metadataMap);
+
+      builder.group(groupFromMapOrName(metadataMap, from.getName(), 
nodeNamingConvention));
+
       
builder.imageId(DatacenterAndName.fromDatacenterAndName(machineInDatacenter.getDatacenter(),
 from.getDatasetURN())
             .slashEncode());
       
builder.operatingSystem(findOperatingSystemForMachineOrNull(machineInDatacenter));

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1804f2b6/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/strategy/ApplyJoyentCloudTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
----------------------------------------------------------------------
diff --git 
a/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/strategy/ApplyJoyentCloudTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
 
b/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/strategy/ApplyJoyentCloudTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
index 0147eaf..82d8c13 100644
--- 
a/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/strategy/ApplyJoyentCloudTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
+++ 
b/joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/strategy/ApplyJoyentCloudTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
@@ -32,6 +32,7 @@ import org.jclouds.compute.config.CustomizationResponse;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.functions.GroupNamingConvention;
+import org.jclouds.compute.reference.ComputeServiceConstants;
 import org.jclouds.compute.strategy.CreateNodeWithGroupEncodedIntoName;
 import 
org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap;
 import org.jclouds.compute.strategy.ListNodesStrategy;
@@ -81,6 +82,8 @@ public class 
ApplyJoyentCloudTemplateOptionsCreateNodesWithGroupEncodedIntoNameT
 
       assert template.getOptions().equals(templateOptions) : "options didn't 
clone properly";
 
+      templateOptions.userMetadata(ComputeServiceConstants.NODE_GROUP_KEY, 
group);
+
       String datacenter = mutableTemplate.getLocation().getId();
       
       if (!templateOptions.shouldGenerateKey().isPresent())

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1804f2b6/joyent-cloudapi/src/test/java/org/jclouds/joyent/cloudapi/v6_5/compute/JoyentCloudComputeServiceExpectTest.java
----------------------------------------------------------------------
diff --git 
a/joyent-cloudapi/src/test/java/org/jclouds/joyent/cloudapi/v6_5/compute/JoyentCloudComputeServiceExpectTest.java
 
b/joyent-cloudapi/src/test/java/org/jclouds/joyent/cloudapi/v6_5/compute/JoyentCloudComputeServiceExpectTest.java
index c6343d1..ee257f3 100644
--- 
a/joyent-cloudapi/src/test/java/org/jclouds/joyent/cloudapi/v6_5/compute/JoyentCloudComputeServiceExpectTest.java
+++ 
b/joyent-cloudapi/src/test/java/org/jclouds/joyent/cloudapi/v6_5/compute/JoyentCloudComputeServiceExpectTest.java
@@ -89,7 +89,7 @@ public class JoyentCloudComputeServiceExpectTest extends 
BaseJoyentCloudComputeS
       requestResponseMap.put(machines.list, machines.listResponse);
 
       HttpRequest createMachine = HttpRequest.builder().method("POST")
-               
.endpoint("https://us-sw-1.api.joyentcloud.com/my/machines?dataset=sdc%3Asdc%3Aubuntu-10.04%3A1.0.1&name=test-1&package=Small%201GB";)
+               
.endpoint("https://us-sw-1.api.joyentcloud.com/my/machines?dataset=sdc%3Asdc%3Aubuntu-10.04%3A1.0.1&name=test-1&package=Small%201GB&metadata.jclouds-group=test";)
                .addHeader("X-Api-Version", "~6.5")
                .addHeader("Accept", "application/json")
                .addHeader("Authorization", "Basic 
aWRlbnRpdHk6Y3JlZGVudGlhbA==").build();

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1804f2b6/joyent-cloudapi/src/test/resources/new_machine.json
----------------------------------------------------------------------
diff --git a/joyent-cloudapi/src/test/resources/new_machine.json 
b/joyent-cloudapi/src/test/resources/new_machine.json
index 4815124..bc1bdf2 100644
--- a/joyent-cloudapi/src/test/resources/new_machine.json
+++ b/joyent-cloudapi/src/test/resources/new_machine.json
@@ -1 +1 @@
-{"id":"94eba336-ecb7-49f5-8a27-52f5e4dd57a1","name":"sample-e92","type":"virtualmachine","state":"stopped","dataset":"sdc:sdc:centos-5.7:1.2.1","ips":["37.153.96.62","10.224.0.63"],"memory":1024,"disk":61440,"metadata":{"root_authorized_keys":"ssh-rsa
 XXXXXX== 
[email protected]"},"created":"2012-05-09T13:32:46+00:00","updated":"2012-05-11T08:44:53+00:00"}
+{"id":"94eba336-ecb7-49f5-8a27-52f5e4dd57a1","name":"sample-e92","type":"virtualmachine","state":"stopped","dataset":"sdc:sdc:centos-5.7:1.2.1","ips":["37.153.96.62","10.224.0.63"],"memory":1024,"disk":61440,"metadata":{"root_authorized_keys":"ssh-rsa
 XXXXXX== 
[email protected]","jclouds-group":"test"},"created":"2012-05-09T13:32:46+00:00","updated":"2012-05-11T08:44:53+00:00"}

Reply via email to