Jeroen T. Vermeulen has proposed merging 
lp:~jtv/maas/commissioning-metadata-is-yaml into lp:maas.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~jtv/maas/commissioning-metadata-is-yaml/+merge/101033

Bonus branch.  As rightly suggested by Gavin and agreed with Scott, produce the 
commissioning preseed, which is YAML, by dumping the input data (of the right 
structure, naturally) as YAML.  It does need the #cloud-config header.
-- 
https://code.launchpad.net/~jtv/maas/commissioning-metadata-is-yaml/+merge/101033
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~jtv/maas/commissioning-metadata-is-yaml into lp:maas.
=== modified file 'src/maasserver/provisioning.py'
--- src/maasserver/provisioning.py	2012-04-05 16:33:27 +0000
+++ src/maasserver/provisioning.py	2012-04-05 20:25:37 +0000
@@ -34,6 +34,7 @@
     NODE_STATUS,
     )
 from provisioningserver.enum import PSERV_FAULT
+import yaml
 
 # Presentation templates for various provisioning faults.
 PRESENTATIONS = {
@@ -214,21 +215,16 @@
 
 def compose_commissioning_preseed(token):
     """Compose the preseed value for a Commissioning node."""
-    template = dedent("""
-        #cloud-config
-        datasource:
-         MAAS:
-          metadata_url: %s
-          consumer_key: %s
-          token_key: %s
-          token_secret: %s
-        """.lstrip('\n'))
-    return template % (
-        get_metadata_server_url(),
-        token.consumer.key,
-        token.key,
-        token.secret,
-        )
+    return "#cloud-config\n%s" % yaml.dump({
+        'datasource': {
+            'MAAS': {
+                'metadata_url': get_metadata_server_url(),
+                'consumer_key': token.consumer.key,
+                'token_key': token.key,
+                'token_secret': token.secret,
+            }
+        }
+    })
 
 
 def compose_preseed(node):

=== modified file 'src/maasserver/tests/test_provisioning.py'
--- src/maasserver/tests/test_provisioning.py	2012-04-05 17:42:01 +0000
+++ src/maasserver/tests/test_provisioning.py	2012-04-05 20:25:37 +0000
@@ -46,7 +46,10 @@
     )
 from provisioningserver.testing.factory import ProvisioningFakeFactory
 from testtools.deferredruntest import AsynchronousDeferredRunTest
-from testtools.matchers import KeysEqual
+from testtools.matchers import (
+    KeysEqual,
+    StartsWith,
+    )
 from testtools.testcase import ExpectedException
 from twisted.internet.defer import inlineCallbacks
 import yaml
@@ -78,6 +81,10 @@
             KeysEqual(
                 'metadata_url', 'consumer_key', 'token_key', 'token_secret'))
 
+    def test_compose_preseed_for_commissioning_node_has_header(self):
+        node = factory.make_node(status=NODE_STATUS.COMMISSIONING)
+        self.assertThat(compose_preseed(node), StartsWith("#cloud-config\n"))
+
     def test_compose_preseed_includes_metadata_url(self):
         node = factory.make_node(status=NODE_STATUS.READY)
         self.assertIn(get_metadata_server_url(), compose_preseed(node))

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp

Reply via email to