mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-8871: fixed issue with the xenserver 6.2 ipset nethash
This commit is contained in:
parent
8bd33d3db6
commit
175c8d83b8
@ -356,10 +356,21 @@ def allow_egress_traffic(session):
|
|||||||
return 'false'
|
return 'false'
|
||||||
return 'true'
|
return 'true'
|
||||||
|
|
||||||
|
def getIpsetType():
|
||||||
|
try:
|
||||||
|
out = util.pread2(['/bin/bash', '-c', "ipset -v | awk '{print $5}'"])
|
||||||
|
out.replace(".","")
|
||||||
|
if int(out) < 6:
|
||||||
|
return 'iptreemap'
|
||||||
|
else:
|
||||||
|
return 'nethash'
|
||||||
|
except:
|
||||||
|
return 'iptreemap'
|
||||||
|
|
||||||
def ipset(ipsetname, proto, start, end, cidrs):
|
def ipset(ipsetname, proto, start, end, cidrs):
|
||||||
|
type = getIpsetType()
|
||||||
try:
|
try:
|
||||||
util.pread2(['ipset', '-N', ipsetname, 'nethash'])
|
util.pread2(['ipset', '-N', ipsetname, type])
|
||||||
except:
|
except:
|
||||||
logging.debug("ipset chain already exists: " + ipsetname)
|
logging.debug("ipset chain already exists: " + ipsetname)
|
||||||
|
|
||||||
@ -367,7 +378,7 @@ def ipset(ipsetname, proto, start, end, cidrs):
|
|||||||
ipsettmp = ''.join(''.join(ipsetname.split('-')).split('_')) + str(int(time.time()) % 1000)
|
ipsettmp = ''.join(''.join(ipsetname.split('-')).split('_')) + str(int(time.time()) % 1000)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
util.pread2(['ipset', '-N', ipsettmp, 'nethash'])
|
util.pread2(['ipset', '-N', ipsettmp, type])
|
||||||
except:
|
except:
|
||||||
logging.debug("Failed to create temp ipset, reusing old name= " + ipsettmp)
|
logging.debug("Failed to create temp ipset, reusing old name= " + ipsettmp)
|
||||||
try:
|
try:
|
||||||
@ -396,7 +407,7 @@ def ipset(ipsetname, proto, start, end, cidrs):
|
|||||||
# the old ipset entry could be of iphash type, try to delete and recreate
|
# the old ipset entry could be of iphash type, try to delete and recreate
|
||||||
try:
|
try:
|
||||||
util.pread2(['ipset', '-X', ipsetname])
|
util.pread2(['ipset', '-X', ipsetname])
|
||||||
util.pread2(['ipset', '-N', ipsetname, 'nethash'])
|
util.pread2(['ipset', '-N', ipsetname, type])
|
||||||
util.pread2(['ipset', '-W', ipsettmp, ipsetname])
|
util.pread2(['ipset', '-W', ipsettmp, ipsetname])
|
||||||
except:
|
except:
|
||||||
logging.debug("Failed to swap ipset " + ipsetname)
|
logging.debug("Failed to swap ipset " + ipsetname)
|
||||||
@ -672,14 +683,15 @@ def default_network_rules_systemvm(session, args):
|
|||||||
@echo
|
@echo
|
||||||
def create_ipset_forvm (ipsetname):
|
def create_ipset_forvm (ipsetname):
|
||||||
result = True
|
result = True
|
||||||
|
type = getIpsetType()
|
||||||
try:
|
try:
|
||||||
logging.debug("Creating ipset chain .... " + ipsetname)
|
logging.debug("Creating ipset chain .... " + ipsetname)
|
||||||
util.pread2(['ipset', '-F', ipsetname])
|
util.pread2(['ipset', '-F', ipsetname])
|
||||||
util.pread2(['ipset', '-X', ipsetname])
|
util.pread2(['ipset', '-X', ipsetname])
|
||||||
util.pread2(['ipset', '-N', ipsetname, 'iphash'])
|
util.pread2(['ipset', '-N', ipsetname, type])
|
||||||
except:
|
except:
|
||||||
logging.debug("ipset chain not exists creating.... " + ipsetname)
|
logging.debug("ipset chain not exists creating.... " + ipsetname)
|
||||||
util.pread2(['ipset', '-N', ipsetname, 'iphash'])
|
util.pread2(['ipset', '-N', ipsetname, type])
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@ -1252,9 +1264,10 @@ def inflate_rules (zipped):
|
|||||||
|
|
||||||
@echo
|
@echo
|
||||||
def cache_ipset_keyword():
|
def cache_ipset_keyword():
|
||||||
|
type = getIpsetType()
|
||||||
tmpname = 'ipsetqzvxtmp'
|
tmpname = 'ipsetqzvxtmp'
|
||||||
try:
|
try:
|
||||||
util.pread2(['/bin/bash', '-c', 'ipset -N ' + tmpname + ' iphash'])
|
util.pread2(['/bin/bash', '-c', 'ipset -N ' + tmpname + type])
|
||||||
except:
|
except:
|
||||||
util.pread2(['/bin/bash', '-c', 'ipset -F ' + tmpname])
|
util.pread2(['/bin/bash', '-c', 'ipset -F ' + tmpname])
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user