Merge lp:~rvb/maas/bug-1100225 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: 1422
Proposed branch: lp:~rvb/maas/bug-1100225
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 54 lines (+22/-3)
2 files modified
src/maasserver/api.py (+11/-3)
src/maasserver/tests/test_api.py (+11/-0)
To merge this branch: bzr merge lp:~rvb/maas/bug-1100225
Reviewer Review Type Date Requested Status
Jeroen T. Vermeulen (community) Approve
Review via email: mp+143476@code.launchpad.net

Commit message

Only update nodegroup.maas_url if the hostname is not 'localhost'.

To post a comment you must log in.
Revision history for this message
Jeroen T. Vermeulen (jtv) wrote :

Looks good, makes sense. Thanks for the fix.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/maasserver/api.py'
--- src/maasserver/api.py 2012-12-20 14:46:36 +0000
+++ src/maasserver/api.py 2013-01-16 11:07:21 +0000
@@ -91,6 +91,7 @@
91from inspect import getdoc91from inspect import getdoc
92import sys92import sys
93from textwrap import dedent93from textwrap import dedent
94from urlparse import urlparse
94from xml.sax.saxutils import quoteattr95from xml.sax.saxutils import quoteattr
9596
96from celery.app import app_or_default97from celery.app import app_or_default
@@ -949,10 +950,17 @@
949950
950951
951def update_nodegroup_maas_url(nodegroup, request):952def update_nodegroup_maas_url(nodegroup, request):
952 """Update `nodegroup.maas_url` from the given `request`."""953 """Update `nodegroup.maas_url` from the given `request`.
954
955 Only update `nodegroup.maas_url` if the hostname part is not 'localhost'
956 (i.e. the default value used when the master nodegroup connects).
957 """
953 path = request.META["SCRIPT_NAME"]958 path = request.META["SCRIPT_NAME"]
954 nodegroup.maas_url = build_absolute_uri(request, path)959 maas_url = build_absolute_uri(request, path)
955 nodegroup.save()960 server_host = urlparse(maas_url).hostname
961 if server_host != 'localhost':
962 nodegroup.maas_url = maas_url
963 nodegroup.save()
956964
957965
958class NodeGroupsHandler(OperationsHandler):966class NodeGroupsHandler(OperationsHandler):
959967
=== modified file 'src/maasserver/tests/test_api.py'
--- src/maasserver/tests/test_api.py 2012-12-20 10:06:34 +0000
+++ src/maasserver/tests/test_api.py 2013-01-16 11:07:21 +0000
@@ -3918,6 +3918,17 @@
3918 api.update_nodegroup_maas_url(nodegroup, request)3918 api.update_nodegroup_maas_url(nodegroup, request)
3919 self.assertEqual("http://example.com/script", nodegroup.maas_url)3919 self.assertEqual("http://example.com/script", nodegroup.maas_url)
39203920
3921 def test_update_from_request_discarded_if_localhost(self):
3922 request_factory = RequestFactory(SCRIPT_NAME="/script")
3923 request = request_factory.get(
3924 "/script/path", SERVER_NAME="localhost")
3925 maas_url = factory.make_name('maas_url')
3926 nodegroup = factory.make_node_group(maas_url=maas_url)
3927 api.update_nodegroup_maas_url(nodegroup, request)
3928 # nodegroup.maas_url has not been changed by
3929 # api.update_nodegroup_maas_url.
3930 self.assertEqual(maas_url, nodegroup.maas_url)
3931
39213932
3922def dict_subset(obj, fields):3933def dict_subset(obj, fields):
3923 """Return a dict of a subset of the fields/values of an object."""3934 """Return a dict of a subset of the fields/values of an object."""