File 0002-main-script-be-prepared-for-some-of-the-sysconfig-fi.patch of Package firewalld-rpcbind-helper.12369
From 41d2658643ff7056dbf2d0b65277d4e3983bdd78 Mon Sep 17 00:00:00 2001
From: Matthias Gerstner <matthias.gerstner@suse.de>
Date: Fri, 11 May 2018 13:03:32 +0200
Subject: [PATCH 3/4] main script: be prepared for some of the sysconfig files
not existing
---
firewall-rpc-helper.py | 49 ++++++++++++++++++++++++++++++++++---------------
1 file changed, 34 insertions(+), 15 deletions(-)
diff --git a/firewall-rpc-helper.py b/firewall-rpc-helper.py
index 990b2f3..3f6e596 100755
--- a/firewall-rpc-helper.py
+++ b/firewall-rpc-helper.py
@@ -29,6 +29,7 @@ import argparse
import subprocess
import random
import textwrap
+import errno
def error(*args, **kwargs):
kwargs["file"] = sys.stderr
@@ -89,6 +90,9 @@ class FirewallRPC(object):
)
self.m_rpcbind_services = list(self.m_rpcbind_services)
+ def isInstalled(self):
+ return os.path.exists(self.m_sysconfig_file)
+
def __init__(self):
self.m_used_ports = set()
@@ -490,7 +494,10 @@ applicable (currently only firewall-cmd calls)."""),
print('-' * len(pattern.m_label))
print()
print("Static port configuration file:",
- pattern.m_sysconfig_file)
+ pattern.m_sysconfig_file, end = '')
+ if not pattern.isInstalled():
+ print(" (package not installed)", end = '')
+ print()
print()
table_rows = []
@@ -557,14 +564,21 @@ applicable (currently only firewall-cmd calls)."""),
print("Reading current configuration from {}.".format(cfg))
print()
- with open(cfg, 'r') as cfg_fd:
- for line in cfg_fd.readlines():
- line = self.processCfgLine(
- line,
- item_handler =
- self.processCfgItemForChange
- )
- lines.append(line)
+ try:
+ with open(cfg, 'r') as cfg_fd:
+ for line in cfg_fd.readlines():
+ line = self.processCfgLine(
+ line,
+ item_handler =
+ self.processCfgItemForChange
+ )
+ lines.append(line)
+ except OSError as e:
+ if e.errno == errno.ENOENT:
+ print("Error: The package necessary for this pattern does not seem to be installed")
+ sys.exit(1)
+ else:
+ raise
print("Writing updated configuration to {}.".format(cfg))
with open(cfg, 'w') as cfg_fd:
@@ -789,12 +803,17 @@ applicable (currently only firewall-cmd calls)."""),
self.m_static_ports = {}
cfg = pattern.m_sysconfig_file
- with open(cfg, 'r') as cfg_fd:
- for line in cfg_fd.readlines():
- self.processCfgLine(
- line,
- self.processCfgItemForParsing
- )
+ try:
+ with open(cfg, 'r') as cfg_fd:
+ for line in cfg_fd.readlines():
+ self.processCfgLine(
+ line,
+ self.processCfgItemForParsing
+ )
+ except OSError as e:
+ if e.errno == errno.ENOENT:
+ # probably not installed
+ pass
def processCfgItemForParsing(self, key, val):
--
2.16.1