Merge lp:~trapnine/maas/fix-1462078-device-add-message into lp:~maas-committers/maas/trunk

Proposed by Jeffrey C Jones
Status: Merged
Approved by: Jeffrey C Jones
Approved revision: no longer in the source branch.
Merged at revision: 5130
Proposed branch: lp:~trapnine/maas/fix-1462078-device-add-message
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 94 lines (+4/-60)
2 files modified
src/maasserver/static/js/angular/controllers/add_device.js (+2/-24)
src/maasserver/static/js/angular/controllers/tests/test_add_device.js (+2/-36)
To merge this branch: bzr merge lp:~trapnine/maas/fix-1462078-device-add-message
Reviewer Review Type Date Requested Status
Blake Rouse (community) Approve
Review via email: mp+297427@code.launchpad.net

Commit message

Display error messages correctly when adding devices.

Description of the change

Display error messages correctly when adding devices.

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/static/js/angular/controllers/add_device.js'
2--- src/maasserver/static/js/angular/controllers/add_device.js 2016-04-22 17:28:15 +0000
3+++ src/maasserver/static/js/angular/controllers/add_device.js 2016-06-15 05:50:19 +0000
4@@ -237,29 +237,6 @@
5 $scope.hide();
6 };
7
8- // Convert the Python dict error message to displayed message.
9- $scope.devicePythonDictToErrorMsg = function(pythonError) {
10- var elements = pythonError.match(/'([A-Za-z0-9 \.:_\-]+)'/g);
11- var result = '', msg = '';
12- for (k=0; k < elements.length; ++k) {
13- if (elements.hasOwnProperty(k)) {
14- switch(elements[k]) {
15- case "'hostname'":
16- msg = elements[++k].replace(/'/g,'');
17- result += msg.replace(/^Node/,'Device') + ' ';
18- break;
19- case "'mac_addresses'":
20- msg = elements[++k].replace(/'/g,'');
21- result += msg + ' ';
22- break;
23- default:
24- result += elements[k].replace(/'/g,'');
25- }
26- }
27- }
28- return result;
29- };
30-
31 // Called when save is clicked.
32 $scope.save = function(addAnother) {
33 // Do nothing if device in error.
34@@ -282,7 +259,8 @@
35 $scope.hide();
36 }
37 }, function(error) {
38- $scope.error = $scope.devicePythonDictToErrorMsg(error);
39+ $scope.error =
40+ ManagerHelperService.parseValidationError(error);
41 });
42 };
43
44
45=== modified file 'src/maasserver/static/js/angular/controllers/tests/test_add_device.js'
46--- src/maasserver/static/js/angular/controllers/tests/test_add_device.js 2016-04-22 17:28:15 +0000
47+++ src/maasserver/static/js/angular/controllers/tests/test_add_device.js 2016-06-15 05:50:19 +0000
48@@ -756,44 +756,10 @@
49 };
50 $scope.save();
51 var errorMsg = makeName("error");
52- var error = "{'hostname': ['" + errorMsg + "']}";
53+ var error = '{"hostname": ["' + errorMsg + '"]}';
54 defer.reject(error);
55 $rootScope.$digest();
56- expect($scope.error).toBe(errorMsg + " ");
57+ expect($scope.error).toBe(errorMsg);
58 });
59 });
60-
61- describe("devicePythonDictToErrorMsg", function() {
62- it("converts hostname error for display",
63- function() {
64- var controller = makeController();
65- var errorMsg = makeName("error");
66- var error = "{'hostname': ['Node " + errorMsg + "']}";
67- var expected = "Device " + errorMsg + " ";
68- expect($scope.devicePythonDictToErrorMsg(
69- error)).toBe(expected);
70- });
71-
72- it("converts mac_addresses error for display",
73- function() {
74- var controller = makeController();
75- var errorMsg = makeName("error");
76- var error = "{'mac_addresses': ['" + errorMsg + "']}";
77- var expected = errorMsg + " ";
78- expect($scope.devicePythonDictToErrorMsg(
79- error)).toBe(expected);
80- });
81-
82- it("converts unknown segments by default",
83- function() {
84- var controller = makeController();
85- var errorSegment1 = makeName("error");
86- var errorSegment2 = makeName("error");
87- var error = "{'" + errorSegment1 +
88- "': ['" + errorSegment2 + "']}";
89- var expected = errorSegment1 + errorSegment2;
90- expect($scope.devicePythonDictToErrorMsg(
91- error)).toBe(expected);
92- });
93- });
94 });