mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Signed-off-by: Chip Childers <chip.childers@gmail.com> I've assumed that Gavin's commit is appropriate, based on an assumption that we will keep these files in the source tree. If https://issues.apache.org/jira/browse/LEGAL-146 results in a different opionion from the members, then we will end up having to do something more drastic anyway.
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Licensed to the Apache Software Foundation (ASF) under one
 | |
| # or more contributor license agreements.  See the NOTICE file
 | |
| # distributed with this work for additional information
 | |
| # regarding copyright ownership.  The ASF licenses this file
 | |
| # to you under the Apache License, Version 2.0 (the
 | |
| # "License"); you may not use this file except in compliance
 | |
| # with the License.  You may obtain a copy of the License at
 | |
| #
 | |
| #   http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing,
 | |
| # software distributed under the License is distributed on an
 | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
| # KIND, either express or implied.  See the License for the
 | |
| # specific language governing permissions and limitations
 | |
| # under the License.
 | |
| 
 | |
| CONNTRACKD_BIN=/usr/sbin/conntrackd
 | |
| CONNTRACKD_LOCK=/var/lock/conntrack.lock
 | |
| CONNTRACKD_CONFIG=/etc/conntrackd/conntrackd.conf
 | |
| CONNTRACKD_LOG=[RROUTER_LOG]
 | |
| 
 | |
| case "$1" in
 | |
|   primary)
 | |
|     #
 | |
|     # commit the external cache into the kernel table
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -c
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|         logger "ERROR: failed to invoke conntrackd -c"
 | |
|     fi
 | |
| 
 | |
|     #
 | |
|     # flush the internal and the external caches
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -f
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|     	logger "ERROR: failed to invoke conntrackd -f"
 | |
|     fi
 | |
| 
 | |
|     #
 | |
|     # resynchronize my internal cache to the kernel table
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -R
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|     	logger "ERROR: failed to invoke conntrackd -R"
 | |
|     fi
 | |
| 
 | |
|     #
 | |
|     # send a bulk update to backups 
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -B
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|         logger "ERROR: failed to invoke conntrackd -B"
 | |
|     fi
 | |
|     echo Conntrackd switch to primary done >> $CONNTRACKD_LOG
 | |
|     ;;
 | |
|   backup)
 | |
|     #
 | |
|     # is conntrackd running? request some statistics to check it
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -s
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|         #
 | |
| 	# something's wrong, do we have a lock file?
 | |
| 	#
 | |
|     	if [ -f $CONNTRACKD_LOCK ]
 | |
| 	then
 | |
| 	    logger "WARNING: conntrackd was not cleanly stopped."
 | |
| 	    logger "If you suspect that it has crashed:"
 | |
| 	    logger "1) Enable coredumps"
 | |
| 	    logger "2) Try to reproduce the problem"
 | |
| 	    logger "3) Post the coredump to netfilter-devel@vger.kernel.org"
 | |
| 	    rm -f $CONNTRACKD_LOCK
 | |
| 	fi
 | |
| 	$CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -d
 | |
| 	if [ $? -eq 1 ]
 | |
| 	then
 | |
| 	    logger "ERROR: cannot launch conntrackd"
 | |
| 	    exit 1
 | |
| 	fi
 | |
|     fi
 | |
|     #
 | |
|     # shorten kernel conntrack timers to remove the zombie entries.
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -t
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|     	logger "ERROR: failed to invoke conntrackd -t"
 | |
|     fi
 | |
| 
 | |
|     #
 | |
|     # request resynchronization with master firewall replica (if any)
 | |
|     # Note: this does nothing in the alarm approach.
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -n
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|     	logger "ERROR: failed to invoke conntrackd -n"
 | |
|     fi
 | |
|     echo Conntrackd switch to backup done >> $CONNTRACKD_LOG
 | |
|     ;;
 | |
|   fault)
 | |
|     #
 | |
|     # shorten kernel conntrack timers to remove the zombie entries.
 | |
|     #
 | |
|     $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -t
 | |
|     if [ $? -eq 1 ]
 | |
|     then
 | |
|     	logger "ERROR: failed to invoke conntrackd -t"
 | |
|     fi
 | |
|     echo Conntrackd switch to fault done >> $CONNTRACKD_LOG
 | |
|     ;;
 | |
|   *)
 | |
|     logger "conntrackd: ERROR: unknown state transition: " $1
 | |
|     echo "Usage: primary-backup.sh {primary|backup|fault}"
 | |
|     exit 1
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| exit 0
 |