Hi All,

After looking at the current design and doing some trial and error I
thought of implementing the cancellation as follows.


   - Cancellation of an experiment requested by a gateway requires
   cancellation request to go through several layers. (Orchestrator > GFac >
   GFac Provider)
   - Each layer is responsible for handling cancellation relevant for that
   layer (Orchestration cancels experiment, GFac cancels Task, GFac Provider
   cancels Job)
   - What I thought is, each layer will listen to cancellation request made
   to the layer above and perform its cancellation actions accordingly. (GFac
   will see the experiment is having the status "canceling" for an experiment
   id and it will perform cancellation of the tasks relevant for that
   experiment)
      - Effectively the Orchestrator will be
      - updating the status of the experiment in registry with the status
         "canceling"
         - publish a message which will be caught by GFac instance which
         handles its Tasks.
         - GFac will perform the same and the correct GFac Provider
      instance will catch the message and perform the actual job cancellation.
   - Once the job cancellation is done the statuses at each layer will be
   updated (to "canceled") in  similar fashion.
   - We allow the API call of cancellation to be asynchronous
   - I'm hoping to use the MonitorPublisher implemented by Lahiru to
   publish the messages.

wdyt?


Thanks,

Saminda

Reply via email to