Example #1
0
 def get_pools(computer):
     """list pools to which computer belongs"""
     engine_pools = []
     pools = ComputerPool.query_pool_list()
     for pool in pools:
         if type(pool['engine_ids']).__name__ == 'list':
             if computer in pool['engine_ids']:
                 engine_pools.append(pool['name'])
     return engine_pools
Example #2
0
 def query_engines_of_pool(self, pool_name):
     """Return available engines of certain pool."""
     pool_computers = self.ip_client.ids
     if pool_name != None:
         computers = DrQueueComputerPool.query_pool_members(pool_name)
         if computers == None:
             raise ValueError('Pool "%s" is not existing!' % pool_name)
             return False
         for comp in pool_computers:
             if not comp in computers:
                 pool_computers.remove(comp)
         if pool_computers == []:
             raise ValueError("No computer of pool %s is available!" % pool_name)
             return False
         print ("DEBUG: matching pool: " + pool_name)
         print (pool_computers)
     return pool_computers
Example #3
0
 def set_pools(computer, pool_list):
     """add computer to list of pools"""
     if type(pool_list).__name__ != 'list':
         raise ValueError("argument is not of type list")
         return False
     # prepare list of pools of which computer should be taken out
     old_pools = Computer.get_pools(computer)
     old_pools_to_delete = old_pools
     for pool_name in pool_list:
         # remove name from list
         if pool_name in old_pools_to_delete:
             old_pools_to_delete.remove(pool_name)
         # look if pool is already existing
         pool = ComputerPool.query_pool_by_name(pool_name)
         # create new pool if not existing
         if pool == None:
             pool = ComputerPool(pool_name, [computer])
             # store information in db
             ComputerPool.store_db(pool)
         # pool is already existing
         else:
             # look if computer is already in pool
             if computer in pool['engine_ids']:
                 print("Computer %i is already in pool %s" % (computer, pool_name))
             else:
                 # add computer to pool
                 print("Computer %i added to pool %s" % (computer, pool_name))
                 pool['engine_ids'].append(computer)
             # update information in db
             ComputerPool.update_db(pool)
     # work on list of old pools
     for pool_name in old_pools_to_delete:
         pool = ComputerPool.query_pool_by_name(pool_name)
         if pool != None:
             print("Computer %i removed from pool %s" % (computer, pool_name))
             pool['engine_ids'].remove(computer)
         # update information in db
         ComputerPool.update_db(pool)
     return True