Simple json example for computing service: ------------------------------------------ "computingservices" 1: [ { "ce_id" 2a: 17191, "ce_name" 2b: "LUND-HTCONDOR-CE-gate1", "cs_endpointurl" 3: "https://gate01.aglt2.org:8888", "cs_flavour" 4: "HTCONDOR-CE", "cs_version" 5: "2.12", "cs_jobmanager" 6: "condor", "cs_jobmanager_version" 6: "12", "cs_status" 7: "production", "cs_state" 8: "closed", "cs_queue_name" 9: "long", "cs_queue_maxcputime" 10: 0, "cs_queue_maxwalltime" 11: 4300, "cs_queue_maxmainmemory" 12: "8048", "cs_queue_maxrunningjobs" 13: "2824", "cs_assigned_vo" 14: ["ATLAS", "CMS"], "cs_message" : "free form string..." } { "ce_id": 17191, "ce_name": "LUND-HTCONDOR-CE-gate1", "cs_endpointurl": "https://gate12.aglt2.org:1122", "cs_flavour": "HTCONDOR-CE", "cs_version": "2.12", "cs_jobmanager": "condor", "cs_jobmanager_version": "12", "cs_status": "production", "cs_state": "draining", "cs_queue_name": "long", "cs_queue_maxcputime": 0, "cs_queue_maxwalltime": 4300, "cs_queue_maxmainmemory": "8048", "cs_queue_maxrunningjobs": "2824", "cs_assigned_vo": ["ATLAS", "CMS"], "cs_message" : "this is the same service as above except a different endpoint" } { "ce_id": 1200, "ce_name": "NeIC-ARC-LUND", "cs_endpointurl": "https://arcce.neic.org:1122", "cs_flavour": "ARC-CE", "cs_version": "5.64", "cs_jobmanager": "SLURM", "cs_jobmanager_version": "2", "cs_status": "production", "cs_state": "production", "cs_queue_name": "simulation", "cs_queue_maxcputime": 0, "cs_queue_maxwalltime": 4300, "cs_queue_maxmainmemory": "8048", "cs_queue_maxrunningjobs": "2824", "cs_assigned_vo": ["ATLAS", "CMS"], "cs_message" : "some free form text" } ], DEFINITIONS: ----------- 1) a computingservice is an abstracted logical view of software and hardware components that participates in the creation of a computational capacity. 2a) ce_id: a unique ID of the computing element. A computing element can be the concept that groups "identical" computing services with the only difference of service endpoints or queue names. 2b) ce_name: a unique (?) human readable name to identify the computing element/service. 3) cs_endpointurl: as defined by the GLUE2ComputingServiceEndpointURL attribute: the network location of the serviceendpoint to contact the computing service 4) cs_flavour: as defined by the GLUE2ComputingServiceType, the type of the service according to agreed namespace specification 5) cs_version: the version of the service type, e.g. 6.0 of ARC 6) cs_jobmanager, cs_jobmanager_version: the type and the version of the LRMS (batch system) underneath of the computing service. Identical to the GLUE2ManagerProductName and GLUE2ManagerProductVersion 7) cs_status: the maturity of the service in terms of quality of the software/hardware components. fixed enumeration values development,pre-production,testing,production. See GLUE2QualityLevel definitions 8) cs_servingstate: a state value specifying whether the computing service is open to job processing. See definition of GLUE2ComputingShareServingState. possible values are: closed, draining,production, queuing 9) cs_queue_name: a human readable name of the underlying batch queue. 10) cs_queue_maxcputime: as defined in the GLUE2ComputingShareMaxCPUTime, the max cputime in seconds that a job may request/obtain. Please note it is defined as a single-core value 11) cs_queue_maxwalltime: as defined in the GLUE2ComputingShareMaxWalltime, the max. obtainable wallclock limit for a single-core job in seconds. 12) cs_queue_maxmainmemory: as defined by the GLUE2ComputingShareMaxMainMemory, the max physical memory a job is allowed to use in MBs 13) cs_queue_maxrunningjobs: as defined by GLUE2ComputingShareMaxRunningJobs, the max allowed number of running jobs in the computing service 14) cs_assigned_vo: the list of authorized user groups Questions: ----------- 1) how to handle multiple service endpoints over the same set of resources? is that a same computingservice? How shall the ce_id, ce_name attributes used in these cases? 2) howto handle computing services that have no queues underneath? shall we use special "none" values for cs_queue_name, and other queue specific attributes? 3) howto deal with multi-core time limits (maxcputime/maxwalltime) 4) do we need more fine-grained memory attributes? 5) i deliberately omitted "CPU-type" like information 6) no dynamic information at all 7) we may go for more natural units, e.g. minutes and GBs instead of seconds and MBs 8) we need to understand howto use the cs_assigned_vo attribute