Merge lp:~jtv/maas/retire-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: 1854
Proposed branch: lp:~jtv/maas/retire-get_managed_interface
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 62 lines (+0/-41)
2 files modified
src/maasserver/models/nodegroup.py (+0/-17)
src/maasserver/models/tests/test_nodegroup.py (+0/-24)
To merge this branch: bzr merge lp:~jtv/maas/retire-get_managed_interface
Reviewer Review Type Date Requested Status
Julian Edwards (community) Approve
Review via email: mp+203463@code.launchpad.net

Commit message

Retire NodeGroup.get_managed_interface().

Description of the change

A nodegroup can now have multiple managed interfaces, so the method's been replaced by NodeGroup.get_managed_interfaces(). In practice we're not quite at the stage where we allow multiple managed interfaces yet (there's a bit more code to be completed before we can), but this is an important if small milestone along that path. Use of get_managed_interface() was the main tell-tale for implicit reliance on the old model.

Jeroen

To post a comment you must log in.
Revision history for this message
Julian Edwards (julian-edwards) wrote :

 review: approve

\o/

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/maasserver/models/nodegroup.py'
2--- src/maasserver/models/nodegroup.py 2014-01-23 08:50:05 +0000
3+++ src/maasserver/models/nodegroup.py 2014-01-28 05:02:42 +0000
4@@ -212,23 +212,6 @@
5 return interface
6 return None
7
8- # XXX JeroenVermeulen 2014-01-17, bug=1052339: This method is going away.
9- # Use get_managed_interfaces() instead. There may be more than one managed
10- # interface.
11- def get_managed_interface(self):
12- """Return the interface for which MAAS managed the DHCP service.
13-
14- This is a temporary method that should be refactored once we add
15- proper support for multiple interfaces on a nodegroup.
16- """
17- # Iterate over all the interfaces in python instead of doing the
18- # filtering in SQL so that this will use the cached version of
19- # self.nodegroupinterface_set if it is there.
20- for interface in self.nodegroupinterface_set.all():
21- if interface.management != NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED:
22- return interface
23- return None
24-
25 def get_managed_interfaces(self):
26 """Return the list of interfaces for which MAAS manages DHCP."""
27 # Filter in python instead of in SQL. This will use the cached
28
29=== modified file 'src/maasserver/models/tests/test_nodegroup.py'
30--- src/maasserver/models/tests/test_nodegroup.py 2014-01-17 08:14:11 +0000
31+++ src/maasserver/models/tests/test_nodegroup.py 2014-01-28 05:02:42 +0000
32@@ -333,30 +333,6 @@
33 args, kwargs = task.apply_async.call_args
34 self.assertEqual(nodegroup.work_queue, kwargs['queue'])
35
36- # XXX JeroenVermeulen 2014-01-17, bug=1052339: Deprecated.
37- def test_get_managed_interface_returns_managed_interface(self):
38- nodegroup = factory.make_node_group()
39- interface = nodegroup.nodegroupinterface_set.all()[0]
40- self.assertEqual(interface, nodegroup.get_managed_interface())
41-
42- # XXX JeroenVermeulen 2014-01-17, bug=1052339: Deprecated.
43- def test_get_managed_interface_does_not_return_unmanaged_interface(self):
44- nodegroup = factory.make_node_group()
45- interface = nodegroup.nodegroupinterface_set.all()[0]
46- interface.management = NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED
47- interface.save()
48- self.assertIsNone(nodegroup.get_managed_interface())
49-
50- # XXX JeroenVermeulen 2014-01-17, bug=1052339: Deprecated.
51- def test_get_managed_interface_does_not_return_unrelated_interface(self):
52- nodegroup = factory.make_node_group()
53- # Create another nodegroup with a managed interface.
54- factory.make_node_group()
55- interface = nodegroup.nodegroupinterface_set.all()[0]
56- interface.management = NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED
57- interface.save()
58- self.assertIsNone(nodegroup.get_managed_interface())
59-
60 def test_get_dns_managed_interface_returns_dns_managed_interface(self):
61 nodegroup = factory.make_node_group(
62 management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)