Skip to content

Commit d89d405

Browse files
cloudutils: fix adding rocky9 host failure due to missing /etc/sysconfig/libvirtd (apache#7779)
1 parent d958882 commit d89d405

File tree

1 file changed

+35
-33
lines changed

1 file changed

+35
-33
lines changed

python/lib/cloudutils/configFileOps.py

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717
import re
18+
import os
1819
import tempfile
1920
import shutil
2021
from .utilities import bash
@@ -59,39 +60,42 @@ def getEntry(self, name, separator="="):
5960
return ""
6061

6162
def save(self):
62-
fp = open(self.fileName, "r")
6363
newLines = []
64-
for line in fp.readlines():
65-
matched = False
66-
for entry in self.entries:
67-
if entry.op == "add":
68-
if entry.separator == "=":
69-
matchString = "^\ *" + entry.name + ".*"
70-
elif entry.separator == " ":
71-
matchString = "^\ *" + entry.name + "\ *" + entry.value
72-
else:
73-
if entry.separator == "=":
74-
matchString = "^\ *" + entry.name + "\ *=\ *" + entry.value
64+
if os.path.exists(self.fileName) and os.path.isfile(self.fileName):
65+
fp = open(self.fileName, "r")
66+
for line in fp.readlines():
67+
matched = False
68+
for entry in self.entries:
69+
if entry.op == "add":
70+
if entry.separator == "=":
71+
matchString = "^\ *" + entry.name + ".*"
72+
elif entry.separator == " ":
73+
matchString = "^\ *" + entry.name + "\ *" + entry.value
7574
else:
76-
matchString = "^\ *" + entry.name + "\ *" + entry.value
77-
78-
match = re.match(matchString, line)
79-
if match is not None:
80-
if entry.op == "add" and entry.separator == "=":
81-
newline = "\n" + entry.name + "=" + entry.value + "\n"
82-
entry.setState("set")
83-
newLines.append(newline)
84-
self.backups.append([line, newline])
85-
matched = True
86-
break
87-
elif entry.op == "rm":
88-
entry.setState("set")
89-
self.backups.append([line, None])
90-
matched = True
91-
break
92-
93-
if not matched:
94-
newLines.append(line)
75+
if entry.separator == "=":
76+
matchString = "^\ *" + entry.name + "\ *=\ *" + entry.value
77+
else:
78+
matchString = "^\ *" + entry.name + "\ *" + entry.value
79+
80+
match = re.match(matchString, line)
81+
if match is not None:
82+
if entry.op == "add" and entry.separator == "=":
83+
newline = "\n" + entry.name + "=" + entry.value + "\n"
84+
entry.setState("set")
85+
newLines.append(newline)
86+
self.backups.append([line, newline])
87+
matched = True
88+
break
89+
elif entry.op == "rm":
90+
entry.setState("set")
91+
self.backups.append([line, None])
92+
matched = True
93+
break
94+
95+
if not matched:
96+
newLines.append(line)
97+
98+
fp.close()
9599

96100
for entry in self.entries:
97101
if entry.getState() != "set":
@@ -101,8 +105,6 @@ def save(self):
101105
self.backups.append([None, newline])
102106
entry.setState("set")
103107

104-
fp.close()
105-
106108
open(self.fileName, "w").writelines(newLines)
107109

108110
def replace_line(self, startswith,stanza,always_add=False):

0 commit comments

Comments
 (0)