mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
ifupdown2: Modify implementation of nowait option
Ticket: None Reviewed By: CCR-4058 Testing Done: ifup'd interface with both dhcp-wait: "no" and dhcp-wait: "yes" and not specified at all. A previous patch implemented the nowait option for DHCP. This patch changes the name of the option to "dhcp-wait" and makes the default, if nothing is specified in the policy files, to be "yes", which means dhclient will be called without the "-nw" option, causing it to wait for up to a minute for a response from the DHCP server before continuing. The format of the JSON in the policy file for this option was also changed so that it conforms to the other ifupdown2 policy options. This format is now: { "dhcp": { "defaults": { "dhcp-wait": "no" } } } Also, the documented argument values are "yes" and "no". Any other values, will be interpreted as "yes". A subsequent patch in cl-basefiles will be made to include this fragment in /var/lib/ifupdown2/policy.d/dhcp.json so that Cumulus Linux will default to not waiting for DHCP to complete.
This commit is contained in:
@@ -31,10 +31,9 @@ class dhcp(moduleBase):
|
||||
ifaceobj.name)
|
||||
return
|
||||
try:
|
||||
nowait = policymanager.policymanager_api.get_attr_default(
|
||||
module_name='dhcp', attr='nowait')
|
||||
nowait = not str(nowait).lower() in [ "false", "f", "no", "n", "o",
|
||||
"off", "disabled", "0", "0.0" ]
|
||||
dhcp_wait = policymanager.policymanager_api.get_attr_default(
|
||||
module_name=self.__class__.__name__, attr='dhcp-wait')
|
||||
wait = not str(dhcp_wait).lower() == "no"
|
||||
if ifaceobj.addr_family == 'inet':
|
||||
# First release any existing dhclient processes
|
||||
try:
|
||||
@@ -42,7 +41,7 @@ class dhcp(moduleBase):
|
||||
self.dhclientcmd.stop(ifaceobj.name)
|
||||
except:
|
||||
pass
|
||||
self.dhclientcmd.start(ifaceobj.name, nowait=nowait)
|
||||
self.dhclientcmd.start(ifaceobj.name, wait=wait)
|
||||
elif ifaceobj.addr_family == 'inet6':
|
||||
accept_ra = ifaceobj.get_attr_value_first('accept_ra')
|
||||
if accept_ra:
|
||||
@@ -58,7 +57,7 @@ class dhcp(moduleBase):
|
||||
self.dhclientcmd.stop6(ifaceobj.name)
|
||||
except:
|
||||
pass
|
||||
self.dhclientcmd.start6(ifaceobj.name, nowait=nowait)
|
||||
self.dhclientcmd.start6(ifaceobj.name, wait=wait)
|
||||
except Exception, e:
|
||||
self.log_error(str(e))
|
||||
|
||||
|
Reference in New Issue
Block a user