Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master d2b47e770 -> 17baa8b7a


Put user metadata into SL notes.


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/233e0a6c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/233e0a6c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/233e0a6c

Branch: refs/heads/master
Commit: 233e0a6cb3096fbc6f139f8d273d28667593fdf3
Parents: 1a28193
Author: Svetoslav Neykov <[email protected]>
Authored: Tue Jun 9 16:01:40 2015 +0300
Committer: Svetoslav Neykov <[email protected]>
Committed: Tue Jun 16 22:45:59 2015 +0300

----------------------------------------------------------------------
 .../brooklyn/location/jclouds/JcloudsLocation.java    | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/233e0a6c/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
----------------------------------------------------------------------
diff --git 
a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
 
b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
index e0e7990..1e04b73 100644
--- 
a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
+++ 
b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
@@ -207,6 +207,8 @@ public class JcloudsLocation extends 
AbstractCloudMachineProvisioningLocation im
     private static final Pattern LIST_PATTERN = 
Pattern.compile("^\\[(.*)\\]$");
     private static final Pattern INTEGER_PATTERN = Pattern.compile("^\\d*$");
 
+    private static final int NOTES_MAX_LENGTH = 1000;
+
     private final AtomicBoolean loggedSshKeysHint = new AtomicBoolean(false);
     private final AtomicBoolean listedAvailableTemplatesOnNoSuchTemplate = new 
AtomicBoolean(false);
 
@@ -1214,7 +1216,7 @@ public class JcloudsLocation extends 
AbstractCloudMachineProvisioningLocation im
                 // NB: things like brooklyn.local are disallowed
                 slT.domainName("local.brooklyncentral.org");
             }
-            // convert user metadata to tags because user metadata is 
otherwise ignored
+            // convert user metadata to tags and notes because user metadata 
is otherwise ignored
             Map<String, String> md = slT.getUserMetadata();
             if (md!=null && !md.isEmpty()) {
                 Set<String> tags = MutableSet.copyOf(slT.getTags());
@@ -1222,8 +1224,16 @@ public class JcloudsLocation extends 
AbstractCloudMachineProvisioningLocation im
                     
tags.add(AbstractCloudMachineNamer.sanitize(entry.getKey())+":"+AbstractCloudMachineNamer.sanitize(entry.getValue()));
                 }
                 slT.tags(tags);
+
+                if (!md.containsKey("notes")) {
+                    String notes = "User Metadata\n=============\n\n  * " + 
Joiner.on("\n  * ").withKeyValueSeparator(": ").join(md);
+                    if (notes.length() > NOTES_MAX_LENGTH) {
+                        String truncatedMsg = "...\n<truncated - notes total 
length is " + notes.length() + " characters>";
+                        notes = notes.substring(0, NOTES_MAX_LENGTH - 
truncatedMsg.length()) + truncatedMsg;
+                    }
+                    md.put("notes", notes);
+                }
             }
-            // TODO put user metadata and tags into notes, when jclouds 
exposes notes, because metadata not exposed via web portal 
         }
     }
 

Reply via email to