TTM: Fix release_package to be available to publisher as well
The containers are released as part of the publishing
This commit is contained in:
parent
4db377ff8a
commit
21b36d7dbc
@ -112,3 +112,27 @@ class ToTestManager(ToolBase.ToolBase):
|
||||
|
||||
def get_status(self, status):
|
||||
return self.get_status_dict().get(status, '')
|
||||
|
||||
def release_package(self, project, package, set_release=None, repository=None,
|
||||
target_project=None, target_repository=None):
|
||||
query = {'cmd': 'release'}
|
||||
|
||||
if set_release:
|
||||
query['setrelease'] = set_release
|
||||
|
||||
if repository is not None:
|
||||
query['repository'] = repository
|
||||
|
||||
if target_project is not None:
|
||||
# Both need to be set
|
||||
query['target_project'] = target_project
|
||||
query['target_repository'] = target_repository
|
||||
|
||||
baseurl = ['source', project, package]
|
||||
|
||||
url = self.api.makeurl(baseurl, query=query)
|
||||
if self.dryrun or self.project.do_not_release:
|
||||
self.logger.info('release %s/%s (%s)' % (project, package, query))
|
||||
else:
|
||||
self.api.retried_POST(url)
|
||||
|
||||
|
@ -19,7 +19,6 @@ import osc
|
||||
from osc.core import makeurl
|
||||
from ttm.manager import ToTestManager, NotFoundException
|
||||
from openqa_client.client import OpenQA_Client
|
||||
from xml.etree import cElementTree as ET
|
||||
|
||||
# QA Results
|
||||
QA_INPROGRESS = 1
|
||||
@ -255,7 +254,6 @@ class ToTestPublisher(ToTestManager):
|
||||
['api', 'v1', 'job_groups'])
|
||||
f = self.api.retried_GET(url)
|
||||
job_groups = json.load(f)
|
||||
group_id = 0
|
||||
for jg in job_groups:
|
||||
if jg['name'] == self.project.openqa_group:
|
||||
return jg['id']
|
||||
@ -299,3 +297,16 @@ class ToTestPublisher(ToTestManager):
|
||||
return
|
||||
text = yaml.dump({'last_seen': self.issues_to_ignore}, default_flow_style=False)
|
||||
self.api.attribute_value_save('IgnoredIssues', text)
|
||||
|
||||
def publish_factory_totest(self):
|
||||
self.logger.info('Publish test project content')
|
||||
if self.project.container_products:
|
||||
self.logger.info('Releasing container products from ToTest')
|
||||
for container in self.project.container_products:
|
||||
self.release_package(self.project.test_project, container.package,
|
||||
repository=self.project.totest_container_repo)
|
||||
if not (self.dryrun or self.project.do_not_release):
|
||||
self.api.switch_flag_in_prj(
|
||||
self.project.test_project, flag='publish', state='enable',
|
||||
repository=self.project.product_repo)
|
||||
|
||||
|
@ -231,52 +231,29 @@ class ToTestReleaser(ToTestManager):
|
||||
|
||||
return True
|
||||
|
||||
def _release_package(self, project, package, set_release=None, repository=None,
|
||||
target_project=None, target_repository=None):
|
||||
query = {'cmd': 'release'}
|
||||
|
||||
if set_release:
|
||||
query['setrelease'] = set_release
|
||||
|
||||
if repository is not None:
|
||||
query['repository'] = repository
|
||||
|
||||
if target_project is not None:
|
||||
# Both need to be set
|
||||
query['target_project'] = target_project
|
||||
query['target_repository'] = target_repository
|
||||
|
||||
baseurl = ['source', project, package]
|
||||
|
||||
url = self.api.makeurl(baseurl, query=query)
|
||||
if self.dryrun or self.project.do_not_release:
|
||||
self.logger.info('release %s/%s (%s)' % (project, package, query))
|
||||
else:
|
||||
self.api.retried_POST(url)
|
||||
|
||||
def _release(self, set_release=None):
|
||||
for container in self.project.container_products:
|
||||
# Containers are built in the same repo as other image products,
|
||||
# but released into a different repo in :ToTest
|
||||
self._release_package(self.project.name, container.package, repository=self.project.product_repo,
|
||||
self.release_package(self.project.name, container.package, repository=self.project.product_repo,
|
||||
target_project=self.project.test_project,
|
||||
target_repository=self.project.totest_container_repo)
|
||||
|
||||
if len(self.project.main_products):
|
||||
for cd in self.project.main_products:
|
||||
self._release_package(self.project.name, cd, set_release=set_release,
|
||||
self.release_package(self.project.name, cd, set_release=set_release,
|
||||
repository=self.project.product_repo)
|
||||
|
||||
for product in self.project.ftp_products:
|
||||
self._release_package(self.project.name, product, repository=self.project.product_repo)
|
||||
self.release_package(self.project.name, product, repository=self.project.product_repo)
|
||||
|
||||
for cd in self.project.livecd_products:
|
||||
self._release_package('%s:Live' %
|
||||
self.release_package('%s:Live' %
|
||||
self.project.name, cd.package, set_release=set_release,
|
||||
repository=self.project.livecd_repo)
|
||||
|
||||
for image in self.project.image_products:
|
||||
self._release_package(self.project.name, image.package, set_release=set_release,
|
||||
self.release_package(self.project.name, image.package, set_release=set_release,
|
||||
repository=self.project.product_repo)
|
||||
|
||||
def update_totest(self, snapshot=None):
|
||||
@ -291,14 +268,3 @@ class ToTestReleaser(ToTestManager):
|
||||
|
||||
self._release(set_release=release)
|
||||
|
||||
def publish_factory_totest(self):
|
||||
self.logger.info('Publish test project content')
|
||||
if self.project.container_products:
|
||||
self.logger.info('Releasing container products from ToTest')
|
||||
for container in self.project.container_products:
|
||||
self._release_package(self.project.test_project, container.package,
|
||||
repository=self.project.totest_container_repo)
|
||||
if not (self.dryrun or self.project.do_not_release):
|
||||
self.api.switch_flag_in_prj(
|
||||
self.project.test_project, flag='publish', state='enable',
|
||||
repository=self.project.product_repo)
|
||||
|
Loading…
x
Reference in New Issue
Block a user