Merge ~mpontillo/maas:fix-vlan-fabric-ui-update--bug-1793282 into maas:master

Proposed by Mike Pontillo
Status: Merged
Approved by: Mike Pontillo
Approved revision: fad070a773606f978a1accb5b8a20c30075f3c96
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~mpontillo/maas:fix-vlan-fabric-ui-update--bug-1793282
Merge into: maas:master
Diff against target: 90 lines (+31/-7)
2 files modified
src/maasserver/static/js/angular/controllers/tests/test_vlan_details.js (+21/-6)
src/maasserver/static/js/angular/controllers/vlan_details.js (+10/-1)
Reviewer Review Type Date Requested Status
Andres Rodriguez (community) Approve
Review via email: mp+355796@code.launchpad.net

Commit message

LP: #1793282 - Refresh VLAN UI when fabric changes.

To post a comment you must log in.
Revision history for this message
Andres Rodriguez (andreserl) wrote :

lgtm!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/static/js/angular/controllers/tests/test_vlan_details.js b/src/maasserver/static/js/angular/controllers/tests/test_vlan_details.js
2index d587327..61411ca 100644
3--- a/src/maasserver/static/js/angular/controllers/tests/test_vlan_details.js
4+++ b/src/maasserver/static/js/angular/controllers/tests/test_vlan_details.js
5@@ -29,10 +29,14 @@ describe("VLANDetailsController", function() {
6 }
7
8 // Make a fake fabric
9- function makeFabric() {
10+ function makeFabric(id) {
11+ if(id === undefined) {
12+ id = 1;
13+ }
14 var fabric = {
15- id: 1,
16- name: 'fabric-0'
17+ id: id,
18+ name: 'fabric-' + id,
19+ default_vlan_id: 5000
20 };
21 FabricsManager._items.push(fabric);
22 return fabric;
23@@ -113,15 +117,16 @@ describe("VLANDetailsController", function() {
24 ErrorService = $injector.get("ErrorService");
25 }));
26
27- var vlan, fabric, primaryController, secondaryController, $routeParams;
28- var space, subnet;
29+ var vlan, fabric, fabric2, primaryController, secondaryController;
30+ var space, subnet, $routeParams;
31 beforeEach(function() {
32 primaryController = makeRackController(1, "primary", "p1");
33 secondaryController = makeRackController(2, "secondary", "p2");
34 vlan = makeVLAN();
35 VLANsManager.addRackController(vlan, primaryController);
36 VLANsManager.addRackController(vlan, secondaryController);
37- fabric = makeFabric();
38+ fabric = makeFabric(1);
39+ fabric2 = makeFabric(2);
40 space = makeSpace();
41 subnet = makeSubnet();
42 $routeParams = {
43@@ -277,6 +282,16 @@ describe("VLANDetailsController", function() {
44 expect(controller.title).toBe("Super Awesome VLAN in space");
45 });
46
47+ it("updates VLAN when fabric changes", function() {
48+ vlan.name = "Super Awesome VLAN";
49+ var controller = makeControllerResolveSetActiveItem();
50+ expect(controller.title).toBe("Super Awesome VLAN in " + fabric.name);
51+ fabric2.name = "space";
52+ vlan.fabric = fabric2.id;
53+ $scope.$digest();
54+ expect(controller.title).toBe("Super Awesome VLAN in space");
55+ });
56+
57 it("updates primaryRack variable when controller changes", function() {
58 vlan.primary_rack = 0;
59 var controller = makeControllerResolveSetActiveItem();
60diff --git a/src/maasserver/static/js/angular/controllers/vlan_details.js b/src/maasserver/static/js/angular/controllers/vlan_details.js
61index 6369092..a3a17c8 100644
62--- a/src/maasserver/static/js/angular/controllers/vlan_details.js
63+++ b/src/maasserver/static/js/angular/controllers/vlan_details.js
64@@ -548,9 +548,17 @@ angular.module('MAAS').controller('VLANDetailsController', [
65 // Called when the vlan has been loaded.
66 function vlanLoaded(vlan) {
67 vm.vlan = vlan;
68+ updateVLAN();
69+ vm.loaded = true;
70+ }
71+
72+ function updateVLAN() {
73+ if(!vm.loaded) {
74+ return;
75+ }
76+ var vlan = vm.vlan;
77 vm.fabric = FabricsManager.getItemFromList(vlan.fabric);
78 vm.isFabricDefault = vm.fabric.default_vlan_id === vm.vlan.id;
79- vm.loaded = true;
80
81 updateTitle();
82 updateManagementRacks();
83@@ -585,6 +593,7 @@ angular.module('MAAS').controller('VLANDetailsController', [
84
85 $scope.$watch("vlanDetails.vlan.name", updateTitle);
86 $scope.$watch("vlanDetails.vlan.vid", updateTitle);
87+ $scope.$watch("vlanDetails.vlan.fabric", updateVLAN);
88 $scope.$watch("vlanDetails.vlan.dhcp_on", updatePossibleActions);
89 $scope.$watch(
90 "vlanDetails.vlan.relay_vlan", updatePossibleActions);

Subscribers

People subscribed via source and target branches