Check if corosync.conf exists before calling parser
authorStefan Reiter <s.reiter@proxmox.com>
Wed, 3 Jul 2019 12:27:33 +0000 (14:27 +0200)
committerFabian Gr├╝nbichler <f.gruenbichler@proxmox.com>
Wed, 3 Jul 2019 13:41:15 +0000 (15:41 +0200)
Calling cfs_read_file with no corosync.conf (i.e. on a standalone node)
returns {} instead of undef. The previous patches assumes undef for this
scenario. To avoid confusing checks all over the place, simply leave the
config as undef if no file exists.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
src/PVE/Firewall.pm

index 16d7301..96c45e9 100644 (file)
@@ -3519,7 +3519,8 @@ sub compile {
        $hostfw_conf = load_hostfw_conf($cluster_conf, undef) if !$hostfw_conf;
 
        # cfs_update is handled by daemon or API
-       $corosync_conf = PVE::Cluster::cfs_read_file("corosync.conf") if !$corosync_conf;
+       $corosync_conf = PVE::Cluster::cfs_read_file("corosync.conf")
+           if !defined($corosync_conf) && PVE::Corosync::check_conf_exists(1);
 
        $vmdata = read_local_vm_config();
        $vmfw_configs = read_vm_firewall_configs($cluster_conf, $vmdata, undef);