Merge lp:~newell-jensen/maas/change-power-driver-parameters into lp:~maas-committers/maas/trunk

Proposed by Newell Jensen
Status: Merged
Approved by: Newell Jensen
Approved revision: no longer in the source branch.
Merged at revision: 4502
Proposed branch: lp:~newell-jensen/maas/change-power-driver-parameters
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 2286 lines (+420/-441)
32 files modified
src/provisioningserver/drivers/power/__init__.py (+19/-19)
src/provisioningserver/drivers/power/amt.py (+10/-10)
src/provisioningserver/drivers/power/apc.py (+10/-10)
src/provisioningserver/drivers/power/dli.py (+6/-6)
src/provisioningserver/drivers/power/ether_wake.py (+7/-7)
src/provisioningserver/drivers/power/fence_cdu.py (+7/-7)
src/provisioningserver/drivers/power/hmc.py (+12/-12)
src/provisioningserver/drivers/power/ipmi.py (+8/-8)
src/provisioningserver/drivers/power/moonshot.py (+8/-8)
src/provisioningserver/drivers/power/mscm.py (+11/-11)
src/provisioningserver/drivers/power/msftocs.py (+12/-12)
src/provisioningserver/drivers/power/seamicro.py (+14/-14)
src/provisioningserver/drivers/power/tests/test_amt.py (+50/-84)
src/provisioningserver/drivers/power/tests/test_apc.py (+10/-10)
src/provisioningserver/drivers/power/tests/test_base.py (+36/-29)
src/provisioningserver/drivers/power/tests/test_dli.py (+12/-6)
src/provisioningserver/drivers/power/tests/test_ether_wake.py (+3/-3)
src/provisioningserver/drivers/power/tests/test_fence_cdu.py (+3/-3)
src/provisioningserver/drivers/power/tests/test_hmc.py (+10/-10)
src/provisioningserver/drivers/power/tests/test_ipmi.py (+30/-30)
src/provisioningserver/drivers/power/tests/test_moonshot.py (+20/-20)
src/provisioningserver/drivers/power/tests/test_mscm.py (+10/-10)
src/provisioningserver/drivers/power/tests/test_msftocs.py (+10/-10)
src/provisioningserver/drivers/power/tests/test_seamicro.py (+33/-33)
src/provisioningserver/drivers/power/tests/test_ucsm.py (+10/-10)
src/provisioningserver/drivers/power/tests/test_virsh.py (+10/-10)
src/provisioningserver/drivers/power/tests/test_vmware.py (+11/-11)
src/provisioningserver/drivers/power/ucsm.py (+11/-11)
src/provisioningserver/drivers/power/virsh.py (+10/-10)
src/provisioningserver/drivers/power/vmware.py (+14/-14)
src/provisioningserver/power/change.py (+2/-2)
src/provisioningserver/power/query.py (+1/-1)
To merge this branch: bzr merge lp:~newell-jensen/maas/change-power-driver-parameters
Reviewer Review Type Date Requested Status
Blake Rouse (community) Approve
Review via email: mp+277644@code.launchpad.net

Commit message

Change parameters of power driver base class's methods to use context instead of **context to fix possible variable collisions.

To post a comment you must log in.
Revision history for this message
Blake Rouse (blake-rouse) wrote :

Looks good. Mechanical change.

review: Approve
Revision history for this message
Blake Rouse (blake-rouse) wrote :

Don't forget this needs to be backported to 1.9.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/provisioningserver/drivers/power/__init__.py'
2--- src/provisioningserver/drivers/power/__init__.py 2015-11-06 16:52:07 +0000
3+++ src/provisioningserver/drivers/power/__init__.py 2015-11-17 02:16:14 +0000
4@@ -143,32 +143,32 @@
5 """List of settings for the driver.
6
7 Each setting in this list will be different per user. They are passed
8- to the `on`, `off`, and `query` using the kwargs. It is up
9+ to the `on`, `off`, and `query` using the context. It is up
10 to the driver to read these options before performing the operation.
11 """
12
13 @abstractmethod
14- def on(self, system_id, **kwargs):
15+ def on(self, system_id, context):
16 """Perform the power on action for `system_id`.
17
18 :param system_id: `Node.system_id`
19- :param kwargs: Power settings for the node.
20+ :param context: Power settings for the node.
21 """
22
23 @abstractmethod
24- def off(self, system_id, **kwargs):
25+ def off(self, system_id, context):
26 """Perform the power off action for `system_id`.
27
28 :param system_id: `Node.system_id`
29- :param kwargs: Power settings for the node.
30+ :param context: Power settings for the node.
31 """
32
33 @abstractmethod
34- def query(self, system_id, **kwargs):
35+ def query(self, system_id, context):
36 """Perform the query action for `system_id`.
37
38 :param system_id: `Node.system_id`
39- :param kwargs: Power settings for the node.
40+ :param context: Power settings for the node.
41 :return: status of power on BMC. `on` or `off`.
42 :raises PowerError: states unable to get status from BMC. It is
43 up to this method to report the actual issue to the Region. The
44@@ -213,32 +213,32 @@
45 """
46
47 @abstractmethod
48- def power_on(self, system_id, **kwargs):
49+ def power_on(self, system_id, context):
50 """Implement this method for the actual implementation
51 of the power on command.
52 """
53
54 @abstractmethod
55- def power_off(self, system_id, **kwargs):
56+ def power_off(self, system_id, context):
57 """Implement this method for the actual implementation
58 of the power off command.
59 """
60
61 @abstractmethod
62- def power_query(self, system_id, **kwargs):
63+ def power_query(self, system_id, context):
64 """Implement this method for the actual implementation
65 of the power query command."""
66
67- def on(self, system_id, **kwargs):
68+ def on(self, system_id, context):
69 """Performs the power on action for `system_id`.
70
71 Do not override `on` method unless you want to provide custom logic on
72 how retries and error detection is handled. Override `power_on` for
73 just the power on action, and `on` will handle the retrying.
74 """
75- return self.perform_power(self.power_on, "on", system_id, **kwargs)
76+ return self.perform_power(self.power_on, "on", system_id, context)
77
78- def off(self, system_id, **kwargs):
79+ def off(self, system_id, context):
80 """Performs the power off action for `system_id`.
81
82 Do not override `off` method unless you want to provide custom logic on
83@@ -246,16 +246,16 @@
84 just the power off action, and `off` will handle the retrying and error
85 reporting.
86 """
87- return self.perform_power(self.power_off, "off", system_id, **kwargs)
88+ return self.perform_power(self.power_off, "off", system_id, context)
89
90 @inlineCallbacks
91- def query(self, system_id, **kwargs):
92+ def query(self, system_id, context):
93 """Performs the power query action for `system_id`."""
94 exc_info = None, None, None
95 for waiting_time in self.wait_time:
96 try:
97 state = yield deferToThread(
98- self.power_query, system_id, **kwargs)
99+ self.power_query, system_id, context)
100 except PowerFatalError:
101 raise # Don't retry.
102 except PowerError:
103@@ -268,7 +268,7 @@
104 raise exc_info[0], exc_info[1], exc_info[2]
105
106 @inlineCallbacks
107- def perform_power(self, power_func, state_desired, system_id, **kwargs):
108+ def perform_power(self, power_func, state_desired, system_id, context):
109 """Provides the logic to perform the power actions.
110
111 :param power_func: Function used to change the power state of the
112@@ -285,7 +285,7 @@
113 # Try to change state.
114 try:
115 yield deferToThread(
116- power_func, system_id, **kwargs)
117+ power_func, system_id, context)
118 except PowerFatalError:
119 raise # Don't retry.
120 except PowerError:
121@@ -298,7 +298,7 @@
122 # Try to get power state.
123 try:
124 state = yield deferToThread(
125- self.power_query, system_id, **kwargs)
126+ self.power_query, system_id, context)
127 except PowerFatalError:
128 raise # Don't retry.
129 except PowerError:
130
131=== modified file 'src/provisioningserver/drivers/power/amt.py'
132--- src/provisioningserver/drivers/power/amt.py 2015-11-13 17:51:32 +0000
133+++ src/provisioningserver/drivers/power/amt.py 2015-11-17 02:16:14 +0000
134@@ -330,15 +330,15 @@
135 else:
136 raise PowerFatalError('No host provided')
137
138- def power_on(self, system_id, **kwargs):
139+ def power_on(self, system_id, context):
140 """Power on AMT node."""
141 ip_address = self._get_ip_address(
142- kwargs.get('power_address'), kwargs.get('ip_address'))
143- power_pass = kwargs.get('power_pass')
144+ context.get('power_address'), context.get('ip_address'))
145+ power_pass = context.get('power_pass')
146 amt_command = self._get_amt_command(ip_address, power_pass)
147 if amt_command == 'amttool':
148 amttool_boot_mode = self._get_amttool_boot_mode(
149- kwargs.get('boot_mode'))
150+ context.get('boot_mode'))
151 if self.amttool_query_state(ip_address, power_pass) == 'on':
152 self.amttool_restart(ip_address, power_pass, amttool_boot_mode)
153 else:
154@@ -350,11 +350,11 @@
155 else:
156 self.wsman_power_on(ip_address, power_pass)
157
158- def power_off(self, system_id, **kwargs):
159+ def power_off(self, system_id, context):
160 """Power off AMT node."""
161 ip_address = self._get_ip_address(
162- kwargs.get('power_address'), kwargs.get('ip_address'))
163- power_pass = kwargs.get('power_pass')
164+ context.get('power_address'), context.get('ip_address'))
165+ power_pass = context.get('power_pass')
166 amt_command = self._get_amt_command(ip_address, power_pass)
167 if amt_command == 'amttool':
168 if self.amttool_query_state(ip_address, power_pass) != 'off':
169@@ -363,11 +363,11 @@
170 if self.wsman_query_state(ip_address, power_pass) != 'off':
171 self.wsman_power_off(ip_address, power_pass)
172
173- def power_query(self, system_id, **kwargs):
174+ def power_query(self, system_id, context):
175 """Power query AMT node."""
176 ip_address = self._get_ip_address(
177- kwargs.get('power_address'), kwargs.get('ip_address'))
178- power_pass = kwargs.get('power_pass')
179+ context.get('power_address'), context.get('ip_address'))
180+ power_pass = context.get('power_pass')
181 amt_command = self._get_amt_command(ip_address, power_pass)
182 if amt_command == 'amttool':
183 return self.amttool_query_state(ip_address, power_pass)
184
185=== modified file 'src/provisioningserver/drivers/power/apc.py'
186--- src/provisioningserver/drivers/power/apc.py 2015-10-01 22:48:50 +0000
187+++ src/provisioningserver/drivers/power/apc.py 2015-11-17 02:16:14 +0000
188@@ -23,10 +23,10 @@
189 from provisioningserver.utils import shell
190
191
192-def extract_apc_parameters(params):
193- ip = params.get('power_address')
194- outlet = params.get('node_outlet')
195- power_on_delay = params.get('power_on_delay')
196+def extract_apc_parameters(context):
197+ ip = context.get('power_address')
198+ outlet = context.get('node_outlet')
199+ power_on_delay = context.get('power_on_delay')
200 return ip, outlet, power_on_delay
201
202
203@@ -42,21 +42,21 @@
204 return [package]
205 return []
206
207- def power_on(self, system_id, **kwargs):
208+ def power_on(self, system_id, context):
209 """Power on Apc outlet."""
210 power_change = 'on'
211- ip, outlet, power_on_delay = extract_apc_parameters(kwargs)
212+ ip, outlet, power_on_delay = extract_apc_parameters(context)
213 power_control_apc(
214 ip, outlet, power_change, power_on_delay)
215
216- def power_off(self, system_id, **kwargs):
217+ def power_off(self, system_id, context):
218 """Power off APC outlet."""
219 power_change = 'off'
220- ip, outlet, power_on_delay = extract_apc_parameters(kwargs)
221+ ip, outlet, power_on_delay = extract_apc_parameters(context)
222 power_control_apc(
223 ip, outlet, power_change, power_on_delay)
224
225- def power_query(self, system_id, **kwargs):
226+ def power_query(self, system_id, context):
227 """Power query APC outlet."""
228- ip, outlet, _ = extract_apc_parameters(kwargs)
229+ ip, outlet, _ = extract_apc_parameters(context)
230 return power_state_apc(ip, outlet)
231
232=== modified file 'src/provisioningserver/drivers/power/dli.py'
233--- src/provisioningserver/drivers/power/dli.py 2015-11-04 15:53:35 +0000
234+++ src/provisioningserver/drivers/power/dli.py 2015-11-17 02:16:14 +0000
235@@ -91,14 +91,14 @@
236 "Failed to power query outlet %s: %s" % (
237 outlet_id, e.output_as_unicode))
238
239- def power_on(self, system_id, **kwargs):
240+ def power_on(self, system_id, context):
241 """Power on DLI outlet."""
242- self._set_outlet_state('ON', **kwargs)
243+ self._set_outlet_state('ON', **context)
244
245- def power_off(self, system_id, **kwargs):
246+ def power_off(self, system_id, context):
247 """Power off DLI outlet."""
248- self._set_outlet_state('OFF', **kwargs)
249+ self._set_outlet_state('OFF', **context)
250
251- def power_query(self, system_id, **kwargs):
252+ def power_query(self, system_id, context):
253 """Power query DLI outlet."""
254- return self._query_outlet_state(**kwargs)
255+ return self._query_outlet_state(**context)
256
257=== modified file 'src/provisioningserver/drivers/power/ether_wake.py'
258--- src/provisioningserver/drivers/power/ether_wake.py 2015-10-01 22:48:50 +0000
259+++ src/provisioningserver/drivers/power/ether_wake.py 2015-11-17 02:16:14 +0000
260@@ -24,11 +24,11 @@
261 # you need one or the other, not both
262 return ['wakeonlan or etherwake']
263
264- def power_on(self, system_id, **kwargs):
265- raise NotImplementedError
266-
267- def power_off(self, system_id, **kwargs):
268- raise NotImplementedError
269-
270- def power_query(self, system_id, **kwargs):
271+ def power_on(self, system_id, context):
272+ raise NotImplementedError
273+
274+ def power_off(self, system_id, context):
275+ raise NotImplementedError
276+
277+ def power_query(self, system_id, context):
278 raise NotImplementedError
279
280=== modified file 'src/provisioningserver/drivers/power/fence_cdu.py'
281--- src/provisioningserver/drivers/power/fence_cdu.py 2015-10-01 22:48:50 +0000
282+++ src/provisioningserver/drivers/power/fence_cdu.py 2015-11-17 02:16:14 +0000
283@@ -22,11 +22,11 @@
284 return ['fence-agents']
285 return []
286
287- def power_on(self, system_id, **kwargs):
288- raise NotImplementedError
289-
290- def power_off(self, system_id, **kwargs):
291- raise NotImplementedError
292-
293- def power_query(self, system_id, **kwargs):
294+ def power_on(self, system_id, context):
295+ raise NotImplementedError
296+
297+ def power_off(self, system_id, context):
298+ raise NotImplementedError
299+
300+ def power_query(self, system_id, context):
301 raise NotImplementedError
302
303=== modified file 'src/provisioningserver/drivers/power/hmc.py'
304--- src/provisioningserver/drivers/power/hmc.py 2015-10-01 22:48:50 +0000
305+++ src/provisioningserver/drivers/power/hmc.py 2015-11-17 02:16:14 +0000
306@@ -23,12 +23,12 @@
307 from provisioningserver.utils import shell
308
309
310-def extract_hmc_parameters(params):
311- ip = params.get('power_address')
312- username = params.get('power_user')
313- password = params.get('power_pass')
314- server_name = params.get('server_name')
315- lpar = params.get('lpar')
316+def extract_hmc_parameters(context):
317+ ip = context.get('power_address')
318+ username = context.get('power_user')
319+ password = context.get('power_pass')
320+ server_name = context.get('server_name')
321+ lpar = context.get('lpar')
322 return ip, username, password, server_name, lpar
323
324
325@@ -44,19 +44,19 @@
326 return [package]
327 return []
328
329- def power_on(self, system_id, **kwargs):
330+ def power_on(self, system_id, context):
331 ip, username, password, server_name, lpar = (
332- extract_hmc_parameters(kwargs))
333+ extract_hmc_parameters(context))
334 power_control_hmc(
335 ip, username, password, server_name, lpar, power_change='on')
336
337- def power_off(self, system_id, **kwargs):
338+ def power_off(self, system_id, context):
339 ip, username, password, server_name, lpar = (
340- extract_hmc_parameters(kwargs))
341+ extract_hmc_parameters(context))
342 power_control_hmc(
343 ip, username, password, server_name, lpar, power_change='off')
344
345- def power_query(self, system_id, **kwargs):
346+ def power_query(self, system_id, context):
347 ip, username, password, server_name, lpar = (
348- extract_hmc_parameters(kwargs))
349+ extract_hmc_parameters(context))
350 return power_state_hmc(ip, username, password, server_name, lpar)
351
352=== modified file 'src/provisioningserver/drivers/power/ipmi.py'
353--- src/provisioningserver/drivers/power/ipmi.py 2015-10-14 18:10:57 +0000
354+++ src/provisioningserver/drivers/power/ipmi.py 2015-11-17 02:16:14 +0000
355@@ -152,11 +152,11 @@
356 return self._issue_ipmi_power_command(
357 ipmipower_command, power_change, power_address, env)
358
359- def power_on(self, system_id, **kwargs):
360- self._issue_ipmi_command('on', **kwargs)
361-
362- def power_off(self, system_id, **kwargs):
363- self._issue_ipmi_command('off', **kwargs)
364-
365- def power_query(self, system_id, **kwargs):
366- return self._issue_ipmi_command('query', **kwargs)
367+ def power_on(self, system_id, context):
368+ self._issue_ipmi_command('on', **context)
369+
370+ def power_off(self, system_id, context):
371+ self._issue_ipmi_command('off', **context)
372+
373+ def power_query(self, system_id, context):
374+ return self._issue_ipmi_command('query', **context)
375
376=== modified file 'src/provisioningserver/drivers/power/moonshot.py'
377--- src/provisioningserver/drivers/power/moonshot.py 2015-10-01 22:48:50 +0000
378+++ src/provisioningserver/drivers/power/moonshot.py 2015-11-17 02:16:14 +0000
379@@ -60,11 +60,11 @@
380 raise PowerActionError(
381 "Got unknown power state from ipmipower: %s" % output)
382
383- def power_on(self, system_id, **kwargs):
384- self._issue_ipmitool_command('on', **kwargs)
385-
386- def power_off(self, system_id, **kwargs):
387- self._issue_ipmitool_command('off', **kwargs)
388-
389- def power_query(self, system_id, **kwargs):
390- return self._issue_ipmitool_command('status', **kwargs)
391+ def power_on(self, system_id, context):
392+ self._issue_ipmitool_command('on', **context)
393+
394+ def power_off(self, system_id, context):
395+ self._issue_ipmitool_command('off', **context)
396+
397+ def power_query(self, system_id, context):
398+ return self._issue_ipmitool_command('status', **context)
399
400=== modified file 'src/provisioningserver/drivers/power/mscm.py'
401--- src/provisioningserver/drivers/power/mscm.py 2015-09-30 07:16:42 +0000
402+++ src/provisioningserver/drivers/power/mscm.py 2015-11-17 02:16:14 +0000
403@@ -21,11 +21,11 @@
404 from provisioningserver.drivers.power import PowerDriver
405
406
407-def extract_mscm_parameters(params):
408- host = params.get('power_address')
409- username = params.get('power_user')
410- password = params.get('power_pass')
411- node_id = params.get('node_id')
412+def extract_mscm_parameters(context):
413+ host = context.get('power_address')
414+ username = context.get('power_user')
415+ password = context.get('power_pass')
416+ node_id = context.get('node_id')
417 return host, username, password, node_id
418
419
420@@ -39,19 +39,19 @@
421 # uses pure-python paramiko ssh client - nothing to look for!
422 return []
423
424- def power_on(self, system_id, **kwargs):
425+ def power_on(self, system_id, context):
426 """Power on MSCM node."""
427- host, username, password, node_id = extract_mscm_parameters(kwargs)
428+ host, username, password, node_id = extract_mscm_parameters(context)
429 power_control_mscm(
430 host, username, password, node_id, power_change='on')
431
432- def power_off(self, system_id, **kwargs):
433+ def power_off(self, system_id, context):
434 """Power off MSCM node."""
435- host, username, password, node_id = extract_mscm_parameters(kwargs)
436+ host, username, password, node_id = extract_mscm_parameters(context)
437 power_control_mscm(
438 host, username, password, node_id, power_change='off')
439
440- def power_query(self, system_id, **kwargs):
441+ def power_query(self, system_id, context):
442 """Power query MSCM node."""
443- host, username, password, node_id = extract_mscm_parameters(kwargs)
444+ host, username, password, node_id = extract_mscm_parameters(context)
445 return power_state_mscm(host, username, password, node_id)
446
447=== modified file 'src/provisioningserver/drivers/power/msftocs.py'
448--- src/provisioningserver/drivers/power/msftocs.py 2015-09-30 07:16:42 +0000
449+++ src/provisioningserver/drivers/power/msftocs.py 2015-11-17 02:16:14 +0000
450@@ -21,12 +21,12 @@
451 from provisioningserver.drivers.power import PowerDriver
452
453
454-def extract_msftocs_parameters(params):
455- ip = params.get('power_address')
456- port = params.get('power_port')
457- username = params.get('power_user')
458- password = params.get('power_pass')
459- blade_id = params.get('blade_id')
460+def extract_msftocs_parameters(context):
461+ ip = context.get('power_address')
462+ port = context.get('power_port')
463+ username = context.get('power_user')
464+ password = context.get('power_pass')
465+ blade_id = context.get('blade_id')
466 return ip, port, username, password, blade_id
467
468
469@@ -40,24 +40,24 @@
470 # uses urllib2 http client - nothing to look for!
471 return []
472
473- def power_on(self, system_id, **kwargs):
474+ def power_on(self, system_id, context):
475 """Power on MicrosoftOCS node."""
476 power_change = 'on'
477 ip, port, username, password, blade_id = (
478- extract_msftocs_parameters(kwargs))
479+ extract_msftocs_parameters(context))
480 power_control_msftocs(
481 ip, port, username, password, power_change)
482
483- def power_off(self, system_id, **kwargs):
484+ def power_off(self, system_id, context):
485 """Power off MicrosoftOCS node."""
486 power_change = 'off'
487 ip, port, username, password, blade_id = (
488- extract_msftocs_parameters(kwargs))
489+ extract_msftocs_parameters(context))
490 power_control_msftocs(
491 ip, port, username, password, power_change)
492
493- def power_query(self, system_id, **kwargs):
494+ def power_query(self, system_id, context):
495 """Power query MicrosoftOCS node."""
496 ip, port, username, password, blade_id = (
497- extract_msftocs_parameters(kwargs))
498+ extract_msftocs_parameters(context))
499 return power_state_msftocs(ip, port, username, password, blade_id)
500
501=== modified file 'src/provisioningserver/drivers/power/seamicro.py'
502--- src/provisioningserver/drivers/power/seamicro.py 2015-10-01 22:48:50 +0000
503+++ src/provisioningserver/drivers/power/seamicro.py 2015-11-17 02:16:14 +0000
504@@ -30,12 +30,12 @@
505 )
506
507
508-def extract_seamicro_parameters(params):
509- ip = params.get('power_address')
510- username = params.get('power_user')
511- password = params.get('power_pass')
512- server_id = params.get('system_id')
513- power_control = params.get('power_control')
514+def extract_seamicro_parameters(context):
515+ ip = context.get('power_address')
516+ username = context.get('power_user')
517+ password = context.get('power_pass')
518+ server_id = context.get('system_id')
519+ power_control = context.get('power_control')
520 return ip, username, password, server_id, power_control
521
522
523@@ -65,10 +65,10 @@
524 "Failed to power %s %s at %s: %s" % (
525 power_change, server_id, ip, e.output_as_unicode))
526
527- def _power(self, power_change, **kwargs):
528+ def _power(self, power_change, context):
529 """Power SeaMicro node."""
530 ip, username, password, server_id, power_control = (
531- extract_seamicro_parameters(kwargs))
532+ extract_seamicro_parameters(context))
533 if power_control == 'ipmi':
534 self._power_control_seamicro15k_ipmi(
535 ip, username, password, server_id, power_change=power_change)
536@@ -79,20 +79,20 @@
537 power_control_seamicro15k_v2(
538 ip, username, password, server_id, power_change=power_change)
539
540- def power_on(self, system_id, **kwargs):
541+ def power_on(self, system_id, context):
542 """Power on SeaMicro node."""
543- self._power('on', **kwargs)
544+ self._power('on', context)
545
546- def power_off(self, system_id, **kwargs):
547+ def power_off(self, system_id, context):
548 """Power off SeaMicro node."""
549- self._power('off', **kwargs)
550+ self._power('off', context)
551
552- def power_query(self, system_id, **kwargs):
553+ def power_query(self, system_id, context):
554 """Power query SeaMicro node."""
555 # Query the state.
556 # Only supported by REST v2.
557 ip, username, password, _, power_control = (
558- extract_seamicro_parameters(kwargs))
559+ extract_seamicro_parameters(context))
560 if power_control == 'restapi2':
561 return power_query_seamicro15k_v2(
562 ip, username, password, system_id)
563
564=== modified file 'src/provisioningserver/drivers/power/tests/test_amt.py'
565--- src/provisioningserver/drivers/power/tests/test_amt.py 2015-11-13 17:51:32 +0000
566+++ src/provisioningserver/drivers/power/tests/test_amt.py 2015-11-17 02:16:14 +0000
567@@ -66,6 +66,16 @@
568 """)
569
570
571+def make_parameters():
572+ return {
573+ 'system_id': factory.make_name('system_id'),
574+ 'power_address': factory.make_name('power_address'),
575+ 'ip_address': factory.make_ipv4_address(),
576+ 'power_pass': factory.make_name('power_pass'),
577+ 'boot_mode': factory.make_name('boot_mode'),
578+ }
579+
580+
581 class TestAMTPowerDriver(MAASTestCase):
582
583 def patch_popen(self, return_value=(None, None), returncode=0):
584@@ -589,13 +599,7 @@
585
586 def test_power_on_powers_on_with_amttool_when_already_on(self):
587 amt_power_driver = AMTPowerDriver()
588- kwargs = {
589- 'system_id': factory.make_name('system_id'),
590- 'power_address': factory.make_name('power_address'),
591- 'ip_address': factory.make_ipv4_address(),
592- 'power_pass': factory.make_name('power_pass'),
593- 'boot_mode': factory.make_name('boot_mode'),
594- }
595+ context = make_parameters()
596 _get_amt_command_mock = self.patch(
597 amt_power_driver, '_get_amt_command')
598 _get_amt_command_mock.return_value = 'amttool'
599@@ -605,28 +609,22 @@
600 amttool_restart_mock = self.patch(
601 amt_power_driver, 'amttool_restart')
602
603- amt_power_driver.power_on(**kwargs)
604+ amt_power_driver.power_on(context['system_id'], context)
605
606 self.expectThat(
607 _get_amt_command_mock, MockCalledOnceWith(
608- kwargs['ip_address'], kwargs['power_pass']))
609+ context['ip_address'], context['power_pass']))
610 self.expectThat(
611 amttool_query_state_mock, MockCalledOnceWith(
612- kwargs['ip_address'], kwargs['power_pass']))
613+ context['ip_address'], context['power_pass']))
614 self.expectThat(
615 amttool_restart_mock, MockCalledOnceWith(
616- kwargs['ip_address'], kwargs['power_pass'],
617- kwargs['boot_mode']))
618+ context['ip_address'], context['power_pass'],
619+ context['boot_mode']))
620
621 def test_power_on_powers_on_with_amttool_when_already_off(self):
622 amt_power_driver = AMTPowerDriver()
623- kwargs = {
624- 'system_id': factory.make_name('system_id'),
625- 'power_address': factory.make_name('power_address'),
626- 'ip_address': factory.make_ipv4_address(),
627- 'power_pass': factory.make_name('power_pass'),
628- 'boot_mode': factory.make_name('boot_mode'),
629- }
630+ context = make_parameters()
631 _get_amt_command_mock = self.patch(
632 amt_power_driver, '_get_amt_command')
633 _get_amt_command_mock.return_value = 'amttool'
634@@ -636,27 +634,22 @@
635 amttool_power_on_mock = self.patch(
636 amt_power_driver, 'amttool_power_on')
637
638- amt_power_driver.power_on(**kwargs)
639+ amt_power_driver.power_on(context['system_id'], context)
640
641 self.expectThat(
642 _get_amt_command_mock, MockCalledOnceWith(
643- kwargs['ip_address'], kwargs['power_pass']))
644+ context['ip_address'], context['power_pass']))
645 self.expectThat(
646 amttool_query_state_mock, MockCalledOnceWith(
647- kwargs['ip_address'], kwargs['power_pass']))
648+ context['ip_address'], context['power_pass']))
649 self.expectThat(
650 amttool_power_on_mock, MockCalledOnceWith(
651- kwargs['ip_address'], kwargs['power_pass'],
652- kwargs['boot_mode']))
653+ context['ip_address'], context['power_pass'],
654+ context['boot_mode']))
655
656 def test_power_on_powers_on_with_wsman_when_already_on(self):
657 amt_power_driver = AMTPowerDriver()
658- kwargs = {
659- 'system_id': factory.make_name('system_id'),
660- 'power_address': factory.make_name('power_address'),
661- 'ip_address': factory.make_ipv4_address(),
662- 'power_pass': factory.make_name('power_pass'),
663- }
664+ context = make_parameters()
665 _get_amt_command_mock = self.patch(
666 amt_power_driver, '_get_amt_command')
667 _get_amt_command_mock.return_value = 'wsman'
668@@ -666,26 +659,21 @@
669 wsman_restart_mock = self.patch(
670 amt_power_driver, 'wsman_restart')
671
672- amt_power_driver.power_on(**kwargs)
673+ amt_power_driver.power_on(context['system_id'], context)
674
675 self.expectThat(
676 _get_amt_command_mock, MockCalledOnceWith(
677- kwargs['ip_address'], kwargs['power_pass']))
678+ context['ip_address'], context['power_pass']))
679 self.expectThat(
680 wsman_query_state_mock, MockCalledOnceWith(
681- kwargs['ip_address'], kwargs['power_pass']))
682+ context['ip_address'], context['power_pass']))
683 self.expectThat(
684 wsman_restart_mock, MockCalledOnceWith(
685- kwargs['ip_address'], kwargs['power_pass']))
686+ context['ip_address'], context['power_pass']))
687
688 def test_power_on_powers_on_with_wsman_when_already_off(self):
689 amt_power_driver = AMTPowerDriver()
690- kwargs = {
691- 'system_id': factory.make_name('system_id'),
692- 'power_address': factory.make_name('power_address'),
693- 'ip_address': factory.make_ipv4_address(),
694- 'power_pass': factory.make_name('power_pass'),
695- }
696+ context = make_parameters()
697 _get_amt_command_mock = self.patch(
698 amt_power_driver, '_get_amt_command')
699 _get_amt_command_mock.return_value = 'wsman'
700@@ -695,26 +683,21 @@
701 wsman_power_on_mock = self.patch(
702 amt_power_driver, 'wsman_power_on')
703
704- amt_power_driver.power_on(**kwargs)
705+ amt_power_driver.power_on(context['system_id'], context)
706
707 self.expectThat(
708 _get_amt_command_mock, MockCalledOnceWith(
709- kwargs['ip_address'], kwargs['power_pass']))
710+ context['ip_address'], context['power_pass']))
711 self.expectThat(
712 wsman_query_state_mock, MockCalledOnceWith(
713- kwargs['ip_address'], kwargs['power_pass']))
714+ context['ip_address'], context['power_pass']))
715 self.expectThat(
716 wsman_power_on_mock, MockCalledOnceWith(
717- kwargs['ip_address'], kwargs['power_pass']))
718+ context['ip_address'], context['power_pass']))
719
720 def test_power_off_powers_off_with_amttool(self):
721 amt_power_driver = AMTPowerDriver()
722- kwargs = {
723- 'system_id': factory.make_name('system_id'),
724- 'power_address': factory.make_name('power_address'),
725- 'ip_address': factory.make_ipv4_address(),
726- 'power_pass': factory.make_name('power_pass'),
727- }
728+ context = make_parameters()
729 _get_amt_command_mock = self.patch(
730 amt_power_driver, '_get_amt_command')
731 _get_amt_command_mock.return_value = 'amttool'
732@@ -724,26 +707,20 @@
733 amttool_power_off_mock = self.patch(
734 amt_power_driver, 'amttool_power_off')
735
736- amt_power_driver.power_off(**kwargs)
737-
738+ amt_power_driver.power_off(context['system_id'], context)
739 self.expectThat(
740 _get_amt_command_mock, MockCalledOnceWith(
741- kwargs['ip_address'], kwargs['power_pass']))
742+ context['ip_address'], context['power_pass']))
743 self.expectThat(
744 amttool_query_state_mock, MockCalledOnceWith(
745- kwargs['ip_address'], kwargs['power_pass']))
746+ context['ip_address'], context['power_pass']))
747 self.expectThat(
748 amttool_power_off_mock, MockCalledOnceWith(
749- kwargs['ip_address'], kwargs['power_pass']))
750+ context['ip_address'], context['power_pass']))
751
752 def test_power_off_powers_off_with_wsman(self):
753 amt_power_driver = AMTPowerDriver()
754- kwargs = {
755- 'system_id': factory.make_name('system_id'),
756- 'power_address': factory.make_name('power_address'),
757- 'ip_address': factory.make_ipv4_address(),
758- 'power_pass': factory.make_name('power_pass'),
759- }
760+ context = make_parameters()
761 _get_amt_command_mock = self.patch(
762 amt_power_driver, '_get_amt_command')
763 _get_amt_command_mock.return_value = 'wsman'
764@@ -753,26 +730,20 @@
765 wsman_power_off_mock = self.patch(
766 amt_power_driver, 'wsman_power_off')
767
768- amt_power_driver.power_off(**kwargs)
769-
770+ amt_power_driver.power_off(context['system_id'], context)
771 self.expectThat(
772 _get_amt_command_mock, MockCalledOnceWith(
773- kwargs['ip_address'], kwargs['power_pass']))
774+ context['ip_address'], context['power_pass']))
775 self.expectThat(
776 wsman_query_state_mock, MockCalledOnceWith(
777- kwargs['ip_address'], kwargs['power_pass']))
778+ context['ip_address'], context['power_pass']))
779 self.expectThat(
780 wsman_power_off_mock, MockCalledOnceWith(
781- kwargs['ip_address'], kwargs['power_pass']))
782+ context['ip_address'], context['power_pass']))
783
784 def test_power_query_queries_with_amttool(self):
785 amt_power_driver = AMTPowerDriver()
786- kwargs = {
787- 'system_id': factory.make_name('system_id'),
788- 'power_address': factory.make_name('power_address'),
789- 'ip_address': factory.make_ipv4_address(),
790- 'power_pass': factory.make_name('power_pass'),
791- }
792+ context = make_parameters()
793 _get_amt_command_mock = self.patch(
794 amt_power_driver, '_get_amt_command')
795 _get_amt_command_mock.return_value = 'amttool'
796@@ -780,24 +751,19 @@
797 amt_power_driver, 'amttool_query_state')
798 amttool_query_state_mock.return_value = 'off'
799
800- state = amt_power_driver.power_query(**kwargs)
801+ state = amt_power_driver.power_query(context['system_id'], context)
802
803 self.expectThat(
804 _get_amt_command_mock, MockCalledOnceWith(
805- kwargs['ip_address'], kwargs['power_pass']))
806+ context['ip_address'], context['power_pass']))
807 self.expectThat(
808 amttool_query_state_mock, MockCalledOnceWith(
809- kwargs['ip_address'], kwargs['power_pass']))
810+ context['ip_address'], context['power_pass']))
811 self.expectThat(state, Equals('off'))
812
813 def test_power_query_queries_with_wsman(self):
814 amt_power_driver = AMTPowerDriver()
815- kwargs = {
816- 'system_id': factory.make_name('system_id'),
817- 'power_address': factory.make_name('power_address'),
818- 'ip_address': factory.make_ipv4_address(),
819- 'power_pass': factory.make_name('power_pass'),
820- }
821+ context = make_parameters()
822 _get_amt_command_mock = self.patch(
823 amt_power_driver, '_get_amt_command')
824 _get_amt_command_mock.return_value = 'wsman'
825@@ -805,12 +771,12 @@
826 amt_power_driver, 'wsman_query_state')
827 wsman_query_state_mock.return_value = 'on'
828
829- state = amt_power_driver.power_query(**kwargs)
830+ state = amt_power_driver.power_query(context['system_id'], context)
831
832 self.expectThat(
833 _get_amt_command_mock, MockCalledOnceWith(
834- kwargs['ip_address'], kwargs['power_pass']))
835+ context['ip_address'], context['power_pass']))
836 self.expectThat(
837 wsman_query_state_mock, MockCalledOnceWith(
838- kwargs['ip_address'], kwargs['power_pass']))
839+ context['ip_address'], context['power_pass']))
840 self.expectThat(state, Equals('on'))
841
842=== modified file 'src/provisioningserver/drivers/power/tests/test_apc.py'
843--- src/provisioningserver/drivers/power/tests/test_apc.py 2015-10-01 22:48:50 +0000
844+++ src/provisioningserver/drivers/power/tests/test_apc.py 2015-11-17 02:16:14 +0000
845@@ -49,28 +49,28 @@
846 ip = factory.make_ipv4_address()
847 outlet = '%d' % randint(1, 16)
848 power_on_delay = '%d' % randint(1, 5)
849- params = {
850+ context = {
851 'system_id': system_id,
852 'power_address': ip,
853 'node_outlet': outlet,
854 'power_on_delay': power_on_delay,
855 }
856- return system_id, ip, outlet, power_on_delay, params
857+ return system_id, ip, outlet, power_on_delay, context
858
859 def test_extract_apc_parameters_extracts_parameters(self):
860- system_id, ip, outlet, power_on_delay, params = self.make_parameters()
861+ system_id, ip, outlet, power_on_delay, context = self.make_parameters()
862
863 self.assertItemsEqual(
864 (ip, outlet, power_on_delay),
865- extract_apc_parameters(params))
866+ extract_apc_parameters(context))
867
868 def test_power_on_calls_power_control_apc(self):
869 power_change = 'on'
870- system_id, ip, outlet, power_on_delay, params = self.make_parameters()
871+ system_id, ip, outlet, power_on_delay, context = self.make_parameters()
872 apc_power_driver = APCPowerDriver()
873 power_control_apc = self.patch(
874 apc_module, 'power_control_apc')
875- apc_power_driver.power_on(**params)
876+ apc_power_driver.power_on(system_id, context)
877
878 self.assertThat(
879 power_control_apc, MockCalledOnceWith(
880@@ -78,23 +78,23 @@
881
882 def test_power_off_calls_power_control_apc(self):
883 power_change = 'off'
884- system_id, ip, outlet, power_on_delay, params = self.make_parameters()
885+ system_id, ip, outlet, power_on_delay, context = self.make_parameters()
886 apc_power_driver = APCPowerDriver()
887 power_control_apc = self.patch(
888 apc_module, 'power_control_apc')
889- apc_power_driver.power_off(**params)
890+ apc_power_driver.power_off(system_id, context)
891
892 self.assertThat(
893 power_control_apc, MockCalledOnceWith(
894 ip, outlet, power_change, power_on_delay))
895
896 def test_power_query_calls_power_state_apc(self):
897- system_id, ip, outlet, power_on_delay, params = self.make_parameters()
898+ system_id, ip, outlet, power_on_delay, context = self.make_parameters()
899 apc_power_driver = APCPowerDriver()
900 power_state_apc = self.patch(
901 apc_module, 'power_state_apc')
902 power_state_apc.return_value = 'off'
903- expected_result = apc_power_driver.power_query(**params)
904+ expected_result = apc_power_driver.power_query(system_id, context)
905
906 self.expectThat(
907 power_state_apc, MockCalledOnceWith(ip, outlet))
908
909=== modified file 'src/provisioningserver/drivers/power/tests/test_base.py'
910--- src/provisioningserver/drivers/power/tests/test_base.py 2015-09-30 00:05:45 +0000
911+++ src/provisioningserver/drivers/power/tests/test_base.py 2015-11-17 02:16:14 +0000
912@@ -65,13 +65,13 @@
913 self.settings = settings
914 super(FakePowerDriverBase, self).__init__()
915
916- def on(self, system_id, **kwargs):
917- raise NotImplementedError
918-
919- def off(self, system_id, **kwargs):
920- raise NotImplementedError
921-
922- def query(self, system_id, **kwargs):
923+ def on(self, system_id, context):
924+ raise NotImplementedError
925+
926+ def off(self, system_id, context):
927+ raise NotImplementedError
928+
929+ def query(self, system_id, context):
930 raise NotImplementedError
931
932
933@@ -131,19 +131,19 @@
934 fake_driver = make_power_driver_base()
935 self.assertRaises(
936 NotImplementedError,
937- fake_driver.on, sentinel.system_id)
938+ fake_driver.on, sentinel.system_id, sentinel.context)
939
940 def test_off_raises_not_implemented(self):
941 fake_driver = make_power_driver_base()
942 self.assertRaises(
943 NotImplementedError,
944- fake_driver.off, sentinel.system_id)
945+ fake_driver.off, sentinel.system_id, sentinel.context)
946
947 def test_query_raises_not_implemented(self):
948 fake_driver = make_power_driver_base()
949 self.assertRaises(
950 NotImplementedError,
951- fake_driver.query, sentinel.system_id)
952+ fake_driver.query, sentinel.system_id, sentinel.context)
953
954
955 class TestPowerDriverBase(MAASTestCase):
956@@ -256,13 +256,13 @@
957 def detect_missing_packages(self):
958 raise NotImplementedError
959
960- def power_on(self, system_id, **kwargs):
961- raise NotImplementedError
962-
963- def power_off(self, system_id, **kwargs):
964- raise NotImplementedError
965-
966- def power_query(self, system_id, **kwargs):
967+ def power_on(self, system_id, context):
968+ raise NotImplementedError
969+
970+ def power_off(self, system_id, context):
971+ raise NotImplementedError
972+
973+ def power_query(self, system_id, context):
974 raise NotImplementedError
975
976
977@@ -297,16 +297,18 @@
978 @inlineCallbacks
979 def test_success(self):
980 system_id = factory.make_name('system_id')
981+ context = {'context': factory.make_name('context')}
982 driver = make_power_driver(wait_time=[0])
983 self.patch(driver, self.action_func)
984 self.patch(driver, 'power_query').return_value = self.action
985 method = getattr(driver, self.action)
986- result = yield method(system_id)
987+ result = yield method(system_id, context)
988 self.assertEqual(result, None)
989
990 @inlineCallbacks
991 def test_handles_fatal_error_on_first_call(self):
992 system_id = factory.make_name('system_id')
993+ context = {'context': factory.make_name('context')}
994 driver = make_power_driver(wait_time=[0, 0])
995 mock_on = self.patch(driver, self.action_func)
996 mock_on.side_effect = [PowerFatalError(), None]
997@@ -314,7 +316,7 @@
998 mock_query.return_value = self.action
999 method = getattr(driver, self.action)
1000 with ExpectedException(PowerFatalError):
1001- yield method(system_id)
1002+ yield method(system_id, context)
1003 self.expectThat(
1004 mock_query,
1005 Equals(MockNotCalled()))
1006@@ -322,21 +324,23 @@
1007 @inlineCallbacks
1008 def test_handles_non_fatal_error_on_first_call(self):
1009 system_id = factory.make_name('system_id')
1010+ context = {'context': factory.make_name('context')}
1011 driver = make_power_driver(wait_time=[0, 0])
1012 mock_on = self.patch(driver, self.action_func)
1013 mock_on.side_effect = [PowerError(), None]
1014 mock_query = self.patch(driver, 'power_query')
1015 mock_query.return_value = self.action
1016 method = getattr(driver, self.action)
1017- result = yield method(system_id)
1018+ result = yield method(system_id, context)
1019 self.expectThat(
1020 mock_query,
1021- Equals(MockCalledOnceWith(system_id)))
1022+ Equals(MockCalledOnceWith(system_id, context)))
1023 self.expectThat(result, Equals(None))
1024
1025 @inlineCallbacks
1026 def test_handles_non_fatal_error_and_holds_error(self):
1027 system_id = factory.make_name('system_id')
1028+ context = {'context': factory.make_name('context')}
1029 driver = make_power_driver(wait_time=[0])
1030 error_msg = factory.make_name('error')
1031 self.patch(driver, self.action_func)
1032@@ -344,31 +348,33 @@
1033 mock_query.side_effect = PowerError(error_msg)
1034 method = getattr(driver, self.action)
1035 with ExpectedException(PowerError):
1036- yield method(system_id)
1037+ yield method(system_id, context)
1038 self.expectThat(
1039 mock_query,
1040- Equals(MockCalledOnceWith(system_id)))
1041+ Equals(MockCalledOnceWith(system_id, context)))
1042
1043 @inlineCallbacks
1044 def test_handles_non_fatal_error(self):
1045 system_id = factory.make_name('system_id')
1046+ context = {'context': factory.make_name('context')}
1047 driver = make_power_driver(wait_time=[0])
1048 mock_on = self.patch(driver, self.action_func)
1049 mock_on.side_effect = PowerError()
1050 method = getattr(driver, self.action)
1051 with ExpectedException(PowerError):
1052- yield method(system_id)
1053+ yield method(system_id, context)
1054
1055 @inlineCallbacks
1056 def test_handles_fails_to_complete_power_action_in_time(self):
1057 system_id = factory.make_name('system_id')
1058+ context = {'context': factory.make_name('context')}
1059 driver = make_power_driver(wait_time=[0])
1060 self.patch(driver, self.action_func)
1061 mock_query = self.patch(driver, 'power_query')
1062 mock_query.return_value = self.bad_state
1063 method = getattr(driver, self.action)
1064 with ExpectedException(PowerError):
1065- yield method(system_id)
1066+ yield method(system_id, context)
1067
1068
1069 class TestPowerDriverQuery(MAASTestCase):
1070@@ -382,10 +388,11 @@
1071 @inlineCallbacks
1072 def test_returns_state(self):
1073 system_id = factory.make_name('system_id')
1074+ context = {'context': factory.make_name('context')}
1075 driver = make_power_driver()
1076 state = factory.make_name('state')
1077 self.patch(driver, 'power_query').return_value = state
1078- output = yield driver.query(system_id)
1079+ output = yield driver.query(system_id, context)
1080 self.assertEqual(state, output)
1081
1082 @inlineCallbacks
1083@@ -393,7 +400,7 @@
1084 driver = make_power_driver()
1085 self.patch(driver, 'power_query').side_effect = [
1086 PowerError("one"), PowerError("two"), sentinel.state]
1087- output = yield driver.query(sentinel.system_id)
1088+ output = yield driver.query(sentinel.system_id, sentinel.context)
1089 self.assertEqual(sentinel.state, output)
1090
1091 @inlineCallbacks
1092@@ -405,7 +412,7 @@
1093 for _ in wait_time)
1094 self.patch(driver, 'power_query').side_effect = exception_types
1095 with ExpectedException(exception_types[-1]):
1096- yield driver.query(sentinel.system_id)
1097+ yield driver.query(sentinel.system_id, sentinel.context)
1098
1099 @inlineCallbacks
1100 def test_pauses_between_retries(self):
1101@@ -413,6 +420,6 @@
1102 driver = make_power_driver(wait_time=wait_time)
1103 self.patch(driver, 'power_query').side_effect = PowerError
1104 with ExpectedException(PowerError):
1105- yield driver.query(sentinel.system_id)
1106+ yield driver.query(sentinel.system_id, sentinel.context)
1107 self.assertThat(power.pause, MockCallsMatch(
1108 *(call(wait, reactor) for wait in wait_time)))
1109
1110=== modified file 'src/provisioningserver/drivers/power/tests/test_dli.py'
1111--- src/provisioningserver/drivers/power/tests/test_dli.py 2015-11-04 15:53:35 +0000
1112+++ src/provisioningserver/drivers/power/tests/test_dli.py 2015-11-17 02:16:14 +0000
1113@@ -142,20 +142,26 @@
1114 def test_power_on(self):
1115 driver = dli_module.DLIPowerDriver()
1116 system_id = factory.make_name('system_id')
1117+ context = {'context': factory.make_name('context')}
1118 _set_outlet_state_mock = self.patch(driver, '_set_outlet_state')
1119- driver.power_on(system_id)
1120- self.assertThat(_set_outlet_state_mock, MockCalledOnceWith('ON'))
1121+ driver.power_on(system_id, context)
1122+ self.assertThat(
1123+ _set_outlet_state_mock, MockCalledOnceWith('ON', **context))
1124
1125 def test_power_off(self):
1126 driver = dli_module.DLIPowerDriver()
1127 system_id = factory.make_name('system_id')
1128+ context = {'context': factory.make_name('context')}
1129 _set_outlet_state_mock = self.patch(driver, '_set_outlet_state')
1130- driver.power_off(system_id)
1131- self.assertThat(_set_outlet_state_mock, MockCalledOnceWith('OFF'))
1132+ driver.power_off(system_id, context)
1133+ self.assertThat(
1134+ _set_outlet_state_mock, MockCalledOnceWith('OFF', **context))
1135
1136 def test_power_query(self):
1137 driver = dli_module.DLIPowerDriver()
1138 system_id = factory.make_name('system_id')
1139+ context = {'context': factory.make_name('context')}
1140 _query_outlet_state_mock = self.patch(driver, '_query_outlet_state')
1141- driver.power_query(system_id)
1142- self.assertThat(_query_outlet_state_mock, MockCalledOnceWith())
1143+ driver.power_query(system_id, context)
1144+ self.assertThat(
1145+ _query_outlet_state_mock, MockCalledOnceWith(**context))
1146
1147=== modified file 'src/provisioningserver/drivers/power/tests/test_ether_wake.py'
1148--- src/provisioningserver/drivers/power/tests/test_ether_wake.py 2015-10-01 23:30:50 +0000
1149+++ src/provisioningserver/drivers/power/tests/test_ether_wake.py 2015-11-17 02:16:14 +0000
1150@@ -38,14 +38,14 @@
1151 def test_power_on(self):
1152 driver = ether_wake_module.EtherWakePowerDriver()
1153 self.assertRaises(
1154- NotImplementedError, driver.power_on, "fake_id")
1155+ NotImplementedError, driver.power_on, "fake_id", {})
1156
1157 def test_power_off(self):
1158 driver = ether_wake_module.EtherWakePowerDriver()
1159 self.assertRaises(
1160- NotImplementedError, driver.power_off, "fake_id")
1161+ NotImplementedError, driver.power_off, "fake_id", {})
1162
1163 def test_power_query(self):
1164 driver = ether_wake_module.EtherWakePowerDriver()
1165 self.assertRaises(
1166- NotImplementedError, driver.power_query, "fake_id")
1167+ NotImplementedError, driver.power_query, "fake_id", {})
1168
1169=== modified file 'src/provisioningserver/drivers/power/tests/test_fence_cdu.py'
1170--- src/provisioningserver/drivers/power/tests/test_fence_cdu.py 2015-10-01 23:30:50 +0000
1171+++ src/provisioningserver/drivers/power/tests/test_fence_cdu.py 2015-11-17 02:16:14 +0000
1172@@ -38,14 +38,14 @@
1173 def test_power_on(self):
1174 driver = fence_cdu_module.FenceCDUPowerDriver()
1175 self.assertRaises(
1176- NotImplementedError, driver.power_on, "fake_id")
1177+ NotImplementedError, driver.power_on, "fake_id", {})
1178
1179 def test_power_off(self):
1180 driver = fence_cdu_module.FenceCDUPowerDriver()
1181 self.assertRaises(
1182- NotImplementedError, driver.power_off, "fake_id")
1183+ NotImplementedError, driver.power_off, "fake_id", {})
1184
1185 def test_power_query(self):
1186 driver = fence_cdu_module.FenceCDUPowerDriver()
1187 self.assertRaises(
1188- NotImplementedError, driver.power_query, "fake_id")
1189+ NotImplementedError, driver.power_query, "fake_id", {})
1190
1191=== modified file 'src/provisioningserver/drivers/power/tests/test_hmc.py'
1192--- src/provisioningserver/drivers/power/tests/test_hmc.py 2015-10-01 22:48:50 +0000
1193+++ src/provisioningserver/drivers/power/tests/test_hmc.py 2015-11-17 02:16:14 +0000
1194@@ -49,7 +49,7 @@
1195 password = factory.make_name('power_pass')
1196 server_name = factory.make_name('server_name')
1197 lpar = factory.make_name('lpar')
1198- params = {
1199+ context = {
1200 'system_id': system_id,
1201 'power_address': ip,
1202 'power_user': username,
1203@@ -57,47 +57,47 @@
1204 'server_name': server_name,
1205 'lpar': lpar,
1206 }
1207- return system_id, ip, username, password, server_name, lpar, params
1208+ return system_id, ip, username, password, server_name, lpar, context
1209
1210 def test_extract_hmc_parameters_extracts_parameters(self):
1211- system_id, ip, username, password, server_name, lpar, params = (
1212+ system_id, ip, username, password, server_name, lpar, context = (
1213 self.make_parameters())
1214 self.assertItemsEqual(
1215 (ip, username, password, server_name, lpar),
1216- extract_hmc_parameters(params))
1217+ extract_hmc_parameters(context))
1218
1219 def test_power_on_calls_power_control_hmc(self):
1220- system_id, ip, username, password, server_name, lpar, params = (
1221+ system_id, ip, username, password, server_name, lpar, context = (
1222 self.make_parameters())
1223 hmc_power_driver = HMCPowerDriver()
1224 power_control_hmc = self.patch(
1225 hmc_module, 'power_control_hmc')
1226- hmc_power_driver.power_on(**params)
1227+ hmc_power_driver.power_on(system_id, context)
1228
1229 self.assertThat(
1230 power_control_hmc, MockCalledOnceWith(
1231 ip, username, password, server_name, lpar, power_change='on'))
1232
1233 def test_power_off_calls_power_control_hmc(self):
1234- system_id, ip, username, password, server_name, lpar, params = (
1235+ system_id, ip, username, password, server_name, lpar, context = (
1236 self.make_parameters())
1237 hmc_power_driver = HMCPowerDriver()
1238 power_control_hmc = self.patch(
1239 hmc_module, 'power_control_hmc')
1240- hmc_power_driver.power_off(**params)
1241+ hmc_power_driver.power_off(system_id, context)
1242
1243 self.assertThat(
1244 power_control_hmc, MockCalledOnceWith(
1245 ip, username, password, server_name, lpar, power_change='off'))
1246
1247 def test_power_query_calls_power_state_hmc(self):
1248- system_id, ip, username, password, server_name, lpar, params = (
1249+ system_id, ip, username, password, server_name, lpar, context = (
1250 self.make_parameters())
1251 hmc_power_driver = HMCPowerDriver()
1252 power_state_hmc = self.patch(
1253 hmc_module, 'power_state_hmc')
1254 power_state_hmc.return_value = 'off'
1255- expected_result = hmc_power_driver.power_query(**params)
1256+ expected_result = hmc_power_driver.power_query(system_id, context)
1257
1258 self.expectThat(
1259 power_state_hmc, MockCalledOnceWith(
1260
1261=== modified file 'src/provisioningserver/drivers/power/tests/test_ipmi.py'
1262--- src/provisioningserver/drivers/power/tests/test_ipmi.py 2015-10-14 18:10:57 +0000
1263+++ src/provisioningserver/drivers/power/tests/test_ipmi.py 2015-11-17 02:16:14 +0000
1264@@ -55,7 +55,7 @@
1265 power_off_mode = factory.make_name('power_off_mode')
1266 ipmipower = factory.make_name('ipmipower')
1267 ipmi_chassis_config = factory.make_name('ipmi_chassis_config')
1268- params = {
1269+ context = {
1270 'power_address': power_address,
1271 'power_user': power_user,
1272 'power_pass': power_pass,
1273@@ -67,7 +67,7 @@
1274
1275 return (
1276 power_address, power_user, power_pass, power_driver,
1277- power_off_mode, ipmipower, ipmi_chassis_config, params
1278+ power_off_mode, ipmipower, ipmi_chassis_config, context
1279 )
1280
1281
1282@@ -109,7 +109,7 @@
1283
1284 def test__finds_power_address_from_mac_address(self):
1285 (power_address, power_user, power_pass, power_driver, power_off_mode,
1286- ipmipower, ipmi_chassis_config, params) = make_parameters()
1287+ ipmipower, ipmi_chassis_config, context) = make_parameters()
1288 driver = IPMIPowerDriver()
1289 ip_address = factory.make_ipv4_address()
1290 find_ip_via_arp = self.patch(ipmi_module, 'find_ip_via_arp')
1291@@ -117,12 +117,12 @@
1292 power_change = random.choice(("on", "off"))
1293 env = get_c_environment()
1294
1295- params['mac_address'] = factory.make_mac_address()
1296- params['power_address'] = random.choice((None, "", " "))
1297+ context['mac_address'] = factory.make_mac_address()
1298+ context['power_address'] = random.choice((None, "", " "))
1299
1300 self.patch_autospec(driver, "_issue_ipmi_chassis_config_command")
1301 self.patch_autospec(driver, "_issue_ipmi_power_command")
1302- driver._issue_ipmi_command(power_change, **params)
1303+ driver._issue_ipmi_command(power_change, **context)
1304
1305 # The IP address is passed to _issue_ipmi_chassis_config_command.
1306 self.assertThat(
1307@@ -160,7 +160,7 @@
1308
1309 def test__issue_ipmi_command_issues_power_on(self):
1310 (power_address, power_user, power_pass, power_driver, power_off_mode,
1311- ipmipower, ipmi_chassis_config, params) = make_parameters()
1312+ ipmipower, ipmi_chassis_config, context) = make_parameters()
1313 ipmi_chassis_config_command = make_ipmi_chassis_config_command(
1314 ipmi_chassis_config, power_address, power_pass, power_driver,
1315 power_user, ANY)
1316@@ -176,7 +176,7 @@
1317 call_and_check_mock = self.patch(ipmi_module, 'call_and_check')
1318 call_and_check_mock.return_value = 'on'
1319
1320- result = ipmi_power_driver._issue_ipmi_command('on', **params)
1321+ result = ipmi_power_driver._issue_ipmi_command('on', **context)
1322
1323 self.expectThat(
1324 popen_mock, MockCalledOnceWith(
1325@@ -189,7 +189,7 @@
1326
1327 def test__issue_ipmi_command_issues_power_off(self):
1328 (power_address, power_user, power_pass, power_driver, power_off_mode,
1329- ipmipower, ipmi_chassis_config, params) = make_parameters()
1330+ ipmipower, ipmi_chassis_config, context) = make_parameters()
1331 ipmi_chassis_config_command = make_ipmi_chassis_config_command(
1332 ipmi_chassis_config, power_address, power_pass, power_driver,
1333 power_user, ANY)
1334@@ -205,7 +205,7 @@
1335 call_and_check_mock = self.patch(ipmi_module, 'call_and_check')
1336 call_and_check_mock.return_value = 'off'
1337
1338- result = ipmi_power_driver._issue_ipmi_command('off', **params)
1339+ result = ipmi_power_driver._issue_ipmi_command('off', **context)
1340
1341 self.expectThat(
1342 popen_mock, MockCalledOnceWith(
1343@@ -218,8 +218,8 @@
1344
1345 def test__issue_ipmi_command_issues_power_off_soft_mode(self):
1346 (power_address, power_user, power_pass, power_driver, power_off_mode,
1347- ipmipower, ipmi_chassis_config, params) = make_parameters()
1348- params['power_off_mode'] = 'soft'
1349+ ipmipower, ipmi_chassis_config, context) = make_parameters()
1350+ context['power_off_mode'] = 'soft'
1351 ipmi_chassis_config_command = make_ipmi_chassis_config_command(
1352 ipmi_chassis_config, power_address, power_pass, power_driver,
1353 power_user, ANY)
1354@@ -235,7 +235,7 @@
1355 call_and_check_mock = self.patch(ipmi_module, 'call_and_check')
1356 call_and_check_mock.return_value = 'off'
1357
1358- result = ipmi_power_driver._issue_ipmi_command('off', **params)
1359+ result = ipmi_power_driver._issue_ipmi_command('off', **context)
1360
1361 self.expectThat(
1362 popen_mock, MockCalledOnceWith(
1363@@ -248,7 +248,7 @@
1364
1365 def test__issue_ipmi_command_issues_power_query(self):
1366 (power_address, power_user, power_pass, power_driver, power_off_mode,
1367- ipmipower, ipmi_chassis_config, params) = make_parameters()
1368+ ipmipower, ipmi_chassis_config, context) = make_parameters()
1369 ipmipower_command = make_ipmipower_command(
1370 ipmipower, power_address, power_pass, power_driver, power_user)
1371 ipmipower_command += ('--stat', )
1372@@ -261,7 +261,7 @@
1373 call_and_check_mock = self.patch(ipmi_module, 'call_and_check')
1374 call_and_check_mock.return_value = 'other'
1375
1376- result = ipmi_power_driver._issue_ipmi_command('query', **params)
1377+ result = ipmi_power_driver._issue_ipmi_command('query', **context)
1378
1379 self.expectThat(popen_mock, MockNotCalled())
1380 self.expectThat(
1381@@ -270,7 +270,7 @@
1382 self.expectThat(result, Equals('other'))
1383
1384 def test__issue_ipmi_command_issues_raises_power_auth_error(self):
1385- _, _, _, _, _, _, _, params = make_parameters()
1386+ _, _, _, _, _, _, _, context = make_parameters()
1387 ipmi_power_driver = IPMIPowerDriver()
1388 popen_mock = self.patch(ipmi_module, 'Popen')
1389 process = popen_mock.return_value
1390@@ -279,10 +279,10 @@
1391
1392 self.assertRaises(
1393 PowerAuthError, ipmi_power_driver._issue_ipmi_command,
1394- 'on', **params)
1395+ 'on', **context)
1396
1397 def test__issue_ipmi_command_issues_raises_power_fatal_error(self):
1398- _, _, _, _, _, _, _, params = make_parameters()
1399+ _, _, _, _, _, _, _, context = make_parameters()
1400 ipmi_power_driver = IPMIPowerDriver()
1401 popen_mock = self.patch(ipmi_module, 'Popen')
1402 process = popen_mock.return_value
1403@@ -291,10 +291,10 @@
1404
1405 self.assertRaises(
1406 PowerFatalError, ipmi_power_driver._issue_ipmi_command,
1407- 'on', **params)
1408+ 'on', **context)
1409
1410 def test__issue_ipmi_command_issues_catches_external_process_error(self):
1411- _, _, _, _, _, _, _, params = make_parameters()
1412+ _, _, _, _, _, _, _, context = make_parameters()
1413 ipmi_power_driver = IPMIPowerDriver()
1414 popen_mock = self.patch(ipmi_module, 'Popen')
1415 process = popen_mock.return_value
1416@@ -306,37 +306,37 @@
1417
1418 self.assertRaises(
1419 PowerFatalError, ipmi_power_driver._issue_ipmi_command,
1420- 'on', **params)
1421+ 'on', **context)
1422
1423 def test_power_on_calls__issue_ipmi_command(self):
1424- _, _, _, _, _, _, _, params = make_parameters()
1425+ _, _, _, _, _, _, _, context = make_parameters()
1426 ipmi_power_driver = IPMIPowerDriver()
1427 _issue_ipmi_command_mock = self.patch(
1428 ipmi_power_driver, '_issue_ipmi_command')
1429 system_id = factory.make_name('system_id')
1430- ipmi_power_driver.power_on(system_id, **params)
1431+ ipmi_power_driver.power_on(system_id, context)
1432
1433 self.assertThat(
1434- _issue_ipmi_command_mock, MockCalledOnceWith('on', **params))
1435+ _issue_ipmi_command_mock, MockCalledOnceWith('on', **context))
1436
1437 def test_power_off_calls__issue_ipmi_command(self):
1438- _, _, _, _, _, _, _, params = make_parameters()
1439+ _, _, _, _, _, _, _, context = make_parameters()
1440 ipmi_power_driver = IPMIPowerDriver()
1441 _issue_ipmi_command_mock = self.patch(
1442 ipmi_power_driver, '_issue_ipmi_command')
1443 system_id = factory.make_name('system_id')
1444- ipmi_power_driver.power_off(system_id, **params)
1445+ ipmi_power_driver.power_off(system_id, context)
1446
1447 self.assertThat(
1448- _issue_ipmi_command_mock, MockCalledOnceWith('off', **params))
1449+ _issue_ipmi_command_mock, MockCalledOnceWith('off', **context))
1450
1451 def test_power_query_calls__issue_ipmi_command(self):
1452- _, _, _, _, _, _, _, params = make_parameters()
1453+ _, _, _, _, _, _, _, context = make_parameters()
1454 ipmi_power_driver = IPMIPowerDriver()
1455 _issue_ipmi_command_mock = self.patch(
1456 ipmi_power_driver, '_issue_ipmi_command')
1457 system_id = factory.make_name('system_id')
1458- ipmi_power_driver.power_query(system_id, **params)
1459+ ipmi_power_driver.power_query(system_id, context)
1460
1461 self.assertThat(
1462- _issue_ipmi_command_mock, MockCalledOnceWith('query', **params))
1463+ _issue_ipmi_command_mock, MockCalledOnceWith('query', **context))
1464
1465=== modified file 'src/provisioningserver/drivers/power/tests/test_moonshot.py'
1466--- src/provisioningserver/drivers/power/tests/test_moonshot.py 2015-10-01 22:48:50 +0000
1467+++ src/provisioningserver/drivers/power/tests/test_moonshot.py 2015-11-17 02:16:14 +0000
1468@@ -66,51 +66,51 @@
1469 self.assertItemsEqual([], missing)
1470
1471 def test__issue_ipmitool_command_issues_power_on(self):
1472- params = make_parameters()
1473+ context = make_parameters()
1474 power_change = 'on'
1475- ipmitool_command = make_ipmitool_command(power_change, **params)
1476+ ipmitool_command = make_ipmitool_command(power_change, **context)
1477 moonshot_driver = MoonshotIPMIPowerDriver()
1478 call_and_check_mock = self.patch(moonshot_module, 'call_and_check')
1479 call_and_check_mock.return_value = power_change
1480
1481 result = moonshot_driver._issue_ipmitool_command(
1482- power_change, **params)
1483+ power_change, **context)
1484
1485 self.expectThat(
1486 call_and_check_mock, MockCalledOnceWith(ipmitool_command))
1487 self.expectThat(result, Equals(power_change))
1488
1489 def test__issue_ipmitool_command_issues_power_off(self):
1490- params = make_parameters()
1491+ context = make_parameters()
1492 power_change = 'off'
1493- ipmitool_command = make_ipmitool_command(power_change, **params)
1494+ ipmitool_command = make_ipmitool_command(power_change, **context)
1495 moonshot_driver = MoonshotIPMIPowerDriver()
1496 call_and_check_mock = self.patch(moonshot_module, 'call_and_check')
1497 call_and_check_mock.return_value = power_change
1498
1499 result = moonshot_driver._issue_ipmitool_command(
1500- power_change, **params)
1501+ power_change, **context)
1502
1503 self.expectThat(
1504 call_and_check_mock, MockCalledOnceWith(ipmitool_command))
1505 self.expectThat(result, Equals(power_change))
1506
1507 def test__issue_ipmitool_command_raises_power_action_error(self):
1508- params = make_parameters()
1509+ context = make_parameters()
1510 power_change = 'other'
1511- ipmitool_command = make_ipmitool_command(power_change, **params)
1512+ ipmitool_command = make_ipmitool_command(power_change, **context)
1513 moonshot_driver = MoonshotIPMIPowerDriver()
1514 call_and_check_mock = self.patch(moonshot_module, 'call_and_check')
1515 call_and_check_mock.return_value = power_change
1516
1517 self.assertRaises(
1518 PowerActionError, moonshot_driver._issue_ipmitool_command,
1519- power_change, **params)
1520+ power_change, **context)
1521 self.expectThat(
1522 call_and_check_mock, MockCalledOnceWith(ipmitool_command))
1523
1524 def test__issue_ipmitool_raises_power_fatal_error(self):
1525- params = make_parameters()
1526+ context = make_parameters()
1527 moonshot_driver = MoonshotIPMIPowerDriver()
1528 call_and_check_mock = self.patch(moonshot_module, 'call_and_check')
1529 call_and_check_mock.side_effect = (
1530@@ -118,38 +118,38 @@
1531
1532 self.assertRaises(
1533 PowerFatalError, moonshot_driver._issue_ipmitool_command,
1534- 'status', **params)
1535+ 'status', **context)
1536
1537 def test_power_on_calls__issue_ipmitool_command(self):
1538- params = make_parameters()
1539+ context = make_parameters()
1540 moonshot_driver = MoonshotIPMIPowerDriver()
1541 _issue_ipmitool_command_mock = self.patch(
1542 moonshot_driver, '_issue_ipmitool_command')
1543 system_id = factory.make_name('system_id')
1544- moonshot_driver.power_on(system_id, **params)
1545+ moonshot_driver.power_on(system_id, context)
1546
1547 self.assertThat(
1548- _issue_ipmitool_command_mock, MockCalledOnceWith('on', **params))
1549+ _issue_ipmitool_command_mock, MockCalledOnceWith('on', **context))
1550
1551 def test_power_off_calls__issue_ipmitool_command(self):
1552- params = make_parameters()
1553+ context = make_parameters()
1554 moonshot_driver = MoonshotIPMIPowerDriver()
1555 _issue_ipmitool_command_mock = self.patch(
1556 moonshot_driver, '_issue_ipmitool_command')
1557 system_id = factory.make_name('system_id')
1558- moonshot_driver.power_off(system_id, **params)
1559+ moonshot_driver.power_off(system_id, context)
1560
1561 self.assertThat(
1562- _issue_ipmitool_command_mock, MockCalledOnceWith('off', **params))
1563+ _issue_ipmitool_command_mock, MockCalledOnceWith('off', **context))
1564
1565 def test_power_query_calls__issue_ipmitool_command(self):
1566- params = make_parameters()
1567+ context = make_parameters()
1568 moonshot_driver = MoonshotIPMIPowerDriver()
1569 _issue_ipmitool_command_mock = self.patch(
1570 moonshot_driver, '_issue_ipmitool_command')
1571 system_id = factory.make_name('system_id')
1572- moonshot_driver.power_query(system_id, **params)
1573+ moonshot_driver.power_query(system_id, context)
1574
1575 self.assertThat(
1576 _issue_ipmitool_command_mock, MockCalledOnceWith(
1577- 'status', **params))
1578+ 'status', **context))
1579
1580=== modified file 'src/provisioningserver/drivers/power/tests/test_mscm.py'
1581--- src/provisioningserver/drivers/power/tests/test_mscm.py 2015-10-01 22:48:50 +0000
1582+++ src/provisioningserver/drivers/power/tests/test_mscm.py 2015-11-17 02:16:14 +0000
1583@@ -40,55 +40,55 @@
1584 username = factory.make_name('power_user')
1585 password = factory.make_name('power_pass')
1586 node_id = make_node_id()
1587- params = {
1588+ context = {
1589 'system_id': system_id,
1590 'power_address': host,
1591 'power_user': username,
1592 'power_pass': password,
1593 'node_id': node_id,
1594 }
1595- return system_id, host, username, password, node_id, params
1596+ return system_id, host, username, password, node_id, context
1597
1598 def test_extract_mscm_parameters_extracts_parameters(self):
1599- system_id, host, username, password, node_id, params = (
1600+ system_id, host, username, password, node_id, context = (
1601 self.make_parameters())
1602
1603 self.assertItemsEqual(
1604 (host, username, password, node_id),
1605- extract_mscm_parameters(params))
1606+ extract_mscm_parameters(context))
1607
1608 def test_power_on_calls_power_control_mscm(self):
1609- system_id, host, username, password, node_id, params = (
1610+ system_id, host, username, password, node_id, context = (
1611 self.make_parameters())
1612 mscm_power_driver = MSCMPowerDriver()
1613 power_control_mscm = self.patch(
1614 mscm_module, 'power_control_mscm')
1615- mscm_power_driver.power_on(**params)
1616+ mscm_power_driver.power_on(system_id, context)
1617
1618 self.assertThat(
1619 power_control_mscm, MockCalledOnceWith(
1620 host, username, password, node_id, power_change='on'))
1621
1622 def test_power_off_calls_power_control_mscm(self):
1623- system_id, host, username, password, node_id, params = (
1624+ system_id, host, username, password, node_id, context = (
1625 self.make_parameters())
1626 mscm_power_driver = MSCMPowerDriver()
1627 power_control_mscm = self.patch(
1628 mscm_module, 'power_control_mscm')
1629- mscm_power_driver.power_off(**params)
1630+ mscm_power_driver.power_off(system_id, context)
1631
1632 self.assertThat(
1633 power_control_mscm, MockCalledOnceWith(
1634 host, username, password, node_id, power_change='off'))
1635
1636 def test_power_query_calls_power_state_mscm(self):
1637- system_id, host, username, password, node_id, params = (
1638+ system_id, host, username, password, node_id, context = (
1639 self.make_parameters())
1640 mscm_power_driver = MSCMPowerDriver()
1641 power_state_mscm = self.patch(
1642 mscm_module, 'power_state_mscm')
1643 power_state_mscm.return_value = 'off'
1644- expected_result = mscm_power_driver.power_query(**params)
1645+ expected_result = mscm_power_driver.power_query(system_id, context)
1646
1647 self.expectThat(
1648 power_state_mscm, MockCalledOnceWith(
1649
1650=== modified file 'src/provisioningserver/drivers/power/tests/test_msftocs.py'
1651--- src/provisioningserver/drivers/power/tests/test_msftocs.py 2015-10-01 22:48:50 +0000
1652+++ src/provisioningserver/drivers/power/tests/test_msftocs.py 2015-11-17 02:16:14 +0000
1653@@ -40,7 +40,7 @@
1654 username = factory.make_name('power_user')
1655 password = factory.make_name('power_pass')
1656 blade_id = factory.make_name('blade_id')
1657- params = {
1658+ context = {
1659 'system_id': system_id,
1660 'power_address': ip,
1661 'power_port': port,
1662@@ -48,24 +48,24 @@
1663 'power_pass': password,
1664 'blade_id': blade_id,
1665 }
1666- return system_id, ip, port, username, password, blade_id, params
1667+ return system_id, ip, port, username, password, blade_id, context
1668
1669 def test_extract_msftocs_parameters_extracts_parameters(self):
1670- system_id, ip, port, username, password, blade_id, params = (
1671+ system_id, ip, port, username, password, blade_id, context = (
1672 self.make_parameters())
1673
1674 self.assertItemsEqual(
1675 (ip, port, username, password, blade_id),
1676- extract_msftocs_parameters(params))
1677+ extract_msftocs_parameters(context))
1678
1679 def test_power_on_calls_power_control_msftocs(self):
1680 power_change = 'on'
1681- system_id, ip, port, username, password, blade_id, params = (
1682+ system_id, ip, port, username, password, blade_id, context = (
1683 self.make_parameters())
1684 msftocs_power_driver = MicrosoftOCSPowerDriver()
1685 power_control_msftocs = self.patch(
1686 msftocs_module, 'power_control_msftocs')
1687- msftocs_power_driver.power_on(**params)
1688+ msftocs_power_driver.power_on(system_id, context)
1689
1690 self.assertThat(
1691 power_control_msftocs, MockCalledOnceWith(
1692@@ -73,25 +73,25 @@
1693
1694 def test_power_off_calls_power_control_msftocs(self):
1695 power_change = 'off'
1696- system_id, ip, port, username, password, blade_id, params = (
1697+ system_id, ip, port, username, password, blade_id, context = (
1698 self.make_parameters())
1699 msftocs_power_driver = MicrosoftOCSPowerDriver()
1700 power_control_msftocs = self.patch(
1701 msftocs_module, 'power_control_msftocs')
1702- msftocs_power_driver.power_off(**params)
1703+ msftocs_power_driver.power_off(system_id, context)
1704
1705 self.assertThat(
1706 power_control_msftocs, MockCalledOnceWith(
1707 ip, port, username, password, power_change))
1708
1709 def test_power_query_calls_power_state_msftocs(self):
1710- system_id, ip, port, username, password, blade_id, params = (
1711+ system_id, ip, port, username, password, blade_id, context = (
1712 self.make_parameters())
1713 msftocs_power_driver = MicrosoftOCSPowerDriver()
1714 power_state_msftocs = self.patch(
1715 msftocs_module, 'power_state_msftocs')
1716 power_state_msftocs.return_value = 'off'
1717- expected_result = msftocs_power_driver.power_query(**params)
1718+ expected_result = msftocs_power_driver.power_query(system_id, context)
1719
1720 self.expectThat(
1721 power_state_msftocs, MockCalledOnceWith(
1722
1723=== modified file 'src/provisioningserver/drivers/power/tests/test_seamicro.py'
1724--- src/provisioningserver/drivers/power/tests/test_seamicro.py 2015-10-01 22:48:50 +0000
1725+++ src/provisioningserver/drivers/power/tests/test_seamicro.py 2015-11-17 02:16:14 +0000
1726@@ -50,30 +50,30 @@
1727 missing = driver.detect_missing_packages()
1728 self.assertItemsEqual([], missing)
1729
1730- def make_parameters(self):
1731+ def make_context(self):
1732 ip = factory.make_name('power_address')
1733 username = factory.make_name('power_user')
1734 password = factory.make_name('power_pass')
1735 server_id = factory.make_name('system_id')
1736- params = {
1737+ context = {
1738 'power_address': ip,
1739 'power_user': username,
1740 'power_pass': password,
1741 'system_id': server_id,
1742 }
1743- return ip, username, password, server_id, params
1744+ return ip, username, password, server_id, context
1745
1746 def test_extract_seamicro_parameters_extracts_parameters(self):
1747- ip, username, password, server_id, params = self.make_parameters()
1748+ ip, username, password, server_id, context = self.make_context()
1749 power_control = choice(['ipmi', 'restapi', 'restapi2'])
1750- params['power_control'] = power_control
1751+ context['power_control'] = power_control
1752
1753 self.assertItemsEqual(
1754 (ip, username, password, server_id, power_control),
1755- extract_seamicro_parameters(params))
1756+ extract_seamicro_parameters(context))
1757
1758 def test__power_control_seamicro15k_ipmi_calls_call_and_check(self):
1759- ip, username, password, server_id, _ = self.make_parameters()
1760+ ip, username, password, server_id, _ = self.make_context()
1761 power_change = choice(['on', 'off'])
1762 seamicro_power_driver = SeaMicroPowerDriver()
1763 call_and_check_mock = self.patch(seamicro_module, 'call_and_check')
1764@@ -89,7 +89,7 @@
1765 ]))
1766
1767 def test__power_control_seamicro15k_ipmi_raises_PowerFatalError(self):
1768- ip, username, password, server_id, _ = self.make_parameters()
1769+ ip, username, password, server_id, _ = self.make_context()
1770 power_change = choice(['on', 'off'])
1771 seamicro_power_driver = SeaMicroPowerDriver()
1772 call_and_check_mock = self.patch(seamicro_module, 'call_and_check')
1773@@ -102,74 +102,73 @@
1774 ip, username, password, server_id, power_change)
1775
1776 def test__power_calls__power_control_seamicro15k_ipmi(self):
1777- ip, username, password, server_id, params = self.make_parameters()
1778- params['power_control'] = 'ipmi'
1779+ ip, username, password, server_id, context = self.make_context()
1780+ context['power_control'] = 'ipmi'
1781 power_change = choice(['on', 'off'])
1782 seamicro_power_driver = SeaMicroPowerDriver()
1783 _power_control_seamicro15k_ipmi_mock = self.patch(
1784 seamicro_power_driver, '_power_control_seamicro15k_ipmi')
1785- seamicro_power_driver._power(power_change, **params)
1786+ seamicro_power_driver._power(power_change, context)
1787
1788 self.assertThat(
1789 _power_control_seamicro15k_ipmi_mock, MockCalledOnceWith(
1790 ip, username, password, server_id, power_change=power_change))
1791
1792 def test__power_calls_power_control_seamicro15k_v09(self):
1793- ip, username, password, server_id, params = self.make_parameters()
1794- params['power_control'] = 'restapi'
1795+ ip, username, password, server_id, context = self.make_context()
1796+ context['power_control'] = 'restapi'
1797 power_change = choice(['on', 'off'])
1798 seamicro_power_driver = SeaMicroPowerDriver()
1799 power_control_seamicro15k_v09_mock = self.patch(
1800 seamicro_module, 'power_control_seamicro15k_v09')
1801- seamicro_power_driver._power(power_change, **params)
1802+ seamicro_power_driver._power(power_change, context)
1803
1804 self.assertThat(
1805 power_control_seamicro15k_v09_mock, MockCalledOnceWith(
1806 ip, username, password, server_id, power_change=power_change))
1807
1808 def test__power_calls_power_control_seamicro15k_v2(self):
1809- ip, username, password, server_id, params = self.make_parameters()
1810- params['power_control'] = 'restapi2'
1811+ ip, username, password, server_id, context = self.make_context()
1812+ context['power_control'] = 'restapi2'
1813 power_change = choice(['on', 'off'])
1814 seamicro_power_driver = SeaMicroPowerDriver()
1815 power_control_seamicro15k_v2_mock = self.patch(
1816 seamicro_module, 'power_control_seamicro15k_v2')
1817- seamicro_power_driver._power(power_change, **params)
1818+ seamicro_power_driver._power(power_change, context)
1819
1820 self.assertThat(
1821 power_control_seamicro15k_v2_mock, MockCalledOnceWith(
1822 ip, username, password, server_id, power_change=power_change))
1823
1824 def test_power_on_calls_power(self):
1825- _, _, _, _, params = self.make_parameters()
1826- params['power_control'] = factory.make_name('power_control')
1827+ _, _, _, _, context = self.make_context()
1828+ context['power_control'] = factory.make_name('power_control')
1829 seamicro_power_driver = SeaMicroPowerDriver()
1830 power_mock = self.patch(seamicro_power_driver, '_power')
1831- seamicro_power_driver.power_on(**params)
1832- del params['system_id']
1833+ seamicro_power_driver.power_on(context['system_id'], context)
1834
1835 self.assertThat(
1836- power_mock, MockCalledOnceWith('on', **params))
1837+ power_mock, MockCalledOnceWith('on', context))
1838
1839 def test_power_off_calls_power(self):
1840- _, _, _, _, params = self.make_parameters()
1841- params['power_control'] = factory.make_name('power_control')
1842+ _, _, _, _, context = self.make_context()
1843+ context['power_control'] = factory.make_name('power_control')
1844 seamicro_power_driver = SeaMicroPowerDriver()
1845 power_mock = self.patch(seamicro_power_driver, '_power')
1846- seamicro_power_driver.power_off(**params)
1847- del params['system_id']
1848+ seamicro_power_driver.power_off(context['system_id'], context)
1849
1850 self.assertThat(
1851- power_mock, MockCalledOnceWith('off', **params))
1852+ power_mock, MockCalledOnceWith('off', context))
1853
1854 def test_power_query_calls_power_query_seamicro15k_v2(self):
1855- ip, username, password, server_id, params = self.make_parameters()
1856- params['power_control'] = 'restapi2'
1857+ ip, username, password, server_id, context = self.make_context()
1858+ context['power_control'] = 'restapi2'
1859 seamicro_power_driver = SeaMicroPowerDriver()
1860 power_query_seamicro15k_v2_mock = self.patch(
1861 seamicro_module, 'power_query_seamicro15k_v2')
1862 power_query_seamicro15k_v2_mock.return_value = 'on'
1863- power_state = seamicro_power_driver.power_query(**params)
1864+ power_state = seamicro_power_driver.power_query(
1865+ context['system_id'], context)
1866
1867 self.expectThat(
1868 power_query_seamicro15k_v2_mock, MockCalledOnceWith(
1869@@ -177,9 +176,10 @@
1870 self.expectThat(power_state, Equals('on'))
1871
1872 def test_power_query_returns_unknown_if_not_restapi2(self):
1873- ip, username, password, server_id, params = self.make_parameters()
1874- params['power_control'] = factory.make_name('power_control')
1875+ ip, username, password, server_id, context = self.make_context()
1876+ context['power_control'] = factory.make_name('power_control')
1877 seamicro_power_driver = SeaMicroPowerDriver()
1878- power_state = seamicro_power_driver.power_query(**params)
1879+ power_state = seamicro_power_driver.power_query(
1880+ context['system_id'], context)
1881
1882 self.assertThat(power_state, Equals('unknown'))
1883
1884=== modified file 'src/provisioningserver/drivers/power/tests/test_ucsm.py'
1885--- src/provisioningserver/drivers/power/tests/test_ucsm.py 2015-10-01 22:48:50 +0000
1886+++ src/provisioningserver/drivers/power/tests/test_ucsm.py 2015-11-17 02:16:14 +0000
1887@@ -39,55 +39,55 @@
1888 username = factory.make_name('power_user')
1889 password = factory.make_name('power_pass')
1890 uuid = factory.make_UUID()
1891- params = {
1892+ context = {
1893 'system_id': system_id,
1894 'power_address': url,
1895 'power_user': username,
1896 'power_pass': password,
1897 'uuid': uuid,
1898 }
1899- return system_id, url, username, password, uuid, params
1900+ return system_id, url, username, password, uuid, context
1901
1902 def test_extract_ucsm_parameters_extracts_parameters(self):
1903- system_id, url, username, password, uuid, params = (
1904+ system_id, url, username, password, uuid, context = (
1905 self.make_parameters())
1906
1907 self.assertItemsEqual(
1908 (url, username, password, uuid),
1909- extract_ucsm_parameters(params))
1910+ extract_ucsm_parameters(context))
1911
1912 def test_power_on_calls_power_control_ucsm(self):
1913- system_id, url, username, password, uuid, params = (
1914+ system_id, url, username, password, uuid, context = (
1915 self.make_parameters())
1916 ucsm_power_driver = UCSMPowerDriver()
1917 power_control_ucsm = self.patch(
1918 ucsm_module, 'power_control_ucsm')
1919- ucsm_power_driver.power_on(**params)
1920+ ucsm_power_driver.power_on(system_id, context)
1921
1922 self.assertThat(
1923 power_control_ucsm, MockCalledOnceWith(
1924 url, username, password, uuid, maas_power_mode='on'))
1925
1926 def test_power_off_calls_power_control_ucsm(self):
1927- system_id, url, username, password, uuid, params = (
1928+ system_id, url, username, password, uuid, context = (
1929 self.make_parameters())
1930 ucsm_power_driver = UCSMPowerDriver()
1931 power_control_ucsm = self.patch(
1932 ucsm_module, 'power_control_ucsm')
1933- ucsm_power_driver.power_off(**params)
1934+ ucsm_power_driver.power_off(system_id, context)
1935
1936 self.assertThat(
1937 power_control_ucsm, MockCalledOnceWith(
1938 url, username, password, uuid, maas_power_mode='off'))
1939
1940 def test_power_query_calls_power_state_ucsm(self):
1941- system_id, url, username, password, uuid, params = (
1942+ system_id, url, username, password, uuid, context = (
1943 self.make_parameters())
1944 ucsm_power_driver = UCSMPowerDriver()
1945 power_state_ucsm = self.patch(
1946 ucsm_module, 'power_state_ucsm')
1947 power_state_ucsm.return_value = 'off'
1948- expected_result = ucsm_power_driver.power_query(**params)
1949+ expected_result = ucsm_power_driver.power_query(system_id, context)
1950
1951 self.expectThat(
1952 power_state_ucsm, MockCalledOnceWith(
1953
1954=== modified file 'src/provisioningserver/drivers/power/tests/test_virsh.py'
1955--- src/provisioningserver/drivers/power/tests/test_virsh.py 2015-10-01 22:48:50 +0000
1956+++ src/provisioningserver/drivers/power/tests/test_virsh.py 2015-11-17 02:16:14 +0000
1957@@ -47,30 +47,30 @@
1958 poweraddr = factory.make_name('power_address')
1959 machine = factory.make_name('power_id')
1960 password = factory.make_name('power_pass')
1961- params = {
1962+ context = {
1963 'system_id': system_id,
1964 'power_address': poweraddr,
1965 'power_id': machine,
1966 'power_pass': password,
1967 }
1968- return system_id, poweraddr, machine, password, params
1969+ return system_id, poweraddr, machine, password, context
1970
1971 def test_extract_virsh_parameters_extracts_parameters(self):
1972- system_id, poweraddr, machine, password, params = (
1973+ system_id, poweraddr, machine, password, context = (
1974 self.make_parameters())
1975
1976 self.assertItemsEqual(
1977 (poweraddr, machine, password),
1978- extract_virsh_parameters(params))
1979+ extract_virsh_parameters(context))
1980
1981 def test_power_on_calls_power_control_virsh(self):
1982 power_change = 'on'
1983- system_id, poweraddr, machine, password, params = (
1984+ system_id, poweraddr, machine, password, context = (
1985 self.make_parameters())
1986 virsh_power_driver = VirshPowerDriver()
1987 power_control_virsh = self.patch(
1988 virsh_module, 'power_control_virsh')
1989- virsh_power_driver.power_on(**params)
1990+ virsh_power_driver.power_on(system_id, context)
1991
1992 self.assertThat(
1993 power_control_virsh, MockCalledOnceWith(
1994@@ -78,25 +78,25 @@
1995
1996 def test_power_off_calls_power_control_virsh(self):
1997 power_change = 'off'
1998- system_id, poweraddr, machine, password, params = (
1999+ system_id, poweraddr, machine, password, context = (
2000 self.make_parameters())
2001 virsh_power_driver = VirshPowerDriver()
2002 power_control_virsh = self.patch(
2003 virsh_module, 'power_control_virsh')
2004- virsh_power_driver.power_off(**params)
2005+ virsh_power_driver.power_off(system_id, context)
2006
2007 self.assertThat(
2008 power_control_virsh, MockCalledOnceWith(
2009 poweraddr, machine, power_change, password))
2010
2011 def test_power_query_calls_power_state_virsh(self):
2012- system_id, poweraddr, machine, password, params = (
2013+ system_id, poweraddr, machine, password, context = (
2014 self.make_parameters())
2015 virsh_power_driver = VirshPowerDriver()
2016 power_state_virsh = self.patch(
2017 virsh_module, 'power_state_virsh')
2018 power_state_virsh.return_value = 'off'
2019- expected_result = virsh_power_driver.power_query(**params)
2020+ expected_result = virsh_power_driver.power_query(system_id, context)
2021
2022 self.expectThat(
2023 power_state_virsh, MockCalledOnceWith(
2024
2025=== modified file 'src/provisioningserver/drivers/power/tests/test_vmware.py'
2026--- src/provisioningserver/drivers/power/tests/test_vmware.py 2015-10-01 22:48:50 +0000
2027+++ src/provisioningserver/drivers/power/tests/test_vmware.py 2015-11-17 02:16:14 +0000
2028@@ -1,5 +1,5 @@
2029 # Copyright 2015 Canonical Ltd. This software is licensed under the
2030-# GNU Affero General Public License version 3 (see the file LICENSE).
2031+# Gnu Affero General Public License version 3 (see the file LICENSE).
2032
2033 """Tests for `provisioningserver.drivers.power.vmware`."""
2034
2035@@ -50,7 +50,7 @@
2036 vm_name = factory.make_name('power_vm_name')
2037 uuid = factory.make_name('power_uuid')
2038 port = protocol = None
2039- params = {
2040+ context = {
2041 'system_id': system_id,
2042 'power_address': host,
2043 'power_user': username,
2044@@ -61,24 +61,24 @@
2045 'power_protocol': protocol,
2046 }
2047 return (system_id, host, username, password,
2048- vm_name, uuid, port, protocol, params)
2049+ vm_name, uuid, port, protocol, context)
2050
2051 def test_extract_vmware_parameters_extracts_parameters(self):
2052 (system_id, host, username, password,
2053- vm_name, uuid, port, protocol, params) = self.make_parameters()
2054+ vm_name, uuid, port, protocol, context) = self.make_parameters()
2055
2056 self.assertItemsEqual(
2057 (host, username, password, vm_name, uuid, port, protocol),
2058- extract_vmware_parameters(params))
2059+ extract_vmware_parameters(context))
2060
2061 def test_power_on_calls_power_control_vmware(self):
2062 power_change = 'on'
2063 (system_id, host, username, password,
2064- vm_name, uuid, port, protocol, params) = self.make_parameters()
2065+ vm_name, uuid, port, protocol, context) = self.make_parameters()
2066 vmware_power_driver = VMwarePowerDriver()
2067 power_control_vmware = self.patch(
2068 vmware_module, 'power_control_vmware')
2069- vmware_power_driver.power_on(**params)
2070+ vmware_power_driver.power_on(system_id, context)
2071
2072 self.assertThat(
2073 power_control_vmware, MockCalledOnceWith(
2074@@ -88,11 +88,11 @@
2075 def test_power_off_calls_power_control_vmware(self):
2076 power_change = 'off'
2077 (system_id, host, username, password,
2078- vm_name, uuid, port, protocol, params) = self.make_parameters()
2079+ vm_name, uuid, port, protocol, context) = self.make_parameters()
2080 vmware_power_driver = VMwarePowerDriver()
2081 power_control_vmware = self.patch(
2082 vmware_module, 'power_control_vmware')
2083- vmware_power_driver.power_off(**params)
2084+ vmware_power_driver.power_off(system_id, context)
2085
2086 self.assertThat(
2087 power_control_vmware, MockCalledOnceWith(
2088@@ -101,12 +101,12 @@
2089
2090 def test_power_query_calls_power_query_vmware(self):
2091 (system_id, host, username, password,
2092- vm_name, uuid, port, protocol, params) = self.make_parameters()
2093+ vm_name, uuid, port, protocol, context) = self.make_parameters()
2094 vmware_power_driver = VMwarePowerDriver()
2095 power_query_vmware = self.patch(
2096 vmware_module, 'power_query_vmware')
2097 power_query_vmware.return_value = 'off'
2098- expected_result = vmware_power_driver.power_query(**params)
2099+ expected_result = vmware_power_driver.power_query(system_id, context)
2100
2101 self.expectThat(
2102 power_query_vmware, MockCalledOnceWith(
2103
2104=== modified file 'src/provisioningserver/drivers/power/ucsm.py'
2105--- src/provisioningserver/drivers/power/ucsm.py 2015-09-30 07:16:42 +0000
2106+++ src/provisioningserver/drivers/power/ucsm.py 2015-11-17 02:16:14 +0000
2107@@ -21,11 +21,11 @@
2108 from provisioningserver.drivers.power import PowerDriver
2109
2110
2111-def extract_ucsm_parameters(params):
2112- url = params.get('power_address')
2113- username = params.get('power_user')
2114- password = params.get('power_pass')
2115- uuid = params.get('uuid')
2116+def extract_ucsm_parameters(context):
2117+ url = context.get('power_address')
2118+ username = context.get('power_user')
2119+ password = context.get('power_pass')
2120+ uuid = context.get('uuid')
2121 return url, username, password, uuid
2122
2123
2124@@ -39,19 +39,19 @@
2125 # uses urllib2 http client - nothing to look for!
2126 return []
2127
2128- def power_on(self, system_id, **kwargs):
2129+ def power_on(self, system_id, context):
2130 """Power on UCSM node."""
2131- url, username, password, uuid = extract_ucsm_parameters(kwargs)
2132+ url, username, password, uuid = extract_ucsm_parameters(context)
2133 power_control_ucsm(
2134 url, username, password, uuid, maas_power_mode='on')
2135
2136- def power_off(self, system_id, **kwargs):
2137+ def power_off(self, system_id, context):
2138 """Power off UCSM node."""
2139- url, username, password, uuid = extract_ucsm_parameters(kwargs)
2140+ url, username, password, uuid = extract_ucsm_parameters(context)
2141 power_control_ucsm(
2142 url, username, password, uuid, maas_power_mode='off')
2143
2144- def power_query(self, system_id, **kwargs):
2145+ def power_query(self, system_id, context):
2146 """Power query UCSM node."""
2147- url, username, password, uuid = extract_ucsm_parameters(kwargs)
2148+ url, username, password, uuid = extract_ucsm_parameters(context)
2149 return power_state_ucsm(url, username, password, uuid)
2150
2151=== modified file 'src/provisioningserver/drivers/power/virsh.py'
2152--- src/provisioningserver/drivers/power/virsh.py 2015-10-01 22:48:50 +0000
2153+++ src/provisioningserver/drivers/power/virsh.py 2015-11-17 02:16:14 +0000
2154@@ -26,10 +26,10 @@
2155 ["virt-login-shell", "libvirt-bin"]]
2156
2157
2158-def extract_virsh_parameters(params):
2159- poweraddr = params.get('power_address')
2160- machine = params.get('power_id')
2161- password = params.get('power_pass')
2162+def extract_virsh_parameters(context):
2163+ poweraddr = context.get('power_address')
2164+ machine = context.get('power_id')
2165+ password = context.get('power_pass')
2166 return poweraddr, machine, password
2167
2168
2169@@ -46,21 +46,21 @@
2170 missing_packages.add(package)
2171 return list(missing_packages)
2172
2173- def power_on(self, system_id, **kwargs):
2174+ def power_on(self, system_id, context):
2175 """Power on Virsh node."""
2176 power_change = 'on'
2177- poweraddr, machine, password = extract_virsh_parameters(kwargs)
2178+ poweraddr, machine, password = extract_virsh_parameters(context)
2179 power_control_virsh(
2180 poweraddr, machine, power_change, password)
2181
2182- def power_off(self, system_id, **kwargs):
2183+ def power_off(self, system_id, context):
2184 """Power off Virsh node."""
2185 power_change = 'off'
2186- poweraddr, machine, password = extract_virsh_parameters(kwargs)
2187+ poweraddr, machine, password = extract_virsh_parameters(context)
2188 power_control_virsh(
2189 poweraddr, machine, power_change, password)
2190
2191- def power_query(self, system_id, **kwargs):
2192+ def power_query(self, system_id, context):
2193 """Power query Virsh node."""
2194- poweraddr, machine, password = extract_virsh_parameters(kwargs)
2195+ poweraddr, machine, password = extract_virsh_parameters(context)
2196 return power_state_virsh(poweraddr, machine, password)
2197
2198=== modified file 'src/provisioningserver/drivers/power/vmware.py'
2199--- src/provisioningserver/drivers/power/vmware.py 2015-10-01 22:48:50 +0000
2200+++ src/provisioningserver/drivers/power/vmware.py 2015-11-17 02:16:14 +0000
2201@@ -22,14 +22,14 @@
2202 from provisioningserver.drivers.power import PowerDriver
2203
2204
2205-def extract_vmware_parameters(params):
2206- host = params.get('power_address')
2207- username = params.get('power_user')
2208- password = params.get('power_pass')
2209- vm_name = params.get('power_vm_name')
2210- uuid = params.get('power_uuid')
2211- port = params.get('power_port')
2212- protocol = params.get('power_protocol')
2213+def extract_vmware_parameters(context):
2214+ host = context.get('power_address')
2215+ username = context.get('power_user')
2216+ password = context.get('power_pass')
2217+ vm_name = context.get('power_vm_name')
2218+ uuid = context.get('power_uuid')
2219+ port = context.get('power_port')
2220+ protocol = context.get('power_protocol')
2221 return host, username, password, vm_name, uuid, port, protocol
2222
2223
2224@@ -44,27 +44,27 @@
2225 return ["python-pyvmomi"]
2226 return []
2227
2228- def power_on(self, system_id, **kwargs):
2229+ def power_on(self, system_id, context):
2230 """Power on VMware node."""
2231 power_change = 'on'
2232 host, username, password, vm_name, uuid, port, protocol = (
2233- extract_vmware_parameters(kwargs))
2234+ extract_vmware_parameters(context))
2235 power_control_vmware(
2236 host, username, password, vm_name,
2237 uuid, power_change, port, protocol)
2238
2239- def power_off(self, system_id, **kwargs):
2240+ def power_off(self, system_id, context):
2241 """Power off VMware node."""
2242 power_change = 'off'
2243 host, username, password, vm_name, uuid, port, protocol = (
2244- extract_vmware_parameters(kwargs))
2245+ extract_vmware_parameters(context))
2246 power_control_vmware(
2247 host, username, password, vm_name,
2248 uuid, power_change, port, protocol)
2249
2250- def power_query(self, system_id, **kwargs):
2251+ def power_query(self, system_id, context):
2252 """Power query VMware node."""
2253 host, username, password, vm_name, uuid, port, protocol = (
2254- extract_vmware_parameters(kwargs))
2255+ extract_vmware_parameters(context))
2256 return power_query_vmware(
2257 host, username, password, vm_name, uuid, port, protocol)
2258
2259=== modified file 'src/provisioningserver/power/change.py'
2260--- src/provisioningserver/power/change.py 2015-10-20 17:59:57 +0000
2261+++ src/provisioningserver/power/change.py 2015-11-17 02:16:14 +0000
2262@@ -116,9 +116,9 @@
2263 power_driver = PowerDriverRegistry.get_item(power_type)
2264
2265 if power_change == 'on':
2266- d = power_driver.on(**context)
2267+ d = power_driver.on(system_id, context)
2268 elif power_change == 'off':
2269- d = power_driver.off(**context)
2270+ d = power_driver.off(system_id, context)
2271
2272 def power_change_failed(failure):
2273 message = "Node could not be powered %s: %s" % (
2274
2275=== modified file 'src/provisioningserver/power/query.py'
2276--- src/provisioningserver/power/query.py 2015-10-20 17:59:57 +0000
2277+++ src/provisioningserver/power/query.py 2015-11-17 02:16:14 +0000
2278@@ -82,7 +82,7 @@
2279 """
2280 # Get power driver for given power type
2281 power_driver = PowerDriverRegistry[power_type]
2282- return power_driver.query(**context)
2283+ return power_driver.query(system_id, context)
2284
2285
2286 @asynchronous