pcc/wwwroot/api/get_available_nodes.dspy

19 lines
696 B
Plaintext

pool_id = params_kw.get('pool_id','')
try:
async with DBPools().sqlorContext(get_module_dbname('pcpool')) as sor:
if pool_id:
nodes = await sor.R('compute_node', {'pool_id': pool_id})
else:
nodes = await sor.R('compute_node', {})
assigned_ids = set()
try:
async with DBPools().sqlorContext(get_module_dbname('pcc')) as sor:
assigned = await sor.R('cluster_node', {})
assigned_ids = set(str(a.node_id) for a in (assigned or []))
except:
pass
available = [{'value': str(n.id), 'text': str(n.name)} for n in (nodes or []) if str(n.id) not in assigned_ids]
return available
except:
return []