This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch 4.18
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.18 by this push:
     new 8c546bd5a68 router: do not restart conntrackd if no guest networks 
(issue 6702) (#7265)
8c546bd5a68 is described below

commit 8c546bd5a684947bfedbb372e776b9791baa4710
Author: Wei Zhou <weiz...@apache.org>
AuthorDate: Thu May 11 09:29:32 2023 +0200

    router: do not restart conntrackd if no guest networks (issue 6702) (#7265)
    
    This PR fixes #6702
    
    The service conntrackd will be started by the script 
/opt/cloud/bin/cs/CsRedundant.py, therefore add it to disabled_svcs so it is 
not started automatically when VR is started.
---
 systemvm/debian/opt/cloud/bin/cs/CsHelper.py    |  2 +-
 systemvm/debian/opt/cloud/bin/cs/CsRedundant.py | 16 +++++++++-------
 systemvm/debian/opt/cloud/bin/setup/common.sh   |  6 +++---
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/systemvm/debian/opt/cloud/bin/cs/CsHelper.py 
b/systemvm/debian/opt/cloud/bin/cs/CsHelper.py
index 2458402fc4f..b7db1b3fe16 100755
--- a/systemvm/debian/opt/cloud/bin/cs/CsHelper.py
+++ b/systemvm/debian/opt/cloud/bin/cs/CsHelper.py
@@ -86,7 +86,7 @@ def mkdir(name, mode, fatal):
         os.makedirs(name, mode)
     except OSError as e:
         if e.errno != 17:
-            print "failed to make directories " + name + " due to :" + 
e.strerror
+            print("failed to make directories " + name + " due to :" + 
e.strerror)
             if(fatal):
                 sys.exit(1)
 
diff --git a/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py 
b/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py
index fff9074ffc7..f8928dc7fd9 100755
--- a/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py
+++ b/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py
@@ -85,7 +85,7 @@ class CsRedundant(object):
 
         # No redundancy if there is no guest network
         if guest is None:
-            self.set_backup()
+            self.set_backup(restart_conntrackd=False)
             self._redundant_off()
             return
 
@@ -111,9 +111,9 @@ class CsRedundant(object):
             CsHelper.service("keepalived", "stop")
             return
 
-        CsHelper.mkdir(self.CS_RAMDISK_DIR, 0755, False)
+        CsHelper.mkdir(self.CS_RAMDISK_DIR, 0o755, False)
         CsHelper.mount_tmpfs(self.CS_RAMDISK_DIR)
-        CsHelper.mkdir(self.CS_ROUTER_DIR, 0755, False)
+        CsHelper.mkdir(self.CS_ROUTER_DIR, 0o755, False)
         for s in self.CS_TEMPLATES:
             d = s
             if s.endswith(".templ"):
@@ -222,10 +222,9 @@ class CsRedundant(object):
                 s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
                 s.bind('/tmp/primary_lock')
                 return s
-            except socket.error, e:
+            except socket.error as e:
                 error_code = e.args[0]
                 error_string = e.args[1]
-                print "Process already running (%d:%s). Exiting" % 
(error_code, error_string)
                 logging.info("Primary is already running, waiting")
                 sleep(time_between)
 
@@ -261,7 +260,7 @@ class CsRedundant(object):
         interfaces = [interface for interface in self.address.get_interfaces() 
if interface.is_public()]
         CsHelper.reconfigure_interfaces(self.cl, interfaces)
 
-    def set_backup(self):
+    def set_backup(self, restart_conntrackd=True):
         """ Set the current router to backup """
         if not self.cl.is_redundant():
             logging.error("Set backup called on non-redundant router")
@@ -282,7 +281,10 @@ class CsRedundant(object):
 
         self._remove_ipv6_guest_gateway()
 
-        CsHelper.service("conntrackd", "restart")
+        if restart_conntrackd:
+            CsHelper.service("conntrackd", "restart")
+        else:
+            CsHelper.service("conntrackd", "stop")
         CsHelper.service("ipsec", "stop")
         CsHelper.service("xl2tpd", "stop")
 
diff --git a/systemvm/debian/opt/cloud/bin/setup/common.sh 
b/systemvm/debian/opt/cloud/bin/setup/common.sh
index 26729adf5db..9002153daee 100755
--- a/systemvm/debian/opt/cloud/bin/setup/common.sh
+++ b/systemvm/debian/opt/cloud/bin/setup/common.sh
@@ -702,11 +702,11 @@ routing_svcs() {
    echo "cloud nfs-common portmap" > /var/cache/cloud/disabled_svcs
    if [ "$RROUTER" -eq "1" ]
    then
-       echo "keepalived conntrackd" >> /var/cache/cloud/enabled_svcs
-       echo "dnsmasq" >> /var/cache/cloud/disabled_svcs
+       echo "keepalived" >> /var/cache/cloud/enabled_svcs
+       echo "dnsmasq conntrackd" >> /var/cache/cloud/disabled_svcs
    else
        echo "dnsmasq" >> /var/cache/cloud/enabled_svcs
-       echo "keepalived conntrackd " >> /var/cache/cloud/disabled_svcs
+       echo "keepalived conntrackd" >> /var/cache/cloud/disabled_svcs
    fi
 }
 

Reply via email to