mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
ifupdown2 2.0.0 release
This is a major update coming all at once from master-next branch master-next branch was started with --orphan option which is basically a new branch without history. The major changes are: - repackaging - cleanup the directory tree - rewritte setup.py to allow install from deb file or pypi (pip install) - add a Makefile to make things (like building a deb) easier - review all debian files Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
This commit is contained in:
109
ifupdown2/ifupdownaddons/dhclient.py
Normal file
109
ifupdown2/ifupdownaddons/dhclient.py
Normal file
@@ -0,0 +1,109 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright 2014-2017 Cumulus Networks, Inc. All rights reserved.
|
||||
# Author: Roopa Prabhu, roopa@cumulusnetworks.com
|
||||
#
|
||||
|
||||
import os
|
||||
|
||||
try:
|
||||
from ifupdown2.ifupdown.utils import utils
|
||||
from ifupdown2.ifupdownaddons.utilsbase import *
|
||||
except ImportError:
|
||||
from ifupdown.utils import utils
|
||||
from ifupdownaddons.utilsbase import *
|
||||
|
||||
|
||||
class dhclient(utilsBase):
|
||||
""" This class contains helper methods to interact with the dhclient
|
||||
utility """
|
||||
|
||||
def _pid_exists(self, pidfilename):
|
||||
if os.path.exists(pidfilename):
|
||||
pid = self.read_file_oneline(pidfilename)
|
||||
if not os.path.exists('/proc/%s' %pid):
|
||||
return False
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
|
||||
def is_running(self, ifacename):
|
||||
return self._pid_exists('/run/dhclient.%s.pid' %ifacename)
|
||||
|
||||
def is_running6(self, ifacename):
|
||||
return self._pid_exists('/run/dhclient6.%s.pid' %ifacename)
|
||||
|
||||
def _run_dhclient_cmd(self, cmd, cmd_prefix=None):
|
||||
if not cmd_prefix:
|
||||
cmd_aslist = []
|
||||
else:
|
||||
cmd_aslist = cmd_prefix.split()
|
||||
if cmd_aslist:
|
||||
cmd_aslist.extend(cmd)
|
||||
else:
|
||||
cmd_aslist = cmd
|
||||
utils.exec_commandl(cmd_aslist, stdout=None, stderr=None)
|
||||
|
||||
def stop(self, ifacename, cmd_prefix=None):
|
||||
if os.path.exists('/sbin/dhclient3'):
|
||||
cmd = ['/sbin/dhclient3', '-x', '-pf',
|
||||
'/run/dhclient.%s.pid' %ifacename, '-lf',
|
||||
'/var/lib/dhcp3/dhclient.%s.leases' %ifacename,
|
||||
'%s' %ifacename]
|
||||
else:
|
||||
cmd = ['/sbin/dhclient', '-x', '-pf',
|
||||
'/run/dhclient.%s.pid' %ifacename,
|
||||
'-lf', '/var/lib/dhcp/dhclient.%s.leases' %ifacename,
|
||||
'%s' %ifacename]
|
||||
self._run_dhclient_cmd(cmd, cmd_prefix)
|
||||
|
||||
def start(self, ifacename, wait=True, cmd_prefix=None):
|
||||
if os.path.exists('/sbin/dhclient3'):
|
||||
cmd = ['/sbin/dhclient3', '-pf',
|
||||
'/run/dhclient.%s.pid' %ifacename,
|
||||
'-lf', '/var/lib/dhcp3/dhclient.%s.leases' %ifacename,
|
||||
'%s' %ifacename]
|
||||
else:
|
||||
cmd = ['/sbin/dhclient', '-pf',
|
||||
'/run/dhclient.%s.pid' %ifacename, '-lf',
|
||||
'/var/lib/dhcp/dhclient.%s.leases' %ifacename,
|
||||
'%s' %ifacename]
|
||||
if not wait:
|
||||
cmd.append('-nw')
|
||||
self._run_dhclient_cmd(cmd, cmd_prefix)
|
||||
|
||||
def release(self, ifacename, cmd_prefix=None):
|
||||
if os.path.exists('/sbin/dhclient3'):
|
||||
cmd = ['/sbin/dhclient3', '-r', '-pf',
|
||||
'/run/dhclient.%s.pid' %ifacename, '-lf',
|
||||
'/var/lib/dhcp3/dhclient.%s.leases' %ifacename,
|
||||
'%s' %ifacename]
|
||||
else:
|
||||
cmd = ['/sbin/dhclient', '-r', '-pf',
|
||||
'/run/dhclient.%s.pid' %ifacename,
|
||||
'-lf', '/var/lib/dhcp/dhclient.%s.leases' %ifacename,
|
||||
'%s' %ifacename]
|
||||
self._run_dhclient_cmd(cmd, cmd_prefix)
|
||||
|
||||
def start6(self, ifacename, wait=True, cmd_prefix=None):
|
||||
cmd = ['/sbin/dhclient', '-6', '-pf',
|
||||
'/run/dhclient6.%s.pid' %ifacename, '-lf',
|
||||
'/var/lib/dhcp/dhclient6.%s.leases' % ifacename,
|
||||
'%s' %ifacename]
|
||||
if not wait:
|
||||
cmd.append('-nw')
|
||||
self._run_dhclient_cmd(cmd, cmd_prefix)
|
||||
|
||||
def stop6(self, ifacename, cmd_prefix=None):
|
||||
cmd = ['/sbin/dhclient', '-6', '-x', '-pf',
|
||||
'/run/dhclient6.%s.pid' % ifacename, '-lf',
|
||||
'/var/lib/dhcp/dhclient6.%s.leases' % ifacename,
|
||||
'%s' %ifacename]
|
||||
self._run_dhclient_cmd(cmd, cmd_prefix)
|
||||
|
||||
def release6(self, ifacename, cmd_prefix=None):
|
||||
cmd = ['/sbin/dhclient', '-6', '-r', '-pf',
|
||||
'/run/dhclient6.%s.pid' %ifacename,
|
||||
'-lf', '/var/lib/dhcp/dhclient6.%s.leases' % ifacename,
|
||||
'%s' %ifacename]
|
||||
self._run_dhclient_cmd(cmd, cmd_prefix)
|
Reference in New Issue
Block a user