Exemplo n.º 1
0
    def test_container_ip_remove_ipv6(
        self, m_netns, m_client, m_get_container_info_or_exit, m_get_pool_or_exit, m_enforce_root
    ):
        """
        Test for container_ip_remove with an ipv6 ip argument
        """
        # Set up mock objects
        m_get_pool_or_exit.return_value = "pool"
        m_get_container_info_or_exit.return_value = {"Id": 666, "State": {"Running": 1, "Pid": "Pid_info"}}
        ipv6_nets = set()
        ipv6_nets.add(IPNetwork(IPAddress("1::1")))
        m_endpoint = Mock(spec=Endpoint)
        m_endpoint.ipv6_nets = ipv6_nets
        m_client.get_endpoint.return_value = m_endpoint

        # Set up arguments to pass to method under test
        container_name = "container1"
        ip = "1::1"
        interface = "interface"

        # Call method under test
        container.container_ip_remove(container_name, ip, interface)

        # Assert
        m_enforce_root.assert_called_once_with()
        m_get_pool_or_exit.assert_called_once_with(IPAddress(ip))
        m_get_container_info_or_exit.assert_called_once_with(container_name)
        m_client.get_endpoint.assert_called_once_with(
            hostname=utils.hostname, orchestrator_id=utils.ORCHESTRATOR_ID, workload_id=666
        )
        m_client.update_endpoint.assert_called_once_with(m_endpoint)
        m_netns.remove_ip_from_ns_veth.assert_called_once_with("Pid_info", IPAddress(ip), interface)
        m_client.unassign_address.assert_called_once_with("pool", ip)
Exemplo n.º 2
0
    def test_container_ip_remove_ipv6(self, m_netns, m_client,
                                      m_get_container_info_or_exit,
                                      m_get_pool_or_exit, m_enforce_root):
        """
        Test for container_ip_remove with an ipv6 ip argument
        """
        # Set up mock objects
        m_get_pool_or_exit.return_value = 'pool'
        m_get_container_info_or_exit.return_value = {
            'Id': 666,
            'State': {
                'Running': 1,
                'Pid': 'Pid_info'
            }
        }
        ipv6_nets = set()
        ipv6_nets.add(IPNetwork(IPAddress('1::1')))
        m_endpoint = Mock(spec=Endpoint)
        m_endpoint.ipv6_nets = ipv6_nets
        m_client.get_endpoint.return_value = m_endpoint
        m_namespace = Mock()
        m_netns.PidNamespace.return_value = m_namespace

        # Set up arguments to pass to method under test
        container_name = 'container1'
        ip = '1::1'
        interface = 'interface'

        # Call method under test
        container.container_ip_remove(container_name, ip, interface)

        # Assert
        m_enforce_root.assert_called_once_with()
        m_get_pool_or_exit.assert_called_once_with(IPAddress(ip))
        m_get_container_info_or_exit.assert_called_once_with(container_name)
        m_client.get_endpoint.assert_called_once_with(
            hostname=utils.hostname,
            orchestrator_id=utils.DOCKER_ORCHESTRATOR_ID,
            workload_id=666)
        m_client.update_endpoint.assert_called_once_with(m_endpoint)
        m_netns.PidNamespace.assert_called_once_with("Pid_info")
        m_netns.remove_ip_from_ns_veth.assert_called_once_with(
            m_namespace, IPAddress(ip), interface)
        m_client.unassign_address.assert_called_once_with(
            'pool', IPAddress(ip))
Exemplo n.º 3
0
    def test_container_ip_remove_ipv6(self, m_netns, m_client,
            m_get_container_info_or_exit, m_get_pool_or_exit, m_enforce_root):
        """
        Test for container_ip_remove with an ipv6 ip argument
        """
        # Set up mock objects
        m_get_pool_or_exit.return_value = 'pool'
        m_get_container_info_or_exit.return_value = {
            'Id': 666,
            'State': {'Running': 1, 'Pid': 'Pid_info'}
        }
        ipv6_nets = set()
        ipv6_nets.add(IPNetwork(IPAddress('1::1')))
        m_endpoint = Mock(spec=Endpoint)
        m_endpoint.ipv6_nets = ipv6_nets
        m_client.get_endpoint.return_value = m_endpoint
        m_namespace = Mock()
        m_netns.PidNamespace.return_value = m_namespace

        # Set up arguments to pass to method under test
        container_name = 'container1'
        ip = '1::1'
        interface = 'interface'

        # Call method under test
        container.container_ip_remove(container_name, ip, interface)

        # Assert
        m_enforce_root.assert_called_once_with()
        m_get_pool_or_exit.assert_called_once_with(IPAddress(ip))
        m_get_container_info_or_exit.assert_called_once_with(container_name)
        m_client.get_endpoint.assert_called_once_with(
            hostname=utils.hostname,
            orchestrator_id=utils.DOCKER_ORCHESTRATOR_ID,
            workload_id=666
        )
        m_client.update_endpoint.assert_called_once_with(m_endpoint)
        m_netns.PidNamespace.assert_called_once_with("Pid_info")
        m_netns.remove_ip_from_ns_veth.assert_called_once_with(m_namespace,
                                                               IPAddress(ip),
                                                               interface)
        m_client.unassign_address.assert_called_once_with('pool',
                                                          IPAddress(ip))