@@ -58,7 +58,6 @@ def __init__(self):
5858 },
5959 "volume" : {
6060 "diskname" : "TestDiskServ" ,
61- "max" : 6 ,
6261 },
6362 "virtual_machine" : {
6463 "displayname" : "testVM" ,
@@ -97,6 +96,7 @@ def setUpClass(cls):
9796 # Get Zone, Domain and templates
9897 cls .domain = get_domain (cls .api_client , cls .services )
9998 cls .zone = get_zone (cls .api_client , cls .services )
99+ cls .pod = get_pod (cls .api_client , cls .zone .id , cls .services )
100100 cls .services ['mode' ] = cls .zone .networktype
101101 cls .disk_offering = DiskOffering .create (
102102 cls .api_client ,
@@ -110,7 +110,25 @@ def setUpClass(cls):
110110 cls .services ["zoneid" ] = cls .zone .id
111111 cls .services ["virtual_machine" ]["zoneid" ] = cls .zone .id
112112 cls .services ["virtual_machine" ]["template" ] = template .id
113-
113+ #get max data volumes limit based on the hypervisor type and version
114+ listHost = Host .list (
115+ cls .api_client ,
116+ hypervisor = cls .services ["virtual_machine" ]["hypervisor" ],
117+ type = 'Routing' ,
118+ zoneid = cls .zone .id ,
119+ podid = cls .pod .id ,
120+ )
121+ ver = listHost [0 ].hypervisorversion
122+ cmd = listHypervisorCapabilities .listHypervisorCapabilitiesCmd ()
123+ cmd .hypervisor = cls .services ["virtual_machine" ]["hypervisor" ]
124+ res = cls .api_client .listHypervisorCapabilities (cmd )
125+ cls .debug ('Hypervisor Capabilities: {}' .format (res ))
126+ for i in range (len (res )):
127+ if res [i ].hypervisorversion == ver :
128+ break
129+ max_data_volumes = int (res [i ].maxdatavolumeslimit )
130+ cls .debug ('max data volumes:{}' .format (max_data_volumes ))
131+ cls .services ["volume" ]["max" ] = max_data_volumes
114132 # Create VMs, NAT Rules etc
115133 cls .account = Account .create (
116134 cls .api_client ,
@@ -368,6 +386,7 @@ def setUpClass(cls):
368386 # Get Zone, Domain and templates
369387 cls .domain = get_domain (cls .api_client , cls .services )
370388 cls .zone = get_zone (cls .api_client , cls .services )
389+ cls .pod = get_pod (cls .api_client , cls .zone .id , cls .services )
371390 cls .services ['mode' ] = cls .zone .networktype
372391 cls .disk_offering = DiskOffering .create (
373392 cls .api_client ,
@@ -381,7 +400,25 @@ def setUpClass(cls):
381400 cls .services ["zoneid" ] = cls .zone .id
382401 cls .services ["virtual_machine" ]["zoneid" ] = cls .zone .id
383402 cls .services ["virtual_machine" ]["template" ] = template .id
384-
403+ #get max data volumes limit based on the hypervisor type and version
404+ listHost = Host .list (
405+ cls .api_client ,
406+ hypervisor = cls .services ["virtual_machine" ]["hypervisor" ],
407+ type = 'Routing' ,
408+ zoneid = cls .zone .id ,
409+ podid = cls .pod .id ,
410+ )
411+ ver = listHost [0 ].hypervisorversion
412+ cmd = listHypervisorCapabilities .listHypervisorCapabilitiesCmd ()
413+ cmd .hypervisor = cls .services ["virtual_machine" ]["hypervisor" ]
414+ res = cls .api_client .listHypervisorCapabilities (cmd )
415+ cls .debug ('Hypervisor Capabilities: {}' .format (res ))
416+ for i in range (len (res )):
417+ if res [i ].hypervisorversion == ver :
418+ break
419+ max_data_volumes = int (res [i ].maxdatavolumeslimit )
420+ cls .debug ('max data volumes:{}' .format (max_data_volumes ))
421+ cls .services ["volume" ]["max" ] = max_data_volumes
385422 # Create VMs, NAT Rules etc
386423 cls .account = Account .create (
387424 cls .api_client ,
@@ -614,6 +651,7 @@ def setUpClass(cls):
614651 # Get Zone, Domain and templates
615652 cls .domain = get_domain (cls .api_client , cls .services )
616653 cls .zone = get_zone (cls .api_client , cls .services )
654+ cls .pod = get_pod (cls .api_client , cls .zone .id , cls .services )
617655 cls .services ['mode' ] = cls .zone .networktype
618656 cls .disk_offering = DiskOffering .create (
619657 cls .api_client ,
@@ -628,14 +666,31 @@ def setUpClass(cls):
628666 cls .services ["virtual_machine" ]["zoneid" ] = cls .zone .id
629667 cls .services ["iso" ]["zoneid" ] = cls .zone .id
630668 cls .services ["virtual_machine" ]["template" ] = template .id
631-
669+ #get max data volumes limit based on the hypervisor type and version
670+ listHost = Host .list (
671+ cls .api_client ,
672+ hypervisor = cls .services ["virtual_machine" ]["hypervisor" ],
673+ type = 'Routing' ,
674+ zoneid = cls .zone .id ,
675+ podid = cls .pod .id ,
676+ )
677+ ver = listHost [0 ].hypervisorversion
678+ cmd = listHypervisorCapabilities .listHypervisorCapabilitiesCmd ()
679+ cmd .hypervisor = cls .services ["virtual_machine" ]["hypervisor" ]
680+ res = cls .api_client .listHypervisorCapabilities (cmd )
681+ cls .debug ('Hypervisor Capabilities: {}' .format (res ))
682+ for i in range (len (res )):
683+ if res [i ].hypervisorversion == ver :
684+ break
685+ max_data_volumes = int (res [i ].maxdatavolumeslimit )
686+ cls .debug ('max data volumes:{}' .format (max_data_volumes ))
687+ cls .services ["volume" ]["max" ] = max_data_volumes
632688 # Create VMs, NAT Rules etc
633689 cls .account = Account .create (
634690 cls .api_client ,
635691 cls .services ["account" ],
636692 domainid = cls .domain .id
637693 )
638-
639694 cls .services ["account" ] = cls .account .name
640695 cls .service_offering = ServiceOffering .create (
641696 cls .api_client ,
0 commit comments