Merge lp:~rvb/maas/enlistment-user-data into lp:~maas-committers/maas/trunk

Proposed by Raphaël Badin
Status: Merged
Approved by: Raphaël Badin
Approved revision: no longer in the source branch.
Merged at revision: 1383
Proposed branch: lp:~rvb/maas/enlistment-user-data
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 60 lines (+23/-3)
2 files modified
src/metadataserver/api.py (+3/-1)
src/metadataserver/tests/test_api.py (+20/-2)
To merge this branch: bzr merge lp:~rvb/maas/enlistment-user-data
Reviewer Review Type Date Requested Status
Gavin Panella (community) Approve
Review via email: mp+136670@code.launchpad.net

Commit message

Fix the enlistment user data: use the maas_url stored on the related nodegroup.

To post a comment you must log in.
Revision history for this message
Gavin Panella (allenap) wrote :

Looks good.

[1]

+        ng_url = 'http://%s' % factory.make_name('host')
...
+        ud_url = reverse('enlist-metadata-user-data', args=['latest'])

I'm running a bit slow today, but it took me a while to figure out
what the prefixes ng and ud here meant.

[2]

+            MatchesAll(*[Contains(ng_url), Not(Contains(maas_url))]))

Or:

            MatchesAll(Contains(ng_url), Not(Contains(maas_url)))

?

review: Approve
Revision history for this message
Raphaël Badin (rvb) wrote :

> Looks good.
>
> [1]
[...]
> [2]
[...]

Fixed, thanks for the review!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/metadataserver/api.py'
--- src/metadataserver/api.py 2012-11-27 10:26:19 +0000
+++ src/metadataserver/api.py 2012-11-28 15:14:21 +0000
@@ -377,7 +377,9 @@
377377
378 def read(self, request, version):378 def read(self, request, version):
379 check_version(version)379 check_version(version)
380 return HttpResponse(get_enlist_userdata(), mimetype="text/plain")380 nodegroup = find_nodegroup(request)
381 return HttpResponse(
382 get_enlist_userdata(nodegroup=nodegroup), mimetype="text/plain")
381383
382384
383class EnlistVersionIndexHandler(OperationsHandler):385class EnlistVersionIndexHandler(OperationsHandler):
384386
=== modified file 'src/metadataserver/tests/test_api.py'
--- src/metadataserver/tests/test_api.py 2012-11-26 08:52:01 +0000
+++ src/metadataserver/tests/test_api.py 2012-11-28 15:14:21 +0000
@@ -53,7 +53,11 @@
53from mock import Mock53from mock import Mock
54from netaddr import IPNetwork54from netaddr import IPNetwork
55from provisioningserver.enum import POWER_TYPE55from provisioningserver.enum import POWER_TYPE
56from testtools.matchers import Contains56from testtools.matchers import (
57 Contains,
58 MatchesAll,
59 Not,
60 )
5761
5862
59class TestHelpers(DjangoTestCase):63class TestHelpers(DjangoTestCase):
@@ -722,13 +726,27 @@
722 # instance-id must be available726 # instance-id must be available
723 ud_url = reverse('enlist-metadata-user-data', args=['latest'])727 ud_url = reverse('enlist-metadata-user-data', args=['latest'])
724 fake_preseed = factory.getRandomString()728 fake_preseed = factory.getRandomString()
725 self.patch(api, "get_enlist_userdata", lambda: fake_preseed)729 self.patch(
730 api, "get_enlist_userdata", Mock(return_value= fake_preseed))
726 response = self.client.get(ud_url)731 response = self.client.get(ud_url)
727 self.assertEqual(732 self.assertEqual(
728 (httplib.OK, "text/plain", fake_preseed),733 (httplib.OK, "text/plain", fake_preseed),
729 (response.status_code, response["Content-Type"], response.content),734 (response.status_code, response["Content-Type"], response.content),
730 response)735 response)
731736
737 def test_get_userdata_detects_request_origin(self):
738 nodegroup_url = 'http://%s' % factory.make_name('host')
739 maas_url = 'http://%s' % factory.make_hostname()
740 self.patch(settings, 'DEFAULT_MAAS_URL', maas_url)
741 network = IPNetwork("10.1.1/24")
742 ip = factory.getRandomIPInNetwork(network)
743 factory.make_node_group(maas_url=nodegroup_url, network=network)
744 url = reverse('enlist-metadata-user-data', args=['latest'])
745 response = self.client.get(url, SERVER_NAME=ip)
746 self.assertThat(
747 response.content,
748 MatchesAll(Contains(nodegroup_url), Not(Contains(maas_url))))
749
732 def test_metadata_list(self):750 def test_metadata_list(self):
733 # /enlist/latest/metadata request should list available keys751 # /enlist/latest/metadata request should list available keys
734 md_url = reverse('enlist-metadata-meta-data', args=['latest', ""])752 md_url = reverse('enlist-metadata-meta-data', args=['latest', ""])