1
0
mirror of https://github.com/OpenNebula/one.git synced 2024-12-22 13:33:52 +03:00

feature #696: OCA now supports state filter for VMs

This commit is contained in:
Ruben S. Montero 2011-06-27 16:20:31 +02:00
parent d5bd0e16bd
commit 1c1cb98400
3 changed files with 43 additions and 10 deletions

View File

@ -59,8 +59,8 @@ class VirtualMachinePoolInfo : public RequestManagerPoolInfoFilter
public:
/* -------------------------------------------------------------------- */
static const int ALL_VM; /**< VMs in any state (-2) */
static const int ACTIVE; /**< VMs in any state expect DONE (-1)*/
static const int ALL_VM; /**< VMs in any state (-2) */
static const int NOT_DONE; /**< VMs in any state expect DONE (-1)*/
/* -------------------------------------------------------------------- */

View File

@ -26,6 +26,10 @@ module OpenNebula
:info => "vmpool.info"
}
# Constants for info queries (include/RequestManagerPoolInfoFilter.h)
INFO_NOT_DONE = -1
INFO_ALL_VM = -2
#######################################################################
# Class constructor & Pool Methods
#######################################################################
@ -48,25 +52,54 @@ module OpenNebula
#######################################################################
# Retrieves all or part of the VirtualMachines in the pool.
# No arguments, returns the not-in-done VMs for the user
# [user_id, start_id, end_id]
# [user_id, start_id, end_id, state]
def info(*args)
case args.size
when 0
info_filter(VM_POOL_METHODS[:info],@user_id,-1,-1)
info_filter(VM_POOL_METHODS[:info],
@user_id,
-1,
-1,
INFO_NOT_DONE)
when 3
info_filter(VM_POOL_METHODS[:info],args[0],args[1],args[2])
info_filter(VM_POOL_METHODS[:info],
args[0],
args[1],
args[2],
INFO_NOT_DONE)
when 4
info_filter(VM_POOL_METHODS[:info],
args[0],
args[1],
args[2],
args[3])
end
end
def info_all()
return super(VM_POOL_METHODS[:info])
return info_filter(VM_POOL_METHODS[:info],
INFO_ALL,
-1,
-1,
INFO_NOT_DONE)
end
def info_mine()
return super(VM_POOL_METHODS[:info])
return info_filter(VM_POOL_METHODS[:info],
INFO_MINE,
-1,
-1,
INFO_NOT_DONE)
end
def info_group()
return super(VM_POOL_METHODS[:info])
return info_filter(VM_POOL_METHODS[:info],
INFO_GROUP,
-1,
-1,
INFO_NOT_DONE)
end
end
end

View File

@ -29,9 +29,9 @@ const int RequestManagerPoolInfoFilter::MINE_GROUP = -1;
/* ------------------------------------------------------------------------- */
const int VirtualMachinePoolInfo::ALL_VM = -2;
const int VirtualMachinePoolInfo::ALL_VM = -2;
const int VirtualMachinePoolInfo::ACTIVE = -1;
const int VirtualMachinePoolInfo::NOT_DONE = -1;
/* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- */
@ -117,7 +117,7 @@ void RequestManagerPoolInfoFilter::request_execute(xmlrpc_c::paramList const& pa
case VirtualMachinePoolInfo::ALL_VM:
break;
case VirtualMachinePoolInfo::ACTIVE:
case VirtualMachinePoolInfo::NOT_DONE:
state_filter << "state <> " << VirtualMachine::DONE;
break;