from common.send_mail import prepare_mail
from common.buildservice import BuildService
from common.iris_rest_client import IrisRestClient
+from common.utils import unicode_to_str
from obs_requests.mailer import mailer
from gbp.git.repository import GitRepositoryError
from gitbuildsys.errors import ObsError
projects = entry['GIT_PROJECTS'][1:-1].split(', ')
else:
projects.append(entry['GIT_PROJECTS'])
+
for project in projects:
+ # Get package name from OBS description.
+ # Assume items(packages, projects) are stored one after another.
+ obs_req_pkg_name = os.path.basename(project)
+ if len(projects) == len(event_fields['packages']):
+ try:
+ obs_req_pkg_name = event_fields['packages'][projects.index(project)]
+ except Exception as err:
+ print 'Warning: not able to find package name from description'
tag = tag_info(project, entry['GIT_TAG'])
tag.update({'GIT_PROJECT': project,
- 'OBS_REQ_PKG_SRC': os.path.basename(project),
- 'OBS_REQ_PKG': os.path.basename(project),})
+ 'OBS_REQ_PKG_SRC': obs_req_pkg_name,
+ 'OBS_REQ_PKG': obs_req_pkg_name,})
projects_list.append(tag)
else:
print '-------------------------------------'
os.getenv('OBS_API_USERNAME'),
os.getenv('OBS_API_PASSWD'))
+ try:
+ if 'home:prerelease:' in prj:
+ print 'Removing %s' % prj
+ _bs.delete_project(prj)
+ except ObsError, error:
+ print error
+ if 'HTTP Error 404' in str(error):
+ return True
+ else:
+ return False
+
if not _bs.exists(prj, pkg):
print '[Warning]:buildservice cannot find prj %s: pkg %s' % (prj, pkg)
return True
if _bs.get_package_real_project_name(prj, pkg) == prj:
try:
- if 'home:prerelease:' in prj:
- print 'Removing %s' % prj
- _bs.delete_project(prj)
- else:
+ if True:
print 'Removing %s:%s' % (prj, pkg)
_bs.delete_package(prj, pkg)
except ObsError, error:
print 'Use number(%s) field instead of id' % event_fields.get('number')
event_fields['id'] = event_fields.get('number')
reqinfo = build.get_sr_info(event_fields.get('id'))
+ if 'targetproject' not in event_fields and 'targetproject' in reqinfo:
+ event_fields['targetproject'] = reqinfo['targetproject']
+ if 'sourceproject' not in event_fields and 'sourceproject' in reqinfo:
+ event_fields['sourceproject'] = reqinfo['sourceproject']
+
+ try:
+ event_fields['packages'] = \
+ unicode_to_str(build.get_info(event_fields['sourceproject'])['packages'])
+ except Exception as err:
+ print 'Not able to fetch package list from OBS %s' % err
+ event_fields['packages'] = []
for var in ['targetproject', 'sourceproject',
'comment', 'sender']: