Hi
I am able to create instances and attach volumes via startup_ndslabs.py now. Here are two issues I ran into and the solutions. Hope it can save your time if you ran into the same issues.
1. You need to specify this parameter when running the script to avoid 'invalid key_name' error.
   Â--ssh-key-name [your_key]
  Do not include the pem extension.
2. Change the all default volume ids to your own volume ids in the script or specify them as parameters to avoid 'Invalid volume' error.
Change them in the script in these lines:
parser.add_argument('--dbvol-id', action="" dest='dbvol_id',
            default='your-dbvol-id')
  parser.add_argument('--icatvol-id', action="" dest='icatvol_id',
            default='your-icatvol-id')
  parser.add_argument('--moinmoin-id', action="" dest='moinmoinvol_id',
            default='your-moinmoin-id')
  parser.add_argument('--flavor-id', action="" dest='flavor_id',
You can get your volume ids by logging into the openstack dashboard -> click volume section on the left -> click the volume name to see its id.
Also, make sure your volume status is 'available'. If not, terminate the instances which are using those volumes if you used Kacper's gateway to create instances before because those instances will take your volumes.
Many thanks to Mike! I will move to the stage of Âdeveloping python scripts for other REST API now.
Best
Lengyue