# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner <twoerner@redhat.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # """Functions to search for and change ifcfg files""" __all__ = [ "search_ifcfg_of_interface", "ifcfg_set_zone_of_interface" ] import os import os.path from firewall import config from firewall.core.logger import log from firewall.core.io.ifcfg import ifcfg def search_ifcfg_of_interface(interface): """search ifcfg file for the interface in config.IFCFGDIR""" # Return quickly if config.IFCFGDIR does not exist if not os.path.exists(config.IFCFGDIR): return None for filename in sorted(os.listdir(config.IFCFGDIR)): if not filename.startswith("ifcfg-"): continue for ignored in [ ".bak", ".orig", ".rpmnew", ".rpmorig", ".rpmsave", "-range" ]: if filename.endswith(ignored): continue if "." in filename: continue ifcfg_file = ifcfg("%s/%s" % (config.IFCFGDIR, filename)) ifcfg_file.read() if ifcfg_file.get("DEVICE") == interface: return ifcfg_file # Wasn't found above, so assume filename matches the device we want filename = "%s/ifcfg-%s" % (config.IFCFGDIR, interface) if os.path.exists(filename): ifcfg_file = ifcfg(filename) ifcfg_file.read() return ifcfg_file return None def ifcfg_set_zone_of_interface(zone, interface): """Set zone (ZONE=<zone>) in the ifcfg file that uses the interface (DEVICE=<interface>)""" if zone is None: zone = "" ifcfg_file = search_ifcfg_of_interface(interface) if ifcfg_file is not None and ifcfg_file.get("ZONE") != zone and not \ (ifcfg_file.get("ZONE") is None and zone == ""): log.debug1("Setting ZONE=%s in '%s'" % (zone, ifcfg_file.filename)) ifcfg_file.set("ZONE", zone) ifcfg_file.write()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
io | Folder | 0755 |
|
|
.__init__.pyo.40009 | File | 145 B | 0644 |
|
.base.pyo.40009 | File | 1.29 KB | 0644 |
|
.ebtables.pyo.40009 | File | 9.04 KB | 0644 |
|
.fw.pyo.40009 | File | 30.67 KB | 0644 |
|
.fw_config.pyo.40009 | File | 30.69 KB | 0644 |
|
.fw_direct.pyo.40009 | File | 14.77 KB | 0644 |
|
.fw_helper.pyo.40009 | File | 2.57 KB | 0644 |
|
.fw_icmptype.pyo.40009 | File | 3 KB | 0644 |
|
.fw_ifcfg.pyo.40009 | File | 1.84 KB | 0644 |
|
.fw_ipset.pyo.40009 | File | 9.02 KB | 0644 |
|
.fw_nm.pyo.40009 | File | 5.93 KB | 0644 |
|
.fw_policies.pyo.40009 | File | 2.94 KB | 0644 |
|
.fw_service.pyo.40009 | File | 2.14 KB | 0644 |
|
.fw_test.pyo.40009 | File | 17.45 KB | 0644 |
|
.fw_transaction.pyo.40009 | File | 10.96 KB | 0644 |
|
.fw_zone.pyo.40009 | File | 57.31 KB | 0644 |
|
.helper.pyo.40009 | File | 222 B | 0644 |
|
.icmp.pyo.40009 | File | 2.89 KB | 0644 |
|
.ipXtables.pyo.40009 | File | 34.8 KB | 0644 |
|
.ipset.pyo.40009 | File | 9.15 KB | 0644 |
|
.logger.pyo.40009 | File | 27.43 KB | 0644 |
|
.modules.pyo.40009 | File | 3.56 KB | 0644 |
|
.nftables.pyo.40009 | File | 38.56 KB | 0644 |
|
.prog.pyo.40009 | File | 988 B | 0644 |
|
.rich.pyo.40009 | File | 23.73 KB | 0644 |
|
.watcher.pyo.40009 | File | 3.55 KB | 0644 |
|
__init__.py | File | 0 B | 0644 |
|
__init__.pyc | File | 145 B | 0644 |
|
__init__.pyo | File | 145 B | 0644 |
|
base.py | File | 1.94 KB | 0644 |
|
base.pyc | File | 1.29 KB | 0644 |
|
base.pyo | File | 1.29 KB | 0644 |
|
ebtables.py | File | 9.13 KB | 0644 |
|
ebtables.pyc | File | 9.04 KB | 0644 |
|
ebtables.pyo | File | 9.04 KB | 0644 |
|
fw.py | File | 43.71 KB | 0644 |
|
fw.pyc | File | 30.67 KB | 0644 |
|
fw.pyo | File | 30.67 KB | 0644 |
|
fw_config.py | File | 35.99 KB | 0644 |
|
fw_config.pyc | File | 30.69 KB | 0644 |
|
fw_config.pyo | File | 30.69 KB | 0644 |
|
fw_direct.py | File | 20.12 KB | 0644 |
|
fw_direct.pyc | File | 14.77 KB | 0644 |
|
fw_direct.pyo | File | 14.77 KB | 0644 |
|
fw_helper.py | File | 1.79 KB | 0644 |
|
fw_helper.pyc | File | 2.57 KB | 0644 |
|
fw_helper.pyo | File | 2.57 KB | 0644 |
|
fw_icmptype.py | File | 2.77 KB | 0644 |
|
fw_icmptype.pyc | File | 3 KB | 0644 |
|
fw_icmptype.pyo | File | 3 KB | 0644 |
|
fw_ifcfg.py | File | 2.5 KB | 0644 |
|
fw_ifcfg.pyc | File | 1.84 KB | 0644 |
|
fw_ifcfg.pyo | File | 1.84 KB | 0644 |
|
fw_ipset.py | File | 8.96 KB | 0644 |
|
fw_ipset.pyc | File | 9.02 KB | 0644 |
|
fw_ipset.pyo | File | 9.02 KB | 0644 |
|
fw_nm.py | File | 6.49 KB | 0644 |
|
fw_nm.pyc | File | 5.93 KB | 0644 |
|
fw_nm.pyo | File | 5.93 KB | 0644 |
|
fw_policies.py | File | 2.74 KB | 0644 |
|
fw_policies.pyc | File | 2.94 KB | 0644 |
|
fw_policies.pyo | File | 2.94 KB | 0644 |
|
fw_service.py | File | 1.6 KB | 0644 |
|
fw_service.pyc | File | 2.14 KB | 0644 |
|
fw_service.pyo | File | 2.14 KB | 0644 |
|
fw_test.py | File | 22.06 KB | 0644 |
|
fw_test.pyc | File | 17.45 KB | 0644 |
|
fw_test.pyo | File | 17.45 KB | 0644 |
|
fw_transaction.py | File | 10.54 KB | 0644 |
|
fw_transaction.pyc | File | 10.96 KB | 0644 |
|
fw_transaction.pyo | File | 10.96 KB | 0644 |
|
fw_zone.py | File | 75.6 KB | 0644 |
|
fw_zone.pyc | File | 57.31 KB | 0644 |
|
fw_zone.pyo | File | 57.31 KB | 0644 |
|
helper.py | File | 804 B | 0644 |
|
helper.pyc | File | 222 B | 0644 |
|
helper.pyo | File | 222 B | 0644 |
|
icmp.py | File | 3.03 KB | 0644 |
|
icmp.pyc | File | 2.89 KB | 0644 |
|
icmp.pyo | File | 2.89 KB | 0644 |
|
ipXtables.py | File | 47.68 KB | 0644 |
|
ipXtables.pyc | File | 34.8 KB | 0644 |
|
ipXtables.pyo | File | 34.8 KB | 0644 |
|
ipset.py | File | 9.1 KB | 0644 |
|
ipset.pyc | File | 9.15 KB | 0644 |
|
ipset.pyo | File | 9.15 KB | 0644 |
|
logger.py | File | 30.31 KB | 0644 |
|
logger.pyc | File | 27.43 KB | 0644 |
|
logger.pyo | File | 27.43 KB | 0644 |
|
modules.py | File | 3.63 KB | 0644 |
|
modules.pyc | File | 3.56 KB | 0644 |
|
modules.pyo | File | 3.56 KB | 0644 |
|
nftables.py | File | 60.55 KB | 0644 |
|
nftables.pyc | File | 38.56 KB | 0644 |
|
nftables.pyo | File | 38.56 KB | 0644 |
|
prog.py | File | 1.47 KB | 0644 |
|
prog.pyc | File | 988 B | 0644 |
|
prog.pyo | File | 988 B | 0644 |
|
rich.py | File | 29.34 KB | 0644 |
|
rich.pyc | File | 23.73 KB | 0644 |
|
rich.pyo | File | 23.73 KB | 0644 |
|
watcher.py | File | 3.15 KB | 0644 |
|
watcher.pyc | File | 3.55 KB | 0644 |
|
watcher.pyo | File | 3.55 KB | 0644 |
|