Legacy MySQL datastore is shown on datastore-list

On the 019_datastore_fix.py migration script the upgrade method was
calling the has_instances_wo_datastore_version as a function pointer
instead of passing the instance_table in and calling the function. This
meant the if block was always true because it was just checking if the
function exists and the create_legacy_version method was called everytime
causing the "Legacy MySQL" datastore to be inserted even if there was no
legacy trove instances. Now inject the instace_table into the
has_instances_wo_datastore_version and everything works as expected.

  Updated the datastore integration tests to not rely on the Legacy MySQL
datastore to exist by using the 10000000-0000-0000-0000-000000000001 GUID.
Instead the test now asserts against the data_store by the name
"Test_Datastore_1" which is the datastore the integration test
intended to validate against.

Closes-Bug: 1396427
Change-Id: Ifff33a962cc8d6ea150f6408d63b81412e196939
This commit is contained in:
Edmond Kotowski 2014-12-02 14:10:49 -08:00
parent 3864816fd6
commit a6358494d1
4 changed files with 11 additions and 11 deletions

View File

@ -24,6 +24,7 @@ import sys
import traceback import traceback
from trove.common import cfg from trove.common import cfg
from trove.common import utils
from trove.openstack.common import log as logging from trove.openstack.common import log as logging
from trove.tests.config import CONFIG from trove.tests.config import CONFIG
from wsgi_intercept.httplib2_intercept import install as wsgi_install from wsgi_intercept.httplib2_intercept import install as wsgi_install
@ -82,8 +83,8 @@ def datastore_init():
default_version_id= default_version_id=
CONFIG.dbaas_datastore_version_id) CONFIG.dbaas_datastore_version_id)
models.DBDatastore.create(id=CONFIG.dbaas_datastore_id_no_versions, models.DBDatastore.create(id=utils.generate_uuid(),
name='Test_Datastore_1', name=CONFIG.dbaas_datastore_name_no_versions,
default_version_id=None) default_version_id=None)
main_dsv = models.DBDatastoreVersion.create( main_dsv = models.DBDatastoreVersion.create(

View File

@ -89,7 +89,7 @@ def upgrade(migrate_engine):
instance_table = Table('instances', meta, autoload=True) instance_table = Table('instances', meta, autoload=True)
if has_instances_wo_datastore_version: if has_instances_wo_datastore_version(instance_table):
instances = find_all_instances_wo_datastore_version(instance_table) instances = find_all_instances_wo_datastore_version(instance_table)
image_id = find_image("mysql") image_id = find_image("mysql")

View File

@ -88,16 +88,16 @@ class Datastores(object):
@test @test
def test_datastore_with_no_active_versions_is_hidden(self): def test_datastore_with_no_active_versions_is_hidden(self):
datastores = self.rd_client.datastores.list() datastores = self.rd_client.datastores.list()
id_list = [datastore.id for datastore in datastores] name_list = [datastore.name for datastore in datastores]
id_no_versions = test_config.dbaas_datastore_id_no_versions name_no_versions = test_config.dbaas_datastore_name_no_versions
assert_true(id_no_versions not in id_list) assert_true(name_no_versions not in name_list)
@test @test
def test_datastore_with_no_active_versions_is_visible_for_admin(self): def test_datastore_with_no_active_versions_is_visible_for_admin(self):
datastores = self.rd_admin.datastores.list() datastores = self.rd_admin.datastores.list()
id_list = [datastore.id for datastore in datastores] name_list = [datastore.name for datastore in datastores]
id_no_versions = test_config.dbaas_datastore_id_no_versions name_no_versions = test_config.dbaas_datastore_name_no_versions
assert_true(id_no_versions in id_list) assert_true(name_no_versions in name_list)
@test(groups=[tests.DBAAS_API, GROUP, tests.PRE_INSTANCES], @test(groups=[tests.DBAAS_API, GROUP, tests.PRE_INSTANCES],

View File

@ -72,8 +72,7 @@ class TestConfig(object):
'nova_url': "http://localhost:8774/v1.1", 'nova_url': "http://localhost:8774/v1.1",
'dbaas_datastore': "mysql", 'dbaas_datastore': "mysql",
'dbaas_datastore_id': "a00000a0-00a0-0a00-00a0-000a000000aa", 'dbaas_datastore_id': "a00000a0-00a0-0a00-00a0-000a000000aa",
'dbaas_datastore_id_no_versions': "10000000-0000-0000-0000-" 'dbaas_datastore_name_no_versions': "Test_Datastore_1",
"000000000001",
'dbaas_datastore_version': "5.5", 'dbaas_datastore_version': "5.5",
'dbaas_datastore_version_id': "b00000b0-00b0-0b00-00b0-" 'dbaas_datastore_version_id': "b00000b0-00b0-0b00-00b0-"
"000b000000bb", "000b000000bb",