Hello everyone!

I was looking at the topic of usage taskflow persistence and jobboard in Octavia [1].
I created a simple PoC to check what should be done to enable this functionality [2] .

From what I see, taskflow expects that data, which will be stored in persitence backend/jobboard backend, is a dict or an object easily converted to dicts [3] (error [3.1])
Also functions that creates flow should be importable [4] (error [4.1]).

These two points lead to refactor required for Octavia to enable taskflow persistence and jobboard:
1) Convert data which is passed between flows in dicts, at this moment it is db objects with links to other db objects.
2) Create importable flow functions.  

As far as I see the only OpenStack project which adapted taskflow persistence is poppy [5]

I'm looking for taskflow expect to take a look at all this and give some comments - whether I am correct or missing something.

Thank you for your time in advance!

[1] - https://storyboard.openstack.org/#!/story/2005072
[2] - https://review.openstack.org/#/c/647406
[3] - https://github.com/openstack/taskflow/blob/master/taskflow/persistence/backends/impl_sqlalchemy.py#L458
[3.1] - http://paste.openstack.org/show/749530/
[4] - https://docs.openstack.org/taskflow/latest/_modules/taskflow/engines/helpers.html#save_factory_details
[4.1] - http://paste.openstack.org/show/749527/
[5] - https://github.com/openstack/poppy


--
Regards,
Ann Taraday
Mirantis, Inc