Merge ~mpontillo/maas:interface-params-websocket--bug-1801776 into maas:master

Proposed by Mike Pontillo
Status: Merged
Approved by: Mike Pontillo
Approved revision: 66929cdd3a71ec297d117ce221d27303d9cb592a
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~mpontillo/maas:interface-params-websocket--bug-1801776
Merge into: maas:master
Diff against target: 121 lines (+39/-0)
3 files modified
src/maasserver/websockets/handlers/node.py (+1/-0)
src/maasserver/websockets/handlers/tests/test_device.py (+1/-0)
src/maasserver/websockets/handlers/tests/test_machine.py (+37/-0)
Reviewer Review Type Date Requested Status
Newell Jensen (community) Approve
Anthony Dillon Approve
MAAS Lander unittests Pending
Review via email: mp+358350@code.launchpad.net

Commit message

LP: #1801776 - Add bond and bridge parameters to interface websocket JSON.

Description of the change

This is needed to unblock some work the web team is doing with regard to bond and bridge parameters.

To post a comment you must log in.
Revision history for this message
Anthony Dillon (ya-bo-ng) wrote :

Awesome, thank you +1

review: Approve
Revision history for this message
Newell Jensen (newell-jensen) wrote :

+1

review: Approve
Revision history for this message
Mike Pontillo (mpontillo) wrote :

Ah, forgot to go back and fix a couple of tests that failed as a side effect of this. Will take care of those before landing.

Revision history for this message
MAAS Lander (maas-lander) wrote :
66929cd... by Mike Pontillo

Fix TestDeviceHandler.test_get().

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/maasserver/websockets/handlers/node.py b/src/maasserver/websockets/handlers/node.py
index 3a5e72d..d025038 100644
--- a/src/maasserver/websockets/handlers/node.py
+++ b/src/maasserver/websockets/handlers/node.py
@@ -577,6 +577,7 @@ class NodeHandler(TimestampedModelHandler):
577 "is_boot": interface == obj.get_boot_interface(),577 "is_boot": interface == obj.get_boot_interface(),
578 "mac_address": "%s" % interface.mac_address,578 "mac_address": "%s" % interface.mac_address,
579 "vlan_id": interface.vlan_id,579 "vlan_id": interface.vlan_id,
580 "params": interface.params,
580 "parents": [581 "parents": [
581 nic.id582 nic.id
582 for nic in interface.parents.all()583 for nic in interface.parents.all()
diff --git a/src/maasserver/websockets/handlers/tests/test_device.py b/src/maasserver/websockets/handlers/tests/test_device.py
index 82eca61..f60f9bb 100644
--- a/src/maasserver/websockets/handlers/tests/test_device.py
+++ b/src/maasserver/websockets/handlers/tests/test_device.py
@@ -105,6 +105,7 @@ class TestDeviceHandler(MAASTransactionServerTestCase):
105 "is_boot": interface == obj.get_boot_interface(),105 "is_boot": interface == obj.get_boot_interface(),
106 "mac_address": "%s" % interface.mac_address,106 "mac_address": "%s" % interface.mac_address,
107 "vlan_id": interface.vlan_id,107 "vlan_id": interface.vlan_id,
108 "params": interface.params,
108 "parents": [109 "parents": [
109 nic.id110 nic.id
110 for nic in interface.parents.all()111 for nic in interface.parents.all()
diff --git a/src/maasserver/websockets/handlers/tests/test_machine.py b/src/maasserver/websockets/handlers/tests/test_machine.py
index 68b1f11..2cf3f57 100644
--- a/src/maasserver/websockets/handlers/tests/test_machine.py
+++ b/src/maasserver/websockets/handlers/tests/test_machine.py
@@ -1155,6 +1155,7 @@ class TestMachineHandler(MAASServerTestCase):
1155 "is_boot": True,1155 "is_boot": True,
1156 "mac_address": "%s" % interface.mac_address,1156 "mac_address": "%s" % interface.mac_address,
1157 "vlan_id": interface.vlan_id,1157 "vlan_id": interface.vlan_id,
1158 "params": interface.params,
1158 "parents": [1159 "parents": [
1159 nic.id1160 nic.id
1160 for nic in interface.parents.all()1161 for nic in interface.parents.all()
@@ -1175,6 +1176,7 @@ class TestMachineHandler(MAASServerTestCase):
1175 "is_boot": False,1176 "is_boot": False,
1176 "mac_address": "%s" % interface2.mac_address,1177 "mac_address": "%s" % interface2.mac_address,
1177 "vlan_id": interface2.vlan_id,1178 "vlan_id": interface2.vlan_id,
1179 "params": interface2.params,
1178 "parents": [1180 "parents": [
1179 nic.id1181 nic.id
1180 for nic in interface2.parents.all()1182 for nic in interface2.parents.all()
@@ -1206,6 +1208,7 @@ class TestMachineHandler(MAASServerTestCase):
1206 "is_boot": interface == node.get_boot_interface(),1208 "is_boot": interface == node.get_boot_interface(),
1207 "mac_address": "%s" % interface.mac_address,1209 "mac_address": "%s" % interface.mac_address,
1208 "vlan_id": interface.vlan_id,1210 "vlan_id": interface.vlan_id,
1211 "params": interface.params,
1209 "parents": [1212 "parents": [
1210 nic.id1213 nic.id
1211 for nic in interface.parents.all()1214 for nic in interface.parents.all()
@@ -1245,6 +1248,7 @@ class TestMachineHandler(MAASServerTestCase):
1245 "is_boot": interface == node.get_boot_interface(),1248 "is_boot": interface == node.get_boot_interface(),
1246 "mac_address": "%s" % interface.mac_address,1249 "mac_address": "%s" % interface.mac_address,
1247 "vlan_id": interface.vlan_id,1250 "vlan_id": interface.vlan_id,
1251 "params": interface.params,
1248 "parents": [1252 "parents": [
1249 nic.id1253 nic.id
1250 for nic in interface.parents.all()1254 for nic in interface.parents.all()
@@ -1257,6 +1261,36 @@ class TestMachineHandler(MAASServerTestCase):
1257 "discovered": expected_discovered,1261 "discovered": expected_discovered,
1258 }, handler.dehydrate_interface(interface, node))1262 }, handler.dehydrate_interface(interface, node))
12591263
1264 def test_dehydrate_interface_includes_params(self):
1265 owner = factory.make_User()
1266 node = factory.make_Node(owner=owner, status=NODE_STATUS.COMMISSIONING)
1267 handler = MachineHandler(owner, {}, None)
1268 eth0 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
1269 eth1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
1270 bond_params = {
1271 "bond_downdelay": 0,
1272 "bond_lacp_rate": "slow",
1273 "bond_miimon": 100,
1274 "bond_mode": "balance-xor",
1275 "bond_num_grat_arp": 1,
1276 "bond_updelay": 0,
1277 "bond_xmit_hash_policy": "layer3+4"
1278 }
1279 bond0 = factory.make_Interface(
1280 INTERFACE_TYPE.BOND, node=node, parents=[eth0, eth1],
1281 params=bond_params)
1282 bridge_params = {
1283 "bridge_fd": 5,
1284 "bridge_stp": True
1285 }
1286 br_bond0 = factory.make_Interface(
1287 INTERFACE_TYPE.BRIDGE, node=node, parents=[bond0],
1288 params=bridge_params)
1289 bond_json = handler.dehydrate_interface(bond0, node)
1290 bridge_json = handler.dehydrate_interface(br_bond0, node)
1291 self.assertThat(bond_json['params'], Equals(bond_params))
1292 self.assertThat(bridge_json['params'], Equals(bridge_params))
1293
1260 def test_dehydrate_interface_for_rescue_mode_node(self):1294 def test_dehydrate_interface_for_rescue_mode_node(self):
1261 owner = factory.make_User()1295 owner = factory.make_User()
1262 node = factory.make_Node(1296 node = factory.make_Node(
@@ -1289,6 +1323,7 @@ class TestMachineHandler(MAASServerTestCase):
1289 "is_boot": interface == node.get_boot_interface(),1323 "is_boot": interface == node.get_boot_interface(),
1290 "mac_address": "%s" % interface.mac_address,1324 "mac_address": "%s" % interface.mac_address,
1291 "vlan_id": interface.vlan_id,1325 "vlan_id": interface.vlan_id,
1326 "params": interface.params,
1292 "parents": [1327 "parents": [
1293 nic.id1328 nic.id
1294 for nic in interface.parents.all()1329 for nic in interface.parents.all()
@@ -1329,6 +1364,7 @@ class TestMachineHandler(MAASServerTestCase):
1329 "is_boot": interface == node.get_boot_interface(),1364 "is_boot": interface == node.get_boot_interface(),
1330 "mac_address": "%s" % interface.mac_address,1365 "mac_address": "%s" % interface.mac_address,
1331 "vlan_id": interface.vlan_id,1366 "vlan_id": interface.vlan_id,
1367 "params": interface.params,
1332 "parents": [1368 "parents": [
1333 nic.id1369 nic.id
1334 for nic in interface.parents.all()1370 for nic in interface.parents.all()
@@ -1371,6 +1407,7 @@ class TestMachineHandler(MAASServerTestCase):
1371 "is_boot": interface == node.get_boot_interface(),1407 "is_boot": interface == node.get_boot_interface(),
1372 "mac_address": "%s" % interface.mac_address,1408 "mac_address": "%s" % interface.mac_address,
1373 "vlan_id": interface.vlan_id,1409 "vlan_id": interface.vlan_id,
1410 "params": interface.params,
1374 "parents": [1411 "parents": [
1375 nic.id1412 nic.id
1376 for nic in interface.parents.all()1413 for nic in interface.parents.all()

Subscribers

People subscribed via source and target branches