def mark_for_deployment(git_url, deploy_group, service, commit): """Mark a docker image for deployment""" remote_branch = 'refs/heads/%s' % get_paasta_branch_from_deploy_group(identifier=deploy_group) tag = get_paasta_tag_from_deploy_group(identifier=deploy_group, desired_state='deploy') remote_tag = format_tag(tag) ref_mutator = remote_git.make_force_push_mutate_refs_func( targets=[remote_branch, remote_tag], sha=commit, ) try: remote_git.create_remote_refs(git_url=git_url, ref_mutator=ref_mutator, force=True) except Exception as e: loglines = ["Failed to mark %s in for deployment in deploy group %s!" % (commit, deploy_group)] for line in str(e).split('\n'): loglines.append(line) return_code = 1 else: loglines = ["Marked %s in for deployment in deploy group %s" % (commit, deploy_group)] return_code = 0 for logline in loglines: _log( service=service, line=logline, component='deploy', level='event', ) return return_code
def mark_for_deployment(git_url, deploy_group, service, commit): """Mark a docker image for deployment""" tag = get_paasta_tag_from_deploy_group(identifier=deploy_group, desired_state='deploy') remote_tag = format_tag(tag) ref_mutator = remote_git.make_force_push_mutate_refs_func( targets=[remote_tag], sha=commit, ) try: remote_git.create_remote_refs(git_url=git_url, ref_mutator=ref_mutator, force=True) except Exception as e: loglines = ["Failed to mark %s for deployment in deploy group %s!" % (commit, deploy_group)] for line in str(e).split('\n'): loglines.append(line) return_code = 1 else: loglines = ["Marked %s for deployment in deploy group %s" % (commit, deploy_group)] return_code = 0 for logline in loglines: _log( service=service, line=logline, component='deploy', level='event', ) return return_code
def mark_for_deployment(git_url, deploy_group, service, commit): """Mark a docker image for deployment""" tag = get_paasta_tag_from_deploy_group( identifier=deploy_group, desired_state="deploy" ) remote_tag = format_tag(tag) ref_mutator = remote_git.make_force_push_mutate_refs_func( targets=[remote_tag], sha=commit ) max_attempts = 3 for attempt in range(1, max_attempts + 1): try: remote_git.create_remote_refs( git_url=git_url, ref_mutator=ref_mutator, force=True ) except Exception: logline = "Failed to mark {} for deployment in deploy group {}! (attempt {}/{})".format( commit, deploy_group, attempt, max_attempts ) _log(service=service, line=logline, component="deploy", level="event") time.sleep(5 * attempt) else: logline = f"Marked {commit} for deployment in deploy group {deploy_group}" _log(service=service, line=logline, component="deploy", level="event") audit_action_details = {"deploy_group": deploy_group, "commit": commit} _log_audit( action="mark-for-deployment", action_details=audit_action_details, service=service, ) return 0 return 1
def step_impl_then_correctly_tagged(context): with contextlib.nested( mock.patch("paasta_tools.utils.format_timestamp", autosepc=True, return_value=context.force_bounce_timestamp) ) as (mock_format_timestamp,): expected_tag = get_paasta_tag_from_deploy_group(identifier="test_cluster.test_instance", desired_state="deploy") expected_formatted_tag = format_tag(expected_tag) assert expected_formatted_tag in context.test_git_repo.refs assert context.test_git_repo.refs[expected_formatted_tag] == context.expected_commit
def step_impl_then_correctly_tagged(context): with mock.patch( 'paasta_tools.utils.format_timestamp', autospec=True, return_value=context.force_bounce_timestamp, ): expected_tag = get_paasta_tag_from_deploy_group(identifier='test-cluster.test_instance', desired_state='deploy') expected_formatted_tag = format_tag(expected_tag).encode('UTF-8') assert expected_formatted_tag in context.test_git_repo.refs assert context.test_git_repo.refs[expected_formatted_tag] == context.expected_commit_as_bytes