示例#1
0
 def test_get_team_email_address_uses_instance_config_if_specified(self):
     expected = 'fake_email'
     with mock.patch(
         'paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True,
     ) as mock_get_monitoring_config_value:
         mock_get_monitoring_config_value.return_value = 'fake_email'
         actual = monitoring_tools.get_team_email_address('fake_service')
         assert actual == expected
示例#2
0
 def test_get_team_email_address_uses_override_if_specified(self):
     fake_email = 'fake_email'
     with mock.patch(
         'paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True,
     ) as mock_get_monitoring_config_value:
         mock_get_monitoring_config_value.return_value = 'fake_email'
         actual = monitoring_tools.get_team_email_address('fake_service', {'notification_email': fake_email})
         assert actual == fake_email
示例#3
0
 def test_get_team_email_address_uses_instance_config_if_specified(self):
     expected = 'fake_email'
     with contextlib.nested(
         mock.patch('paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True),
     ) as (
         mock_get_monitoring_config_value,
     ):
         mock_get_monitoring_config_value.return_value = 'fake_email'
         actual = monitoring_tools.get_team_email_address('fake_service')
         assert actual == expected
示例#4
0
 def test_get_team_email_address_uses_override_if_specified(self):
     fake_email = 'fake_email'
     with contextlib.nested(
         mock.patch('paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True),
     ) as (
         mock_get_monitoring_config_value,
     ):
         mock_get_monitoring_config_value.return_value = 'fake_email'
         actual = monitoring_tools.get_team_email_address('fake_service', {'notification_email': fake_email})
         assert actual == fake_email
示例#5
0
 def test_get_team_email_address_returns_none_if_not_available(self):
     with mock.patch(
         'paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True,
     ) as mock_get_monitoring_config_value, mock.patch(
         'paasta_tools.monitoring_tools.get_sensu_team_data', autospec=True,
     ) as mock_get_sensu_team_data, mock.patch(
         'paasta_tools.monitoring_tools.get_team', autospec=True,
     ) as mock_get_team:
         mock_get_team.return_value = 'test_team'
         mock_get_monitoring_config_value.return_value = False
         mock_get_sensu_team_data.return_value = {}
         actual = monitoring_tools.get_team_email_address('fake_service')
         assert actual is None
示例#6
0
 def test_get_team_email_address_returns_none_if_not_available(self):
     with contextlib.nested(
         mock.patch('paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True),
         mock.patch('paasta_tools.monitoring_tools.get_sensu_team_data', autospec=True),
         mock.patch('paasta_tools.monitoring_tools.get_team', autospec=True),
     ) as (
         mock_get_monitoring_config_value,
         mock_get_sensu_team_data,
         mock_get_team,
     ):
         mock_get_team.return_value = 'test_team'
         mock_get_monitoring_config_value.return_value = False
         mock_get_sensu_team_data.return_value = {}
         actual = monitoring_tools.get_team_email_address('fake_service')
         assert actual is None
示例#7
0
 def test_get_team_email_address_uses_team_data_as_last_resort(self):
     expected = 'team_data_email'
     with mock.patch(
         'paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True,
     ) as mock_get_monitoring_config_value, mock.patch(
         'paasta_tools.monitoring_tools.get_sensu_team_data', autospec=True,
     ) as mock_get_sensu_team_data, mock.patch(
         'paasta_tools.monitoring_tools.get_team', autospec=True,
     ) as mock_get_team:
         mock_get_team.return_value = 'test_team'
         mock_get_monitoring_config_value.return_value = False
         mock_get_sensu_team_data.return_value = {
             'notification_email': expected,
         }
         actual = monitoring_tools.get_team_email_address('fake_service')
         assert actual == expected
示例#8
0
 def test_get_team_email_address_uses_team_data_as_last_resort(self):
     expected = 'team_data_email'
     with contextlib.nested(
         mock.patch('paasta_tools.monitoring_tools.__get_monitoring_config_value', autospec=True),
         mock.patch('paasta_tools.monitoring_tools.get_sensu_team_data', autospec=True),
         mock.patch('paasta_tools.monitoring_tools.get_team', autospec=True),
     ) as (
         mock_get_monitoring_config_value,
         mock_get_sensu_team_data,
         mock_get_team,
     ):
         mock_get_team.return_value = 'test_team'
         mock_get_monitoring_config_value.return_value = False
         mock_get_sensu_team_data.return_value = {
             'notification_email': expected
         }
         actual = monitoring_tools.get_team_email_address('fake_service')
         assert actual == expected
示例#9
0
def generate_pipeline(service):
    email_address = get_team_email_address(service=service)
    repo = get_git_repo_for_fab_repo(service)
    if email_address is None:
        owner = get_team(overrides={}, service=service)
    else:
        # fab_repo tacks on the domain, so we only want the first
        # part of the email.
        owner = re.sub('@.*', '', email_address)
    cmds = [
        'fab_repo setup_jenkins:services/%s,'
        'profile=paasta,job_disabled=False,owner=%s,repo=%s' % (service, owner, repo),
        'fab_repo setup_jenkins:services/%s,'
        'profile=paasta_boilerplate,owner=%s,repo=%s' % (service, owner, repo),
    ]
    for cmd in cmds:
        print "INFO: Executing %s" % cmd
        returncode, output = _run(cmd, timeout=90)
        if returncode != 0:
            print "ERROR: Failed to generate Jenkins pipeline"
            print output
            sys.exit(returncode)
示例#10
0
def generate_pipeline(service):
    email_address = get_team_email_address(service=service)
    repo = get_git_repo_for_fab_repo(service)
    if email_address is None:
        owner = get_team(overrides={}, service=service)
    else:
        # fab_repo tacks on the domain, so we only want the first
        # part of the email.
        owner = re.sub('@.*', '', email_address)
    cmds = [
        'fab_repo setup_jenkins:services/%s,'
        'profile=paasta,job_disabled=False,owner=%s,repo=%s' %
        (service, owner, repo),
        'fab_repo setup_jenkins:services/%s,'
        'profile=paasta_boilerplate,owner=%s,repo=%s' % (service, owner, repo),
    ]
    for cmd in cmds:
        print "INFO: Executing %s" % cmd
        returncode, output = _run(cmd, timeout=90)
        if returncode != 0:
            print "ERROR: Failed to generate Jenkins pipeline"
            print output
            sys.exit(returncode)