Figured it out. I had created 3 VMs but was trying to created shared storage between 2 xcp-ng instances. I assumed that this can be done and the 3 instance will only act as witness without contributing to the storage.
After going through many replies on the forum thread I understood that you need minimum 3 hosts participating in the storage. Modified my setup to match the requirements (was easy since they are just VMs) all the instructions worked correctly.
The error about missing linstor python module was that I hadn't installed necessary packages on 3rd host in the pool since I assumed it doesn't require XOSTOR instructions to be run on it since it would not be participating in shared storage. This is my understanding though and I can be wrong.
Having written above I think I can still have only 2 hosts participating in storage but just need to install necessary packages on third host also. Will try and see how it goes.