105
104
urllib.urlretrieve(auth_location, local_path)
108
def get_juju_bin_artifact(package_namer, version, build_data):
109
file_name = package_namer.get_release_package(version)
110
return get_filename_artifact(file_name, build_data)
113
def get_filename_artifact(file_name, build_data):
114
by_filename = dict((a['fileName'], a) for a in build_data['artifacts'])
115
bin_artifact = by_filename[file_name]
116
return make_artifact(build_data, bin_artifact)
119
def retrieve_buildvars(credentials, build_number):
120
build_data = get_build_data(JENKINS_URL, credentials, BUILD_REVISION,
122
artifact = get_filename_artifact('buildvars.json', build_data)
123
return get_jenkins_json(credentials, artifact.location)
126
def get_buildvars(credentials, build_number, summary=False, env='unknown',
127
revision_build=False, version=False, branch=False,
128
short_branch=False, revision=False, short_revision=False):
129
"""Return requested information as text.
131
The 'summary' kwarg returns intelligible information about the build.
132
'env' is included in the summary text. Otherwise, a space-separated
133
string composed of the each True kwarg is returned in this order:
134
revision_build version short_branch short_revision branch revision
135
Note that revision_build is always the same as build number;
136
build_number can be an alias like 'lastBuild' or 'lastSuccessfulBuild'.
138
buildvars = retrieve_buildvars(credentials, build_number)
139
buildvars['short_revision_id'] = buildvars['revision_id'][0:7]
140
buildvars['short_branch'] = buildvars['branch'].split(':')[1]
141
buildvars['env'] = env
143
'Testing {branch} {short_revision_id} on {env} for {revision_build}')
145
text = template.format(**buildvars)
149
data.append(buildvars['revision_build'])
151
data.append(buildvars['version'])
153
data.append(buildvars['short_branch'])
155
data.append(buildvars['short_revision_id'])
157
data.append(buildvars['branch'])
159
data.append(buildvars['revision_id'])
160
text = ' '.join(data)
164
def get_release_package_filename(credentials, build_data):
165
revision_build = get_revision_build(build_data)
166
version = retrieve_buildvars(credentials, revision_build)['version']
167
return PackageNamer.factory().get_release_package(version)
170
107
def acquire_binary(package_path, workspace):
171
108
bin_dir = os.path.join(workspace, 'extracted-bin')
172
109
extract_deb(package_path, bin_dir)