Skip to content
This repository has been archived by the owner on Apr 4, 2024. It is now read-only.

Commit

Permalink
Fix a couple issues with devfs generation
Browse files Browse the repository at this point in the history
  • Loading branch information
Brandon Schneider committed Aug 22, 2018
1 parent b017e5b commit 8cfe862
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 42 deletions.
2 changes: 1 addition & 1 deletion iocage_lib/ioc_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,7 @@ def construct_devfs(ruleset_name, paths, includes=None, comment=None):
)

while ruleset_number in rules:
ruleset_number += 1
ruleset_number += 1

devfs_string = f'\n{ct_str}\n[{ruleset_name}={ruleset_number}]'

Expand Down
85 changes: 44 additions & 41 deletions iocage_lib/ioc_start.py
Original file line number Diff line number Diff line change
Expand Up @@ -264,37 +264,40 @@ def __start_jail__(self):
"r") as f:
plugin_name = self.uuid.rsplit('_', 1)[0]
devfs_json = json.load(f)
plugin_devfs = devfs_json[
"devfs_ruleset"][f'plugin_{plugin_name}']
plugin_devfs_paths = plugin_devfs['paths']

if dhcp == "on":
if 'bpf*' not in plugin_devfs_paths:
plugin_devfs_paths["bpf*"] = None

plugin_devfs_includes = None if 'includes' not in plugin_devfs\
else plugin_devfs['includes']

with open("/etc/devfs.rules", "a+") as devfs:
# Same plugin, so the name being unique as it might become
# later does not matter
devfs_str, devfs_rule = \
iocage_lib.ioc_common.construct_devfs(
f'plugin_{plugin_name}',
paths=plugin_devfs_paths,
includes=plugin_devfs_includes
)

if 'bpf*' in plugin_devfs_paths:
# Plugin needs to use it now
devfs_ruleset = devfs_rule

if devfs_str is not None:
devfs.write(devfs_str)
su.check_call(devfs_cmd, stdout=su.PIPE,
stderr=su.PIPE)

generated_devfs_ruleset = devfs_rule
if "devfs_ruleset" not in devfs_json:
generated_devfs_ruleset = self.__generate_dhcp_ruleset()
else:
plugin_devfs = devfs_json[
"devfs_ruleset"][f"plugin_{plugin_name}"]
plugin_devfs_paths = plugin_devfs['paths']

if dhcp == "on":
if 'bpf*' not in plugin_devfs_paths:
plugin_devfs_paths["bpf*"] = None

plugin_devfs_includes = None if 'includes' not in \
plugin_devfs else plugin_devfs['includes']

with open("/etc/devfs.rules", "a+") as devfs:
# Same plugin, so the name being unique as it might
# become later does not matter
devfs_str, devfs_rule = \
iocage_lib.ioc_common.construct_devfs(
f'plugin_{plugin_name}',
paths=plugin_devfs_paths,
includes=plugin_devfs_includes
)

if 'bpf*' in plugin_devfs_paths:
# Plugin needs to use it now
devfs_ruleset = devfs_rule

if devfs_str is not None:
devfs.write(devfs_str)
su.check_call(devfs_cmd, stdout=su.PIPE,
stderr=su.PIPE)

generated_devfs_ruleset = devfs_rule
else:
generated_devfs_ruleset = self.__generate_dhcp_ruleset()

Expand Down Expand Up @@ -833,16 +836,16 @@ def __generate_dhcp_ruleset():
]

with open("/etc/devfs.rules", "a+") as devfs:
devfs_str, devfs_rule = iocage_lib.ioc_common.construct_devfs(
'devfsrules_jail_dhcp',
paths=devfs_dict,
includes=devfs_includes,
comment='## IOCAGE -- Add DHCP to ruleset 4'
)

if devfs_str is not None:
devfs.write(devfs_str)
su.check_call(devfs_cmd, stdout=su.PIPE, stderr=su.PIPE)
devfs_str, devfs_rule = iocage_lib.ioc_common.construct_devfs(
'devfsrules_jail_dhcp',
paths=devfs_dict,
includes=devfs_includes,
comment='## IOCAGE -- Add DHCP to ruleset 4'
)

if devfs_str is not None:
devfs.write(devfs_str)
su.check_call(devfs_cmd, stdout=su.PIPE, stderr=su.PIPE)

return devfs_rule

Expand Down

0 comments on commit 8cfe862

Please sign in to comment.