Merge lp:~allenap/maas/prepare-region--bug-1554494 into lp:~maas-committers/maas/trunk

Proposed by Gavin Panella
Status: Merged
Approved by: Gavin Panella
Approved revision: no longer in the source branch.
Merged at revision: 4747
Proposed branch: lp:~allenap/maas/prepare-region--bug-1554494
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 37 lines (+11/-4)
2 files modified
src/maasserver/rpc/regionservice.py (+2/-2)
src/maasserver/rpc/tests/test_regionservice.py (+9/-2)
To merge this branch: bzr merge lp:~allenap/maas/prepare-region--bug-1554494
Reviewer Review Type Date Requested Status
Blake Rouse (community) Approve
Review via email: mp+288414@code.launchpad.net

Commit message

Promotion-to-region will now work when the local machine has multiple MAC addresses.

To post a comment you must log in.
Revision history for this message
Blake Rouse (blake-rouse) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/maasserver/rpc/regionservice.py'
2--- src/maasserver/rpc/regionservice.py 2016-03-05 00:35:25 +0000
3+++ src/maasserver/rpc/regionservice.py 2016-03-08 15:03:28 +0000
4@@ -981,8 +981,8 @@
5 # this node.
6 hostname = gethostname()
7 region_obj = get_one(Node.objects.filter(
8- Q(hostname=hostname) |
9- Q(interface__mac_address__in=mac_addresses)))
10+ Q(interface__mac_address__in=mac_addresses) |
11+ Q(hostname=hostname)).distinct())
12 if region_obj is not None:
13 # Already a node with a MAC address that matches this machine.
14 # Convert that into a region.
15
16=== modified file 'src/maasserver/rpc/tests/test_regionservice.py'
17--- src/maasserver/rpc/tests/test_regionservice.py 2016-03-05 01:33:15 +0000
18+++ src/maasserver/rpc/tests/test_regionservice.py 2016-03-08 15:03:28 +0000
19@@ -2029,9 +2029,16 @@
20 service = RegionAdvertisingService()
21
22 node = factory.make_Node(interface=True)
23- interface = node.get_boot_interface()
24+ interfaces = [
25+ factory.make_Interface(node=node),
26+ factory.make_Interface(node=node),
27+ ]
28+ mac_addresses = [
29+ str(interface.mac_address)
30+ for interface in interfaces
31+ ]
32
33- service.prepare([str(interface.mac_address)])
34+ service.prepare(mac_addresses)
35
36 # Node should have been converted to a RegionController.
37 node = reload_object(node)