]>
git.proxmox.com Git - mirror_ifupdown2.git/blob - ifupdown2/ifupdownaddons/dhclient.py
3 # Copyright 2014-2017 Cumulus Networks, Inc. All rights reserved.
4 # Author: Roopa Prabhu, roopa@cumulusnetworks.com
10 from ifupdown2
.ifupdown
.utils
import utils
11 from ifupdown2
.ifupdownaddons
.utilsbase
import *
13 from ifupdown
.utils
import utils
14 from ifupdownaddons
.utilsbase
import *
17 class dhclient(utilsBase
):
18 """ This class contains helper methods to interact with the dhclient
21 def _pid_exists(self
, pidfilename
):
22 if os
.path
.exists(pidfilename
):
23 pid
= self
.read_file_oneline(pidfilename
)
24 if not os
.path
.exists('/proc/%s' %pid
):
30 def is_running(self
, ifacename
):
31 return self
._pid
_exists
('/run/dhclient.%s.pid' %ifacename
)
33 def is_running6(self
, ifacename
):
34 return self
._pid
_exists
('/run/dhclient6.%s.pid' %ifacename
)
36 def _run_dhclient_cmd(self
, cmd
, cmd_prefix
=None):
40 cmd_aslist
= cmd_prefix
.split()
42 cmd_aslist
.extend(cmd
)
45 utils
.exec_commandl(cmd_aslist
, stdout
=None, stderr
=None)
47 def stop(self
, ifacename
, cmd_prefix
=None):
48 if os
.path
.exists('/sbin/dhclient3'):
49 cmd
= ['/sbin/dhclient3', '-x', '-pf',
50 '/run/dhclient.%s.pid' %ifacename
, '-lf',
51 '/var/lib/dhcp3/dhclient.%s.leases' %ifacename
,
54 cmd
= ['/sbin/dhclient', '-x', '-pf',
55 '/run/dhclient.%s.pid' %ifacename
,
56 '-lf', '/var/lib/dhcp/dhclient.%s.leases' %ifacename
,
58 self
._run
_dhclient
_cmd
(cmd
, cmd_prefix
)
60 def start(self
, ifacename
, wait
=True, cmd_prefix
=None):
61 if os
.path
.exists('/sbin/dhclient3'):
62 cmd
= ['/sbin/dhclient3', '-pf',
63 '/run/dhclient.%s.pid' %ifacename
,
64 '-lf', '/var/lib/dhcp3/dhclient.%s.leases' %ifacename
,
67 cmd
= ['/sbin/dhclient', '-pf',
68 '/run/dhclient.%s.pid' %ifacename
, '-lf',
69 '/var/lib/dhcp/dhclient.%s.leases' %ifacename
,
73 self
._run
_dhclient
_cmd
(cmd
, cmd_prefix
)
75 def release(self
, ifacename
, cmd_prefix
=None):
76 if os
.path
.exists('/sbin/dhclient3'):
77 cmd
= ['/sbin/dhclient3', '-r', '-pf',
78 '/run/dhclient.%s.pid' %ifacename
, '-lf',
79 '/var/lib/dhcp3/dhclient.%s.leases' %ifacename
,
82 cmd
= ['/sbin/dhclient', '-r', '-pf',
83 '/run/dhclient.%s.pid' %ifacename
,
84 '-lf', '/var/lib/dhcp/dhclient.%s.leases' %ifacename
,
86 self
._run
_dhclient
_cmd
(cmd
, cmd_prefix
)
88 def start6(self
, ifacename
, wait
=True, cmd_prefix
=None):
89 cmd
= ['/sbin/dhclient', '-6', '-pf',
90 '/run/dhclient6.%s.pid' %ifacename
, '-lf',
91 '/var/lib/dhcp/dhclient6.%s.leases' % ifacename
,
95 self
._run
_dhclient
_cmd
(cmd
, cmd_prefix
)
97 def stop6(self
, ifacename
, cmd_prefix
=None):
98 cmd
= ['/sbin/dhclient', '-6', '-x', '-pf',
99 '/run/dhclient6.%s.pid' % ifacename
, '-lf',
100 '/var/lib/dhcp/dhclient6.%s.leases' % ifacename
,
102 self
._run
_dhclient
_cmd
(cmd
, cmd_prefix
)
104 def release6(self
, ifacename
, cmd_prefix
=None):
105 cmd
= ['/sbin/dhclient', '-6', '-r', '-pf',
106 '/run/dhclient6.%s.pid' %ifacename
,
107 '-lf', '/var/lib/dhcp/dhclient6.%s.leases' % ifacename
,
109 self
._run
_dhclient
_cmd
(cmd
, cmd_prefix
)