Пример #1
0
 def test_check_remote_network_config_success(self):
     options = {'com.docker.network.driver.foo': 'bar'}
     ipam_config = {
         'driver':
         'default',
         'config': [{
             'subnet': '172.0.0.1/16',
         }, {
             'subnet': '156.0.0.1/25',
             'gateway': '156.0.0.1',
             'aux_addresses': ['11.0.0.1', '24.25.26.27'],
             'ip_range': '156.0.0.1-254'
         }],
         'options': {
             'iface': 'eth0',
         }
     }
     labels = {
         'com.project.tests.istest': 'true',
         'com.project.sound.track': 'way out of here',
     }
     remote_labels = labels.copy()
     remote_labels.update({
         'com.docker.compose.project': 'compose_test',
         'com.docker.compose.network': 'net1',
     })
     net = Network(None,
                   'compose_test',
                   'net1',
                   'bridge',
                   options,
                   enable_ipv6=True,
                   ipam=ipam_config,
                   labels=labels)
     check_remote_network_config(
         {
             'Driver': 'bridge',
             'Options': options,
             'EnableIPv6': True,
             'Internal': False,
             'Attachable': True,
             'IPAM': {
                 'Driver':
                 'default',
                 'Config':
                 [{
                     'Subnet': '156.0.0.1/25',
                     'Gateway': '156.0.0.1',
                     'AuxiliaryAddresses': ['24.25.26.27', '11.0.0.1'],
                     'IPRange': '156.0.0.1-254'
                 }, {
                     'Subnet': '172.0.0.1/16',
                     'Gateway': '172.0.0.1'
                 }],
                 'Options': {
                     'iface': 'eth0',
                 },
             },
             'Labels': remote_labels
         }, net)
Пример #2
0
    def test_check_remote_network_config_driver_mismatch(self):
        net = Network(None, 'compose_test', 'net1', 'overlay')
        with pytest.raises(NetworkConfigChangedError) as e:
            check_remote_network_config(
                {'Driver': 'bridge', 'Options': {}}, net
            )

        assert 'driver has changed' in str(e.value)
Пример #3
0
    def test_check_remote_network_config_options_mismatch(self):
        net = Network(None, 'compose_test', 'net1', 'overlay')
        with pytest.raises(NetworkConfigChangedError) as e:
            check_remote_network_config({'Driver': 'overlay', 'Options': {
                'com.docker.network.driver.foo': 'baz'
            }}, net)

        assert 'option "com.docker.network.driver.foo" has changed' in str(e.value)
Пример #4
0
    def test_check_remote_network_config_driver_mismatch(self):
        net = Network(None, 'compose_test', 'net1', 'overlay')
        with pytest.raises(NetworkConfigChangedError) as e:
            check_remote_network_config(
                {'Driver': 'bridge', 'Options': {}}, net
            )

        assert 'driver has changed' in str(e.value)
Пример #5
0
    def test_check_remote_network_config_options_mismatch(self):
        net = Network(None, 'compose_test', 'net1', 'overlay')
        with pytest.raises(NetworkConfigChangedError) as e:
            check_remote_network_config({'Driver': 'overlay', 'Options': {
                'com.docker.network.driver.foo': 'baz'
            }}, net)

        assert 'option "com.docker.network.driver.foo" has changed' in str(e.value)
Пример #6
0
 def test_check_remote_network_config_whitelist(self):
     options = {"com.docker.network.driver.foo": "bar"}
     remote_options = {
         "com.docker.network.driver.overlay.vxlanid_list": "257",
         "com.docker.network.driver.foo": "bar",
     }
     net = Network(None, "compose_test", "net1", "overlay", options)
     check_remote_network_config({"Driver": "overlay", "Options": remote_options}, net)
Пример #7
0
 def test_check_remote_network_config_success(self):
     options = {'com.docker.network.driver.foo': 'bar'}
     net = Network(
         None, 'compose_test', 'net1', 'bridge',
         options
     )
     check_remote_network_config(
         {'Driver': 'bridge', 'Options': options}, net
     )
Пример #8
0
 def test_check_remote_network_config_success(self):
     options = {'com.docker.network.driver.foo': 'bar'}
     ipam_config = {
         'driver': 'default',
         'config': [
             {'subnet': '172.0.0.1/16', },
             {
                 'subnet': '156.0.0.1/25',
                 'gateway': '156.0.0.1',
                 'aux_addresses': ['11.0.0.1', '24.25.26.27'],
                 'ip_range': '156.0.0.1-254'
             }
         ],
         'options': {
             'iface': 'eth0',
         }
     }
     labels = {
         'com.project.tests.istest': 'true',
         'com.project.sound.track': 'way out of here',
     }
     remote_labels = labels.copy()
     remote_labels.update({
         'com.docker.compose.project': 'compose_test',
         'com.docker.compose.network': 'net1',
     })
     net = Network(
         None, 'compose_test', 'net1', 'bridge',
         options, enable_ipv6=True, ipam=ipam_config,
         labels=labels
     )
     check_remote_network_config(
         {
             'Driver': 'bridge',
             'Options': options,
             'EnableIPv6': True,
             'Internal': False,
             'Attachable': True,
             'IPAM': {
                 'Driver': 'default',
                 'Config': [{
                     'Subnet': '156.0.0.1/25',
                     'Gateway': '156.0.0.1',
                     'AuxiliaryAddresses': ['24.25.26.27', '11.0.0.1'],
                     'IPRange': '156.0.0.1-254'
                 }, {
                     'Subnet': '172.0.0.1/16',
                     'Gateway': '172.0.0.1'
                 }],
                 'Options': {
                     'iface': 'eth0',
                 },
             },
             'Labels': remote_labels
         },
         net
     )
Пример #9
0
 def test_check_remote_network_config_success(self):
     options = {'com.docker.network.driver.foo': 'bar'}
     net = Network(
         None, 'compose_test', 'net1', 'bridge',
         options
     )
     check_remote_network_config(
         {'Driver': 'bridge', 'Options': options}, net
     )
Пример #10
0
 def test_check_remote_network_config_whitelist(self):
     options = {'com.docker.network.driver.foo': 'bar'}
     remote_options = {
         'com.docker.network.driver.overlay.vxlanid_list': '257',
         'com.docker.network.driver.foo': 'bar'
     }
     net = Network(None, 'compose_test', 'net1', 'overlay', options)
     check_remote_network_config(
         {
             'Driver': 'overlay',
             'Options': remote_options
         }, net)
Пример #11
0
 def test_check_remote_network_config_whitelist(self):
     options = {'com.docker.network.driver.foo': 'bar'}
     remote_options = {
         'com.docker.network.driver.overlay.vxlanid_list': '257',
         'com.docker.network.driver.foo': 'bar'
     }
     net = Network(
         None, 'compose_test', 'net1', 'overlay',
         options
     )
     check_remote_network_config(
         {'Driver': 'overlay', 'Options': remote_options}, net
     )
Пример #12
0
    def test_check_remote_network_labels_mismatch(self):
        net = Network(None, 'compose_test', 'net1', 'overlay', labels={
            'com.project.touhou.character': 'sakuya.izayoi'
        })
        remote = {
            'Driver': 'overlay',
            'Options': None,
            'Labels': {
                'com.docker.compose.network': 'net1',
                'com.docker.compose.project': 'compose_test',
                'com.project.touhou.character': 'marisa.kirisame',
            }
        }
        with pytest.raises(NetworkConfigChangedError) as e:
            check_remote_network_config(remote, net)

        assert 'label "com.project.touhou.character" has changed' in str(e.value)
Пример #13
0
    def test_check_remote_network_labels_mismatch(self):
        net = Network(None, 'compose_test', 'net1', 'overlay', labels={
            'com.project.touhou.character': 'sakuya.izayoi'
        })
        remote = {
            'Driver': 'overlay',
            'Options': None,
            'Labels': {
                'com.docker.compose.network': 'net1',
                'com.docker.compose.project': 'compose_test',
                'com.project.touhou.character': 'marisa.kirisame',
            }
        }
        with mock.patch('compose.network.log') as mock_log:
            check_remote_network_config(remote, net)

        mock_log.warning.assert_called_once_with(mock.ANY)
        _, args, kwargs = mock_log.warning.mock_calls[0]
        assert 'label "com.project.touhou.character" has changed' in args[0]
Пример #14
0
    def test_check_remote_network_labels_mismatch(self):
        net = Network(None, 'compose_test', 'net1', 'overlay', labels={
            'com.project.touhou.character': 'sakuya.izayoi'
        })
        remote = {
            'Driver': 'overlay',
            'Options': None,
            'Labels': {
                'com.docker.compose.network': 'net1',
                'com.docker.compose.project': 'compose_test',
                'com.project.touhou.character': 'marisa.kirisame',
            }
        }
        with mock.patch('compose.network.log') as mock_log:
            check_remote_network_config(remote, net)

        mock_log.warn.assert_called_once_with(mock.ANY)
        _, args, kwargs = mock_log.warn.mock_calls[0]
        assert 'label "com.project.touhou.character" has changed' in args[0]
Пример #15
0
    def test_check_remote_network_config_null_remote_ipam_options(self):
        ipam_config = {
            'driver':
            'default',
            'config': [{
                'subnet': '172.0.0.1/16',
            }, {
                'subnet': '156.0.0.1/25',
                'gateway': '156.0.0.1',
                'aux_addresses': ['11.0.0.1', '24.25.26.27'],
                'ip_range': '156.0.0.1-254'
            }]
        }
        net = Network(
            None,
            'compose_test',
            'net1',
            'bridge',
            ipam=ipam_config,
        )

        check_remote_network_config(
            {
                'Driver': 'bridge',
                'Attachable': True,
                'IPAM': {
                    'Driver':
                    'default',
                    'Config':
                    [{
                        'Subnet': '156.0.0.1/25',
                        'Gateway': '156.0.0.1',
                        'AuxiliaryAddresses': ['24.25.26.27', '11.0.0.1'],
                        'IPRange': '156.0.0.1-254'
                    }, {
                        'Subnet': '172.0.0.1/16',
                        'Gateway': '172.0.0.1'
                    }],
                    'Options':
                    None
                },
            }, net)
Пример #16
0
    def test_check_remote_network_config_null_remote_ipam_options(self):
        ipam_config = {
            'driver': 'default',
            'config': [
                {'subnet': '172.0.0.1/16', },
                {
                    'subnet': '156.0.0.1/25',
                    'gateway': '156.0.0.1',
                    'aux_addresses': ['11.0.0.1', '24.25.26.27'],
                    'ip_range': '156.0.0.1-254'
                }
            ]
        }
        net = Network(
            None, 'compose_test', 'net1', 'bridge', ipam=ipam_config,
        )

        check_remote_network_config(
            {
                'Driver': 'bridge',
                'Attachable': True,
                'IPAM': {
                    'Driver': 'default',
                    'Config': [{
                        'Subnet': '156.0.0.1/25',
                        'Gateway': '156.0.0.1',
                        'AuxiliaryAddresses': ['24.25.26.27', '11.0.0.1'],
                        'IPRange': '156.0.0.1-254'
                    }, {
                        'Subnet': '172.0.0.1/16',
                        'Gateway': '172.0.0.1'
                    }],
                    'Options': None
                },
            },
            net
        )
Пример #17
0
 def test_check_remote_network_config_options_mismatch(self):
     net = Network(None, "compose_test", "net1", "overlay")
     with pytest.raises(ConfigurationError):
         check_remote_network_config({"Driver": "overlay", "Options": {"com.docker.network.driver.foo": "baz"}}, net)
Пример #18
0
 def test_check_remote_network_config_driver_mismatch(self):
     net = Network(None, "compose_test", "net1", "overlay")
     with pytest.raises(ConfigurationError):
         check_remote_network_config({"Driver": "bridge", "Options": {}}, net)
Пример #19
0
 def test_check_remote_network_config_null_remote(self):
     net = Network(None, 'compose_test', 'net1', 'overlay')
     check_remote_network_config({
         'Driver': 'overlay',
         'Options': None
     }, net)
Пример #20
0
 def test_check_remote_network_config_null_remote(self):
     net = Network(None, 'compose_test', 'net1', 'overlay')
     check_remote_network_config(
         {'Driver': 'overlay', 'Options': None}, net
     )
Пример #21
0
 def test_check_remote_network_config_options_mismatch(self):
     net = Network(None, 'compose_test', 'net1', 'overlay')
     with pytest.raises(ConfigurationError):
         check_remote_network_config({'Driver': 'overlay', 'Options': {
             'com.docker.network.driver.foo': 'baz'
         }}, net)
Пример #22
0
 def test_check_remote_network_config_driver_mismatch(self):
     net = Network(None, 'compose_test', 'net1', 'overlay')
     with pytest.raises(ConfigurationError):
         check_remote_network_config(
             {'Driver': 'bridge', 'Options': {}}, net
         )
Пример #23
0
 def test_check_remote_network_config_driver_mismatch(self):
     net = Network(None, 'compose_test', 'net1', 'overlay')
     with pytest.raises(ConfigurationError):
         check_remote_network_config({'Driver': 'bridge', 'Options': {}}, net)
Пример #24
0
 def test_remote_config_labels_none(self):
     remote = {'Labels': None}
     local = Network(None, 'test_project', 'test_network')
     check_remote_network_config(remote, local)
Пример #25
0
 def test_check_remote_network_config_options_mismatch(self):
     net = Network(None, 'compose_test', 'net1', 'overlay')
     with pytest.raises(ConfigurationError):
         check_remote_network_config({'Driver': 'overlay', 'Options': {
             'com.docker.network.driver.foo': 'baz'
         }}, net)
Пример #26
0
 def test_check_remote_network_config_success(self):
     options = {"com.docker.network.driver.foo": "bar"}
     net = Network(None, "compose_test", "net1", "bridge", options)
     check_remote_network_config({"Driver": "bridge", "Options": options}, net)