Merge lp:~jtv/maas/whittle-away-get_managed_interface into lp:~maas-committers/maas/trunk

Proposed by Jeroen T. Vermeulen
Status: Merged
Approved by: Jeroen T. Vermeulen
Approved revision: no longer in the source branch.
Merged at revision: 1851
Proposed branch: lp:~jtv/maas/whittle-away-get_managed_interface
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 178 lines (+20/-19)
6 files modified
src/maasserver/models/tests/test_nodegroupinterface.py (+6/-5)
src/maasserver/testing/factory.py (+2/-2)
src/maasserver/tests/test_api.py (+6/-6)
src/maasserver/tests/test_dhcp.py (+2/-2)
src/maasserver/tests/test_forms.py (+1/-1)
src/maasserver/utils/tests/test_utils.py (+3/-3)
To merge this branch: bzr merge lp:~jtv/maas/whittle-away-get_managed_interface
Reviewer Review Type Date Requested Status
Raphaël Badin (community) Approve
Review via email: mp+203314@code.launchpad.net

Commit message

Remove incidental uses of NodeGroup.get_managed_interface().

Description of the change

NodeGroup.get_managed_interface() is going away. It's being replaced with get_mangaed_interfaces() (plural). Several other branches currently waiting for review or landing remove more complex uses of the old method, but the branch you see here updates tests.

Once all these pending branches have landed, we can actually remove get_managed_interface() and its tests. That's one of the milestones in support for multiple managed interfaces per nodegroup.

Jeroen

To post a comment you must log in.
Revision history for this message
Raphaël Badin (rvb) wrote :

> That's one of the milestones in support for multiple managed interfaces per nodegroup.

Right, another milestone is the removal of the clean_management() method which actually prevents multiple managed interface on a single nodegroup. But we will remove this one once the multiple-managed interface per nodegroup feature will be more advanced and will have undergone full scale testing.

review: Approve
Revision history for this message
Jeroen T. Vermeulen (jtv) wrote :

That's in the "switchover" part of the document. There are other jobs there as well, which all belong together in one functional change. The tasks I put on the board were only those that can be done immediately, in preparation of the switchover.

Revision history for this message
MAAS Lander (maas-lander) wrote :

The attempt to merge lp:~jtv/maas/whittle-away-get_managed_interface into lp:maas failed. Below is the output from the failed tests.

Ign http://security.ubuntu.com trusty-security InRelease
Hit http://security.ubuntu.com trusty-security Release.gpg
Hit http://security.ubuntu.com trusty-security Release
Ign http://nova.clouds.archive.ubuntu.com trusty InRelease
Ign http://nova.clouds.archive.ubuntu.com trusty-updates InRelease
Get:1 http://nova.clouds.archive.ubuntu.com trusty Release.gpg [933 B]
Hit http://nova.clouds.archive.ubuntu.com trusty-updates Release.gpg
Get:2 http://nova.clouds.archive.ubuntu.com trusty Release [58.5 kB]
Hit http://nova.clouds.archive.ubuntu.com trusty-updates Release
Hit http://security.ubuntu.com trusty-security/main Sources
Hit http://security.ubuntu.com trusty-security/universe Sources
Hit http://security.ubuntu.com trusty-security/main amd64 Packages
Hit http://security.ubuntu.com trusty-security/universe amd64 Packages
Hit http://security.ubuntu.com trusty-security/main Translation-en
Hit http://security.ubuntu.com trusty-security/universe Translation-en
Get:3 http://nova.clouds.archive.ubuntu.com trusty/main Sources [1,055 kB]
Ign http://security.ubuntu.com trusty-security/main Translation-en_US
Ign http://security.ubuntu.com trusty-security/universe Translation-en_US
Get:4 http://nova.clouds.archive.ubuntu.com trusty/universe Sources [6,400 kB]
Get:5 http://nova.clouds.archive.ubuntu.com trusty/main amd64 Packages [1,317 kB]
Get:6 http://nova.clouds.archive.ubuntu.com trusty/universe amd64 Packages [5,867 kB]
Hit http://nova.clouds.archive.ubuntu.com trusty/main Translation-en
Hit http://nova.clouds.archive.ubuntu.com trusty/universe Translation-en
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/main Sources
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/universe Sources
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/main amd64 Packages
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/universe amd64 Packages
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/main Translation-en
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/universe Translation-en
Ign http://nova.clouds.archive.ubuntu.com trusty/main Translation-en_US
Ign http://nova.clouds.archive.ubuntu.com trusty/universe Translation-en_US
Ign http://nova.clouds.archive.ubuntu.com trusty-updates/main Translation-en_US
Ign http://nova.clouds.archive.ubuntu.com trusty-updates/universe Translation-en_US
Fetched 14.7 MB in 6s (2,234 kB/s)

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/maasserver/models/tests/test_nodegroupinterface.py'
--- src/maasserver/models/tests/test_nodegroupinterface.py 2013-10-18 16:57:37 +0000
+++ src/maasserver/models/tests/test_nodegroupinterface.py 2014-01-27 12:53:33 +0000
@@ -1,4 +1,4 @@
1# Copyright 2012, 2013 Canonical Ltd. This software is licensed under the1# Copyright 2012-2014 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for :class:`NodeGroupInterface`."""4"""Tests for :class:`NodeGroupInterface`."""
@@ -31,7 +31,8 @@
31 nodegroup = factory.make_node_group(31 nodegroup = factory.make_node_group(
32 status=NODEGROUP_STATUS.ACCEPTED,32 status=NODEGROUP_STATUS.ACCEPTED,
33 management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)33 management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)
34 return nodegroup.get_managed_interface()34 [interface] = nodegroup.get_managed_interfaces()
35 return interface
3536
3637
37class TestNodeGroupInterface(MAASServerTestCase):38class TestNodeGroupInterface(MAASServerTestCase):
@@ -76,7 +77,7 @@
76 ]77 ]
77 for field in checked_fields:78 for field in checked_fields:
78 nodegroup = factory.make_node_group(network=network)79 nodegroup = factory.make_node_group(network=network)
79 interface = nodegroup.get_managed_interface()80 [interface] = nodegroup.get_managed_interfaces()
80 ip = '192.168.2.1'81 ip = '192.168.2.1'
81 setattr(interface, field, '192.168.2.1')82 setattr(interface, field, '192.168.2.1')
82 message = (83 message = (
@@ -89,7 +90,7 @@
89 def test_clean_network(self):90 def test_clean_network(self):
90 nodegroup = factory.make_node_group(91 nodegroup = factory.make_node_group(
91 network=IPNetwork('192.168.0.3/24'))92 network=IPNetwork('192.168.0.3/24'))
92 interface = nodegroup.get_managed_interface()93 [interface] = nodegroup.get_managed_interfaces()
93 # Set a bogus subnet mask.94 # Set a bogus subnet mask.
94 interface.subnet_mask = '0.9.0.4'95 interface.subnet_mask = '0.9.0.4'
95 message = 'invalid IPNetwork 192.168.0.255/0.9.0.4'96 message = 'invalid IPNetwork 192.168.0.255/0.9.0.4'
@@ -142,7 +143,7 @@
142 nodegroup = factory.make_node_group(143 nodegroup = factory.make_node_group(
143 network=network,144 network=network,
144 management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)145 management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)
145 interface = nodegroup.get_managed_interface()146 [interface] = nodegroup.get_managed_interfaces()
146 setattr(interface, field, '')147 setattr(interface, field, '')
147 exception = self.assertRaises(148 exception = self.assertRaises(
148 ValidationError, interface.full_clean)149 ValidationError, interface.full_clean)
149150
=== modified file 'src/maasserver/testing/factory.py'
--- src/maasserver/testing/factory.py 2014-01-21 06:08:12 +0000
+++ src/maasserver/testing/factory.py 2014-01-27 12:53:33 +0000
@@ -1,4 +1,4 @@
1# Copyright 2013 Canonical Ltd. This software is licensed under the1# Copyright 2013-2014 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Test object factories."""4"""Test object factories."""
@@ -257,7 +257,7 @@
257 name = self.make_name('original-name')257 name = self.make_name('original-name')
258 nodegroup = self.make_node_group(258 nodegroup = self.make_node_group(
259 name=name, status=NODEGROUP_STATUS.ACCEPTED)259 name=name, status=NODEGROUP_STATUS.ACCEPTED)
260 interface = nodegroup.get_managed_interface()260 [interface] = nodegroup.get_managed_interfaces()
261 interface.management = NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS261 interface.management = NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS
262 interface.save()262 interface.save()
263 node = self.make_node(263 node = self.make_node(
264264
=== modified file 'src/maasserver/tests/test_api.py'
--- src/maasserver/tests/test_api.py 2014-01-21 06:08:12 +0000
+++ src/maasserver/tests/test_api.py 2014-01-27 12:53:33 +0000
@@ -1,4 +1,4 @@
1# Copyright 2012, 2013 Canonical Ltd. This software is licensed under the1# Copyright 2012-2014 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Test maasserver API."""4"""Test maasserver API."""
@@ -657,7 +657,7 @@
657 def test_read_interface(self):657 def test_read_interface(self):
658 self.become_admin()658 self.become_admin()
659 nodegroup = factory.make_node_group()659 nodegroup = factory.make_node_group()
660 interface = nodegroup.get_managed_interface()660 [interface] = nodegroup.get_managed_interfaces()
661 response = self.client.get(661 response = self.client.get(
662 reverse(662 reverse(
663 'nodegroupinterface_handler',663 'nodegroupinterface_handler',
@@ -671,7 +671,7 @@
671 def test_update_interface(self):671 def test_update_interface(self):
672 self.become_admin()672 self.become_admin()
673 nodegroup = factory.make_node_group()673 nodegroup = factory.make_node_group()
674 interface = nodegroup.get_managed_interface()674 [interface] = nodegroup.get_managed_interfaces()
675 get_ip_in_network = partial(675 get_ip_in_network = partial(
676 factory.getRandomIPInNetwork, interface.network)676 factory.getRandomIPInNetwork, interface.network)
677 new_ip_range_high = next(677 new_ip_range_high = next(
@@ -689,7 +689,7 @@
689 def test_delete_interface(self):689 def test_delete_interface(self):
690 self.become_admin()690 self.become_admin()
691 nodegroup = factory.make_node_group()691 nodegroup = factory.make_node_group()
692 interface = nodegroup.get_managed_interface()692 [interface] = nodegroup.get_managed_interfaces()
693 response = self.client.delete(693 response = self.client.delete(
694 reverse(694 reverse(
695 'nodegroupinterface_handler',695 'nodegroupinterface_handler',
@@ -702,7 +702,7 @@
702 def test_update_foreign_dhcp_ip_sets_value(self):702 def test_update_foreign_dhcp_ip_sets_value(self):
703 self.become_admin()703 self.become_admin()
704 nodegroup = factory.make_node_group()704 nodegroup = factory.make_node_group()
705 interface = nodegroup.get_managed_interface()705 [interface] = nodegroup.get_managed_interfaces()
706 ip = factory.getRandomIPAddress()706 ip = factory.getRandomIPAddress()
707 response = self.client_put(707 response = self.client_put(
708 reverse(708 reverse(
@@ -717,7 +717,7 @@
717 def test_update_foreign_dhcp_ip_unsets_value(self):717 def test_update_foreign_dhcp_ip_unsets_value(self):
718 self.become_admin()718 self.become_admin()
719 nodegroup = factory.make_node_group()719 nodegroup = factory.make_node_group()
720 interface = nodegroup.get_managed_interface()720 [interface] = nodegroup.get_managed_interfaces()
721 interface.foreign_dhcp_ip = factory.getRandomIPAddress()721 interface.foreign_dhcp_ip = factory.getRandomIPAddress()
722 interface.save()722 interface.save()
723 response = self.client_put(723 response = self.client_put(
724724
=== modified file 'src/maasserver/tests/test_dhcp.py'
--- src/maasserver/tests/test_dhcp.py 2014-01-17 09:49:34 +0000
+++ src/maasserver/tests/test_dhcp.py 2014-01-27 12:53:33 +0000
@@ -93,7 +93,7 @@
93 'ip_range_high',93 'ip_range_high',
94 ]94 ]
9595
96 interface = nodegroup.get_managed_interface()96 [interface] = nodegroup.get_managed_interfaces()
97 expected_params = {97 expected_params = {
98 param: getattr(interface, param)98 param: getattr(interface, param)
99 for param in dhcp_params}99 for param in dhcp_params}
@@ -185,7 +185,7 @@
185185
186 def test_dhcp_config_gets_written_when_nodegroupinterface_changes(self):186 def test_dhcp_config_gets_written_when_nodegroupinterface_changes(self):
187 nodegroup = factory.make_node_group(status=NODEGROUP_STATUS.ACCEPTED)187 nodegroup = factory.make_node_group(status=NODEGROUP_STATUS.ACCEPTED)
188 interface = nodegroup.get_managed_interface()188 [interface] = nodegroup.get_managed_interfaces()
189 self.patch(settings, "DHCP_CONNECT", True)189 self.patch(settings, "DHCP_CONNECT", True)
190 self.patch(dhcp, 'write_dhcp_config')190 self.patch(dhcp, 'write_dhcp_config')
191 get_ip_in_network = partial(191 get_ip_in_network = partial(
192192
=== modified file 'src/maasserver/tests/test_forms.py'
--- src/maasserver/tests/test_forms.py 2014-01-23 11:59:37 +0000
+++ src/maasserver/tests/test_forms.py 2014-01-27 12:53:33 +0000
@@ -940,7 +940,7 @@
940940
941 def test_accepts_name_change_if_nodes_in_use_but_dns_not_managed(self):941 def test_accepts_name_change_if_nodes_in_use_but_dns_not_managed(self):
942 nodegroup, node = factory.make_unrenamable_nodegroup_with_node()942 nodegroup, node = factory.make_unrenamable_nodegroup_with_node()
943 interface = nodegroup.get_managed_interface()943 [interface] = nodegroup.get_managed_interfaces()
944 interface.management = NODEGROUPINTERFACE_MANAGEMENT.DHCP944 interface.management = NODEGROUPINTERFACE_MANAGEMENT.DHCP
945 interface.save()945 interface.save()
946 data = self.make_form_data(nodegroup)946 data = self.make_form_data(nodegroup)
947947
=== modified file 'src/maasserver/utils/tests/test_utils.py'
--- src/maasserver/utils/tests/test_utils.py 2013-10-18 09:54:17 +0000
+++ src/maasserver/utils/tests/test_utils.py 2014-01-27 12:53:33 +0000
@@ -1,4 +1,4 @@
1# Copyright 2012, 2013 Canonical Ltd. This software is licensed under the1# Copyright 2012-2014 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for miscellaneous helpers."""4"""Tests for miscellaneous helpers."""
@@ -221,10 +221,10 @@
221221
222 def test_find_nodegroup_looks_up_nodegroup_by_controller_ip(self):222 def test_find_nodegroup_looks_up_nodegroup_by_controller_ip(self):
223 nodegroup = factory.make_node_group()223 nodegroup = factory.make_node_group()
224 ip = nodegroup.get_managed_interface().ip224 [interface] = nodegroup.get_managed_interfaces()
225 self.assertEqual(225 self.assertEqual(
226 nodegroup,226 nodegroup,
227 find_nodegroup(get_request(ip)))227 find_nodegroup(get_request(interface.ip)))
228228
229 def test_find_nodegroup_returns_None_if_not_found(self):229 def test_find_nodegroup_returns_None_if_not_found(self):
230 self.assertIsNone(230 self.assertIsNone(