Merge lp:~jtv/maas/bug-979539 into lp:~maas-committers/maas/trunk
- bug-979539
- Merge into trunk
Proposed by
Jeroen T. Vermeulen
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Jeroen T. Vermeulen | ||||
Approved revision: | no longer in the source branch. | ||||
Merged at revision: | 504 | ||||
Proposed branch: | lp:~jtv/maas/bug-979539 | ||||
Merge into: | lp:~maas-committers/maas/trunk | ||||
Diff against target: |
389 lines (+63/-70) 7 files modified
src/maasserver/enum.py (+7/-9) src/maasserver/forms.py (+14/-22) src/maasserver/templates/maasserver/settings.html (+2/-4) src/maasserver/templates/maasserver/snippets.html (+1/-2) src/maasserver/tests/test_api.py (+28/-15) src/maasserver/tests/test_forms.py (+6/-10) src/maasserver/tests/test_views.py (+5/-8) |
||||
To merge this branch: | bzr merge lp:~jtv/maas/bug-979539 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Raphaël Badin (community) | Approve | ||
Review via email: mp+103047@code.launchpad.net |
Commit message
Restore (mostly) the after-commissioning action.
Description of the change
As discussed with Julian. This re-enables the after-commissioning actions choices in the UI.
As agreed in pre-imp, this disables the two nonexistent options, leaving only one choice.
Jeroen
To post a comment you must log in.
Revision history for this message
Jeroen T. Vermeulen (jtv) wrote : | # |
OK. I've changed it to say non-admin logged-in user for uniformity.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/maasserver/enum.py' | |||
2 | --- src/maasserver/enum.py 2012-04-20 15:16:41 +0000 | |||
3 | +++ src/maasserver/enum.py 2012-04-23 10:17:20 +0000 | |||
4 | @@ -19,9 +19,7 @@ | |||
5 | 19 | 'NODE_STATUS_CHOICES_DICT', | 19 | 'NODE_STATUS_CHOICES_DICT', |
6 | 20 | ] | 20 | ] |
7 | 21 | 21 | ||
11 | 22 | from collections import ( | 22 | from collections import OrderedDict |
9 | 23 | OrderedDict, | ||
10 | 24 | ) | ||
12 | 25 | 23 | ||
13 | 26 | 24 | ||
14 | 27 | class NODE_STATUS: | 25 | class NODE_STATUS: |
15 | @@ -77,18 +75,18 @@ | |||
16 | 77 | #: | 75 | #: |
17 | 78 | QUEUE = 0 | 76 | QUEUE = 0 |
18 | 79 | #: | 77 | #: |
20 | 80 | CHECK = 1 | 78 | #CHECK = 1 |
21 | 81 | #: | 79 | #: |
23 | 82 | DEPLOY_12_04 = 2 | 80 | #DEPLOY_12_04 = 2 |
24 | 83 | 81 | ||
25 | 84 | 82 | ||
26 | 85 | NODE_AFTER_COMMISSIONING_ACTION_CHOICES = ( | 83 | NODE_AFTER_COMMISSIONING_ACTION_CHOICES = ( |
27 | 86 | (NODE_AFTER_COMMISSIONING_ACTION.QUEUE, | 84 | (NODE_AFTER_COMMISSIONING_ACTION.QUEUE, |
28 | 87 | "Queue for dynamic allocation to services"), | 85 | "Queue for dynamic allocation to services"), |
33 | 88 | (NODE_AFTER_COMMISSIONING_ACTION.CHECK, | 86 | #(NODE_AFTER_COMMISSIONING_ACTION.CHECK, |
34 | 89 | "Check compatibility and hold for future decision"), | 87 | # "Check compatibility and hold for future decision"), |
35 | 90 | (NODE_AFTER_COMMISSIONING_ACTION.DEPLOY_12_04, | 88 | #(NODE_AFTER_COMMISSIONING_ACTION.DEPLOY_12_04, |
36 | 91 | "Deploy with Ubuntu 12.04 LTS"), | 89 | # "Deploy with Ubuntu 12.04 LTS"), |
37 | 92 | ) | 90 | ) |
38 | 93 | 91 | ||
39 | 94 | 92 | ||
40 | 95 | 93 | ||
41 | === modified file 'src/maasserver/forms.py' | |||
42 | --- src/maasserver/forms.py 2012-04-20 15:16:41 +0000 | |||
43 | +++ src/maasserver/forms.py 2012-04-23 10:17:20 +0000 | |||
44 | @@ -47,6 +47,7 @@ | |||
45 | 47 | from maasserver.enum import ( | 47 | from maasserver.enum import ( |
46 | 48 | ARCHITECTURE, | 48 | ARCHITECTURE, |
47 | 49 | ARCHITECTURE_CHOICES, | 49 | ARCHITECTURE_CHOICES, |
48 | 50 | NODE_AFTER_COMMISSIONING_ACTION, | ||
49 | 50 | NODE_AFTER_COMMISSIONING_ACTION_CHOICES, | 51 | NODE_AFTER_COMMISSIONING_ACTION_CHOICES, |
50 | 51 | NODE_PERMISSION, | 52 | NODE_PERMISSION, |
51 | 52 | NODE_STATUS, | 53 | NODE_STATUS, |
52 | @@ -86,12 +87,10 @@ | |||
53 | 86 | widget=forms.TextInput(attrs={'readonly': 'readonly'}), | 87 | widget=forms.TextInput(attrs={'readonly': 'readonly'}), |
54 | 87 | required=False) | 88 | required=False) |
55 | 88 | 89 | ||
62 | 89 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 90 | after_commissioning_action = forms.TypedChoiceField( |
63 | 90 | 91 | label="After commissioning", | |
64 | 91 | #after_commissioning_action = forms.TypedChoiceField( | 92 | choices=NODE_AFTER_COMMISSIONING_ACTION_CHOICES, required=False, |
65 | 92 | # label="After commissioning", | 93 | empty_value=NODE_AFTER_COMMISSIONING_ACTION.DEFAULT) |
60 | 93 | # choices=NODE_AFTER_COMMISSIONING_ACTION_CHOICES, required=False, | ||
61 | 94 | # empty_value=NODE_AFTER_COMMISSIONING_ACTION.DEFAULT) | ||
66 | 95 | 94 | ||
67 | 96 | architecture = forms.ChoiceField( | 95 | architecture = forms.ChoiceField( |
68 | 97 | choices=ARCHITECTURE_CHOICES, required=True, | 96 | choices=ARCHITECTURE_CHOICES, required=True, |
69 | @@ -103,8 +102,7 @@ | |||
70 | 103 | fields = ( | 102 | fields = ( |
71 | 104 | 'hostname', | 103 | 'hostname', |
72 | 105 | 'system_id', | 104 | 'system_id', |
75 | 106 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 105 | 'after_commissioning_action', |
74 | 107 | #'after_commissioning_action', | ||
76 | 108 | 'architecture', | 106 | 'architecture', |
77 | 109 | 'power_type', | 107 | 'power_type', |
78 | 110 | ) | 108 | ) |
79 | @@ -112,35 +110,29 @@ | |||
80 | 112 | 110 | ||
81 | 113 | class UINodeEditForm(ModelForm): | 111 | class UINodeEditForm(ModelForm): |
82 | 114 | 112 | ||
88 | 115 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 113 | after_commissioning_action = forms.ChoiceField( |
89 | 116 | 114 | label="After commissioning", | |
90 | 117 | #after_commissioning_action = forms.ChoiceField( | 115 | choices=NODE_AFTER_COMMISSIONING_ACTION_CHOICES) |
86 | 118 | # label="After commissioning", | ||
87 | 119 | # choices=NODE_AFTER_COMMISSIONING_ACTION_CHOICES) | ||
91 | 120 | 116 | ||
92 | 121 | class Meta: | 117 | class Meta: |
93 | 122 | model = Node | 118 | model = Node |
94 | 123 | fields = ( | 119 | fields = ( |
95 | 124 | 'hostname', | 120 | 'hostname', |
98 | 125 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 121 | 'after_commissioning_action', |
97 | 126 | #'after_commissioning_action', | ||
99 | 127 | ) | 122 | ) |
100 | 128 | 123 | ||
101 | 129 | 124 | ||
102 | 130 | class UIAdminNodeEditForm(ModelForm): | 125 | class UIAdminNodeEditForm(ModelForm): |
103 | 131 | 126 | ||
109 | 132 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 127 | after_commissioning_action = forms.ChoiceField( |
110 | 133 | 128 | label="After commissioning", | |
111 | 134 | #after_commissioning_action = forms.ChoiceField( | 129 | choices=NODE_AFTER_COMMISSIONING_ACTION_CHOICES) |
107 | 135 | # label="After commissioning", | ||
108 | 136 | # choices=NODE_AFTER_COMMISSIONING_ACTION_CHOICES) | ||
112 | 137 | 130 | ||
113 | 138 | class Meta: | 131 | class Meta: |
114 | 139 | model = Node | 132 | model = Node |
115 | 140 | fields = ( | 133 | fields = ( |
116 | 141 | 'hostname', | 134 | 'hostname', |
119 | 142 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 135 | 'after_commissioning_action', |
118 | 143 | #'after_commissioning_action', | ||
120 | 144 | 'power_type', | 136 | 'power_type', |
121 | 145 | ) | 137 | ) |
122 | 146 | 138 | ||
123 | 147 | 139 | ||
124 | === modified file 'src/maasserver/templates/maasserver/settings.html' | |||
125 | --- src/maasserver/templates/maasserver/settings.html 2012-04-16 05:48:10 +0000 | |||
126 | +++ src/maasserver/templates/maasserver/settings.html 2012-04-23 10:17:20 +0000 | |||
127 | @@ -68,8 +68,7 @@ | |||
128 | 68 | </a> | 68 | </a> |
129 | 69 | <div class="clear"></div> | 69 | <div class="clear"></div> |
130 | 70 | </div> | 70 | </div> |
133 | 71 | <!-- XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. --> | 71 | <div id="commissioning" class="block size7 first"> |
132 | 72 | <div id="commissioning" class="hidden block size7 first"> | ||
134 | 73 | <h2>Commissioning</h2> | 72 | <h2>Commissioning</h2> |
135 | 74 | <form action="{% url "settings" %}" method="post"> | 73 | <form action="{% url "settings" %}" method="post"> |
136 | 75 | <ul> | 74 | <ul> |
137 | @@ -81,8 +80,7 @@ | |||
138 | 81 | <input type="submit" class="button right" value="Save" /> | 80 | <input type="submit" class="button right" value="Save" /> |
139 | 82 | </form> | 81 | </form> |
140 | 83 | </div> | 82 | </div> |
143 | 84 | <!-- XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. --> | 83 | <div id="ubuntu" class="block size7 first"> |
142 | 85 | <div id="ubuntu" class="hidden block size7 first"> | ||
144 | 86 | <h2>Ubuntu</h2> | 84 | <h2>Ubuntu</h2> |
145 | 87 | <form action="{% url "settings" %}" method="post"> | 85 | <form action="{% url "settings" %}" method="post"> |
146 | 88 | <ul> | 86 | <ul> |
147 | 89 | 87 | ||
148 | === modified file 'src/maasserver/templates/maasserver/snippets.html' | |||
149 | --- src/maasserver/templates/maasserver/snippets.html 2012-04-12 04:21:18 +0000 | |||
150 | +++ src/maasserver/templates/maasserver/snippets.html 2012-04-23 10:17:20 +0000 | |||
151 | @@ -21,8 +21,7 @@ | |||
152 | 21 | <div class="field-help">Default is MAC-based, e.g. "node-aabbccddeeff" | 21 | <div class="field-help">Default is MAC-based, e.g. "node-aabbccddeeff" |
153 | 22 | </div> | 22 | </div> |
154 | 23 | </p> | 23 | </p> |
157 | 24 | <!-- XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. --> | 24 | <p> |
156 | 25 | <p class="hidden"> | ||
158 | 26 | <label for="id_after_commissioning_action">After commissioning</label> | 25 | <label for="id_after_commissioning_action">After commissioning</label> |
159 | 27 | {{ node_form.after_commissioning_action }} | 26 | {{ node_form.after_commissioning_action }} |
160 | 28 | </p> | 27 | </p> |
161 | 29 | 28 | ||
162 | === modified file 'src/maasserver/tests/test_api.py' | |||
163 | --- src/maasserver/tests/test_api.py 2012-04-20 15:16:41 +0000 | |||
164 | +++ src/maasserver/tests/test_api.py 2012-04-23 10:17:20 +0000 | |||
165 | @@ -30,6 +30,7 @@ | |||
166 | 30 | ) | 30 | ) |
167 | 31 | from maasserver.enum import ( | 31 | from maasserver.enum import ( |
168 | 32 | ARCHITECTURE_CHOICES, | 32 | ARCHITECTURE_CHOICES, |
169 | 33 | NODE_AFTER_COMMISSIONING_ACTION, | ||
170 | 33 | NODE_STATUS, | 34 | NODE_STATUS, |
171 | 34 | NODE_STATUS_CHOICES_DICT, | 35 | NODE_STATUS_CHOICES_DICT, |
172 | 35 | ) | 36 | ) |
173 | @@ -113,7 +114,8 @@ | |||
174 | 113 | 'op': 'new', | 114 | 'op': 'new', |
175 | 114 | 'hostname': 'diane', | 115 | 'hostname': 'diane', |
176 | 115 | 'architecture': architecture, | 116 | 'architecture': architecture, |
178 | 116 | 'after_commissioning_action': '2', | 117 | 'after_commissioning_action': |
179 | 118 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
180 | 117 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], | 119 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], |
181 | 118 | }) | 120 | }) |
182 | 119 | parsed_result = json.loads(response.content) | 121 | parsed_result = json.loads(response.content) |
183 | @@ -123,8 +125,6 @@ | |||
184 | 123 | self.assertEqual('diane', parsed_result['hostname']) | 125 | self.assertEqual('diane', parsed_result['hostname']) |
185 | 124 | self.assertNotEqual(0, len(parsed_result.get('system_id'))) | 126 | self.assertNotEqual(0, len(parsed_result.get('system_id'))) |
186 | 125 | [diane] = Node.objects.filter(hostname='diane') | 127 | [diane] = Node.objects.filter(hostname='diane') |
187 | 126 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | ||
188 | 127 | #self.assertEqual(2, diane.after_commissioning_action) | ||
189 | 128 | self.assertEqual(architecture, diane.architecture) | 128 | self.assertEqual(architecture, diane.architecture) |
190 | 129 | 129 | ||
191 | 130 | def test_POST_new_power_type_defaults_to_asking_config(self): | 130 | def test_POST_new_power_type_defaults_to_asking_config(self): |
192 | @@ -162,7 +162,8 @@ | |||
193 | 162 | 'op': 'new', | 162 | 'op': 'new', |
194 | 163 | 'hostname': 'diane', | 163 | 'hostname': 'diane', |
195 | 164 | 'architecture': architecture, | 164 | 'architecture': architecture, |
197 | 165 | 'after_commissioning_action': '2', | 165 | 'after_commissioning_action': |
198 | 166 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
199 | 166 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], | 167 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], |
200 | 167 | }) | 168 | }) |
201 | 168 | [diane] = Node.objects.filter(hostname='diane') | 169 | [diane] = Node.objects.filter(hostname='diane') |
202 | @@ -303,7 +304,8 @@ | |||
203 | 303 | 'op': 'new', | 304 | 'op': 'new', |
204 | 304 | 'hostname': factory.getRandomString(), | 305 | 'hostname': factory.getRandomString(), |
205 | 305 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), | 306 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), |
207 | 306 | 'after_commissioning_action': '2', | 307 | 'after_commissioning_action': |
208 | 308 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
209 | 307 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], | 309 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], |
210 | 308 | }) | 310 | }) |
211 | 309 | self.assertEqual(httplib.OK, response.status_code) | 311 | self.assertEqual(httplib.OK, response.status_code) |
212 | @@ -335,7 +337,8 @@ | |||
213 | 335 | 'op': 'new', | 337 | 'op': 'new', |
214 | 336 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), | 338 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), |
215 | 337 | 'hostname': factory.getRandomString(), | 339 | 'hostname': factory.getRandomString(), |
217 | 338 | 'after_commissioning_action': '2', | 340 | 'after_commissioning_action': |
218 | 341 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
219 | 339 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], | 342 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], |
220 | 340 | }) | 343 | }) |
221 | 341 | parsed_result = json.loads(response.content) | 344 | parsed_result = json.loads(response.content) |
222 | @@ -372,14 +375,19 @@ | |||
223 | 372 | 'op': 'new', | 375 | 'op': 'new', |
224 | 373 | 'hostname': factory.getRandomString(), | 376 | 'hostname': factory.getRandomString(), |
225 | 374 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), | 377 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), |
227 | 375 | 'after_commissioning_action': '2', | 378 | 'after_commissioning_action': |
228 | 379 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
229 | 376 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], | 380 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], |
230 | 377 | }) | 381 | }) |
231 | 378 | parsed_result = json.loads(response.content) | 382 | parsed_result = json.loads(response.content) |
232 | 379 | self.assertItemsEqual( | 383 | self.assertItemsEqual( |
233 | 380 | [ | 384 | [ |
236 | 381 | 'hostname', 'system_id', 'macaddress_set', 'architecture', | 385 | 'hostname', |
237 | 382 | 'status', 'resource_uri', | 386 | 'system_id', |
238 | 387 | 'macaddress_set', | ||
239 | 388 | 'architecture', | ||
240 | 389 | 'status', | ||
241 | 390 | 'resource_uri', | ||
242 | 383 | ], | 391 | ], |
243 | 384 | list(parsed_result)) | 392 | list(parsed_result)) |
244 | 385 | 393 | ||
245 | @@ -398,7 +406,8 @@ | |||
246 | 398 | 'op': 'new', | 406 | 'op': 'new', |
247 | 399 | 'hostname': factory.getRandomString(), | 407 | 'hostname': factory.getRandomString(), |
248 | 400 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), | 408 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), |
250 | 401 | 'after_commissioning_action': '2', | 409 | 'after_commissioning_action': |
251 | 410 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
252 | 402 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], | 411 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], |
253 | 403 | }) | 412 | }) |
254 | 404 | self.assertEqual(httplib.OK, response.status_code) | 413 | self.assertEqual(httplib.OK, response.status_code) |
255 | @@ -414,7 +423,8 @@ | |||
256 | 414 | 'op': 'new', | 423 | 'op': 'new', |
257 | 415 | 'hostname': factory.getRandomString(), | 424 | 'hostname': factory.getRandomString(), |
258 | 416 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), | 425 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), |
260 | 417 | 'after_commissioning_action': '2', | 426 | 'after_commissioning_action': |
261 | 427 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
262 | 418 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], | 428 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], |
263 | 419 | }) | 429 | }) |
264 | 420 | parsed_result = json.loads(response.content) | 430 | parsed_result = json.loads(response.content) |
265 | @@ -843,7 +853,7 @@ | |||
266 | 843 | """Tests for /api/1.0/nodes/.""" | 853 | """Tests for /api/1.0/nodes/.""" |
267 | 844 | 854 | ||
268 | 845 | def test_POST_new_creates_node(self): | 855 | def test_POST_new_creates_node(self): |
270 | 846 | # The API allows a Node to be created, even as a logged-in user. | 856 | # The API allows a non-admin logged-in user to create a Node. |
271 | 847 | architecture = factory.getRandomChoice(ARCHITECTURE_CHOICES) | 857 | architecture = factory.getRandomChoice(ARCHITECTURE_CHOICES) |
272 | 848 | response = self.client.post( | 858 | response = self.client.post( |
273 | 849 | self.get_uri('nodes/'), | 859 | self.get_uri('nodes/'), |
274 | @@ -851,7 +861,8 @@ | |||
275 | 851 | 'op': 'new', | 861 | 'op': 'new', |
276 | 852 | 'hostname': factory.getRandomString(), | 862 | 'hostname': factory.getRandomString(), |
277 | 853 | 'architecture': architecture, | 863 | 'architecture': architecture, |
279 | 854 | 'after_commissioning_action': '2', | 864 | 'after_commissioning_action': |
280 | 865 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
281 | 855 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], | 866 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff', '22:bb:cc:dd:ee:ff'], |
282 | 856 | }) | 867 | }) |
283 | 857 | 868 | ||
284 | @@ -866,7 +877,8 @@ | |||
285 | 866 | 'op': 'new', | 877 | 'op': 'new', |
286 | 867 | 'hostname': factory.getRandomString(), | 878 | 'hostname': factory.getRandomString(), |
287 | 868 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), | 879 | 'architecture': factory.getRandomChoice(ARCHITECTURE_CHOICES), |
289 | 869 | 'after_commissioning_action': '2', | 880 | 'after_commissioning_action': |
290 | 881 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
291 | 870 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], | 882 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], |
292 | 871 | }) | 883 | }) |
293 | 872 | self.assertEqual(httplib.OK, response.status_code) | 884 | self.assertEqual(httplib.OK, response.status_code) |
294 | @@ -1734,7 +1746,8 @@ | |||
295 | 1734 | 'op': 'new', | 1746 | 'op': 'new', |
296 | 1735 | 'hostname': hostname, | 1747 | 'hostname': hostname, |
297 | 1736 | 'architecture': architecture, | 1748 | 'architecture': architecture, |
299 | 1737 | 'after_commissioning_action': '2', | 1749 | 'after_commissioning_action': |
300 | 1750 | NODE_AFTER_COMMISSIONING_ACTION.DEFAULT, | ||
301 | 1738 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], | 1751 | 'mac_addresses': ['aa:bb:cc:dd:ee:ff'], |
302 | 1739 | }) | 1752 | }) |
303 | 1740 | 1753 | ||
304 | 1741 | 1754 | ||
305 | === modified file 'src/maasserver/tests/test_forms.py' | |||
306 | --- src/maasserver/tests/test_forms.py 2012-04-20 15:16:41 +0000 | |||
307 | +++ src/maasserver/tests/test_forms.py 2012-04-23 10:17:20 +0000 | |||
308 | @@ -189,8 +189,7 @@ | |||
309 | 189 | self.assertEqual( | 189 | self.assertEqual( |
310 | 190 | [ | 190 | [ |
311 | 191 | 'hostname', | 191 | 'hostname', |
314 | 192 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 192 | 'after_commissioning_action', |
313 | 193 | #'after_commissioning_action', | ||
315 | 194 | ], list(form.fields)) | 193 | ], list(form.fields)) |
316 | 195 | 194 | ||
317 | 196 | def test_UINodeEditForm_changes_node(self): | 195 | def test_UINodeEditForm_changes_node(self): |
318 | @@ -208,9 +207,8 @@ | |||
319 | 208 | form.save() | 207 | form.save() |
320 | 209 | 208 | ||
321 | 210 | self.assertEqual(hostname, node.hostname) | 209 | self.assertEqual(hostname, node.hostname) |
325 | 211 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 210 | self.assertEqual( |
326 | 212 | #self.assertEqual( | 211 | after_commissioning_action, node.after_commissioning_action) |
324 | 213 | # after_commissioning_action, node.after_commissioning_action) | ||
327 | 214 | 212 | ||
328 | 215 | def test_UIAdminNodeEditForm_contains_limited_set_of_fields(self): | 213 | def test_UIAdminNodeEditForm_contains_limited_set_of_fields(self): |
329 | 216 | form = UIAdminNodeEditForm() | 214 | form = UIAdminNodeEditForm() |
330 | @@ -218,8 +216,7 @@ | |||
331 | 218 | self.assertEqual( | 216 | self.assertEqual( |
332 | 219 | [ | 217 | [ |
333 | 220 | 'hostname', | 218 | 'hostname', |
336 | 221 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 219 | 'after_commissioning_action', |
335 | 222 | #'after_commissioning_action', | ||
337 | 223 | 'power_type', | 220 | 'power_type', |
338 | 224 | ], | 221 | ], |
339 | 225 | list(form.fields)) | 222 | list(form.fields)) |
340 | @@ -240,9 +237,8 @@ | |||
341 | 240 | form.save() | 237 | form.save() |
342 | 241 | 238 | ||
343 | 242 | self.assertEqual(hostname, node.hostname) | 239 | self.assertEqual(hostname, node.hostname) |
347 | 243 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 240 | self.assertEqual( |
348 | 244 | #self.assertEqual( | 241 | after_commissioning_action, node.after_commissioning_action) |
346 | 245 | # after_commissioning_action, node.after_commissioning_action) | ||
349 | 246 | self.assertEqual(power_type, node.power_type) | 242 | self.assertEqual(power_type, node.power_type) |
350 | 247 | 243 | ||
351 | 248 | 244 | ||
352 | 249 | 245 | ||
353 | === modified file 'src/maasserver/tests/test_views.py' | |||
354 | --- src/maasserver/tests/test_views.py 2012-04-23 09:11:50 +0000 | |||
355 | +++ src/maasserver/tests/test_views.py 2012-04-23 10:17:20 +0000 | |||
356 | @@ -148,8 +148,7 @@ | |||
357 | 148 | self.assertTemplateExistsAndContains( | 148 | self.assertTemplateExistsAndContains( |
358 | 149 | response.content, '#add-node', 'input#id_hostname') | 149 | response.content, '#add-node', 'input#id_hostname') |
359 | 150 | 150 | ||
362 | 151 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 151 | def test_after_commissioning_action_snippet(self): |
361 | 152 | def t_e_s_t_after_commissioning_action_snippet(self): | ||
363 | 153 | response = self.client.get('/') | 152 | response = self.client.get('/') |
364 | 154 | self.assertTemplateExistsAndContains( | 153 | self.assertTemplateExistsAndContains( |
365 | 155 | response.content, '#add-node', | 154 | response.content, '#add-node', |
366 | @@ -719,9 +718,8 @@ | |||
367 | 719 | node_edit_link = reverse('node-edit', args=[node.system_id]) | 718 | node_edit_link = reverse('node-edit', args=[node.system_id]) |
368 | 720 | params = { | 719 | params = { |
369 | 721 | 'hostname': factory.getRandomString(), | 720 | 'hostname': factory.getRandomString(), |
373 | 722 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 721 | 'after_commissioning_action': factory.getRandomEnum( |
374 | 723 | #'after_commissioning_action': factory.getRandomEnum( | 722 | NODE_AFTER_COMMISSIONING_ACTION), |
372 | 724 | # NODE_AFTER_COMMISSIONING_ACTION), | ||
375 | 725 | } | 723 | } |
376 | 726 | response = self.client.post(node_edit_link, params) | 724 | response = self.client.post(node_edit_link, params) |
377 | 727 | 725 | ||
378 | @@ -866,9 +864,8 @@ | |||
379 | 866 | node_edit_link = reverse('node-edit', args=[node.system_id]) | 864 | node_edit_link = reverse('node-edit', args=[node.system_id]) |
380 | 867 | params = { | 865 | params = { |
381 | 868 | 'hostname': factory.getRandomString(), | 866 | 'hostname': factory.getRandomString(), |
385 | 869 | # XXX JeroenVermeulen 2012-04-12, bug=979539: re-enable. | 867 | 'after_commissioning_action': factory.getRandomEnum( |
386 | 870 | #'after_commissioning_action': factory.getRandomEnum( | 868 | NODE_AFTER_COMMISSIONING_ACTION), |
384 | 871 | # NODE_AFTER_COMMISSIONING_ACTION), | ||
387 | 872 | 'power_type': factory.getRandomChoice(POWER_TYPE_CHOICES), | 869 | 'power_type': factory.getRandomChoice(POWER_TYPE_CHOICES), |
388 | 873 | } | 870 | } |
389 | 874 | response = self.client.post(node_edit_link, params) | 871 | response = self.client.post(node_edit_link, params) |
Nice! Very straightforward thanks to the XXX messages you've added when this was disabled.
[0]
270 + # The API allows a regular logged-in user to create a Node.
Fwiw I've used the wording "non-admin logged-in user" so far instead of "regular logged-in user".