Example #1
0
    def enable(self, cmd_callback=None, reload_cfg=False):
        if not self.active:
            if not cmd_callback:
                cmd_callback = self.default_cmd_callback
            cmd = cmd_callback(self.get_pid_file_name())

            ip_wrapper = ip_lib.IPWrapper(namespace=self.namespace)
            ip_wrapper.netns.execute(cmd,
                                     addl_env=self.cmd_addl_env,
                                     run_as_root=self.run_as_root)
        elif reload_cfg:
            self.reload_cfg()
Example #2
0
    def _destroy_namespace_and_port(self):
        try:
            self.device_manager.destroy(self.network, self.interface_name)
        except RuntimeError:
            LOG.warning(('Failed trying to delete interface: %s'),
                        self.interface_name)

        if self.conf.dhcp_delete_namespaces and self.network.namespace:
            ns_ip = ip_lib.IPWrapper(namespace=self.network.namespace)
            try:
                ns_ip.netns.delete(self.network.namespace)
            except RuntimeError:
                LOG.warning(('Failed trying to delete namespace: %s'),
                            self.network.namespace)
Example #3
0
 def _release_lease(self, mac_address, ip):
     """Release a DHCP lease."""
     cmd = ['dhcp_release', self.interface_name, ip, mac_address]
     ip_wrapper = ip_lib.IPWrapper(namespace=self.network.namespace)
     ip_wrapper.netns.execute(cmd, run_as_root=True)