~rvb/maas/transaction-1.7-bug-1409852

« back to all changes in this revision

Viewing changes to src/provisioningserver/tasks.py

merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 
14
14
__metaclass__ = type
15
15
__all__ = [
16
 
    'power_off',
17
 
    'power_on',
18
16
    'refresh_secrets',
19
17
    'report_boot_images',
20
18
    'rndc_command',
27
25
    'write_full_dns_config',
28
26
    ]
29
27
 
30
 
from base64 import b64decode
31
28
from functools import wraps
32
29
import logging
33
30
from subprocess import CalledProcessError
39
36
    tags,
40
37
    )
41
38
from provisioningserver.auth import (
42
 
    get_maas_user_gpghome,
43
39
    record_api_credentials,
44
40
    record_nodegroup_uuid,
45
41
    )
48
44
    restart_dhcpv4,
49
45
    stop_dhcpv4,
50
46
    )
 
47
from provisioningserver.dhcp.omshell import Omshell
51
48
from provisioningserver.dns.config import (
52
49
    DNSConfig,
53
50
    execute_rndc_command,
60
57
    )
61
58
from provisioningserver.drivers.hardware.ucsm import probe_and_enlist_ucsm
62
59
from provisioningserver.drivers.hardware.virsh import probe_virsh_and_enlist
63
 
from provisioningserver.import_images import boot_resources
64
60
from provisioningserver.logger import get_maas_logger
65
 
from provisioningserver.omshell import Omshell
66
 
from provisioningserver.power.poweraction import PowerAction
67
 
from provisioningserver.utils import warn_deprecated
68
 
from provisioningserver.utils.env import environment_variables
69
61
from provisioningserver.utils.fs import sudo_write_file
70
62
from provisioningserver.utils.network import find_ip_via_arp
71
63
 
166
158
 
167
159
 
168
160
# =====================================================================
169
 
# Power-related tasks
170
 
# =====================================================================
171
 
 
172
 
 
173
 
@task
174
 
@log_task_events()
175
 
@log_exception_text
176
 
def power_on(power_type, **kwargs):
177
 
    """Turn a node on.
178
 
 
179
 
    :deprecated: Use the RPC command
180
 
        :py:class:`~provisioningserver.rpc.cluster.PowerOn` instead.
181
 
    """
182
 
    warn_deprecated("use the PowerOn RPC command instead.")
183
 
    pa = PowerAction(power_type)
184
 
    pa.execute(power_change='on', **kwargs)
185
 
 
186
 
 
187
 
@task
188
 
@log_task_events()
189
 
@log_exception_text
190
 
def power_off(power_type, **kwargs):
191
 
    """Turn a node off.
192
 
 
193
 
    :deprecated: Use the RPC command
194
 
        :py:class:`~provisioningserver.rpc.cluster.PowerOff` instead.
195
 
    """
196
 
    warn_deprecated("use the PowerOff RPC command instead.")
197
 
    pa = PowerAction(power_type)
198
 
    pa.execute(power_change='off', **kwargs)
199
 
 
200
 
 
201
 
# =====================================================================
202
161
# DNS-related tasks
203
162
# =====================================================================
204
163
 
428
387
 
429
388
 
430
389
# =====================================================================
431
 
# Image importing-related tasks
432
 
# =====================================================================
433
 
 
434
 
@task
435
 
@log_task_events()
436
 
@log_exception_text
437
 
def import_boot_images(sources, http_proxy=None, callback=None):
438
 
    for source in sources:
439
 
        # Decode any b64 keyring data to bytes.
440
 
        data = source.get("keyring_data")
441
 
        if data is not None:
442
 
            source["keyring_data"] = b64decode(data)
443
 
    variables = {
444
 
        'GNUPGHOME': get_maas_user_gpghome(),
445
 
        }
446
 
    if http_proxy is not None:
447
 
        variables['http_proxy'] = http_proxy
448
 
        variables['https_proxy'] = http_proxy
449
 
    with environment_variables(variables):
450
 
        boot_resources.import_images(sources)
451
 
    if callback is not None:
452
 
        callback.delay()
453
 
 
454
 
 
455
 
# =====================================================================
456
390
# Custom hardware tasks
457
391
# =====================================================================
458
392