~allenap/maas/retry-integrity-errors

« back to all changes in this revision

Viewing changes to src/provisioningserver/refresh/__init__.py

  • Committer: MAAS Lander
  • Author(s): Lee Trager
  • Date: 2016-06-16 02:19:50 UTC
  • mfrom: (5070.3.20 region_refresh)
  • Revision ID: maas_lander-20160616021950-bw7616txkoxxz4j0
[r=allenap,blake-rouse][bug=1555236,1573626,1588907][author=ltrager] Refresh region hardware and networking information on start

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
import tempfile
10
10
import urllib
11
11
 
12
 
from provisioningserver.config import ClusterConfiguration
13
12
from provisioningserver.logger.log import get_maas_logger
14
13
from provisioningserver.refresh.maas_api_helper import (
15
14
    encode_multipart_data,
16
15
    geturl,
17
16
)
18
17
from provisioningserver.refresh.node_info_scripts import NODE_INFO_SCRIPTS
 
18
from provisioningserver.utils.network import get_all_interfaces_definition
19
19
from provisioningserver.utils.shell import (
20
20
    call_and_check,
21
21
    ExternalProcessError,
52
52
    return os_release
53
53
 
54
54
 
 
55
@synchronous
 
56
def get_sys_info():
 
57
    """Return basic system information in a dictionary."""
 
58
    os_release = get_os_release()
 
59
    if 'ID' in os_release:
 
60
        osystem = os_release['ID']
 
61
    elif 'NAME' in os_release:
 
62
        osystem = os_release['NAME']
 
63
    else:
 
64
        osystem = ''
 
65
    if 'UBUNTU_CODENAME' in os_release:
 
66
        distro_series = os_release['UBUNTU_CODENAME']
 
67
    elif 'VERSION_ID' in os_release:
 
68
        distro_series = os_release['VERSION_ID']
 
69
    else:
 
70
        distro_series = ''
 
71
    return {
 
72
        'hostname': socket.gethostname().split('.')[0],
 
73
        'architecture': get_architecture(),
 
74
        'osystem': osystem,
 
75
        'distro_series': distro_series,
 
76
        'interfaces': get_all_interfaces_definition(),
 
77
    }
 
78
 
 
79
 
55
80
def signal(
56
81
        url, creds, status, message, files={}, script_result=None,
57
82
        extra_headers=None):
91
116
 
92
117
 
93
118
@synchronous
94
 
def refresh(system_id, consumer_key, token_key, token_secret):
 
119
def refresh(system_id, consumer_key, token_key, token_secret, maas_url=None):
95
120
    """Run all builtin commissioning scripts and report results to region."""
96
121
    maaslog.info(
97
122
        "Refreshing rack controller hardware information.")
98
123
 
99
 
    with ClusterConfiguration.open() as config:
100
 
        url = "%s/metadata/status/%s/latest" % (config.maas_url, system_id)
 
124
    url = "%s/metadata/status/%s/latest" % (maas_url, system_id)
101
125
 
102
126
    creds = {
103
127
        'consumer_key': consumer_key,