From 7c0605b156ca8fbdb857b206b342922e5e1ab055 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Wed, 19 Oct 2016 07:23:22 -0400 Subject: [PATCH] Bug fixes. No issue # * Fix syntax errors and logging bug * Use docker tag --force flag only if offered by docker tag --help * Detect/fix wrong group_class (bug in install docs) --- jenkins/install-arvados-jobs-image | 50 ++++++++++++++++++------------ 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/jenkins/install-arvados-jobs-image b/jenkins/install-arvados-jobs-image index d825f7f..9d1ea46 100755 --- a/jenkins/install-arvados-jobs-image +++ b/jenkins/install-arvados-jobs-image @@ -16,19 +16,26 @@ def findormake_project(arv, prefix, project_name): system_user_uuid = prefix+'-tpzed-000000000000000' groups = arv.groups().list( filters=[ - ['group_class', '=', 'project'], ['name', '=', project_name], ['owner_uuid', '=', system_user_uuid], ], - select=['uuid']).execute()['items'] + select=['uuid', 'group_class']).execute()['items'] if groups: - uuid = groups[0]['uuid'] - logger.debug('found project %s', uuid) - return uuid + proj = groups[0] + logger.debug('found project %s', proj['uuid']) + if proj['group_class'] != 'project': + logger.info('project %s has group_class %s, changing to %s', + proj['uuid'], proj['group_class'], 'project') + arv.groups().update( + uuid=proj['uuid'], + body={ + 'group_class': 'project', + }).execute() + return proj['uuid'] uuid = arv.groups().create(body={ - group_class: 'project', - name: project_name, - owner_uuid: system_user_uuid, + 'group_class': 'project', + 'name': project_name, + 'owner_uuid': system_user_uuid, }).execute()['uuid'] logger.info('created project %s: %s', uuid, project_name) return uuid @@ -36,15 +43,16 @@ def findormake_project(arv, prefix, project_name): def findormake_project_perm(arv, prefix, project_uuid): all_users_group_uuid = prefix+'-j7d0g-fffffffffffffff' - if arv.links().list( - filters=[ - ['tail_uuid', '=', all_users_group_uuid], - ['head_uuid', '=', project_uuid], - ['link_class', '=', 'permission'], - ['name', '=', 'can_read'], - ], - select=['uuid']).execute()['items']: - logger.debug('found permission link %s', uuid) + links = arv.links().list( + filters=[ + ['tail_uuid', '=', all_users_group_uuid], + ['head_uuid', '=', project_uuid], + ['link_class', '=', 'permission'], + ['name', '=', 'can_read'], + ], + select=['uuid']).execute()['items'] + if links: + logger.debug('found permission link %s', links[0]['uuid']) return uuid = arv.links().create(body={ 'tail_uuid': all_users_group_uuid, @@ -76,8 +84,12 @@ def findorpull_image(want_repo, want_tag, project_uuid): def tag_latest(repo, tag, project_uuid): logger.debug('tagging %s:%s as %s:latest', repo, tag, repo) - subprocess.check_call([ - 'docker', 'tag', '-f', repo+':'+tag, repo+':latest']) + tag_cmd = ['docker', 'tag'] + if subprocess.check_output(tag_cmd + ['--help']).find('--force') >= 0: + tag_cmd += ['--force'] + tag_cmd += [repo+':'+tag, repo+':latest'] + subprocess.check_call(tag_cmd) + logger.debug('arv-keepdocker %s:latest', repo, tag, repo) subprocess.check_call([ 'arv-keepdocker', -- 2.30.2