From 061ea1b397b7acf259b641a39b09c6acead74820 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Tue, 24 May 2011 15:36:40 +0200 Subject: [PATCH] feature #622: Harden RequestManager Class. New authenticate method for the UserPool returns group. Tests have been updated --- include/RequestManager.h | 1593 +---------------------------------- include/UserPool.h | 2 +- include/test/NebulaTest.h | 11 +- src/nebula/Nebula.cc | 12 +- src/rm/RequestManager.cc | 36 +- src/rm/SConstruct | 102 +-- src/test/Nebula.cc | 3 +- src/test/NebulaTest.cc | 22 +- src/um/test/UserPoolTest.cc | 16 +- 9 files changed, 94 insertions(+), 1703 deletions(-) diff --git a/include/RequestManager.h b/include/RequestManager.h index fb44e7d732..2cee09eed5 100644 --- a/include/RequestManager.h +++ b/include/RequestManager.h @@ -41,27 +41,13 @@ class RequestManager : public ActionListener { public: - RequestManager( - VirtualMachinePool * _vmpool, - HostPool * _hpool, - VirtualNetworkPool * _vnpool, - UserPool * _upool, - ImagePool * _ipool, - ClusterPool * _cpool, - VMTemplatePool * _tpool, - GroupPool * _gpool, - int _port, - string _xml_log_file) - :vmpool(_vmpool),hpool(_hpool),vnpool(_vnpool),upool(_upool), - ipool(_ipool),cpool(_cpool),tpool(_tpool),gpool(_gpool),port(_port), - socket_fd(-1),xml_log_file(_xml_log_file) + RequestManager(int _port, const string _xml_log_file) + :port(_port), socket_fd(-1), xml_log_file(_xml_log_file) { am.addListener(this); }; - ~RequestManager() - {} - ; + ~RequestManager(){}; /** * This functions starts the associated listener thread (XML server), and @@ -88,12 +74,6 @@ public: am.trigger(ACTION_FINALIZE,0); }; - enum ErrorCode { - AUTHENTICATION = 0x0100, - AUTHORIZATION = 0x0200, - GET = 0x0400, - ACTION = 0x0800 - }; private: @@ -115,46 +95,6 @@ private: */ pthread_t rm_xml_server_thread; - /** - * Pointer to the VM Pool, to access Virtual Machines - */ - VirtualMachinePool * vmpool; - - /** - * Pointer to the Host Pool, to access hosts - */ - HostPool * hpool; - - /** - * Pointer to the VN Pool, to access Virtual Netowrks - */ - VirtualNetworkPool * vnpool; - - /** - * Pointer to the User Pool, to access users - */ - UserPool * upool; - - /** - * Pointer to the Image Pool, to access images - */ - ImagePool * ipool; - - /** - * Pointer to the Cluster Pool, to access clusters - */ - ClusterPool * cpool; - - /** - * Pointer to the Template Pool, to access templates - */ - VMTemplatePool * tpool; - - /** - * Pointer to the Group Pool, to access groups - */ - GroupPool * gpool; - /** * Port number where the connection will be open */ @@ -192,1533 +132,12 @@ private: */ void do_action(const string & action, void * arg); + /** + * Register the XML-RPC API Calls + */ void register_xml_methods(); int setup_socket(); - - // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- - // Error Messages - // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- - - - /** - * Logs authorization errors - * @param method name of the RM method where the error arose - * @param action authorization action - * @param object object that needs to be authorized - * @param uid user that is authorized - * @param id id of the object, -1 for Pool - * @returns string for logging - */ - static string authorization_error (const string& method, - const string &action, - const string &object, - int uid, - int id) - { - ostringstream oss; - oss << "[" << method << "]" << " User [" << uid << "] not authorized" - << " to perform " << action << " on " << object; - - - if ( id != -1 ) - { - oss << " [" << id << "]."; - } - else - { - oss << " Pool"; - } - - return oss.str(); - } - - /** - * Logs authenticate errors - * @param method name of the RM method where the error arose - * @returns string for logging - */ - static string authenticate_error (const string& method) - { - ostringstream oss; - - oss << "[" << method << "]" << " User couldn't be authenticated," << - " aborting call."; - - return oss.str(); - } - - /** - * Logs get object errors - * @param method name of the RM method where the error arose - * @param object over which the get failed - * @param id of the object over which the get failed - * @returns string for logging - */ - static string get_error (const string& method, - const string &object, - int id) - { - ostringstream oss; - - oss << "[" << method << "]" << " Error getting " << - object; - - if ( id != -1 ) - { - oss << " [" << id << "]."; - } - else - { - oss << " Pool."; - } - - return oss.str(); - } - - /** - * Logs action errors - * @param method name of the RM method where the error arose - * @param action that triggered the error - * @param object over which the action was applied - * @param id id of the object, -1 for Pool, -2 for no-id objects - * (allocate error, parse error) - * @param rc returned error code (NULL to ignore) - * @returns string for logging - */ - static string action_error (const string& method, - const string &action, - const string &object, - int id, - int rc) - { - ostringstream oss; - - oss << "[" << method << "]" << " Error trying to " << action << " " - << object; - - switch(id) - { - case -2: - break; - case -1: - oss << "Pool."; - break; - default: - oss << " [" << id << "]."; - break; - } - - if ( rc != 0 ) - { - oss << " Returned error code [" << rc << "]."; - } - - return oss.str(); - } - - - // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- - // Constants - // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- - - // TODO: enum of Objects is maintained in AuthManager.h, could be moved - // to Nebula.h - enum Object - { - VM, - HOST, - NET, - IMAGE, - USER, - CLUSTER, - TEMPLATE, - GROUP - }; - - PoolSQL * get_pool(Object ob) - { - switch (ob) - { - case VM: return static_cast(vmpool); - case HOST: return static_cast(hpool); - case NET: return static_cast(vnpool); - case IMAGE: return static_cast(ipool); - case USER: return static_cast(upool); - case CLUSTER: return static_cast(cpool); - case TEMPLATE: return static_cast(tpool); - case GROUP: return static_cast(gpool); - } - }; - - string get_method_prefix(Object ob) - { - switch (ob) - { - case VM: return "VirtualMachine"; - case HOST: return "Host"; - case NET: return "VirtualNetwork"; - case IMAGE: return "Image"; - case USER: return "User"; - case CLUSTER: return "Cluster"; - case TEMPLATE: return "Template"; - case GROUP: return "Group"; - } - }; - - string get_object_name(Object ob) - { - switch (ob) - { - case VM: return "VM"; - case HOST: return "HOST"; - case NET: return "NET"; - case IMAGE: return "IMAGE"; - case USER: return "USER"; - case CLUSTER: return "CLUSTER"; - case TEMPLATE: return "TEMPLATE"; - case GROUP: return "GROUP"; - } - }; - - // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- - // XML-RPC Methods - // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- - - /* ---------------------------------------------------------------------- */ - /* Generic Helpers */ - /* ---------------------------------------------------------------------- */ - - class GenericChown: public xmlrpc_c::method - { - public: - GenericChown(RequestManager * _rm, - Object _ob): - rm(_rm), - ob(_ob) - { - _signature="A:siii"; - _help="Changes the owner and/or group"; - }; - - ~GenericChown(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - RequestManager * rm; - Object ob; - }; - - /* ---------------------------------------------------------------------- */ - /* Virtual Machine Interface */ - /* ---------------------------------------------------------------------- */ - class VirtualMachineAllocate: public xmlrpc_c::method - { - public: - VirtualMachineAllocate( - VirtualMachinePool * _vmpool, - VirtualNetworkPool * _vnpool, - ImagePool * _ipool, - VMTemplatePool * _tpool, - UserPool * _upool): - vmpool(_vmpool), - vnpool(_vnpool), - ipool(_ipool), - tpool(_tpool), - upool(_upool) - { - _signature="A:ss"; - _help="Allocates a virtual machine in the pool"; - }; - - ~VirtualMachineAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retval); - private: - VirtualMachinePool * vmpool; - VirtualNetworkPool * vnpool; - ImagePool * ipool; - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualMachineDeploy: public xmlrpc_c::method - { - public: - VirtualMachineDeploy( - VirtualMachinePool * _vmpool, - HostPool * _hpool, - UserPool * _upool): - vmpool(_vmpool), - hpool(_hpool), - upool(_upool) - { - _signature="A:sii"; - _help="Deploys a virtual machine"; - }; - - ~VirtualMachineDeploy(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retval); - - private: - VirtualMachinePool * vmpool; - HostPool * hpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualMachineAction: public xmlrpc_c::method - { - public: - VirtualMachineAction( - VirtualMachinePool * _vmpool, - UserPool * _upool): - vmpool(_vmpool), - upool(_upool) - { - _signature="A:ssi"; - _help="Performs an action on a virtual machine"; - }; - - ~VirtualMachineAction(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retval); - - private: - VirtualMachinePool * vmpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualMachineMigrate: public xmlrpc_c::method - { - public: - VirtualMachineMigrate( - VirtualMachinePool * _vmpool, - HostPool * _hpool, - UserPool * _upool): - vmpool(_vmpool), - hpool(_hpool), - upool(_upool) - { - _signature="A:siib"; - _help="Migrates a virtual machine"; - }; - - ~VirtualMachineMigrate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retval); - - private: - VirtualMachinePool * vmpool; - HostPool * hpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualMachineInfo: public xmlrpc_c::method - { - public: - VirtualMachineInfo( - VirtualMachinePool * _vmpool, - UserPool * _upool): - vmpool(_vmpool), - upool(_upool) - { - _signature="A:si"; - _help="Returns virtual machine information"; - }; - - ~VirtualMachineInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retval); - - private: - VirtualMachinePool * vmpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualMachineSaveDisk: public xmlrpc_c::method - { - public: - VirtualMachineSaveDisk( - VirtualMachinePool * _vmpool, - UserPool * _upool, - ImagePool * _ipool): - vmpool(_vmpool), - upool(_upool), - ipool(_ipool) - { - _signature="A:siis"; - _help = "Sets the disk to be saved in a new Image with the given " - "name."; - }; - - ~VirtualMachineSaveDisk(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retval); - - private: - VirtualMachinePool * vmpool; - UserPool * upool; - ImagePool * ipool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualMachinePoolInfo: public xmlrpc_c::method - { - public: - VirtualMachinePoolInfo( - VirtualMachinePool * _vmpool, - UserPool * _upool): - vmpool(_vmpool), - upool(_upool) - { - _signature="A:sii"; - _help="Returns the virtual machine pool"; - }; - - ~VirtualMachinePoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retval); - - private: - VirtualMachinePool * vmpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - /* Template Interface */ - /* ---------------------------------------------------------------------- */ - - class TemplateAllocate: public xmlrpc_c::method - { - public: - TemplateAllocate( - VMTemplatePool * _tpool, - UserPool * _upool): - tpool(_tpool), - upool(_upool) - { - _signature="A:ss"; - _help="Allocates a template in the pool"; - }; - - ~TemplateAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class TemplateDelete: public xmlrpc_c::method - { - public: - TemplateDelete(VMTemplatePool * _tpool, - UserPool * _upool): - tpool(_tpool), - upool(_upool) - { - _signature="A:si"; - _help="Deletes a Template"; - }; - - ~TemplateDelete(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class TemplateInfo: public xmlrpc_c::method - { - public: - TemplateInfo(VMTemplatePool * _tpool, - UserPool * _upool): - tpool(_tpool), - upool(_upool) - { - _signature="A:si"; - _help="Returns information for a Template"; - }; - - ~TemplateInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class TemplateUpdate: public xmlrpc_c::method - { - public: - TemplateUpdate(VMTemplatePool * _tpool, - UserPool * _upool): - tpool(_tpool), - upool(_upool) - { - _signature="A:siss"; - _help="Modifies Template attribute"; - }; - - ~TemplateUpdate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class TemplateRemoveAttribute: public xmlrpc_c::method - { - public: - TemplateRemoveAttribute(VMTemplatePool * _tpool, - UserPool * _upool): - tpool(_tpool), - upool(_upool) - { - _signature="A:sis"; - _help="Removes Template attribute"; - }; - - ~TemplateRemoveAttribute(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class TemplatePublish: public xmlrpc_c::method - { - public: - TemplatePublish(VMTemplatePool * _tpool, - UserPool * _upool): - tpool(_tpool), - upool(_upool) - { - _signature="A:sib"; - _help="Publish/Unpublish the Template"; - }; - - ~TemplatePublish(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class TemplatePoolInfo: public xmlrpc_c::method - { - public: - TemplatePoolInfo( - VMTemplatePool * _tpool, - UserPool * _upool): - tpool(_tpool), - upool(_upool) - { - _signature="A:sii"; - _help="Returns the template pool"; - }; - - ~TemplatePoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VMTemplatePool * tpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - /* Host Interface */ - /* ---------------------------------------------------------------------- */ - - class HostAllocate: public xmlrpc_c::method - { - public: - HostAllocate( - HostPool * _hpool, - UserPool * _upool): - hpool(_hpool), - upool(_upool) - { - _signature="A:sssss"; - _help="Allocates a host in the pool"; - }; - - ~HostAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - HostPool * hpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class HostInfo: public xmlrpc_c::method - { - public: - HostInfo( - HostPool * _hpool, - UserPool * _upool): - hpool(_hpool), - upool(_upool) - { - _signature="A:si"; - _help="Returns host information"; - }; - - ~HostInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - HostPool * hpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class HostPoolInfo: public xmlrpc_c::method - { - public: - HostPoolInfo(HostPool * _hpool, - UserPool * _upool): - hpool(_hpool), - upool(_upool) - { - _signature="A:s"; - _help="Returns the host pool information"; - }; - - ~HostPoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - HostPool * hpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class HostDelete: public xmlrpc_c::method - { - public: - HostDelete( - HostPool * _hpool, - UserPool * _upool): - hpool(_hpool), - upool(_upool) - { - _signature="A:si"; - _help="Deletes a host from the pool"; - }; - - ~HostDelete(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - HostPool * hpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class HostEnable: public xmlrpc_c::method - { - public: - HostEnable( - HostPool * _hpool, - UserPool * _upool): - hpool(_hpool), - upool(_upool) - { - _signature="A:sib"; - _help="Enables or disables a host"; - }; - - ~HostEnable(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - HostPool * hpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - /* Cluster Interface */ - /* ---------------------------------------------------------------------- */ - - class ClusterAllocate: public xmlrpc_c::method - { - public: - ClusterAllocate( - UserPool * _upool, - ClusterPool * _cpool): - upool(_upool), - cpool(_cpool) - { - _signature="A:ss"; - _help="Allocates a cluster in the pool"; - }; - - ~ClusterAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - ClusterPool * cpool; - }; - - /* ---------------------------------------------------------------------- */ - - class ClusterInfo: public xmlrpc_c::method - { - public: - ClusterInfo( - UserPool * _upool, - ClusterPool * _cpool): - upool(_upool), - cpool(_cpool) - { - _signature="A:si"; - _help="Returns cluster information"; - }; - - ~ClusterInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - ClusterPool * cpool; - }; - - /* ---------------------------------------------------------------------- */ - - class ClusterDelete: public xmlrpc_c::method - { - public: - ClusterDelete( - UserPool * _upool, - ClusterPool * _cpool): - upool(_upool), - cpool(_cpool) - { - _signature="A:si"; - _help="Deletes a cluster from the pool"; - }; - - ~ClusterDelete(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - ClusterPool * cpool; - }; - - /* ---------------------------------------------------------------------- */ - - class ClusterAdd: public xmlrpc_c::method - { - public: - ClusterAdd( - HostPool * _hpool, - UserPool * _upool, - ClusterPool * _cpool): - hpool(_hpool), - upool(_upool), - cpool(_cpool) - { - _signature="A:sii"; - _help="Adds a host to a cluster"; - }; - - ~ClusterAdd(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - HostPool * hpool; - UserPool * upool; - ClusterPool * cpool; - }; - - /* ---------------------------------------------------------------------- */ - - class ClusterRemove: public xmlrpc_c::method - { - public: - ClusterRemove( - HostPool * _hpool, - UserPool * _upool, - ClusterPool * _cpool): - hpool(_hpool), - upool(_upool), - cpool(_cpool) - { - _signature="A:si"; - _help="Removes a host from its cluster"; - }; - - ~ClusterRemove(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - HostPool * hpool; - UserPool * upool; - ClusterPool * cpool; - }; - - /* ---------------------------------------------------------------------- */ - - class ClusterPoolInfo: public xmlrpc_c::method - { - public: - ClusterPoolInfo( - UserPool * _upool, - ClusterPool * _cpool): - upool(_upool), - cpool(_cpool) - { - _signature="A:s"; - _help="Returns the cluster pool information"; - }; - - ~ClusterPoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - ClusterPool * cpool; - }; - - - /* ---------------------------------------------------------------------- */ - /* Group Interface */ - /* ---------------------------------------------------------------------- */ - - class GroupAllocate: public xmlrpc_c::method - { - public: - GroupAllocate( - UserPool * _upool, - GroupPool * _gpool): - upool(_upool), - gpool(_gpool) - { - _signature="A:ss"; - _help="Allocates a group in the pool"; - }; - - ~GroupAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - GroupPool * gpool; - }; - - /* ---------------------------------------------------------------------- */ - - class GroupInfo: public xmlrpc_c::method - { - public: - GroupInfo( - UserPool * _upool, - GroupPool * _gpool): - upool(_upool), - gpool(_gpool) - { - _signature="A:si"; - _help="Returns group information"; - }; - - ~GroupInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - GroupPool * gpool; - }; - - /* ---------------------------------------------------------------------- */ - - class GroupDelete: public xmlrpc_c::method - { - public: - GroupDelete( - UserPool * _upool, - GroupPool * _gpool): - upool(_upool), - gpool(_gpool) - { - _signature="A:si"; - _help="Deletes a group from the pool"; - }; - - ~GroupDelete(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - GroupPool * gpool; - }; - - /* ---------------------------------------------------------------------- */ - - class GroupPoolInfo: public xmlrpc_c::method - { - public: - GroupPoolInfo( - UserPool * _upool, - GroupPool * _gpool): - upool(_upool), - gpool(_gpool) - { - _signature="A:s"; - _help="Returns the group pool information"; - }; - - ~GroupPoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - GroupPool * gpool; - }; - - - /* ---------------------------------------------------------------------- */ - /* Virtual Network Interface */ - /* ---------------------------------------------------------------------- */ - - - class VirtualNetworkAllocate: public xmlrpc_c::method - { - public: - VirtualNetworkAllocate( - VirtualNetworkPool * _vnpool, - UserPool * _upool): - vnpool(_vnpool), - upool(_upool) - { - _signature="A:ss"; - _help="Creates a virtual network"; - }; - - ~VirtualNetworkAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VirtualNetworkPool * vnpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualNetworkInfo: public xmlrpc_c::method - { - public: - VirtualNetworkInfo( - VirtualNetworkPool * _vnpool, - UserPool * _upool): - vnpool(_vnpool), - upool(_upool) - { - _signature="A:si"; - _help="Returns virtual network information"; - }; - - ~VirtualNetworkInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VirtualNetworkPool * vnpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualNetworkPoolInfo: public xmlrpc_c::method - { - public: - VirtualNetworkPoolInfo(VirtualNetworkPool * _vnpool, - UserPool * _upool): - vnpool(_vnpool), - upool(_upool) - { - _signature="A:si"; - _help="Returns the virtual network pool information"; - }; - - ~VirtualNetworkPoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VirtualNetworkPool * vnpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualNetworkPublish: public xmlrpc_c::method - { - public: - VirtualNetworkPublish( - VirtualNetworkPool * _vnpool, - UserPool * _upool): - vnpool(_vnpool), - upool(_upool) - { - _signature="A:sib"; - _help="Enables/Disables a virtual network"; - }; - - ~VirtualNetworkPublish(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VirtualNetworkPool * vnpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualNetworkDelete: public xmlrpc_c::method - { - public: - VirtualNetworkDelete( - VirtualNetworkPool * _vnpool, - UserPool * _upool): - vnpool(_vnpool), - upool(_upool) - { - _signature="A:si"; - _help="Deletes a virtual network"; - }; - - ~VirtualNetworkDelete(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VirtualNetworkPool * vnpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualNetworkAddLeases: public xmlrpc_c::method - { - public: - VirtualNetworkAddLeases( - VirtualNetworkPool * _vnpool, - UserPool * _upool): - vnpool(_vnpool), - upool(_upool) - { - _signature="A:sis"; - _help="Adds leases to a virtual network"; - }; - - ~VirtualNetworkAddLeases(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VirtualNetworkPool * vnpool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class VirtualNetworkRemoveLeases: public xmlrpc_c::method - { - public: - VirtualNetworkRemoveLeases( - VirtualNetworkPool * _vnpool, - UserPool * _upool): - vnpool(_vnpool), - upool(_upool) - { - _signature="A:sis"; - _help="Removes leases from a virtual network"; - }; - - ~VirtualNetworkRemoveLeases(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - VirtualNetworkPool * vnpool; - UserPool * upool; - }; - /* ---------------------------------------------------------------------- */ - /* User Management Interface */ - /* ---------------------------------------------------------------------- */ - - - class UserAllocate: public xmlrpc_c::method - { - public: - UserAllocate(UserPool * _upool):upool(_upool) - { - _signature="A:sss"; - _help="Creates a new user"; - }; - - ~UserAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class UserDelete: public xmlrpc_c::method - { - public: - UserDelete(UserPool * _upool):upool(_upool) - { - _signature="A:si"; - _help="Deletes a user account"; - }; - - ~UserDelete(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class UserChangePassword: public xmlrpc_c::method - { - public: - UserChangePassword(UserPool * _upool):upool(_upool) - { - _signature="A:sis"; - _help="Changes the password for the given user."; - }; - - ~UserChangePassword(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class UserInfo: public xmlrpc_c::method - { - public: - UserInfo(UserPool * _upool):upool(_upool) - { - _signature="A:si"; - _help="Returns the information for a user"; - }; - - ~UserInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class UserPoolInfo: public xmlrpc_c::method - { - public: - UserPoolInfo(UserPool * _upool):upool(_upool) - { - _signature="A:s"; - _help="Returns content of the user pool"; - }; - - ~UserPoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - /* Image Pool Interface */ - /* ---------------------------------------------------------------------- */ - - class ImageAllocate: public xmlrpc_c::method - { - public: - ImageAllocate(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:ss"; - _help="Creates a new image"; - }; - - ~ImageAllocate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImageDelete: public xmlrpc_c::method - { - public: - ImageDelete(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:si"; - _help="Deletes an image"; - }; - - ~ImageDelete(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImageInfo: public xmlrpc_c::method - { - public: - ImageInfo(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:si"; - _help="Returns information for an image"; - }; - - ~ImageInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImageUpdate: public xmlrpc_c::method - { - public: - ImageUpdate(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:siss"; - _help="Modifies image attribute"; - }; - - ~ImageUpdate(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImageRemoveAttribute: public xmlrpc_c::method - { - public: - ImageRemoveAttribute(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:sis"; - _help="Removes image attribute"; - }; - - ~ImageRemoveAttribute(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImagePublish: public xmlrpc_c::method - { - public: - ImagePublish(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:sib"; - _help="Publish/Unpublish the Image"; - }; - - ~ImagePublish(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImagePersistent: public xmlrpc_c::method - { - public: - ImagePersistent(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:sib"; - _help="Make an Image (non)persistent"; - }; - - ~ImagePersistent(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImageEnable: public xmlrpc_c::method - { - public: - ImageEnable(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:sib"; - _help="Enables/Disables the Image"; - }; - - ~ImageEnable(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - - /* ---------------------------------------------------------------------- */ - - class ImagePoolInfo: public xmlrpc_c::method - { - public: - ImagePoolInfo(ImagePool * _ipool, - UserPool * _upool): - ipool(_ipool), - upool(_upool) - { - _signature="A:si"; - _help="Returns content of image pool attending to the filter flag"; - }; - - ~ImagePoolInfo(){}; - - void execute( - xmlrpc_c::paramList const& paramList, - xmlrpc_c::value * const retvalP); - - private: - ImagePool * ipool; - UserPool * upool; - }; - }; diff --git a/include/UserPool.h b/include/UserPool.h index 1c7a25ef68..8140eb3af6 100644 --- a/include/UserPool.h +++ b/include/UserPool.h @@ -111,7 +111,7 @@ public: * @param session, colon separated username and password string * @return -1 if authn failed, uid of the user in other case */ - int authenticate(string& session){return 0;} +// int authenticate(string& session){return 0;} /** * Returns whether there is a user with given username/password or not diff --git a/include/test/NebulaTest.h b/include/test/NebulaTest.h index 8193036605..9b9ade1d95 100644 --- a/include/test/NebulaTest.h +++ b/include/test/NebulaTest.h @@ -130,16 +130,7 @@ public: virtual DispatchManager* create_dm(VirtualMachinePool* vmpool, HostPool* hpool); - virtual RequestManager* create_rm( - VirtualMachinePool * vmpool, - HostPool * hpool, - VirtualNetworkPool * vnpool, - UserPool * upool, - ImagePool * ipool, - ClusterPool * cpool, - VMTemplatePool * tpool, - GroupPool * gpool, - string log_file); + virtual RequestManager* create_rm(string log_file); virtual HookManager* create_hm(VirtualMachinePool * vmpool); diff --git a/src/nebula/Nebula.cc b/src/nebula/Nebula.cc index 085811c9f1..f1d99e217d 100644 --- a/src/nebula/Nebula.cc +++ b/src/nebula/Nebula.cc @@ -450,17 +450,7 @@ void Nebula::start() nebula_configuration->get("PORT", rm_port); - rm = new RequestManager( - vmpool, - hpool, - vnpool, - upool, - ipool, - cpool, - tpool, - gpool, - rm_port, - log_location + "one_xmlrpc.log"); + rm = new RequestManager(rm_port, log_location + "one_xmlrpc.log"); } catch (bad_alloc&) { diff --git a/src/rm/RequestManager.cc b/src/rm/RequestManager.cc index d54e378613..f8038f0571 100644 --- a/src/rm/RequestManager.cc +++ b/src/rm/RequestManager.cc @@ -213,7 +213,7 @@ void RequestManager::do_action( void RequestManager::register_xml_methods() { - xmlrpc_c::methodPtr vm_allocate(new +/* xmlrpc_c::methodPtr vm_allocate(new RequestManager::VirtualMachineAllocate(vmpool,vnpool,ipool,tpool,upool)); xmlrpc_c::methodPtr vm_deploy(new @@ -377,9 +377,9 @@ void RequestManager::register_xml_methods() xmlrpc_c::methodPtr imagepool_info(new RequestManager::ImagePoolInfo(ipool, upool)); - +*/ /* VM related methods */ - +/* RequestManagerRegistry.addMethod("one.vm.allocate", vm_allocate); RequestManagerRegistry.addMethod("one.vm.deploy", vm_deploy); RequestManagerRegistry.addMethod("one.vm.action", vm_action); @@ -389,9 +389,9 @@ void RequestManager::register_xml_methods() RequestManagerRegistry.addMethod("one.vm.chown", vm_chown); RequestManagerRegistry.addMethod("one.vmpool.info", vm_pool_info); - +*/ /* VM Template related methods*/ - +/* RequestManagerRegistry.addMethod("one.template.allocate",template_allocate); RequestManagerRegistry.addMethod("one.template.delete", template_delete); RequestManagerRegistry.addMethod("one.template.info", template_info); @@ -401,18 +401,18 @@ void RequestManager::register_xml_methods() RequestManagerRegistry.addMethod("one.template.chown", template_chown); RequestManagerRegistry.addMethod("one.templatepool.info",template_pool_info); - +*/ /* Host related methods*/ - +/* RequestManagerRegistry.addMethod("one.host.allocate", host_allocate); RequestManagerRegistry.addMethod("one.host.info", host_info); RequestManagerRegistry.addMethod("one.host.delete", host_delete); RequestManagerRegistry.addMethod("one.host.enable", host_enable); RequestManagerRegistry.addMethod("one.hostpool.info", hostpool_info); - +*/ /* Cluster related methods */ - +/* RequestManagerRegistry.addMethod("one.cluster.allocate", cluster_allocate); RequestManagerRegistry.addMethod("one.cluster.info", cluster_info); RequestManagerRegistry.addMethod("one.cluster.delete", cluster_delete); @@ -420,17 +420,17 @@ void RequestManager::register_xml_methods() RequestManagerRegistry.addMethod("one.cluster.remove", cluster_remove); RequestManagerRegistry.addMethod("one.clusterpool.info", clusterpool_info); - +*/ /* Group related methods */ - +/* RequestManagerRegistry.addMethod("one.group.allocate", group_allocate); RequestManagerRegistry.addMethod("one.group.info", group_info); RequestManagerRegistry.addMethod("one.group.delete", group_delete); RequestManagerRegistry.addMethod("one.grouppool.info", grouppool_info); - +*/ /* Network related methods*/ - +/* RequestManagerRegistry.addMethod("one.vn.allocate", vn_allocate); RequestManagerRegistry.addMethod("one.vn.info", vn_info); RequestManagerRegistry.addMethod("one.vn.publish", vn_publish); @@ -440,10 +440,10 @@ void RequestManager::register_xml_methods() RequestManagerRegistry.addMethod("one.vn.chown", vn_chown); RequestManagerRegistry.addMethod("one.vnpool.info", vnpool_info); - +*/ /* User related methods*/ - +/* RequestManagerRegistry.addMethod("one.user.allocate", user_allocate); RequestManagerRegistry.addMethod("one.user.delete", user_delete); RequestManagerRegistry.addMethod("one.user.info", user_info); @@ -451,9 +451,9 @@ void RequestManager::register_xml_methods() RequestManagerRegistry.addMethod("one.user.chown", user_chown); RequestManagerRegistry.addMethod("one.userpool.info", userpool_info); - +*/ /* Image related methods*/ - +/* RequestManagerRegistry.addMethod("one.image.allocate", image_allocate); RequestManagerRegistry.addMethod("one.image.delete", image_delete); RequestManagerRegistry.addMethod("one.image.info", image_info); @@ -465,7 +465,7 @@ void RequestManager::register_xml_methods() RequestManagerRegistry.addMethod("one.image.chown", image_chown); RequestManagerRegistry.addMethod("one.imagepool.info", imagepool_info); - + */ }; /* -------------------------------------------------------------------------- */ diff --git a/src/rm/SConstruct b/src/rm/SConstruct index 093f876235..05332cf30e 100644 --- a/src/rm/SConstruct +++ b/src/rm/SConstruct @@ -24,57 +24,57 @@ lib_name='nebula_rm' source_files=[ 'Request.cc', 'RequestManager.cc', - 'RequestManagerAction.cc', - 'RequestManagerAllocate.cc', - 'RequestManagerDeploy.cc', - 'RequestManagerMigrate.cc', - 'RequestManagerSaveDisk.cc', - 'RequestManagerInfo.cc', - 'RequestManagerPoolInfo.cc', - 'RequestManagerHostAllocate.cc', - 'RequestManagerHostDelete.cc', - 'RequestManagerHostInfo.cc', - 'RequestManagerHostPoolInfo.cc', - 'RequestManagerHostEnable.cc', - 'RequestManagerImageAllocate.cc', - 'RequestManagerImageDelete.cc', - 'RequestManagerImageInfo.cc', - 'RequestManagerImageUpdate.cc', - 'RequestManagerImageRemoveAttribute.cc', - 'RequestManagerImagePublish.cc', - 'RequestManagerImagePersistent.cc', - 'RequestManagerImageEnable.cc', - 'RequestManagerImagePoolInfo.cc', - 'RequestManagerClusterAdd.cc', - 'RequestManagerClusterAllocate.cc', - 'RequestManagerClusterDelete.cc', - 'RequestManagerClusterInfo.cc', - 'RequestManagerClusterPoolInfo.cc', - 'RequestManagerClusterRemove.cc', - 'RequestManagerGroupAllocate.cc', - 'RequestManagerGroupDelete.cc', - 'RequestManagerGroupInfo.cc', - 'RequestManagerGroupPoolInfo.cc', - 'RequestManagerVirtualNetworkAllocate.cc', - 'RequestManagerVirtualNetworkInfo.cc', - 'RequestManagerVirtualNetworkPoolInfo.cc', - 'RequestManagerVirtualNetworkPublish.cc', - 'RequestManagerVirtualNetworkDelete.cc', - 'RequestManagerVirtualNetworkAddLeases.cc', - 'RequestManagerVirtualNetworkRemoveLeases.cc', - 'RequestManagerUserAllocate.cc', - 'RequestManagerUserDelete.cc', - 'RequestManagerUserChangePassword.cc', - 'RequestManagerUserInfo.cc', - 'RequestManagerUserPoolInfo.cc', - 'RequestManagerTemplateAllocate.cc', - 'RequestManagerTemplateDelete.cc', - 'RequestManagerTemplateInfo.cc', - 'RequestManagerTemplateUpdate.cc', - 'RequestManagerTemplateRemoveAttribute.cc', - 'RequestManagerTemplatePublish.cc', - 'RequestManagerTemplatePoolInfo.cc', - 'RequestManagerChown.cc', +# 'RequestManagerAction.cc', +# 'RequestManagerAllocate.cc', +# 'RequestManagerDeploy.cc', +# 'RequestManagerMigrate.cc', +# 'RequestManagerSaveDisk.cc', +# 'RequestManagerInfo.cc', +# 'RequestManagerPoolInfo.cc', +# 'RequestManagerHostAllocate.cc', +# 'RequestManagerHostDelete.cc', +# 'RequestManagerHostInfo.cc', +# 'RequestManagerHostPoolInfo.cc', +# 'RequestManagerHostEnable.cc', +# 'RequestManagerImageAllocate.cc', +# 'RequestManagerImageDelete.cc', +# 'RequestManagerImageInfo.cc', +# 'RequestManagerImageUpdate.cc', +# 'RequestManagerImageRemoveAttribute.cc', +# 'RequestManagerImagePublish.cc', +# 'RequestManagerImagePersistent.cc', +# 'RequestManagerImageEnable.cc', +# 'RequestManagerImagePoolInfo.cc', +# 'RequestManagerClusterAdd.cc', +# 'RequestManagerClusterAllocate.cc', +# 'RequestManagerClusterDelete.cc', +# 'RequestManagerClusterInfo.cc', +# 'RequestManagerClusterPoolInfo.cc', +# 'RequestManagerClusterRemove.cc', +# 'RequestManagerGroupAllocate.cc', +# 'RequestManagerGroupDelete.cc', +# 'RequestManagerGroupInfo.cc', +# 'RequestManagerGroupPoolInfo.cc', +# 'RequestManagerVirtualNetworkAllocate.cc', +# 'RequestManagerVirtualNetworkInfo.cc', +# 'RequestManagerVirtualNetworkPoolInfo.cc', +# 'RequestManagerVirtualNetworkPublish.cc', +# 'RequestManagerVirtualNetworkDelete.cc', +# 'RequestManagerVirtualNetworkAddLeases.cc', +# 'RequestManagerVirtualNetworkRemoveLeases.cc', +# 'RequestManagerUserAllocate.cc', +# 'RequestManagerUserDelete.cc', +# 'RequestManagerUserChangePassword.cc', +# 'RequestManagerUserInfo.cc', +# 'RequestManagerUserPoolInfo.cc', +# 'RequestManagerTemplateAllocate.cc', +# 'RequestManagerTemplateDelete.cc', +# 'RequestManagerTemplateInfo.cc', +# 'RequestManagerTemplateUpdate.cc', +# 'RequestManagerTemplateRemoveAttribute.cc', +# 'RequestManagerTemplatePublish.cc', +# 'RequestManagerTemplatePoolInfo.cc', +# 'RequestManagerChown.cc', ] # Build library diff --git a/src/test/Nebula.cc b/src/test/Nebula.cc index 027cd6e575..c70ffc525b 100644 --- a/src/test/Nebula.cc +++ b/src/test/Nebula.cc @@ -379,8 +379,7 @@ void Nebula::start() { try { - rm = tester->create_rm(vmpool,hpool,vnpool,upool,ipool,cpool,tpool, - gpool,log_location + "one_xmlrpc.log"); + rm = tester->create_rm(log_location + "one_xmlrpc.log"); } catch (bad_alloc&) { diff --git a/src/test/NebulaTest.cc b/src/test/NebulaTest.cc index 32574623c0..d57a5c7da4 100644 --- a/src/test/NebulaTest.cc +++ b/src/test/NebulaTest.cc @@ -113,29 +113,11 @@ DispatchManager* NebulaTest::create_dm(VirtualMachinePool* vmpool, return new DispatchManager(vmpool, hpool); } -RequestManager* NebulaTest::create_rm( - VirtualMachinePool * vmpool, - HostPool * hpool, - VirtualNetworkPool * vnpool, - UserPool * upool, - ImagePool * ipool, - ClusterPool * cpool, - VMTemplatePool * tpool, - GroupPool * gpool, - string log_file) +RequestManager* NebulaTest::create_rm(string log_file) { int rm_port = 2633; - return new RequestManager(vmpool, - hpool, - vnpool, - upool, - ipool, - cpool, - tpool, - gpool, - rm_port, - log_file); + return new RequestManager(rm_port, log_file); } HookManager* NebulaTest::create_hm(VirtualMachinePool * vmpool) diff --git a/src/um/test/UserPoolTest.cc b/src/um/test/UserPoolTest.cc index ec0ad93c9c..d06fcd34a0 100644 --- a/src/um/test/UserPoolTest.cc +++ b/src/um/test/UserPoolTest.cc @@ -158,20 +158,30 @@ public: void authenticate() { UserPool* user_pool = (UserPool*) pool; + + bool rc; + int oid, gid; + // There is an initial user, created with the one_auth file: // one_user_test:password string session="one_user_test:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8"; - int oid = user_pool->authenticate( session ); + rc = user_pool->authenticate( session, oid, gid ); + CPPUNIT_ASSERT( rc == true ); + CPPUNIT_ASSERT( oid == 0 ); CPPUNIT_ASSERT( oid == 0 ); session = "one_user_test:wrong_password"; - oid = user_pool->authenticate( session ); + oid = user_pool->authenticate( session, oid, gid ); + CPPUNIT_ASSERT( rc == false ); CPPUNIT_ASSERT( oid == -1 ); + CPPUNIT_ASSERT( gid == -1 ); session = "unknown_user:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8"; - oid = user_pool->authenticate( session ); + oid = user_pool->authenticate( session, oid, gid ); + CPPUNIT_ASSERT( rc == false ); CPPUNIT_ASSERT( oid == -1 ); + CPPUNIT_ASSERT( gid == -1 ); } void get_using_name()