diff --git a/plugin.py b/plugin.py index ed69799..f3fb9ce 100644 --- a/plugin.py +++ b/plugin.py @@ -71,8 +71,8 @@ def vmcreate(req): #generators #slave_name = str(grid.query_happiness(region_id, weight)) #TODO: provide weight parameters here and calculate route - slave_name = 'lexx' #staic route - #slave_name = 'warrior' + #slave_name = 'lexx' #staic route + slave_name = 'warrior' #vmid = str(grid.generate_vmid()) #TODO: this should be between 100 and 65000 vm_id = random.randint(1000, 9999) @@ -113,10 +113,14 @@ def vmcreate(req): if req['vps_type'] == 'kvm': #create partition image_name = 'vm-' + str(vm_id) + '-disk-1' - local_storage = proxobject.nodes(real_slave_name).storage('lvm') - local_storage.content.post(vmid=vm_id, - filename=image_name, - size=req['vps_hdd'] + 'G') + try: + local_storage = proxobject.nodes(real_slave_name).storage('lvm') + storage_create_result = local_storage.content.post(vmid=vm_id, filename=image_name, size=req['vps_hdd'] + 'G') + ioconfig.logger.info('slave[%s]> allocated %s as %s' % (slave_name, req['vps_hdd'], image_name)) + except: + ioconfig.logger.info('slave[%s]> unable to allocate %s' % (slave_name, image_name)) + response = { 'status':'FAIL' } + return response create_result = proxobject.nodes(real_slave_name).qemu.post(vmid=int(vm_id), name=vm_name, @@ -143,12 +147,12 @@ def vmcreate(req): onboot=1, description=description) + print(str(create_result)) #TODO: setup based on req['vps_recipe'] #start the machihe #time.sleep(7) #wait few seconds for the slave to prepare the machine for initial run #vmstart(cubeid) - #print(str(create_result)) response = { 'status':'CREATE', 'cube':cubeid, 'name':vm_name, 'password':vm_pass, 'ipv4_0':ipv4_list[0] } grid.writedb(deploy)