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
=== modified file 'src/maasserver/rpc/regionservice.py'
--- src/maasserver/rpc/regionservice.py 2016-03-05 00:35:25 +0000
+++ src/maasserver/rpc/regionservice.py 2016-03-08 15:03:28 +0000
@@ -981,8 +981,8 @@
981 # this node.981 # this node.
982 hostname = gethostname()982 hostname = gethostname()
983 region_obj = get_one(Node.objects.filter(983 region_obj = get_one(Node.objects.filter(
984 Q(hostname=hostname) |984 Q(interface__mac_address__in=mac_addresses) |
985 Q(interface__mac_address__in=mac_addresses)))985 Q(hostname=hostname)).distinct())
986 if region_obj is not None:986 if region_obj is not None:
987 # Already a node with a MAC address that matches this machine.987 # Already a node with a MAC address that matches this machine.
988 # Convert that into a region.988 # Convert that into a region.
989989
=== modified file 'src/maasserver/rpc/tests/test_regionservice.py'
--- src/maasserver/rpc/tests/test_regionservice.py 2016-03-05 01:33:15 +0000
+++ src/maasserver/rpc/tests/test_regionservice.py 2016-03-08 15:03:28 +0000
@@ -2029,9 +2029,16 @@
2029 service = RegionAdvertisingService()2029 service = RegionAdvertisingService()
20302030
2031 node = factory.make_Node(interface=True)2031 node = factory.make_Node(interface=True)
2032 interface = node.get_boot_interface()2032 interfaces = [
2033 factory.make_Interface(node=node),
2034 factory.make_Interface(node=node),
2035 ]
2036 mac_addresses = [
2037 str(interface.mac_address)
2038 for interface in interfaces
2039 ]
20332040
2034 service.prepare([str(interface.mac_address)])2041 service.prepare(mac_addresses)
20352042
2036 # Node should have been converted to a RegionController.2043 # Node should have been converted to a RegionController.
2037 node = reload_object(node)2044 node = reload_object(node)