When upgrading an existing install to data stores support, we break existing API calls such as instance list.
This is because there is no default datastore or datastore_version included as part of the db migration. The addition of a column datastore_version_id means that w/o a default value for preexisting instances, the creation of a SimpleInstance fails.
Dec 10 06:53:45.908 DEBUG PID:29019 [trove.common.wsgi] Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/trove/common/wsgi.py", line 323, in execute_action
**action_args)
File "/usr/local/lib/python2.7/dist-packages/trove/openstack/common/wsgi.py", line 395, in execute_action
return self.dispatch(self.controller, action, request, **action_args)
File "/usr/local/lib/python2.7/dist-packages/trove/openstack/common/wsgi.py", line 404, in dispatch
return method(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/trove/instance/service.py", line 137, in index
servers, marker = models.Instances.load(context)
File "/usr/local/lib/python2.7/dist-packages/trove/instance/models.py", line 665, in load
find_server)
File "/usr/local/lib/python2.7/dist-packages/trove/instance/models.py", line 697, in _load_servers_status
ret.append(load_instance(context, db, status, server=server))
File "/usr/local/lib/python2.7/dist-packages/trove/instance/models.py", line 643, in load_simple_instance
return SimpleInstance(context, db, status)
File "/usr/local/lib/python2.7/dist-packages/trove/instance/models.py", line 126, in __init__
load(self.db_info.datastore_version_id))
File "/usr/local/lib/python2.7/dist-packages/trove/datastore/models.py", line 89, in load
raise exception.DatastoreVersionNotFound(version=id_or_name)
DatastoreVersionNotFound: Datastore version 'None' cannot be found.
Facing this problem while upgrading code from pre-"datastore" trove to latest trove.
Probably we need to find way to simulate values from old table service_images and get populated newer needed values in datastores and datastore_versions.