diff --git a/scripts/vm/hypervisor/xenserver/vmops b/scripts/vm/hypervisor/xenserver/vmops index 6ef3828fea2..b1c84da0b3a 100755 --- a/scripts/vm/hypervisor/xenserver/vmops +++ b/scripts/vm/hypervisor/xenserver/vmops @@ -675,7 +675,7 @@ def delete_rules_for_vm_in_bridge_firewall_chain(vmName): vm_name = vmName vmchain = vm_name if vm_name.startswith('i-') or vm_name.startswith('r-'): - vmchain = '-'.join(vm_name.split('-')[:-1]) + vmchain = '-'.join(vm_name.split('-')[:-2]) delcmd = "iptables -S BRIDGE-FIREWALL | grep " + vmchain + " | sed 's/-A/-D/'" delcmds = util.pread2(['/bin/bash', '-c', delcmd]).split('\n') @@ -832,7 +832,7 @@ def cleanup_rules_for_dead_vms(session): @echo def cleanup_rules(session, args): try: - chainscmd = "iptables-save | grep '^:' | grep -v '.*-def' | awk '{print $1}' | cut -d':' -f2" + chainscmd = "iptables-save | grep '^:' | awk '{print $1}' | cut -d':' -f2 | sed 's/-def/-VM/'|sort|uniq" chains = util.pread2(['/bin/bash', '-c', chainscmd]).split('\n') cleaned = 0 cleanup = []