Exemplo n.º 1
0
    def test_service_generate_file__no_match(self) -> None:
        """Test the service generate_file function.  Uses a simple setup."""
        self._config.namespace = 'n1'
        self._config.service = 's1'
        self._config.color = 'c1'
        self._config.data_store_exec = self._get_runnable_cmd(
            0, validate_templates({
                'schema-version': 'v1',
                'document-version': 'x',
                'gateway-templates': [],
                'service-templates': [{
                    'namespace': 'n1',
                    'service': 's1',
                    'color': 'c1',
                    'index': 199,
                    'purpose': 'out-1.txt',
                    'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4',
                }],
            })
        )
        self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({
            'schema-version': 'v1',
            'document-version': 'd12',
            'namespaces': [],
        }))

        gateway = generate.GenerateServiceConfiguration(self._config)
        res = gateway.generate_file(3, 4)
        self.assertEqual(1, res)
Exemplo n.º 2
0
    def test_service_generate_file(self) -> None:
        """Test the service generate_file function.  Uses a simple setup."""
        self._config.namespace = 'n1'
        self._config.service = 's1'
        self._config.color = 'c1'
        self._config.data_store_exec = self._get_runnable_cmd(
            0, validate_templates({
                'schema-version': 'v1',
                'document-version': 'x',
                'gateway-templates': [],
                'service-templates': [{
                    'namespace': 'n1',
                    'service': 's1',
                    'color': 'c1',
                    'index': 199,
                    'purpose': 'out-1.txt',
                    'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4',
                }, {
                    'namespace': 'n1',
                    'service': 's1',
                    'color': 'c1',
                    'index': 199,
                    'purpose': 'out-2.txt',
                    'template': 'z {{schema-version}} y',
                }],
            })
        )
        self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({
            'schema-version': 'v1',
            'document-version': 'd12',
            'namespaces': [{
                'namespace': 'n1',
                'network-id': 'nk1',
                'gateways': {'instances': [], 'prefer-gateway': True, 'protocol': 'http2'},
                'service-colors': [{
                    'service': 's1',
                    'color': 'c1',
                    'index': 199,
                    'routes': [],
                    'instances': [],
                    'namespace-egress': [],
                }],
            }],
        }))

        gateway = generate.GenerateServiceConfiguration(self._config)
        gateway.generate_file(3, 4)

        out_file_1 = os.path.join(self._config.envoy_config_dir, 'out-1.txt')
        self.assertTrue(os.path.isfile(out_file_1))
        out_file_2 = os.path.join(self._config.envoy_config_dir, 'out-2.txt')
        self.assertTrue(os.path.isfile(out_file_2))

        with open(out_file_1, 'r') as f:
            self.assertEqual('1 v1 2 True 3 False 4', f.read())

        with open(out_file_2, 'r') as f:
            self.assertEqual('z v1 y', f.read())
Exemplo n.º 3
0
def _mk_templates(
    gateways: List[Dict[str, Any]],
    services: List[Dict[str, Any]],
) -> Dict[str, Any]:
    return validate_templates({
        'schema-version': 'v1',
        'document-version': '1',
        'gateway-templates': gateways,
        'service-templates': services,
    })
Exemplo n.º 4
0
    def test_gateway_generate_file__with_error(self) -> None:
        """Test the gateway generate_file function that generates an error."""
        self._config.namespace = 'n1'
        self._config.data_store_exec = self._get_runnable_cmd(
            12, validate_templates({
                'schema-version': 'v1',
                'document-version': 'x',
                'service-templates': [],
                'gateway-templates': [{
                    'namespace': 'n1',
                    'purpose': 'out-1.txt',
                    'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4',
                }, {
                    'namespace': 'n1',
                    'purpose': 'out-2.txt',
                    'template': 'z {{schema-version}} y',
                }],
            }),
        )
        self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({
            'schema-version': 'v1',
            'document-version': 'd1',
            'namespaces': [{
                'namespace': 'n1',
                'network-id': 'nk1',
                'gateways': {'instances': [], 'prefer-gateway': False, 'protocol': 'http1.1'},
                'service-colors': [{
                    'service': 's1',
                    'color': 'c1',
                    'index': 12,
                    'routes': [],
                    'instances': [],
                    'namespace-egress': [],
                }],
            }],
        }))

        gateway = generate.GenerateGatewayConfiguration(self._config)
        res = gateway.generate_file(1, 2)
        self.assertEqual(1, res)

        out_file_1 = os.path.join(self._config.envoy_config_dir, 'out-1.txt')
        self.assertFalse(os.path.isfile(out_file_1))
        out_file_2 = os.path.join(self._config.envoy_config_dir, 'out-2.txt')
        self.assertFalse(os.path.isfile(out_file_2))
Exemplo n.º 5
0
    def test_gateway_generate_file__no_match(self) -> None:
        """Test the gateway generate_file function when the proxy input is None."""
        self._config.namespace = 'n1'
        self._config.data_store_exec = self._get_runnable_cmd(
            0, validate_templates({
                'schema-version': 'v1',
                'document-version': 'x',
                'service-templates': [],
                'gateway-templates': [{
                    'namespace': 'n1',
                    'purpose': 'out-1.txt',
                    'template': '1 {{schema-version}} 2 {{has_admin_port}} 3 {{has_clusters}} 4',
                }],
            }),
        )
        self._config.discovery_map_exec = self._get_runnable_cmd(0, validate_discovery_map({
            'schema-version': 'v1',
            'document-version': 'd1',
            'namespaces': [],
        }))

        gateway = generate.GenerateGatewayConfiguration(self._config)
        res = gateway.generate_file(1, 2)
        self.assertEqual(1, res)