On Mon, 17 Sep 2018, 8:06 Germano Veit Michel, <germano(a)redhat.com> wrote:
Hello,
I've been struggling with TaskID/FlowID when talking to the VDSM API. I am
trying to write a tool that uses the vdsm-api to facilitate the
troubleshooting of image issues (snapshots). This tool does a series of API
calls, but I cannot find a nice way to track the taskID and clear the
completed tasks after completion of the tool commands. Currently I'm
clearing all Tasks that match the verb and are finished, which is not
ideal. I would like to have the exact TaskID to track and dont want to
leave Tasks behind. I don't want also to clear tasks from other entities
(like engine!).
Storage jobs are managed using (client generated) job id. The task id is
internal
implementation detail which will likely disappear in future version. You
don'need
to monitor or clean the internal tasks, they are managed by the storage jobs
framework for you.
You can check engine code to understand how storage jobs are managed.
I understand that if I want to specify the task/flow ids when calling
the
vdsm API, these two need to be passed as headers (http) so they end up in
the context of the call. Is this correct? But using vdsm/client.py I cannot
figure out how to do this, but I understand it is possible.
This is not possible now, but sounds like a good idea. Please file RFE to
add this,
or if you have the time you can try to add. Looks like the place you can
add it is
in lib/yajsonrpc/stompclient.py - ClientRpcTransportAdapter.send().
Piotr, what do you think?
Nir