Exemplo n.º 1
0
    def on_vif(self, pod, vif):
        if not self._vif:
            self._vif = vif.obj_clone()
            self._vif.active = True
            b_base.connect(self._vif, self._get_inst(pod),
                           self._cni.CNI_IFNAME, self._cni.CNI_NETNS)

        if vif.active:
            self._callback(vif)
Exemplo n.º 2
0
    def _test_connect(self, m_vif_plug, m_get_ipdb):
        def get_ipdb(netns=None):
            return self.ipdbs[netns]

        m_get_ipdb.side_effect = get_ipdb

        base.connect(self.vif, self.instance_info, self.ifname, self.netns)
        m_vif_plug.assert_called_once_with(self.vif, self.instance_info)
        self.m_c_iface.add_ip.assert_called_once_with('192.168.0.2/24')
Exemplo n.º 3
0
 def test_connect_server(self, m_vif_plug, m_write_conf,
                         m_report, m_need_l3):
     m_need_l3.return_value = False
     self.vif.mode = osv_fields.VIFVHostUserMode.SERVER
     base.connect(self.vif, self.instance_info, self.ifname, self.netns,
                  m_report, container_id=self.cont_id)
     m_vif_plug.assert_called_once_with(self.vif, self.instance_info)
     m_write_conf.assert_called_once_with(self.cont_id, self.ifname,
                                          self.port_name, self.vif)
     m_report.assert_called_once()
Exemplo n.º 4
0
    def _test_connect(self, m_vif_plug, m_get_ipdb, m_need_l3, report=None):
        def get_ipdb(netns=None):
            return self.ipdbs[netns]

        m_get_ipdb.side_effect = get_ipdb
        m_need_l3.return_value = True

        base.connect(self.vif, self.instance_info, self.ifname, self.netns,
                     report)
        m_vif_plug.assert_called_once_with(self.vif, self.instance_info)
        self.m_c_iface.add_ip.assert_called_once_with('192.168.0.2/24')
        if report:
            report.assert_called_once()
Exemplo n.º 5
0
    def test_connect_client(self, m_vif_plug, m_check_sock, m_write_conf,
                            m_os_rename, m_report, m_need_l3):
        m_need_l3.return_value = False
        self.vif.mode = osv_fields.VIFVHostUserMode.CLIENT
        m_check_sock.return_value = True
        base.connect(self.vif, self.instance_info, self.ifname, self.netns,
                     m_report, container_id=self.cont_id)
        vu_dst_socket = os.path.join(self.vu_mount_point, self.port_name)
        vu_src_socket = os.path.join(self.vu_ovs_path, self.port_name)

        m_vif_plug.assert_called_once_with(self.vif, self.instance_info)
        m_os_rename.assert_called_once_with(vu_src_socket, vu_dst_socket)
        m_write_conf.assert_called_once_with(self.cont_id, self.ifname,
                                             self.port_name, self.vif)
        m_report.assert_called_once()
Exemplo n.º 6
0
    def on_vif(self, pod, vif, ifname):
        """Called once for every vif of a Pod on every event.

        If it is the first time we see this vif, plug it in.

        :param pod: dict containing Kubernetes Pod object
        :param vif: os_vif VIF object
        :param ifname: string, name of the interfaces inside container
        """
        if ifname not in self._vifs:

            self._vifs[ifname] = vif
            _vif = vif.obj_clone()
            _vif.active = True

            # set eth0's gateway as default
            is_default_gateway = (ifname == self._cni.CNI_IFNAME)
            b_base.connect(_vif, self._get_inst(pod),
                           ifname, self._cni.CNI_NETNS,
                           is_default_gateway=is_default_gateway,
                           container_id=self._cni.CNI_CONTAINERID)