mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			255 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			255 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright 2012 Citrix Systems, Inc. Licensed under the
 | |
| # Apache License, Version 2.0 (the "License"); you may not use this
 | |
| # file except in compliance with the License.  Citrix Systems, Inc.
 | |
| # reserves all rights not expressly granted by the License.
 | |
| # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| # 
 | |
| # Automatically generated by addcopyright.py at 04/03/2012
 | |
| import uuid
 | |
| import time
 | |
| import cloudstackAPIException
 | |
| import cloudstackTestClient
 | |
| from cloudstackAPI import *
 | |
| if __name__ == "__main__":
 | |
|     hypervisor = "Simulator"
 | |
|     hostNum = 100
 | |
|     clusterNum = hostNum/10
 | |
|     templateId = 10
 | |
|     vmNum = 10
 | |
|    
 | |
|     randomName = str(uuid.uuid4())
 | |
|    
 | |
|     testclient = cloudstackTestClient.cloudstackTestClient("localhost")
 | |
|     api = testclient.getApiClient()
 | |
|     
 | |
|     
 | |
|     updatecfg = updateConfiguration.updateConfigurationCmd()
 | |
|     updatecfg.name = "expunge.delay"
 | |
|     updatecfg.value = "100"
 | |
|     ret = api.updateConfiguration(updatecfg)
 | |
|     
 | |
|     updatecfg.name = "expunge.interval"
 | |
|     updatecfg.value = "100"
 | |
|     ret = api.updateConfiguration(updatecfg)
 | |
|     
 | |
|     updatecfg.name = "ping.interval"
 | |
|     updatecfg.value = "180"
 | |
|     ret = api.updateConfiguration(updatecfg)
 | |
|     
 | |
|     updatecfg.name = "system.vm.use.local.storage"
 | |
|     updatecfg.value = "true"
 | |
|     ret = api.updateConfiguration(updatecfg)
 | |
|     
 | |
|     updatecfg.name = "use.local.storage"
 | |
|     updatecfg.value = "true"
 | |
|     ret = api.updateConfiguration(updatecfg)
 | |
|     
 | |
|     
 | |
|     
 | |
|     czcmd = createZone.createZoneCmd()
 | |
|     czcmd.dns1 = "8.8.8.8"
 | |
|     czcmd.internaldns1 = "192.168.110.254"
 | |
|     czcmd.name = "test" + randomName
 | |
|     czcmd.networktype = "Basic"
 | |
|     
 | |
|     czresponse = api.createZone(czcmd)
 | |
|     zoneId = czresponse.id
 | |
|     
 | |
|     cpodcmd = createPod.createPodCmd()
 | |
|     cpodcmd.zoneid = zoneId
 | |
|     cpodcmd.gateway = "192.168.137.1"
 | |
|     cpodcmd.name = "testpod"+ randomName
 | |
|     cpodcmd.netmask = "255.255.255.0"
 | |
|     cpodcmd.startip = "192.168.137.200"
 | |
|     cpodcmd.endip = "192.168.137.230"
 | |
|     cpodresponse = api.createPod(cpodcmd)
 | |
|     podId = cpodresponse.id
 | |
|     
 | |
|     cvlancmd = createVlanIpRange.createVlanIpRangeCmd()
 | |
|     cvlancmd.zoneid = zoneId
 | |
|     cvlancmd.podid = podId
 | |
|     cvlancmd.gateway = "192.168.137.1"
 | |
|     cvlancmd.netmask = "255.255.255.0"
 | |
|     cvlancmd.startip = "192.168.137.100"
 | |
|     cvlancmd.endip = "192.168.137.190"
 | |
|     cvlancmd.forvirtualnetwork = "false"
 | |
|     cvlancmd.vlan = "untagged"
 | |
|     
 | |
|     api.createVlanIpRange(cvlancmd)
 | |
|     
 | |
|     aclustercmd = addCluster.addClusterCmd()
 | |
|     aclustercmd.clustername = "testcluster"+ randomName
 | |
|     aclustercmd.hypervisor = hypervisor
 | |
|     aclustercmd.podid = podId
 | |
|     aclustercmd.zoneid = zoneId
 | |
|     aclustercmd.clustertype = "CloudManaged"
 | |
|     clusterresponse = api.addCluster(aclustercmd)
 | |
|     clusterId = clusterresponse[0].id
 | |
|     
 | |
|     for i in range(hostNum):
 | |
|         addhostcmd = addHost.addHostCmd()
 | |
|         addhostcmd.zoneid = zoneId
 | |
|         addhostcmd.podid = podId
 | |
|         addhostcmd.clusterid = clusterId
 | |
|         addhostcmd.hypervisor = hypervisor
 | |
|         addhostcmd.username = "root"
 | |
|         addhostcmd.password = "password"
 | |
|         if hypervisor == "Simulator":
 | |
|             addhostcmd.url = "http://sim"
 | |
|         else:
 | |
|             addhostcmd.url = "http://192.168.137.4"
 | |
|         addhostresponse = api.addHost(addhostcmd)
 | |
|         print addhostresponse[0].id, addhostresponse[0].ipaddress
 | |
|     
 | |
|     
 | |
|     createspcmd = createStoragePool.createStoragePoolCmd()
 | |
|     createspcmd.zoneid = zoneId
 | |
|     createspcmd.podid = podId
 | |
|     createspcmd.clusterid = clusterId
 | |
|     createspcmd.url = "nfs://nfs2.lab.vmops.com/export/home/edison/primary"
 | |
|     createspcmd.name = "storage pool" + randomName
 | |
|     createspresponse = api.createStoragePool(createspcmd)
 | |
|     
 | |
|     
 | |
|     
 | |
|     addsscmd = addSecondaryStorage.addSecondaryStorageCmd()
 | |
|     addsscmd.url = "nfs://nfs2.lab.vmops.com/export/home/edison/xen/secondary"
 | |
|     addsscmd.zoneid = zoneId
 | |
|     api.addSecondaryStorage(addsscmd)
 | |
|     
 | |
|     listtmcmd = listTemplates.listTemplatesCmd()
 | |
|     listtmcmd.id = templateId
 | |
|     listtmcmd.zoneid = zoneId
 | |
|     listtmcmd.templatefilter = "featured"
 | |
|     listtmresponse = api.listTemplates(listtmcmd)
 | |
|     while True:
 | |
|         if listtmresponse is not None and listtmresponse[0].isready == "true":
 | |
|             break
 | |
|         time.sleep(30)
 | |
|         listtmresponse = api.listTemplates(listtmcmd)
 | |
|         
 | |
|     vmId = []
 | |
|     for i in range(vmNum):
 | |
|         cmd = deployVirtualMachine.deployVirtualMachineCmd()
 | |
|         cmd.zoneid = zoneId
 | |
|         cmd.hypervisor = hypervisor
 | |
|         cmd.serviceofferingid = "1"
 | |
|         cmd.templateid = listtmresponse[0].id
 | |
|         res = api.deployVirtualMachine(cmd)
 | |
|         
 | |
|         vmId.append(res.id)
 | |
| 
 | |
|     registerTempl = registerTemplate.registerTemplateCmd()
 | |
|     registerTempl.displaytext = "test template4"
 | |
|     registerTempl.format = "QCOW2"
 | |
|     registerTempl.hypervisor = "Simulator"
 | |
|     registerTempl.name = "test template4"
 | |
|     registerTempl.ostypeid = "100"
 | |
|     registerTempl.url = "http://www.google.com/template.qcow2"
 | |
|     registerTempl.zoneid = 1
 | |
|     registerTemlResponse = api.registerTemplate(registerTempl)
 | |
|     newtemplateId = registerTemlResponse[0].id
 | |
|     
 | |
|     listtempl = listTemplates.listTemplatesCmd()
 | |
|     listtempl.id = newtemplateId
 | |
|     listtempl.templatefilter = "self"
 | |
|     listemplResponse = api.listTemplates(listtempl)
 | |
|     while True:
 | |
|         if listemplResponse is not None:
 | |
|             
 | |
|             if listemplResponse[0].isready == "true":
 | |
|                 break
 | |
|             else:
 | |
|                 print listemplResponse[0].status
 | |
|         
 | |
|         time.sleep(30)
 | |
|         listemplResponse = api.listTemplates(listtempl)
 | |
|     
 | |
|     
 | |
|     
 | |
|     for i in range(10):
 | |
|         cmd = deployVirtualMachine.deployVirtualMachineCmd()
 | |
|         cmd.zoneid = 1
 | |
|         cmd.hypervisor = hypervisor
 | |
|         cmd.serviceofferingid = "1"
 | |
|         #cmd.templateid = listemplResponse[0].id
 | |
|         cmd.templateid = 200
 | |
|         res = api.deployVirtualMachine(cmd)
 | |
|     
 | |
| 
 | |
|     createvolume = createVolume.createVolumeCmd()
 | |
|     createvolume.zoneid = 1
 | |
|     createvolume.diskofferingid = 9
 | |
|     createvolume.name = "test"
 | |
|     
 | |
|     createvolumeresponse = api.createVolume(createvolume)
 | |
|     volumeId = createvolumeresponse.id
 | |
|     
 | |
|     attachvolume = attachVolume.attachVolumeCmd()
 | |
|     attachvolume.id = volumeId
 | |
|     attachvolume.virtualmachineid = 9
 | |
|     attachvolumeresponse = api.attachVolume(attachvolume)
 | |
|     
 | |
|     deattachevolume = detachVolume.detachVolumeCmd()
 | |
|     deattachevolume.id = volumeId
 | |
|     deattachvolumeresponse = api.detachVolume(deattachevolume)
 | |
|     
 | |
|     createsnapshot = createSnapshot.createSnapshotCmd()
 | |
|     createsnapshot.volumeid = volumeId
 | |
|     createsnapshotresponse = api.createSnapshot(createsnapshot)
 | |
|     snapshotId = createsnapshotresponse.id
 | |
|     
 | |
|     createtmpl = createTemplate.createTemplateCmd()
 | |
|     createtmpl.snapshotid = snapshotId
 | |
|     createtmpl.name =  randomName[:10]
 | |
|     createtmpl.displaytext = randomName[:10]
 | |
|     createtmpl.ostypeid = 100
 | |
|     createtmpl.ispublic = "false"
 | |
|     createtmpl.passwordenabled = "false"
 | |
|     createtmpl.isfeatured = "false"
 | |
|     createtmplresponse = api.createTemplate(createtmpl)
 | |
|     templateId = createtmplresponse.id
 | |
|     
 | |
|     createvolume = createVolume.createVolumeCmd()
 | |
|     createvolume.snapshotid = snapshotId
 | |
|     createvolume.name = "test"
 | |
|     createvolumeresponse = api.createVolume(createvolume)
 | |
|     volumeId = createvolumeresponse.id
 | |
|     
 | |
|     cmd = deployVirtualMachine.deployVirtualMachineCmd()
 | |
|     cmd.zoneid = 1
 | |
|     cmd.hypervisor = hypervisor
 | |
|     cmd.serviceofferingid = "1"
 | |
|     cmd.templateid = templateId
 | |
|     cmd.name = "fdf"
 | |
|     res = api.deployVirtualMachine(cmd)
 | |
|     
 | |
|     
 | |
|     
 | |
|     attachvolume = attachVolume.attachVolumeCmd()
 | |
|     attachvolume.id = volumeId
 | |
|     attachvolume.virtualmachineid = 1
 | |
|     attachvolumeresponse = api.attachVolume(attachvolume)
 | |
|     
 | |
|     deattachevolume = detachVolume.detachVolumeCmd()
 | |
|     deattachevolume.id = volumeId
 | |
|     deattachvolumeresponse = api.detachVolume(deattachevolume)
 | |
|     
 | |
|     deletetmpl = deleteTemplate.deleteTemplateCmd()
 | |
|     deletetmpl.id = templateId
 | |
|     deletetmpl.zoneid = 1
 | |
|     api.deleteTemplate(deletetmpl)
 | |
|     
 | |
|     deletevolume = deleteVolume.deleteVolumeCmd()
 | |
|     deletevolume.id = volumeId
 | |
|     api.deleteVolume(deletevolume)
 | |
|     
 | |
|     deletesnapshot = deleteSnapshot.deleteSnapshotCmd()
 | |
|     deletesnapshot.id = snapshotId
 | |
| 
 | |
|      |