harbor/tests/nightly-test/utils/buildweb_utils.py

64 lines
1.9 KiB
Python

import os
import logging
from buildwebapi import api as buildapi
LOG = logging.getLogger(__name__)
def get_build_type(build_id):
build = get_build(build_id)
LOG.debug('%s is %s build', build_id, build.buildtype)
return build.buildtype
def get_build_id_and_system(build_id):
build_system = 'ob'
if '-' in str(build_id):
temp = build_id.split('-')
build_id = temp[1]
build_system = temp[0]
return build_id, build_system
def get_ova_url(build_id):
return get_url(build_id, '_OVF10.ova')
def get_url(build_id, deliverable_name):
build = get_build(build_id)
deliverables = buildapi.ListResource.by_url(build._deliverables_url)
deliverable = [d for d in deliverables
if d.matches(path=deliverable_name)][0]
LOG.debug('Download URL of %s is %s', build_id, deliverable._download_url)
return deliverable._download_url
def get_product(build_id):
build = get_build(build_id)
LOG.debug('Product of %s is %s.', build_id, build.product)
return build.product
def get_latest_build_url(branch, build_type, product='harbor_build'):
build_id = get_latest_build_id(branch, build_type, product)
print build_id
return get_ova_url(build_id)
def get_latest_build_id(branch, build_type, product='harbor_build'):
return buildapi.MetricResource.by_name('build',
product=product,
buildstate='succeeded',
buildtype=build_type,
branch=branch).get_max_id()
def get_build(build_id):
build_id, build_system = get_build_id_and_system(build_id)
return buildapi.ItemResource.by_id('build', int(build_id), build_system)
def get_build_version(build_id):
build = get_build(build_id)
LOG.debug('Version of %s is %s.', build_id, build.version)
return build.version