Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.



Jira ID

Jira Legacy
serverSystem JIRA
serverId32008a99-7831-3ff8-9638-3db0cd01164d
keyPP-912

Jira Legacy
serverSystem JIRA
serverId32008a99-7831-3ff8-9638-3db0cd01164d
keyPP-913

Jira Legacy
serverSystem JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId32008a99-7831-3ff8-9638-3db0cd01164d
keyPP-1288

Jira Legacy
serverSystem JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId32008a99-7831-3ff8-9638-3db0cd01164d
keyPP-1289

Forum Discussion  

Click here

Requirements and Usecases Click here
Design Document Links

      Interface 1: server hook event - “resv_confirm”

  • Visibility: Public

  • Change Control: Experimental

  • Details:

    • The hook created for this event will be invoked when there is a request for reservation confirmation which occurs after submitting a reservation, a confirmed reservation is altered or when a running reservation is altered.

    • This hook is created by pbsadmin and it will have read privileges to the server and the reservation objects.

    • The hook will run in foreground with the PBS server.

    • The reservation object with in the hook can be created by an interface pbs.event().resv exposed by the PBS event module.
    • The server object attributes can be accessed by the interface pbs.server() exposed by the PBS module. 
    • The reservation queue object attributes can be accessed by the interface pbs.event().resv.queue exposed by the PBS module.
    • The hook can accept or reject the reservation. Upon accept(), the reservation request gets confirmed status from the PBS server. Upon reject(), the following are the usecases:

      • If the reservation that was submitted has not yet started, the reservation object will be purged from the server.

      • If there is a confirmed reservation which has not yet started and and an alter requested on it, the reservation will continue to stay with it’s original attributes.

      • If there is a running reservation and an alter is requested on that, the reservation will continue to run with it’s original attributes.

                            A message - resv_confirm request rejected by <hook name> is added into the server logs.

    • On hitting the hook’s alarm, the hook gets rejected with a message - alarm call while running resv_confirm hook <hook name>, request rejected in the server logs

                Usage:             

          qmgr -c "create hook h1 event=resv_confirm"
 
          qmgr -c "import hook h1 application/x-python default <script path>"

               In the following case, If someone tries to create a hook with a wrong event name:

...

   Interface 2: server hook event - “resv_end”

  • Visibility: Public

  • Change Control: Experimental

  • Details:

    • The hook created for this event will be invoked when there is an end to the reservation.

    • A new batch request PBS_BATCH_ResvOccurEnd shall be introduced which will be used to map the standing reservation occurrence end hook event.
    • This hook is created by pbsadmin and it will have read privileges to the server and the reservation objects.

    • The hook will run in foreground.

    • The reservation object with in the hook can be created by an interface pbs.event().resv exposed by the PBS event module.
    • The server object attributes can be accessed by the interface pbs.server() exposed by the PBS module. 
    • The reservation queue object attributes can be accessed by the interface pbs.event().resv.queue exposed by the PBS module.
    • The hook shall be executed before the jobs are deleted from the reservation queue.
    • The hook can accept or reject the reservation. Upon reject(), the hook will not interrupt the execution of the process invoking it and a log message - resv_end request rejected by <hook name> is added in the server logs.

    • On hitting the hook’s alarm, the hook gets rejected with a message - alarm call while running resv_end hook <hook name>, request rejected in the server logs.

                Usage:

           qmgr -c "create hook h1 event=resv_end"
           qmgr -c "import hook h1 application/x-python default <script path>"

                In the following case, If one tries to create a hook with a wrong event name:

           qmgr -c "s h h1 event=resvtest"
           qmgr obj=h1 svr=default: invalid argument (resvtest) to event.
          Should be one or more of: queuejob,modifyjob,resvsub,movejob,runjob,provision,periodic,resv_confirm,resv_end,execjob_begin,execjob_prologue,execjob_epilogue,execjob_preterm,
execjob_end,exechost_periodic,execjob_launch,exechost_startup or execjob_attach for no event.
qmgr: hook error returned from server.

        Interface 3: server hook event - “endjob”

  • Visibility: Public
  • Change Control: Experimental
  • Details:
    • The hook created for this event will be invoked when the job ends at the server side.
    • This hook is created by pbsadmin and it will have read privileges to the server and the job object.
    • The job object with in the hook can be created by an interface pbs.event().job exposed by the PBS event module.
    • The server attributes can be accessed by the interface pbs.server() exposed by the PBS module. 
    • The queue attributes related to the job can be accessed by the interface pbs.server().queue(<queue_name>) exposed by the server object.
    • The node attributes related to the job can be accessed by the interface pbs.server().vnode(<vnode_name>) exposed by the server object.
    • The hook will run in foreground.
    • The hook can accept or reject the job. Upon reject(),  the hook will not interrupt the execution of the process invoking it and a log message - endjob request rejected by <hook name>  is added in the server logs.
    • On hitting the hook’s alarm, the hook gets rejected with a message - alarm call while running endjob hook <hook name>, request rejected in the server logs.

                  Usage:

           qmgr -c "create hook h1 event=job_end"
           qmgr -c "import hook h1 application/x-python default <script path>"

                 In the following case, If one tries to create a hook with a wrong event name:

           qmgr -c "s h h1 event=resvtest"

...

   

OSS Site Map

Developer Guide Pages

...