mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
bug CS-16172
Reviewed-by: chiradeep
This commit is contained in:
parent
0d9b81aac6
commit
cefc5cbff3
@ -489,36 +489,54 @@ def cleanup_rules_for_dead_vms():
|
||||
|
||||
|
||||
def cleanup_rules():
|
||||
try:
|
||||
try:
|
||||
chainscmd = "iptables-save | grep '^:' | grep -v '.*-def' | grep -v '.*-eg' | awk '{print $1}' | cut -d':' -f2"
|
||||
chains = execute(chainscmd).split('\n')
|
||||
cleanup = []
|
||||
for chain in chains:
|
||||
if 1 in [ chain.startswith(c) for c in ['r-', 'i-', 's-', 'v-'] ]:
|
||||
vm_name = chain
|
||||
|
||||
chainscmd = "iptables-save | grep '^:' | grep -v '.*-def' | grep -v '.*-eg' | awk '{print $1}' | cut -d':' -f2"
|
||||
chains = execute(chainscmd).split('\n')
|
||||
cleaned = 0
|
||||
cleanup = []
|
||||
for chain in chains:
|
||||
if 1 in [ chain.startswith(c) for c in ['r-', 'i-', 's-', 'v-'] ]:
|
||||
vm_name = chain
|
||||
cmd = "virsh list |grep " + vm_name
|
||||
try:
|
||||
result = execute(cmd)
|
||||
except:
|
||||
result = None
|
||||
|
||||
cmd = "virsh list |grep " + vm_name
|
||||
try:
|
||||
result = execute(cmd)
|
||||
except:
|
||||
result = None
|
||||
if result == None or len(result) == 0:
|
||||
logging.debug("chain " + chain + " does not correspond to a vm, cleaning up")
|
||||
cleanup.append(vm_name)
|
||||
continue
|
||||
if result.find("running") == -1:
|
||||
logging.debug("vm " + vm_name + " is not running, cleaning up")
|
||||
cleanup.append(vm_name)
|
||||
|
||||
if result == None or len(result) == 0:
|
||||
logging.debug("chain " + chain + " does not correspond to a vm, cleaning up")
|
||||
cleanup.append(vm_name)
|
||||
continue
|
||||
if result.find("running") == -1:
|
||||
logging.debug("vm " + vm_name + " is not running, cleaning up")
|
||||
cleanup.append(vm_name)
|
||||
chainscmd = "ebtables-save |grep :i |awk '{print $1}' |sed -e 's/\-in//g' |sed -e 's/\-out//g' |sed -e 's/^://g'"
|
||||
chains = execute(chainscmd).split('\n')
|
||||
for chain in chains:
|
||||
if 1 in [ chain.startswith(c) for c in ['r-', 'i-', 's-', 'v-'] ]:
|
||||
vm_name = chain
|
||||
|
||||
for vmname in cleanup:
|
||||
destroy_network_rules_for_vm(vmname)
|
||||
cmd = "virsh list |grep " + vm_name
|
||||
try:
|
||||
result = execute(cmd)
|
||||
except:
|
||||
result = None
|
||||
|
||||
logging.debug("Cleaned up rules for " + str(len(cleanup)) + " chains")
|
||||
except:
|
||||
logging.debug("Failed to cleanup rules !")
|
||||
if result == None or len(result) == 0:
|
||||
logging.debug("chain " + chain + " does not correspond to a vm, cleaning up")
|
||||
cleanup.append(vm_name)
|
||||
continue
|
||||
if result.find("running") == -1:
|
||||
logging.debug("vm " + vm_name + " is not running, cleaning up")
|
||||
cleanup.append(vm_name)
|
||||
|
||||
for vmname in cleanup:
|
||||
destroy_network_rules_for_vm(vmname)
|
||||
|
||||
logging.debug("Cleaned up rules for " + str(len(cleanup)) + " chains")
|
||||
except:
|
||||
logging.debug("Failed to cleanup rules !")
|
||||
|
||||
def check_rule_log_for_vm(vmName, vmId, vmIP, domID, signature, seqno):
|
||||
vm_name = vmName;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user