====== OAR 2.5.7 ====== ===== oarstat ===== ==== WAITING/job batch ==== ''oarstat -fj'': assigned_resources= assigned_hostnames= * no information on ''scheduled'' resources ''oarstat -pj'': empty ==== WAITING/reservation a l'avance ==== ''oarstat -fj'': assigned_resources= assigned_hostnames= reserved_resources=1+2 * both ''assigned_resources'' and ''reserved_resources'' show up ''oarstat -pj'': empty ==== RUNNING **ou** ENDED / job batch **ou** advance reservation ==== ''oarstat -fj'' assigned_resources=1+2 assigned_hostnames=host1+host2 ''oarstat -pj'': show the properties in a custom format. ===== oarstat JSON (YAML/XML) ===== * There is no JSON/YAML/XML formated output for ''oarstat -pj''. * output of ''oarstat -J -fj'' is the following: ==== WAITING/job batch ==== "assigned_resources" : [ ], "assigned_network_address" : [ ], -> no information on ''scheduled'' resources ==== WAITING/reservation a l'avance ==== "reserved_resources" : { "1" : { "network_address" : "host1", "current_state" : "Alive" }, "2" : { "network_address" : "host2", "current_state" : "Alive" }, ... }, "assigned_network_address" : [ ], "assigned_resources" : [ ], * both ''assigned_resources'' and ''reserved_resources'' show up * no ''reserved_network_address'' * ''reserved_resources'' is a hash, while ''assigned_resources'' and ''assigned_network_address'' are tables ==== RUNNING **ou** TERMINATED / job batch **ou** advance reservation ==== "assigned_resources" : [ 1,2,... ], "assigned_network_address" : [ "host1", "host2" ], ===== Rest API ===== ==== WAITING / batch job ==== "nodes" : [ { "network_address" : "host1", "status" : "scheduled", "links" : [ { "rel" : "self", "href" : "/oarapi/resources/nodes/host1" } ], "api_timestamp" : 1481537655 }, { "api_timestamp" : 1481537655, "links" : [ { "href" : "/oarapi/resources/nodes/host2", "rel" : "self" } ], "status" : "scheduled, "network_address" : "host2" } ], "resources" : [ { "links" : [ { "href" : "/oarapi/resources/1", "rel" : "self" }, { "rel" : "collection", "href" : "/oarapi/resources/1/jobs", "title" : "jobs" } ], "status" : "scheduled", "id" : 1, "api_timestamp" : 1481537655 }, { "links" : [ { "href" : "/oarapi/resources/2", "rel" : "self" }, { "title" : "jobs", "rel" : "collection", "href" : "/oarapi/resources/2/jobs" } ], "id" : 2, "status" : "scheduled", "api_timestamp" : 1481537655 } ], ==== WAITING / advance reservation ==== "nodes" : [ { "network_address" : "host1", "status" : "reserved", "links" : [ { "rel" : "self", "href" : "/oarapi/resources/nodes/host1" } ], "api_timestamp" : 1481537655 }, { "api_timestamp" : 1481537655, "links" : [ { "href" : "/oarapi/resources/nodes/host2", "rel" : "self" } ], "status" : "reserved", "network_address" : "host2" } ], "resources" : [ { "links" : [ { "href" : "/oarapi/resources/1", "rel" : "self" }, { "rel" : "collection", "href" : "/oarapi/resources/1/jobs", "title" : "jobs" } ], "status" : "reserved", "id" : 1, "api_timestamp" : 1481537655 }, { "links" : [ { "href" : "/oarapi/resources/2", "rel" : "self" }, { "title" : "jobs", "rel" : "collection", "href" : "/oarapi/resources/2/jobs" } ], "id" : 2, "status" : "reserved", "api_timestamp" : 1481537655 } ], ==== RUNNING **ou** TERMINATED / job batch **ou** advance reservation ==== "nodes" : [ { "network_address" : "host1", "status" : "assigned", "links" : [ { "rel" : "self", "href" : "/oarapi/resources/nodes/host1" } ], "api_timestamp" : 1481537655 }, { "api_timestamp" : 1481537655, "links" : [ { "href" : "/oarapi/resources/nodes/host2", "rel" : "self" } ], "status" : "assigned", "network_address" : "host2" } ], "resources" : [ { "links" : [ { "href" : "/oarapi/resources/1", "rel" : "self" }, { "rel" : "collection", "href" : "/oarapi/resources/1/jobs", "title" : "jobs" } ], "status" : "assigned", "id" : 1, "api_timestamp" : 1481537655 }, { "links" : [ { "href" : "/oarapi/resources/2", "rel" : "self" }, { "title" : "jobs", "rel" : "collection", "href" : "/oarapi/resources/2/jobs" } ], "id" : 2, "status" : "assigned", "api_timestamp" : 1481537655 } ], ====== OAR 2.5.8 ====== ===== Proposals ===== * oarstat CLI: * ''oarstat -pj'' is only usable for running/ended jobs -> no change. * No change either to ''oarstat -fj'' -> use JSON/Yaml/XML instead to get the properties * oarstat JSON (Yaml/XML) * Homogenize the information for assigned resources (running/ended job), scheduled resources (waiting batch job) and reserved resources (advance reservation) AND add the information about the properties **-> this means changing the user interface of the command, not just add structured information**. * Rest API: * Add the properties in the structure of every resource: this means only adding a ''properties'' key in the current hash structure, with the hash of properties as value. **-> does not change much the user interface**. ===== Examples ===== ==== Rest API ==== neyron@takelma:~/scm/OAR/oar (2.5 $%>)$ curl -i -X GET http://docker:docker@localhost:46668/oarapi-priv/jobs/5/details.json -H'Content-Type: application/json' HTTP/1.1 200 OK Date: Mon, 12 Dec 2016 09:29:44 GMT Server: Apache/2.4.10 (Debian) Allow: GET, POST, DELETE Transfer-Encoding: chunked Content-Type: application/json; charset=ISO-8859-1 { "stdout_file" : "OAR.5.stdout", "state" : "Waiting", "resources" : [ { "api_timestamp" : 1481534984, "properties" : { "available_upto" : 2147483647, "cpu" : 1, "desktop_computing" : "NO", "mem" : 8, "last_job_date" : 1481376446, "last_available_upto" : 0, "besteffort" : "YES", "suspended_jobs" : "NO", "scheduler_priority" : 0, "cpuset" : "1", "deploy" : "NO", "next_state" : "UnChanged", "state_num" : 1, "current_state" : "Alive", "drain" : "NO", "resource_id" : "2", "next_finaud_decision" : "NO", "type" : "default", "finaud_decision" : "NO", "network_address" : "node1", "core" : 2, "host" : "node1", "expiry_date" : 0 }, "status" : "reserved", "id" : 2, "links" : [ { "href" : "/oarapi-priv/resources/2", "rel" : "self" }, { "href" : "/oarapi-priv/resources/2/jobs", "rel" : "collection", "title" : "jobs" } ] }, { "id" : 3, "status" : "reserved", "properties" : { "expiry_date" : 0, "host" : "node1", "core" : 3, "network_address" : "node1", "finaud_decision" : "NO", "type" : "default", "next_finaud_decision" : "NO", "resource_id" : "3", "drain" : "NO", "current_state" : "Alive", "state_num" : 1, "next_state" : "UnChanged", "deploy" : "NO", "cpuset" : "2", "suspended_jobs" : "NO", "scheduler_priority" : 0, "besteffort" : "YES", "last_available_upto" : 0, "last_job_date" : 1481376446, "mem" : 8, "desktop_computing" : "NO", "cpu" : 1, "available_upto" : 2147483647 }, "api_timestamp" : 1481534984, "links" : [ { "rel" : "self", "href" : "/oarapi-priv/resources/3" }, { "title" : "jobs", "href" : "/oarapi-priv/resources/3/jobs", "rel" : "collection" } ] }, { "api_timestamp" : 1481534984, "properties" : { "network_address" : "node1", "next_finaud_decision" : "NO", "finaud_decision" : "NO", "type" : "default", "core" : 1, "host" : "node1", "expiry_date" : 0, "deploy" : "NO", "cpuset" : "0", "next_state" : "UnChanged", "current_state" : "Alive", "state_num" : 1, "resource_id" : "1", "drain" : "NO", "last_available_upto" : 0, "suspended_jobs" : "NO", "scheduler_priority" : 0, "besteffort" : "YES", "available_upto" : 2147483647, "cpu" : 1, "last_job_date" : 1481376446, "desktop_computing" : "NO", "mem" : 8 }, "id" : 1, "status" : "reserved", "links" : [ { "href" : "/oarapi-priv/resources/1", "rel" : "self" }, { "rel" : "collection", "href" : "/oarapi-priv/resources/1/jobs", "title" : "jobs" } ] }, { "api_timestamp" : 1481534984, "properties" : { "type" : "default", "next_finaud_decision" : "NO", "finaud_decision" : "NO", "network_address" : "node1", "core" : 4, "host" : "node1", "expiry_date" : 0, "cpuset" : "3", "deploy" : "NO", "next_state" : "UnChanged", "state_num" : 1, "current_state" : "Alive", "resource_id" : "4", "drain" : "NO", "last_available_upto" : 0, "besteffort" : "YES", "scheduler_priority" : 0, "suspended_jobs" : "NO", "available_upto" : 2147483647, "cpu" : 1, "desktop_computing" : "NO", "mem" : 8, "last_job_date" : 1481376446 }, "id" : 4, "status" : "reserved", "links" : [ { "href" : "/oarapi-priv/resources/4", "rel" : "self" }, { "title" : "jobs", "href" : "/oarapi-priv/resources/4/jobs", "rel" : "collection" } ] } ], "project" : "default", "array_index" : 1, "stop_time" : 0, "array_id" : 5, "initial_request" : "oarsub -r 2016-12-25 20:00:00 -l nodes=1", "dependencies" : [], "resubmit_job_id" : 0, "queue" : "default", "submission_time" : 1481322874, "scheduled_start" : 1482692400, "cpuset_name" : "docker_5", "owner" : "docker", "wanted_resources" : "-l \"{type = 'default'}/network_address=1,walltime=2:0:0\" ", "stderr_file" : "OAR.5.stderr", "name" : null, "events" : [], "exit_code" : null, "walltime" : 7200, "types" : [], "type" : "INTERACTIVE", "properties" : "(desktop_computing = 'NO') AND drain='NO'", "api_timestamp" : 1481534984, "id" : 5, "nodes" : [ { "links" : [ { "href" : "/oarapi-priv/resources/nodes/node1", "rel" : "self" } ], "network_address" : "node1", "api_timestamp" : 1481534984, "status" : "reserved" } ], "links" : [ { "rel" : "self", "href" : "/oarapi-priv/jobs/5" }, { "title" : "resources", "rel" : "collection", "href" : "/oarapi-priv/jobs/5/resources" }, { "title" : "nodes", "rel" : "collection", "href" : "/oarapi-priv/jobs/5/nodes" } ], "message" : "R=4,W=2:0:0,J=R", "launching_directory" : "/home/docker", "start_time" : 1482692400, "reservation" : "Scheduled", "command" : "" }