vm: fix handling firewall_conf path

It may be (and by default is) path relative to VM directory.
This code will be gone in the final version, after merging firewall
configuration into qubes.xml. But for now have something testable.
This commit is contained in:
Marek Marczykowski-Górecki 2016-03-07 01:16:49 +01:00 committed by Wojtek Porczyk
parent c9cad71d03
commit c99a47d192

View File

@ -542,7 +542,8 @@ class BaseVM(qubes.PropertyHolder):
try: try:
old_umask = os.umask(002) old_umask = os.umask(002)
with open(self.firewall_conf, 'w') as fd: with open(os.path.join(self.dir_path,
self.firewall_conf), 'w') as fd:
tree.write(fd, encoding="UTF-8", pretty_print=True) tree.write(fd, encoding="UTF-8", pretty_print=True)
fd.close() fd.close()
os.umask(old_umask) os.umask(old_umask)
@ -568,7 +569,7 @@ class BaseVM(qubes.PropertyHolder):
return True return True
def has_firewall(self): def has_firewall(self):
return os.path.exists(self.firewall_conf) return os.path.exists(os.path.join(self.dir_path, self.firewall_conf))
@staticmethod @staticmethod
def get_firewall_defaults(): def get_firewall_defaults():
@ -583,7 +584,8 @@ class BaseVM(qubes.PropertyHolder):
conf = self.get_firewall_defaults() conf = self.get_firewall_defaults()
try: try:
tree = lxml.etree.parse(self.firewall_conf) tree = lxml.etree.parse(os.path.join(self.dir_path,
self.firewall_conf))
root = tree.getroot() root = tree.getroot()
conf["allow"] = (root.get("policy") == "allow") conf["allow"] = (root.get("policy") == "allow")