def test_load_credentials_keyerror(mock_open, ):
    credentials = {}

    mock_open.side_effect = mock.mock_open(read_data=json.dumps(credentials))

    with pytest.raises(KeyError):
        assert load_credentials()
def test_load_credentials_keyerror(mock_open,):
    credentials = {}

    mock_open.side_effect = mock.mock_open(read_data=json.dumps(credentials))

    with pytest.raises(KeyError):
        assert load_credentials()
Пример #3
0
def when_setup_service_initiated(context):
    config = {
        'master': '%s' % get_service_connection_string('mesosmaster'),
        'scheme': 'http',
        'response_timeout': 5,
    }
    with contextlib.nested(
        mock.patch(
            'paasta_tools.bounce_lib.get_happy_tasks',
            autospec=True,
            # Wrap function call so we can select a subset of tasks or test
            # intermediate steps, like when an app is not completely up
            side_effect=lambda app, _, __, ___, **kwargs: get_happy_tasks(
                app, context.service, "fake_nerve_ns", context.system_paasta_config)[:context.max_tasks],
        ),
        mock.patch('paasta_tools.bounce_lib.bounce_lock_zookeeper', autospec=True),
        mock.patch('paasta_tools.bounce_lib.create_app_lock', autospec=True),
        mock.patch('paasta_tools.bounce_lib.time.sleep', autospec=True),
        mock.patch('paasta_tools.setup_marathon_job.load_system_paasta_config', autospec=True),
        mock.patch('paasta_tools.setup_marathon_job._log', autospec=True),
        mock.patch('paasta_tools.marathon_tools.get_config_hash', autospec=True, return_value='confighash'),
        mock.patch('paasta_tools.marathon_tools.get_code_sha_from_dockerurl', autospec=True, return_value='newapp'),
        mock.patch('paasta_tools.marathon_tools.get_docker_url', autospec=True, return_value='busybox'),
        mock.patch('paasta_tools.paasta_maintenance.load_credentials', autospec=True),
        mock.patch.object(mesos.cli.master, 'CFG', config),
    ) as (
        _,
        _,
        _,
        _,
        mock_load_system_paasta_config,
        _,
        _,
        _,
        _,
        mock_load_credentials,
        _,
    ):
        mock_load_credentials.side_effect = paasta_maintenance.load_credentials(mesos_secrets='/etc/mesos-slave-secret')
        mock_load_system_paasta_config.return_value.get_cluster = mock.Mock(return_value=context.cluster)
        # 120 * 0.5 = 60 seconds
        for _ in xrange(120):
            try:
                (code, message) = setup_marathon_job.setup_service(
                    service=context.service,
                    instance=context.instance,
                    client=context.marathon_client,
                    service_marathon_config=context.new_marathon_service_config,
                    soa_dir='/nail/etc/services',
                )
                assert code == 0, message
                return
            except MarathonHttpError:
                time.sleep(0.5)
        raise Exception("Unable to acquire app lock for setup_marathon_job.setup_service")
Пример #4
0
def test_load_credentials(
    mock_open,
):
    credentials = {
        'principal': 'username',
        'secret': 'password'
    }

    mock_open.side_effect = mock.mock_open(read_data=json.dumps(credentials))

    assert load_credentials() == ('username', 'password')
Пример #5
0
def mark_host_at_risk(context, host):
    start = paasta_maintenance.datetime_to_nanoseconds(paasta_maintenance.now())
    duration = paasta_maintenance.parse_timedelta('1h')
    config = {
        'master': '%s' % get_service_connection_string('mesosmaster'),
        'scheme': 'http',
        'response_timeout': 5,
    }
    with contextlib.nested(
        mock.patch('paasta_tools.paasta_maintenance.load_credentials', autospec=True),
        mock.patch.object(mesos.cli.master, 'CFG', config),
    ) as (
        mock_load_credentials,
        _,
    ):
        mock_load_credentials.side_effect = paasta_maintenance.load_credentials(mesos_secrets='/etc/mesos-slave-secret')
        paasta_maintenance.drain([host], start, duration)
        context.at_risk_host = host
Пример #6
0
def run_until_number_tasks(context, number):
    config = {
        'master': '%s' % get_service_connection_string('mesosmaster'),
        'scheme': 'http',
        'response_timeout': 5,
    }
    for _ in xrange(20):
        with contextlib.nested(
            mock.patch('paasta_tools.paasta_maintenance.load_credentials', autospec=True),
            mock.patch.object(mesos.cli.master, 'CFG', config),
        ) as (
            mock_load_credentials,
            _,
        ):
            mock_load_credentials.side_effect = paasta_maintenance.load_credentials(
                mesos_secrets='/etc/mesos-slave-secret',
            )
            run_setup_marathon_job(context)
        sleep(0.5)
        if context.marathon_client.get_app(context.app_id).instances == number:
            return
    assert context.marathon_client.get_app(context.app_id).instances == number
def test_load_credentials_missing_file(mock_open,):
    with pytest.raises(IOError):
        assert load_credentials()
def test_load_credentials(mock_open,):
    credentials = {"principal": "username", "secret": "password"}

    mock_open.side_effect = mock.mock_open(read_data=json.dumps(credentials))

    assert load_credentials() == ("username", "password")
def test_load_credentials_missing_file(mock_open, ):
    with pytest.raises(IOError):
        assert load_credentials()
def test_load_credentials(mock_open, ):
    credentials = {'principal': 'username', 'secret': 'password'}

    mock_open.side_effect = mock.mock_open(read_data=json.dumps(credentials))

    assert load_credentials() == ('username', 'password')