You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2013/11/05 20:05:22 UTC

[4/7] git commit: Add ex_metadata parameter to create_node

Add ex_metadata parameter to create_node

Signed-off-by: Tomaz Muraus <to...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/9bfb08af
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/9bfb08af
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/9bfb08af

Branch: refs/heads/trunk
Commit: 9bfb08af7519d016e79a9fd75320eb1f8f6870ad
Parents: e1124b0
Author: Ivan Kusalic <iv...@ikusalic.com>
Authored: Tue Sep 10 13:02:55 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Tue Nov 5 18:56:17 2013 +0000

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py   |  5 +++++
 libcloud/test/compute/test_ec2.py | 16 ++++++++++++++++
 2 files changed, 21 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/9bfb08af/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 003d7ef..4d2a724 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -1566,6 +1566,9 @@ class BaseEC2NodeDriver(NodeDriver):
                                         assign to the node.
         :type       ex_security_groups:   ``list``
 
+        :keyword    ex_metadata: Key/Value metadata to associate with a node
+        :type       ex_metadata: ``dict``
+
         :keyword    ex_mincount: Minimum number of instances to launch
         :type       ex_mincount: ``int``
 
@@ -1666,6 +1669,8 @@ class BaseEC2NodeDriver(NodeDriver):
 
         for node in nodes:
             tags = {'Name': kwargs['name']}
+            if 'ex_metadata' in kwargs:
+                tags.update(kwargs['ex_metadata'])
 
             try:
                 self.ex_create_tags(resource=node, tags=tags)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/9bfb08af/libcloud/test/compute/test_ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py
index 0840446..303d335 100644
--- a/libcloud/test/compute/test_ec2.py
+++ b/libcloud/test/compute/test_ec2.py
@@ -105,6 +105,22 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin):
         self.assertEqual(node.extra['tags']['Name'], 'foo')
         self.assertEqual(len(node.extra['tags']), 1)
 
+    def test_create_node_with_metadata(self):
+        image = NodeImage(id='ami-be3adfd7',
+                          name=self.image_name,
+                          driver=self.driver)
+        size = NodeSize('m1.small', 'Small Instance', None, None, None, None,
+                        driver=self.driver)
+        node = self.driver.create_node(name='foo',
+                                       image=image,
+                                       size=size,
+                                       ex_metadata={'Bar': 'baz', 'Num': '42'})
+        self.assertEqual(node.name, 'foo')
+        self.assertEqual(node.extra['tags']['Name'], 'foo')
+        self.assertEqual(node.extra['tags']['Bar'], 'baz')
+        self.assertEqual(node.extra['tags']['Num'], '42')
+        self.assertEqual(len(node.extra['tags']), 3)
+
     def test_create_node_idempotent(self):
         EC2MockHttp.type = 'idempotent'
         image = NodeImage(id='ami-be3adfd7',