← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~rvb/maas/metadata-fix-hostname-1.2 into lp:maas/1.2

 

Raphaël Badin has proposed merging lp:~rvb/maas/metadata-fix-hostname-1.2 into lp:maas/1.2.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #1078744 in MAAS: "Nodes are deployed with wrong domain name."
  https://bugs.launchpad.net/maas/+bug/1078744

For more details, see:
https://code.launchpad.net/~rvb/maas/metadata-fix-hostname-1.2/+merge/134305

Return node.fqdn instead of node.hostname in the metadataservice.

(This is a backport of https://code.launchpad.net/~rvb/maas/metadata-fix-hostname/+merge/134302)
-- 
https://code.launchpad.net/~rvb/maas/metadata-fix-hostname-1.2/+merge/134305
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~rvb/maas/metadata-fix-hostname-1.2 into lp:maas/1.2.
=== modified file 'src/metadataserver/api.py'
--- src/metadataserver/api.py	2012-10-29 10:44:42 +0000
+++ src/metadataserver/api.py	2012-11-14 14:46:26 +0000
@@ -310,7 +310,7 @@
 
     def local_hostname(self, node, version, item):
         """Produce local-hostname attribute."""
-        return make_text_response(node.hostname)
+        return make_text_response(node.fqdn)
 
     def instance_id(self, node, version, item):
         """Produce instance-id attribute."""

=== modified file 'src/metadataserver/tests/test_api.py'
--- src/metadataserver/tests/test_api.py	2012-10-05 14:11:43 +0000
+++ src/metadataserver/tests/test_api.py	2012-11-14 14:46:26 +0000
@@ -20,7 +20,11 @@
 from django.conf import settings
 from django.core.exceptions import PermissionDenied
 from django.core.urlresolvers import reverse
-from maasserver.enum import NODE_STATUS
+from maasserver.enum import (
+    NODE_STATUS,
+    NODEGROUP_STATUS,
+    NODEGROUPINTERFACE_MANAGEMENT,
+    )
 from maasserver.exceptions import (
     MAASAPINotFound,
     Unauthorized,
@@ -220,13 +224,19 @@
         producers = map(handler.get_attribute_producer, handler.fields)
         self.assertNotIn(None, producers)
 
-    def test_meta_data_local_hostname_returns_hostname(self):
+    def test_meta_data_local_hostname_returns_fqdn(self):
+        nodegroup = factory.make_node_group(
+            status=NODEGROUP_STATUS.ACCEPTED,
+            management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)
         hostname = factory.getRandomString()
-        client = self.make_node_client(factory.make_node(hostname=hostname))
+        domain = factory.getRandomString()
+        node = factory.make_node(
+            hostname='%s.%s' % (hostname, domain), nodegroup=nodegroup)
+        client = self.make_node_client(node)
         url = reverse('metadata-meta-data', args=['latest', 'local-hostname'])
         response = client.get(url)
         self.assertEqual(
-            (httplib.OK, hostname),
+            (httplib.OK, node.fqdn),
             (response.status_code, response.content.decode('ascii')))
         self.assertIn('text/plain', response['Content-Type'])