def op(args): '''虚拟机操作''' api = VmAPI() vm = api.get_vm_by_uuid(args['uuid']) if not vm: return {'res': False, 'err': ERR_VM_UUID} if not vm.can_operate_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} if args['op'] == 'delete': res = api.delete_vm(args['uuid']) elif args['op'] == 'reset': res = api.reset_vm(args['uuid']) else: #虚拟机操作类型。 key,操作代码; value,VM对象中对应处理函数名称 op_list = { 'start': 'start', 'reboot': 'reboot', 'shutdown': 'shutdown', 'poweroff': 'poweroff'} if args['op'] in op_list: try: res = getattr(vm, op_list[args['op']]).__call__() except Error as e: return {'res': False, 'err': e.err} except Exception as e: raise e return {'res': False, 'err': ERR_VM_OP} else: return {'res': False, 'err': ERR_VM_NO_OP} if res: return {'res':res} return {'res': res, 'err': ERR_VM_OP}
def op(args): '''虚拟机操作''' api = VmAPI() vm = api.get_vm_by_uuid(args['uuid']) if not vm: return {'res': False, 'err': ERR_VM_UUID} if not vm.can_operate_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} if args['op'] == 'delete': res = api.delete_vm(args['uuid']) elif args['op'] == 'reset': res = api.reset_vm(args['uuid']) else: #虚拟机操作类型。 key,操作代码; value,VM对象中对应处理函数名称 op_list = { 'start': 'start', 'reboot': 'reboot', 'shutdown': 'shutdown', 'poweroff': 'poweroff' } if args['op'] in op_list: try: res = getattr(vm, op_list[args['op']]).__call__() except Error as e: return {'res': False, 'err': e.err} except Exception as e: raise e return {'res': False, 'err': ERR_VM_OP} else: return {'res': False, 'err': ERR_VM_NO_OP} if res: return {'res': res} return {'res': res, 'err': ERR_VM_OP}
def reset(args): #镜像重置 api = VmAPI() vm = api.get_vm_by_uuid(args['uuid']) if not vm: return {'res': False, 'err': ERR_VM_UUID} if not vm.can_operate_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} res = api.reset_vm(args['uuid'], args['image_id']) if res: return {'res': True} return {'res': False, 'err': ERR_VM_RESET}