Ejemplo n.º 1
0
class Client:
    
    def __init__(self, my_context):
        self.context = my_context
        
        self.http_request = HttpRequest()
 
    
    def update_context(self, *args):
        if args:
            for arg in args:
                self.context.update(arg)
            
            
        
    # Meter este metodo en  objeto client_lab y pasarle pool manager.    
    def get_status_client(self):
        self.http_request.set_connector(NotUsingPoolManagerConnector())        
        return self.http_request.do_action(GetStatusClient(self.context.ip))
            


    def reserve_remote_pc(self):
        self.http_request.set_connector(UsingPoolManagerConnector(ognsys_globals.local.__POOL_MANAGER__))        
        return self.http_request.do_action(ReserveClient(self.context.ou_id,
                                                         self.context.image_id,
                                                         self.context.lab_id,
                                                         self.context.maxtime) )
                    
    def redirect_events(self):
        self.http_request.set_connector(UsingPoolManagerConnector(ognsys_globals.local.__POOL_MANAGER__))
        return self.http_request.do_action(RedirectEvents(self.context.ou_id, self.context.lab_id,
                                                          self.context.id, self.context.maxtime) )
                                                          
    def register_session_timeout(self):
        self.http_request.set_connector(UsingPoolManagerConnector(ognsys_globals.local.__POOL_MANAGER__))     
        return self.http_request.do_action(RegisterSessionTimeout(self.context.ou_id, self.context.lab_id, 
                                                                  self.context.id, self.context.maxtime) )

    
                                                        
        
    
    def __unreserve_remote_pc(self):
        self.http_request.set_connector(UsingPoolManagerConnector(ognsys_globals.local.__POOL_MANAGER__))     
        return self.http_request.do_action(UnreserveClient(self.context['ou_id'], self.context['lab_id'], self.context['pc_id']))
        
    
    def unreserve_remote_pc(self):
        
        self.remove_active_reserve()
        
        unreserve_ognsys = self.__unreserve_remote_pc()                
        
        return unreserve_ognsys
        
    def remove_active_reserve(self):

        adoDB_active_reserves.remove_by_pc_id(self.context.db, self.context.pc_id)
        return "ok"
Ejemplo n.º 2
0
class Ognsys:
    def __init__(self, db):
        self.db = db

        ognsys_globals.init(db)

        self.http_request = HttpRequest()

    # ---- Return a list of dictionaries {OU_ID: OU_NAME} ---
    def get_ous(self):
        self.http_request.set_connector(
            UsingPoolManagerConnector(ognsys_globals.local.__POOL_MANAGER__))
        return self.http_request.do_action(GetOUS())

    def set_apikey(self, ou_id):

        ou_credentials = ou.get_ou_credentials(self.db, ou_id)

        self.http_request.set_connector(
            UsingPoolManagerConnector(ognsys_globals.local.__POOL_MANAGER__))
        credentials = self.http_request.do_action(DoLogin(ou_credentials))

        if 'apikey' in credentials:
            ognsys_globals.set_apikey(credentials['apikey'])

            return True
        else:

            return False

    def synchronize_table_ous(self, db):
        ou = self.get_ous()
        adoDB_ous.update_ous_in_table(db, ou)
        adoDB_ous.delete_ous_not_in_ous_server(db, ou)

    def get_query_ous(self, db):
        return adoDB_ous.get_queryOUs(db)