Added fix for CLOUDSTACK-6316

Added changes for CLOUDSTACK-6316.
More details in the bug

Signed-off-by: Santhosh Edukulla <Santhosh.Edukulla@citrix.com>
This commit is contained in:
Santhosh Edukulla 2014-04-01 20:58:11 +05:30 committed by SrikanteswaraRao Talluri
parent e4053bc32b
commit 95a645349f
1 changed files with 67 additions and 43 deletions

View File

@ -25,6 +25,7 @@ from marvin.config.test_data import test_data
class managementServer(object):
def __init__(self):
self.mgtSvrIp = None
self.port = 8096
@ -36,6 +37,7 @@ class managementServer(object):
class dbServer(object):
def __init__(self):
self.dbSvr = None
self.port = 3306
@ -85,6 +87,7 @@ class zone(object):
class trafficType(object):
def __init__(self, typ, labeldict=None):
self.typ = typ # Guest/Management/Public
if labeldict:
@ -97,6 +100,7 @@ class trafficType(object):
class pod(object):
def __init__(self):
self.gateway = None
self.name = None
@ -111,6 +115,7 @@ class pod(object):
class VmwareDc(object):
def __init__(self):
self.zoneid = None
self.name = None
@ -120,6 +125,7 @@ class VmwareDc(object):
class cluster(object):
def __init__(self):
self.clustername = None
self.clustertype = None
@ -134,6 +140,7 @@ class cluster(object):
class host(object):
def __init__(self):
self.hypervisor = None
self.password = None
@ -151,6 +158,7 @@ class host(object):
class physicalNetwork(object):
def __init__(self):
self.name = None
self.tags = []
@ -165,6 +173,7 @@ class physicalNetwork(object):
class provider(object):
def __init__(self, name=None):
self.name = name
self.state = None
@ -175,6 +184,7 @@ class provider(object):
class network(object):
def __init__(self):
self.displaytext = None
self.name = None
@ -187,6 +197,7 @@ class network(object):
class iprange(object):
def __init__(self):
'''tagged/untagged'''
self.gateway = None
@ -200,12 +211,14 @@ class iprange(object):
class primaryStorage(object):
def __init__(self):
self.name = None
self.url = None
class secondaryStorage(object):
def __init__(self):
self.url = None
self.provider = None
@ -213,6 +226,7 @@ class secondaryStorage(object):
class cacheStorage(object):
def __init__(self):
self.url = None
self.provider = None
@ -220,6 +234,7 @@ class cacheStorage(object):
class s3(object):
def __init__(self):
self.accesskey = None
self.secretkey = None
@ -232,6 +247,7 @@ class s3(object):
class netscaler(object):
def __init__(self, hostname=None, username='nsroot', password='nsroot'):
self.hostname = hostname
self.username = username
@ -248,11 +264,12 @@ class netscaler(object):
def __repr__(self):
req = zip(self.__dict__.keys(), self.__dict__.values())
return self.hostname+"?" + "&".join(["=".join([r[0], r[1]])
for r in req])
return self.hostname + "?" + "&".join(["=".join([r[0], r[1]])
for r in req])
class srx(object):
def __init__(self, hostname=None, username='root', password='admin'):
self.hostname = hostname
self.username = username
@ -271,11 +288,12 @@ class srx(object):
def __repr__(self):
req = zip(self.__dict__.keys(), self.__dict__.values())
return self.hostname+"?" + "&".join(["=".join([r[0], r[1]])
for r in req])
return self.hostname + "?" + "&".join(["=".join([r[0], r[1]])
for r in req])
class bigip(object):
def __init__(self, hostname=None, username='root', password='default'):
self.hostname = hostname
self.username = username
@ -292,11 +310,12 @@ class bigip(object):
def __repr__(self):
req = zip(self.__dict__.keys(), self.__dict__.values())
return self.hostname+"?" + "&".join(["=".join([r[0], r[1]])
for r in req])
return self.hostname + "?" + "&".join(["=".join([r[0], r[1]])
for r in req])
class ConfigManager(object):
'''
@Name: ConfigManager
@Desc: 1. It provides the basic configuration facilities to marvin.
@ -328,6 +347,7 @@ class ConfigManager(object):
8. Users can use their own configuration file passed to
"getConfig" API,once configObj is returned.
'''
def __init__(self, cfg_file=None):
self.__filePath = cfg_file
self.__parsedCfgDict = None
@ -364,8 +384,8 @@ class ConfigManager(object):
configLines.append(ws)
config = json.loads("\n".join(configLines))
config_dict = config
except Exception, e:
#Will replace with log once we have logging done
except Exception as e:
# Will replace with log once we have logging done
print "\n Exception occurred under ConfigManager:__parseConfig" \
" :%s", GetDetailExceptionInfo(e)
finally:
@ -413,9 +433,9 @@ class ConfigManager(object):
def getDeviceUrl(obj):
req = zip(obj.__dict__.keys(), obj.__dict__.values())
if obj.hostname:
return "http://" + obj.hostname+"?" + "&".join(["=".join([r[0],
r[1]])
for r in req])
return "http://" + obj.hostname + "?" + "&".join(["=".join([r[0],
r[1]])
for r in req])
else:
return None
@ -430,11 +450,11 @@ def descSetupInBasicMode():
z.dns2 = "8.8.4.4"
z.internaldns1 = "192.168.110.254"
z.internaldns2 = "192.168.110.253"
z.name = "test"+str(l)
z.name = "test" + str(l)
z.networktype = 'Basic'
z.securitygroupenabled = 'True'
#If security groups are reqd
# If security groups are reqd
sgprovider = provider()
sgprovider.broadcastdomainrange = 'Pod'
sgprovider.name = 'SecurityGroupProvider'
@ -460,15 +480,15 @@ def descSetupInBasicMode():
ip = iprange()
ip.gateway = p.gateway
ip.netmask = p.netmask
ip.startip = "192.168.%d.%d" % (i, j*20)
ip.endip = "192.168.%d.%d" % (i, j*20+10)
ip.startip = "192.168.%d.%d" % (i, j * 20)
ip.endip = "192.168.%d.%d" % (i, j * 20 + 10)
p.guestIpRanges.append(ip)
'''add 10 clusters'''
for j in range(2):
c = cluster()
c.clustername = "test"+str(l)+str(i) + str(j)
c.clustername = "test" + str(l) + str(i) + str(j)
c.clustertype = "CloudManaged"
c.hypervisor = "Simulator"
@ -477,15 +497,16 @@ def descSetupInBasicMode():
h = host()
h.username = "root"
h.password = "password"
memory = 8*1024*1024*1024
localstorage = 1*1024*1024*1024*1024
memory = 8 * 1024 * 1024 * 1024
localstorage = 1 * 1024 * 1024 * 1024 * 1024
h.url = "http://sim/%d%d%d%d" % (l, i, j, k)
c.hosts.append(h)
'''add 2 primary storages'''
for m in range(2):
primary = primaryStorage()
primary.name = "primary"+str(l) + str(i) + str(j) + str(m)
primary.name = "primary" + \
str(l) + str(i) + str(j) + str(m)
primary.url = "nfs://localhost/path%s" % (str(l) + str(i) +
str(j) + str(m))
c.primaryStorages.append(primary)
@ -497,7 +518,7 @@ def descSetupInBasicMode():
'''add two secondary'''
for i in range(5):
secondary = secondaryStorage()
secondary.url = "nfs://localhost/path"+str(l) + str(i)
secondary.url = "nfs://localhost/path" + str(l) + str(i)
z.secondaryStorages.append(secondary)
zs.zones.append(z)
@ -539,7 +560,7 @@ def descSetupInEipMode():
z.dns2 = "8.8.4.4"
z.internaldns1 = "192.168.110.254"
z.internaldns2 = "192.168.110.253"
z.name = "test"+str(l)
z.name = "test" + str(l)
z.networktype = 'Basic'
ips = iprange()
@ -550,7 +571,7 @@ def descSetupInEipMode():
ips.netmask = "255.255.255.0"
z.ipranges.append(ips)
#If security groups are reqd
# If security groups are reqd
sgprovider = provider()
sgprovider.broadcastdomainrange = 'Pod'
sgprovider.name = 'SecurityGroupProvider'
@ -584,15 +605,15 @@ def descSetupInEipMode():
ip = iprange()
ip.gateway = p.gateway
ip.netmask = p.netmask
ip.startip = "192.168.%d.%d" % (i, j*20)
ip.endip = "192.168.%d.%d" % (i, j*20+10)
ip.startip = "192.168.%d.%d" % (i, j * 20)
ip.endip = "192.168.%d.%d" % (i, j * 20 + 10)
p.guestIpRanges.append(ip)
'''add 10 clusters'''
for j in range(2):
c = cluster()
c.clustername = "test"+str(l)+str(i) + str(j)
c.clustername = "test" + str(l) + str(i) + str(j)
c.clustertype = "CloudManaged"
c.hypervisor = "Simulator"
@ -607,7 +628,8 @@ def descSetupInEipMode():
'''add 2 primary storages'''
for m in range(2):
primary = primaryStorage()
primary.name = "primary"+str(l) + str(i) + str(j) + str(m)
primary.name = "primary" + \
str(l) + str(i) + str(j) + str(m)
primary.url = "nfs://localhost/path%s" % (str(l) + str(i)
+ str(j)
+ str(m))
@ -620,7 +642,7 @@ def descSetupInEipMode():
'''add two secondary'''
for i in range(5):
secondary = secondaryStorage()
secondary.url = "nfs://localhost/path"+str(l) + str(i)
secondary.url = "nfs://localhost/path" + str(l) + str(i)
z.secondaryStorages.append(secondary)
zs.zones.append(z)
@ -660,7 +682,7 @@ def descSetupInAdvancedMode():
z.dns2 = "8.8.4.4"
z.internaldns1 = "192.168.110.254"
z.internaldns2 = "192.168.110.253"
z.name = "test"+str(l)
z.name = "test" + str(l)
z.networktype = 'Advanced'
z.guestcidraddress = "10.1.1.0/24"
z.vlan = "100-2000"
@ -696,7 +718,7 @@ def descSetupInAdvancedMode():
'''add 10 clusters'''
for j in range(2):
c = cluster()
c.clustername = "test"+str(l)+str(i) + str(j)
c.clustername = "test" + str(l) + str(i) + str(j)
c.clustertype = "CloudManaged"
c.hypervisor = "Simulator"
@ -707,7 +729,7 @@ def descSetupInAdvancedMode():
h.password = "password"
memory = 8 * 1024 * 1024 * 1024
localstorage = 1 * 1024 * 1024 * 1024 * 1024
#h.url = "http://sim/%d%d%d%d/cpucore=1&cpuspeed=8000&\
# h.url = "http://sim/%d%d%d%d/cpucore=1&cpuspeed=8000&\
# memory=%d&localstorage=%d"%(l, i, j, k, memory,
# localstorage)
h.url = "http://sim/%d%d%d%d" % (l, i, j, k)
@ -716,8 +738,9 @@ def descSetupInAdvancedMode():
'''add 2 primary storages'''
for m in range(2):
primary = primaryStorage()
primary.name = "primary"+str(l) + str(i) + str(j) + str(m)
#primary.url = "nfs://localhost/path%s/size=%d" %
primary.name = "primary" + \
str(l) + str(i) + str(j) + str(m)
# primary.url = "nfs://localhost/path%s/size=%d" %
# (str(l) + str(i) + str(j) + str(m), size)
primary.url = "nfs://localhost/path%s" % (str(l) + str(i)
+ str(j)
@ -731,7 +754,7 @@ def descSetupInAdvancedMode():
'''add two secondary'''
for i in range(5):
secondary = secondaryStorage()
secondary.url = "nfs://localhost/path"+str(l) + str(i)
secondary.url = "nfs://localhost/path" + str(l) + str(i)
z.secondaryStorages.append(secondary)
'''add default public network'''
@ -781,7 +804,7 @@ def descSetupInAdvancedsgMode():
z.dns2 = "8.8.4.4"
z.internaldns1 = "192.168.110.254"
z.internaldns2 = "192.168.110.253"
z.name = "test"+str(l)
z.name = "test" + str(l)
z.networktype = 'Advanced'
z.vlan = "100-2000"
z.securitygroupenabled = "true"
@ -790,7 +813,7 @@ def descSetupInAdvancedsgMode():
pn.name = "test-network"
pn.traffictypes = [trafficType("Guest"), trafficType("Management")]
#If security groups are reqd
# If security groups are reqd
sgprovider = provider()
sgprovider.broadcastdomainrange = 'ZONE'
sgprovider.name = 'SecurityGroupProvider'
@ -810,7 +833,7 @@ def descSetupInAdvancedsgMode():
'''add 10 clusters'''
for j in range(2):
c = cluster()
c.clustername = "test"+str(l)+str(i) + str(j)
c.clustername = "test" + str(l) + str(i) + str(j)
c.clustertype = "CloudManaged"
c.hypervisor = "Simulator"
@ -821,17 +844,18 @@ def descSetupInAdvancedsgMode():
h.password = "password"
memory = 8 * 1024 * 1024 * 1024
localstorage = 1 * 1024 * 1024 * 1024 * 1024
#h.url = "http://sim/%d%d%d%d/cpucore=1&cpuspeed=8000&\
#memory=%d&localstorage=%d" % (l, i, j, k, memory,
#localstorage)
# h.url = "http://sim/%d%d%d%d/cpucore=1&cpuspeed=8000&\
# memory=%d&localstorage=%d" % (l, i, j, k, memory,
# localstorage)
h.url = "http://sim/%d%d%d%d" % (l, i, j, k)
c.hosts.append(h)
'''add 2 primary storages'''
for m in range(2):
primary = primaryStorage()
primary.name = "primary"+str(l) + str(i) + str(j) + str(m)
#primary.url = "nfs://localhost/path%s/size=%d" % \
primary.name = "primary" + \
str(l) + str(i) + str(j) + str(m)
# primary.url = "nfs://localhost/path%s/size=%d" % \
#(str(l) + str(i) + str(j) + str(m), size)
primary.url = "nfs://localhost/path%s" % \
(str(l) + str(i) + str(j) + str(m))
@ -844,7 +868,7 @@ def descSetupInAdvancedsgMode():
'''add two secondary'''
for i in range(5):
secondary = secondaryStorage()
secondary.url = "nfs://localhost/path"+str(l) + str(i)
secondary.url = "nfs://localhost/path" + str(l) + str(i)
z.secondaryStorages.append(secondary)
'''add default guest network'''
@ -904,7 +928,7 @@ def getSetupConfig(file):
configLines.append(ws)
config = json.loads("\n".join(configLines))
return jsonHelper.jsonLoader(config)
except Exception, e:
except Exception as e:
print "\nException Occurred under getSetupConfig %s" % \
GetDetailExceptionInfo(e)