from django.utils.functional import SimpleLazyObject
from django.utils.timezone import now
from pyqcg import QCG
-from pyqcg.service import Registry
+from pyqcg.service import Registry, JobFactory
from pyqcg.utils import Credential, TimePeriod, JobStatus, TaskStatus
from qcg.models import User, Job, Task, Allocation, NodeInfo
elapsed = time.time() - ts
elapsed_py = elapsed - elapsed_clean
logger.info('(%.3f) OBJ = %s, REMOTE = %.3f, LOCAL = %.3f', elapsed, obj, elapsed_clean, elapsed_py)
+
+
+def fetch_resources(proxy):
+ ts = time.time()
+ QCG.start()
+ cred = Credential(proxy)
+
+ rts = time.time()
+ resources = list(JobFactory().resources(False, cred))
+ elapsed_query = time.time() - rts
+
+ pts = time.time()
+ hosts = [res.name for res in resources]
+ storage = [res.storage for res in resources]
+ applications = {m for res in resources for m in res.applications}
+ modules = {m for res in resources for m in res.modules if m.startswith('plgrid')}
+ elapsed_pp = time.time() - pts
+
+ elapsed = time.time() - ts
+ logger.info('(%.3f) HOSTS = %d, APPS = %d, MODULES = %d, QUERY = %.3f, PROC = %.3f',
+ elapsed, len(hosts), len(applications), len(modules), elapsed_query, elapsed_pp)
+
+ return hosts, storage, applications, modules