Esempio n. 1
0
def test_get_deployments_strings_default_case_with_smartstack():
    with contextlib.nested(
            mock.patch('paasta_tools.cli.cmds.info.get_actual_deployments',
                       autospec=True),
            mock.patch('service_configuration_lib.read_service_configuration',
                       autospec=True),
    ) as (
            mock_get_actual_deployments,
            mock_read_service_configuration,
    ):
        mock_get_actual_deployments.return_value = [
            'clusterA.main', 'clusterB.main'
        ]
        mock_read_service_configuration.return_value = {
            'smartstack': {
                'main': {
                    'proxy_port': 9001
                }
            }
        }
        actual = info.get_deployments_strings('fake_service', '/fake/soa/dir')
        assert ' - clusterA (%s)' % PaastaColors.cyan(
            'http://fake_service.paasta-clusterA.yelp/') in actual
        assert ' - clusterB (%s)' % PaastaColors.cyan(
            'http://fake_service.paasta-clusterB.yelp/') in actual
Esempio n. 2
0
def test_get_service_info():
    with contextlib.nested(
        mock.patch('paasta_tools.cli.cmds.info.get_team', autospec=True),
        mock.patch('paasta_tools.cli.cmds.info.get_runbook', autospec=True),
        mock.patch('paasta_tools.cli.cmds.info.read_service_configuration', autospec=True),
        mock.patch('service_configuration_lib.read_service_configuration', autospec=True),
        mock.patch('paasta_tools.cli.cmds.info.get_actual_deployments', autospec=True),
        mock.patch('paasta_tools.cli.cmds.info.get_smartstack_endpoints', autospec=True),
    ) as (
        mock_get_team,
        mock_get_runbook,
        mock_read_service_configuration,
        mock_scl_read_service_configuration,
        mock_get_actual_deployments,
        mock_get_smartstack_endpoints,
    ):
        mock_get_team.return_value = 'fake_team'
        mock_get_runbook.return_value = 'fake_runbook'
        mock_read_service_configuration.return_value = {
            'description': 'a fake service that does stuff',
            'external_link': 'http://bla',
            'smartstack': {
                'main': {
                    'proxy_port': 9001
                }
            }
        }
        mock_scl_read_service_configuration.return_value = {
            'description': 'a fake service that does stuff',
            'external_link': 'http://bla',
            'smartstack': {
                'main': {
                    'proxy_port': 9001
                }
            }
        }
        mock_get_actual_deployments.return_value = ['clusterA.main', 'clusterB.main']
        mock_get_smartstack_endpoints.return_value = ['http://*****:*****@git.yelpcorp.com:services/fake_service' in actual
        assert 'Jenkins Pipeline: ' in actual
        assert 'Deployed to the following' in actual
        assert 'clusterA (%s)' % PaastaColors.cyan('http://fake_service.paasta-clusterA.yelp/') in actual
        assert 'clusterB (%s)' % PaastaColors.cyan('http://fake_service.paasta-clusterB.yelp/') in actual
        assert 'Smartstack endpoint' in actual
        assert 'http://foo:1234' in actual
        assert 'tcp://bar:1234' in actual
        assert 'Dashboard' in actual
        assert '%s (Sensu Alerts)' % PaastaColors.cyan('https://uchiwa.yelpcorp.com/#/events?q=fake_service') in actual
        mock_get_team.assert_called_with(service='fake_service', overrides={})
        mock_get_runbook.assert_called_with(service='fake_service', overrides={})
Esempio n. 3
0
def test_get_deployments_strings_protocol_tcp_case():
    with contextlib.nested(
        mock.patch('paasta_tools.cli.cmds.info.get_actual_deployments', autospec=True),
        mock.patch('paasta_tools.cli.cmds.info.load_service_namespace_config', autospec=True),
    ) as (mock_get_actual_deployments, mock_load_service_namespace_config):
        mock_get_actual_deployments.return_value = ['clusterA.main', 'clusterB.main']
        mock_load_service_namespace_config.return_value = ServiceNamespaceConfig({'mode': 'tcp', 'proxy_port': 8080})
        actual = info.get_deployments_strings('unused', '/fake/soa/dir')
        assert ' - clusterA (%s)' % PaastaColors.cyan('tcp://paasta-clusterA.yelp:8080/') in actual
        assert ' - clusterB (%s)' % PaastaColors.cyan('tcp://paasta-clusterB.yelp:8080/') in actual
Esempio n. 4
0
def test_get_deployments_strings_protocol_tcp_case():
    with contextlib.nested(
        mock.patch("paasta_tools.cli.cmds.info.get_actual_deployments", autospec=True),
        mock.patch("paasta_tools.cli.cmds.info.load_service_namespace_config", autospec=True),
    ) as (mock_get_actual_deployments, mock_load_service_namespace_config):
        mock_get_actual_deployments.return_value = ["clusterA.main", "clusterB.main"]
        mock_load_service_namespace_config.return_value = ServiceNamespaceConfig({"mode": "tcp", "proxy_port": 8080})
        actual = info.get_deployments_strings("unused")
        assert " - clusterA (%s)" % PaastaColors.cyan("tcp://paasta-clusterA.yelp:8080/") in actual
        assert " - clusterB (%s)" % PaastaColors.cyan("tcp://paasta-clusterB.yelp:8080/") in actual
Esempio n. 5
0
def test_get_deployments_strings_default_case_with_smartstack():
    with contextlib.nested(
        mock.patch("paasta_tools.cli.cmds.info.get_actual_deployments", autospec=True),
        mock.patch("service_configuration_lib.read_service_configuration", autospec=True),
    ) as (mock_get_actual_deployments, mock_read_service_configuration):
        mock_get_actual_deployments.return_value = ["clusterA.main", "clusterB.main"]
        mock_read_service_configuration.return_value = {"smartstack": {"main": {"proxy_port": 9001}}}
        actual = info.get_deployments_strings("fake_service")
        assert " - clusterA (%s)" % PaastaColors.cyan("http://fake_service.paasta-clusterA.yelp/") in actual
        assert " - clusterB (%s)" % PaastaColors.cyan("http://fake_service.paasta-clusterB.yelp/") in actual
Esempio n. 6
0
def test_get_service_info():
    with contextlib.nested(
        mock.patch("paasta_tools.cli.cmds.info.get_team", autospec=True),
        mock.patch("paasta_tools.cli.cmds.info.get_runbook", autospec=True),
        mock.patch("paasta_tools.cli.cmds.info.read_service_configuration", autospec=True),
        mock.patch("service_configuration_lib.read_service_configuration", autospec=True),
        mock.patch("paasta_tools.cli.cmds.info.get_actual_deployments", autospec=True),
        mock.patch("paasta_tools.cli.cmds.info.get_smartstack_endpoints", autospec=True),
    ) as (
        mock_get_team,
        mock_get_runbook,
        mock_read_service_configuration,
        mock_scl_read_service_configuration,
        mock_get_actual_deployments,
        mock_get_smartstack_endpoints,
    ):
        mock_get_team.return_value = "fake_team"
        mock_get_runbook.return_value = "fake_runbook"
        mock_read_service_configuration.return_value = {
            "description": "a fake service that does stuff",
            "external_link": "http://bla",
            "smartstack": {"main": {"proxy_port": 9001}},
        }
        mock_scl_read_service_configuration.return_value = {
            "description": "a fake service that does stuff",
            "external_link": "http://bla",
            "smartstack": {"main": {"proxy_port": 9001}},
        }
        mock_get_actual_deployments.return_value = ["clusterA.main", "clusterB.main"]
        mock_get_smartstack_endpoints.return_value = ["http://*****:*****@git.yelpcorp.com:services/fake_service" in actual
        assert "Jenkins Pipeline: " in actual
        assert "Deployed to the following" in actual
        assert "clusterA (%s)" % PaastaColors.cyan("http://fake_service.paasta-clusterA.yelp/") in actual
        assert "clusterB (%s)" % PaastaColors.cyan("http://fake_service.paasta-clusterB.yelp/") in actual
        assert "Smartstack endpoint" in actual
        assert "http://foo:1234" in actual
        assert "tcp://bar:1234" in actual
        assert "Dashboard" in actual
        assert "%s (Sensu Alerts)" % PaastaColors.cyan("https://uchiwa.yelpcorp.com/#/events?q=fake_service") in actual
        mock_get_team.assert_called_with(service="fake_service", overrides={})
        mock_get_runbook.assert_called_with(service="fake_service", overrides={})
Esempio n. 7
0
def test_get_deployments_strings_default_case_with_smartstack():
    with contextlib.nested(
        mock.patch('paasta_tools.cli.cmds.info.get_actual_deployments', autospec=True),
        mock.patch('service_configuration_lib.read_service_configuration', autospec=True),
    ) as (
        mock_get_actual_deployments,
        mock_read_service_configuration,
    ):
        mock_get_actual_deployments.return_value = ['clusterA.main', 'clusterB.main']
        mock_read_service_configuration.return_value = {
            'smartstack': {
                'main': {
                    'proxy_port': 9001
                }
            }
        }
        actual = info.get_deployments_strings('fake_service', '/fake/soa/dir')
        assert ' - clusterA (%s)' % PaastaColors.cyan('http://fake_service.paasta-clusterA.yelp/') in actual
        assert ' - clusterB (%s)' % PaastaColors.cyan('http://fake_service.paasta-clusterB.yelp/') in actual
Esempio n. 8
0
def test_get_deployments_strings_protocol_tcp_case():
    with mock.patch(
            "paasta_tools.cli.cmds.info.get_actual_deployments",
            autospec=True) as mock_get_actual_deployments, mock.patch(
                "paasta_tools.cli.cmds.info.load_service_namespace_config",
                autospec=True) as mock_load_service_namespace_config:
        mock_get_actual_deployments.return_value = [
            "clusterA.main", "clusterB.main"
        ]
        mock_load_service_namespace_config.return_value = ServiceNamespaceConfig(
            {
                "mode": "tcp",
                "proxy_port": 8080
            })
        actual = info.get_deployments_strings("unused", "/fake/soa/dir")
        assert (" - clusterA (%s)" %
                PaastaColors.cyan("tcp://paasta-clusterA.yelp:8080/")
                in actual)
        assert (" - clusterB (%s)" %
                PaastaColors.cyan("tcp://paasta-clusterB.yelp:8080/")
                in actual)
Esempio n. 9
0
def test_get_deployments_strings_protocol_tcp_case():
    with mock.patch(
            'paasta_tools.cli.cmds.info.get_actual_deployments',
            autospec=True,
    ) as mock_get_actual_deployments, mock.patch(
            'paasta_tools.cli.cmds.info.load_service_namespace_config',
            autospec=True,
    ) as mock_load_service_namespace_config:
        mock_get_actual_deployments.return_value = [
            'clusterA.main', 'clusterB.main'
        ]
        mock_load_service_namespace_config.return_value = ServiceNamespaceConfig(
            {
                'mode': 'tcp',
                'proxy_port': 8080
            })
        actual = info.get_deployments_strings('unused', '/fake/soa/dir')
        assert ' - clusterA (%s)' % PaastaColors.cyan(
            'tcp://paasta-clusterA.yelp:8080/') in actual
        assert ' - clusterB (%s)' % PaastaColors.cyan(
            'tcp://paasta-clusterB.yelp:8080/') in actual
Esempio n. 10
0
def test_get_deployments_strings_default_case_with_smartstack():
    with mock.patch(
            "paasta_tools.cli.cmds.info.get_actual_deployments",
            autospec=True) as mock_get_actual_deployments, mock.patch(
                "service_configuration_lib.read_extra_service_information",
                autospec=True) as mock_read_extra_service_information:
        mock_get_actual_deployments.return_value = [
            "clusterA.main", "clusterB.main"
        ]
        mock_read_extra_service_information.return_value = {
            "main": {
                "proxy_port": 9001
            }
        }

        actual = info.get_deployments_strings("fake_service", "/fake/soa/dir")
        assert (" - clusterA (%s)" %
                PaastaColors.cyan("http://fake_service.paasta-clusterA.yelp/")
                in actual)
        assert (" - clusterB (%s)" %
                PaastaColors.cyan("http://fake_service.paasta-clusterB.yelp/")
                in actual)
Esempio n. 11
0
)

SCHEMA_NOT_FOUND = failure(
    "Failed to find schema to validate against. More info:",
    "http://paasta.readthedocs.io/en/latest/yelpsoa_configs.html",
)

FAILED_READING_FILE = failure(
    "Failed to read file. More info:",
    "http://paasta.readthedocs.io/en/latest/yelpsoa_configs.html",
)

UNKNOWN_SERVICE = "Unable to determine service to validate.\n" \
                  "Please supply the %s name you wish to " \
                  "validate with the %s option." \
                  % (PaastaColors.cyan('SERVICE'), PaastaColors.cyan('-s'))


def invalid_chronos_instance(cluster, instance, output):
    return failure(
        'chronos-%s.yaml has an invalid instance: %s.\n  %s\n  '
        'More info:' % (cluster, instance, output),
        "http://paasta.readthedocs.io/en/latest/yelpsoa_configs.html#chronos-clustername-yaml",
    )


def valid_chronos_instance(cluster, instance):
    return success(f'chronos-{cluster}.yaml has a valid instance: {instance}.')


def get_schema(file_type):
Esempio n. 12
0
def test_get_service_info():
    with mock.patch(
            "paasta_tools.cli.cmds.info.get_team",
            autospec=True) as mock_get_team, mock.patch(
                "paasta_tools.cli.cmds.info.get_runbook", autospec=True
            ) as mock_get_runbook, mock.patch(
                "paasta_tools.cli.cmds.info.read_service_configuration",
                autospec=True) as mock_read_service_configuration, mock.patch(
                    "service_configuration_lib.read_service_configuration",
                    autospec=True
                ) as mock_scl_read_service_configuration, mock.patch(
                    "service_configuration_lib.read_extra_service_information",
                    autospec=True
                ) as mock_read_extra_service_information, mock.patch(
                    "paasta_tools.cli.cmds.info.get_actual_deployments",
                    autospec=True) as mock_get_actual_deployments, mock.patch(
                        "paasta_tools.cli.cmds.info.get_smartstack_endpoints",
                        autospec=True) as mock_get_smartstack_endpoints:
        mock_get_team.return_value = "fake_team"
        mock_get_runbook.return_value = "fake_runbook"
        mock_read_service_configuration.return_value = {
            "description": "a fake service that does stuff",
            "external_link": "http://bla",
            "smartstack": {
                "main": {
                    "proxy_port": 9001
                }
            },
        }
        mock_scl_read_service_configuration.return_value = (
            mock_read_service_configuration.return_value)
        mock_read_extra_service_information.return_value = mock_read_service_configuration.return_value[
            "smartstack"]

        mock_get_actual_deployments.return_value = [
            "clusterA.main", "clusterB.main"
        ]
        mock_get_smartstack_endpoints.return_value = [
            "http://*****:*****@github.yelpcorp.com:services/fake_service" in actual
        assert "Deployed to the following" in actual
        assert ("clusterA (%s)" %
                PaastaColors.cyan("http://fake_service.paasta-clusterA.yelp/")
                in actual)
        assert ("clusterB (%s)" %
                PaastaColors.cyan("http://fake_service.paasta-clusterB.yelp/")
                in actual)
        assert "Smartstack endpoint" in actual
        assert "http://foo:1234" in actual
        assert "tcp://bar:1234" in actual
        assert "Dashboard" in actual
        assert ("%s (Sensu Alerts)" % PaastaColors.cyan(
            "https://uchiwa.yelpcorp.com/#/events?q=fake_service") in actual)
        mock_get_team.assert_called_with(service="fake_service",
                                         overrides={},
                                         soa_dir="/fake/soa/dir")
        mock_get_runbook.assert_called_with(service="fake_service",
                                            overrides={},
                                            soa_dir="/fake/soa/dir")
Esempio n. 13
0
def test_get_service_info():
    with mock.patch(
            'paasta_tools.cli.cmds.info.get_team',
            autospec=True,
    ) as mock_get_team, mock.patch(
            'paasta_tools.cli.cmds.info.get_runbook',
            autospec=True,
    ) as mock_get_runbook, mock.patch(
            'paasta_tools.cli.cmds.info.read_service_configuration',
            autospec=True,
    ) as mock_read_service_configuration, mock.patch(
            'service_configuration_lib.read_service_configuration',
            autospec=True,
    ) as mock_scl_read_service_configuration, mock.patch(
            'paasta_tools.cli.cmds.info.get_actual_deployments',
            autospec=True,
    ) as mock_get_actual_deployments, mock.patch(
            'paasta_tools.cli.cmds.info.get_smartstack_endpoints',
            autospec=True,
    ) as mock_get_smartstack_endpoints:
        mock_get_team.return_value = 'fake_team'
        mock_get_runbook.return_value = 'fake_runbook'
        mock_read_service_configuration.return_value = {
            'description': 'a fake service that does stuff',
            'external_link': 'http://bla',
            'smartstack': {
                'main': {
                    'proxy_port': 9001,
                },
            },
        }
        mock_scl_read_service_configuration.return_value = {
            'description': 'a fake service that does stuff',
            'external_link': 'http://bla',
            'smartstack': {
                'main': {
                    'proxy_port': 9001,
                },
            },
        }
        mock_get_actual_deployments.return_value = [
            'clusterA.main', 'clusterB.main'
        ]
        mock_get_smartstack_endpoints.return_value = [
            'http://*****:*****@git.yelpcorp.com:services/fake_service' in actual
        assert 'Deployed to the following' in actual
        assert 'clusterA (%s)' % PaastaColors.cyan(
            'http://fake_service.paasta-clusterA.yelp/') in actual
        assert 'clusterB (%s)' % PaastaColors.cyan(
            'http://fake_service.paasta-clusterB.yelp/') in actual
        assert 'Smartstack endpoint' in actual
        assert 'http://foo:1234' in actual
        assert 'tcp://bar:1234' in actual
        assert 'Dashboard' in actual
        assert '%s (Sensu Alerts)' % PaastaColors.cyan(
            'https://uchiwa.yelpcorp.com/#/events?q=fake_service') in actual
        mock_get_team.assert_called_with(service='fake_service', overrides={})
        mock_get_runbook.assert_called_with(service='fake_service',
                                            overrides={})
Esempio n. 14
0
SCHEMA_INVALID = failure(
    "Failed to validate schema. More info:",
    "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html")

SCHEMA_NOT_FOUND = failure(
    "Failed to find schema to validate against. More info:",
    "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html")

FAILED_READING_FILE = failure(
    "Failed to read file. More info:",
    "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html")

UNKNOWN_SERVICE = "Unable to determine service to validate.\n" \
                  "Please supply the %s name you wish to " \
                  "validate with the %s option." \
                  % (PaastaColors.cyan('SERVICE'), PaastaColors.cyan('-s'))


def invalid_chronos_instance(cluster, instance, output):
    return failure(
        'chronos-%s.yaml has an invalid instance: %s.\n  %s\n  '
        'More info:' % (cluster, instance, output),
        "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html#chronos-clustername-yaml")


def valid_chronos_instance(cluster, instance):
    return success('chronos-%s.yaml has a valid instance: %s.' % (cluster, instance))


def get_schema(file_type):
    """Get the correct schema to use for validation
Esempio n. 15
0
)

SCHEMA_NOT_FOUND = failure(
    "Failed to find schema to validate against. More info:",
    "http://paasta.readthedocs.io/en/latest/yelpsoa_configs.html",
)

FAILED_READING_FILE = failure(
    "Failed to read file. More info:",
    "http://paasta.readthedocs.io/en/latest/yelpsoa_configs.html",
)

UNKNOWN_SERVICE = ("Unable to determine service to validate.\n"
                   "Please supply the %s name you wish to "
                   "validate with the %s option." %
                   (PaastaColors.cyan("SERVICE"), PaastaColors.cyan("-s")))


def invalid_tron_namespace(cluster, output, filename):
    return failure(
        "%s is invalid:\n  %s\n  "
        "More info:" % (filename, output),
        "http://tron.readthedocs.io/en/latest/jobs.html",
    )


def valid_tron_namespace(cluster, filename):
    return success(f"{filename} is valid.")


def duplicate_instance_names_message(service, cluster, instance_names):
Esempio n. 16
0
    "Failed to validate schema. More info:", "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html"
)

SCHEMA_NOT_FOUND = failure(
    "Failed to find schema to validate against. More info:",
    "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html",
)

FAILED_READING_FILE = failure(
    "Failed to read file. More info:", "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html"
)

UNKNOWN_SERVICE = (
    "Unable to determine service to validate.\n"
    "Please supply the %s name you wish to "
    "validate with the %s option." % (PaastaColors.cyan("SERVICE"), PaastaColors.cyan("-s"))
)


def invalid_chronos_instance(cluster, instance, output):
    return failure(
        "chronos-%s.yaml has an invalid instance: %s.\n  %s\n  " "More info:" % (cluster, instance, output),
        "http://paasta.readthedocs.org/en/latest/yelpsoa_configs.html#chronos-clustername-yaml",
    )


def valid_chronos_instance(cluster, instance):
    return success("chronos-%s.yaml has a valid instance: %s." % (cluster, instance))


def get_schema(file_type):