示例#1
0
    def _add_eth_port(self):
        if self.config.enable_nat is True or \
                self.config.uplink_eth_port_name is None:
            return
        if BridgeTools.port_is_in_bridge(self.config.uplink_bridge,
                                         self.config.uplink_eth_port_name):
            return
        self._cleanup_if(self.config.uplink_eth_port_name, True)
        # Add eth interface to OVS.
        ovs_add_port = "ovs-vsctl --may-exist add-port %s %s" \
                       % (self.config.uplink_bridge, self.config.uplink_eth_port_name)
        try:
            subprocess.Popen(ovs_add_port, shell=True).wait()
        except subprocess.CalledProcessError as ex:
            raise Exception('Error: %s failed with: %s' % (ovs_add_port, ex))

        self.logger.info("Add uplink port: %s", ovs_add_port)
示例#2
0
    def _del_eth_port(self):
        if BridgeTools.port_is_in_bridge(self.config.uplink_bridge,
                                             self.config.uplink_eth_port_name):
            self._cleanup_if(self.config.uplink_bridge, True)
            if self.config.uplink_eth_port_name is None:
                return

            ovs_rem_port = "ovs-vsctl --if-exists del-port %s %s" \
                           % (self.config.uplink_bridge, self.config.uplink_eth_port_name)
            try:
                subprocess.Popen(ovs_rem_port, shell=True).wait()
                self.logger.info("Remove ovs uplink port: %s", ovs_rem_port)
            except subprocess.CalledProcessError as ex:
                self.logger.debug("ignore port del error: %s ", ex)
                return

        if self.config.uplink_eth_port_name:
            self._set_sgi_ip_addr(self.config.uplink_eth_port_name)
            self._set_sgi_gw(self.config.uplink_eth_port_name)
示例#3
0
    def _add_eth_port(self):
        if self.config.enable_nat is True or \
                self.config.uplink_eth_port_name is None:
            return
        if BridgeTools.port_is_in_bridge(self.config.uplink_bridge,
                                         self.config.uplink_eth_port_name):
            return
        self._cleanup_if(self.config.uplink_eth_port_name, True)
        # Add eth interface to OVS.
        ovs_add_port = "ovs-vsctl --may-exist add-port %s %s" \
                       % (self.config.uplink_bridge, self.config.uplink_eth_port_name)
        try:
            subprocess.Popen(ovs_add_port, shell=True).wait()
        except subprocess.CalledProcessError as ex:
            raise Exception('Error: %s failed with: %s' % (ovs_add_port, ex))

        self.logger.info("Add uplink port: %s", ovs_add_port)
        # sometimes the mac address changes after port addition, so restart the service.
        self.logger.info(
            'OVS uplink bridge reconfigured, restarting to get new config')
        os._exit(0)  # pylint: disable=protected-access