"on that note, what I'm wondering is a) how return OPENSTACK_CODENAMES[vers] will ever return ('nova-common' version is vers=12.0.0 which is passed as a key to OPENSTACK_CODENAMES)? ...hence its indexing is incorrect."
This is the crux of the issue. With version 12.0.0 we will never get to line 260 and OPENSTACK_CODENAMES[vers]. If we get there we are then looking for versions strings of the form year.point_release.
This is why your nova-compute MP was the correct solution.
"on that note, what I'm wondering is a) how return OPENSTACK_ CODENAMES[ vers] will ever return ('nova-common' version is vers=12.0.0 which is passed as a key to OPENSTACK_ CODENAMES) ? ...hence its indexing is incorrect."
This is the crux of the issue. With version 12.0.0 we will never get to line 260 and OPENSTACK_ CODENAMES[ vers]. If we get there we are then looking for versions strings of the form year.point_release.
This is why your nova-compute MP was the correct solution.