def setUp(self): """Establish a clean test environment""" super(TestRegistryV2Client, self).setUp() db_api.get_engine() self.context = context.RequestContext(is_admin=True) uuid1_time = timeutils.utcnow() uuid2_time = uuid1_time + datetime.timedelta(seconds=5) self.FIXTURES = [ self.get_extra_fixture( id=UUID1, name='fake image #1', is_public=False, disk_format='ami', container_format='ami', size=13, virtual_size=26, properties={'type': 'kernel'}, location="swift://*****:*****@acct/container/obj.tar.0", created_at=uuid1_time), self.get_extra_fixture(id=UUID2, name='fake image #2', properties={}, size=19, virtual_size=38, location="file:///tmp/xmonitor-tests/2", created_at=uuid2_time) ] self.destroy_fixtures() self.create_fixtures() self.client = rclient.RegistryClient("0.0.0.0")
def setUp(self): """Establish a clean test environment""" super(TestRegistryV1Client, self).setUp() db_api.get_engine() self.context = context.RequestContext(is_admin=True) self.FIXTURES = [ self.get_fixture( id=UUID1, name='fake image #1', is_public=False, disk_format='ami', container_format='ami', size=13, location="swift://*****:*****@acct/container/obj.tar.0", properties={'type': 'kernel'}), self.get_fixture(id=UUID2, name='fake image #2', properties={}, size=19, location="file:///tmp/xmonitor-tests/2") ] self.destroy_fixtures() self.create_fixtures() self.client = rclient.RegistryClient("0.0.0.0")
def sync(self, version=None, current_version=None): """ Place a database under migration control and upgrade/downgrade it, creating first if necessary. """ if current_version not in (None, 'None'): migration.db_version_control(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, version=current_version) migration.db_sync(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, version)
def test_db_metadefs_load_from_path_overwrite_existing(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper([ 'xmonitor.cmd.manage', 'db', 'load_metadefs', '--path', '/mock/', '--merge', '--overwrite' ], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', True, False, True)
def test_db_metadefs_load_prefer_new_and_overwrite_existing(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper([ 'xmonitor.cmd.manage', 'db', 'load_metadefs', '--merge', '--prefer_new', '--overwrite' ], db_metadata.db_load_metadefs, db_api.get_engine(), None, True, True, True)
def test_db_metadefs_load_prefer_new(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper([ 'xmonitor.cmd.manage', 'db', 'load_metadefs', '--merge', '--prefer_new' ], db_metadata.db_load_metadefs, db_api.get_engine(), None, True, True, False)
def test_db_metadefs_load_from_merge_and_prefer_new_and_overwrite(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper([ 'xmonitor.cmd.manage', 'db_load_metadefs', '/mock/', 'True', 'True', 'True' ], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', 'True', 'True', 'True')
def test_db_metadefs_load_from_merge_and_prefer_new_and_overwrite(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db_load_metadefs', '/mock/', 'True', 'True', 'True'], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', 'True', 'True', 'True')
def test_db_metadefs_load_prefer_new(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db', 'load_metadefs', '--merge', '--prefer_new'], db_metadata.db_load_metadefs, db_api.get_engine(), None, True, True, False)
def test_db_metadefs_load_with_specified_path(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db_load_metadefs', '/mock/'], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', None, None, None)
def test_db_metadefs_load_from_path_merge(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db_load_metadefs', '/mock/', 'True'], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', 'True', None, None)
def test_db_metadefs_export_with_specified_path(self): db_metadata.db_export_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db', 'export_metadefs', '--path', '/mock/'], db_metadata.db_export_metadefs, db_api.get_engine(), '/mock/')
def test_db_metadefs_load_prefer_new_and_overwrite_existing(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db', 'load_metadefs', '--merge', '--prefer_new', '--overwrite'], db_metadata.db_load_metadefs, db_api.get_engine(), None, True, True, True)
def load_metadefs(): """Read metadefinition files and insert data into the database""" return get_backend().db_load_metadefs(engine=db_api.get_engine(), metadata_path=None, merge=False, prefer_new=False, overwrite=False)
def test_db_metadefs_load_from_path_overwrite_existing(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db', 'load_metadefs', '--path', '/mock/', '--merge', '--overwrite'], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', True, False, True)
def run_sql_cmd(self, sql): """ Provides a crude mechanism to run manual SQL commands for backend DB verification within the functional tests. The raw result set is returned. """ engine = db_api.get_engine() return engine.execute(sql)
def load_metadefs(self, path=None, merge=False, prefer_new=False, overwrite=False): """Load metadefinition json files to database""" metadata.db_load_metadefs(db_api.get_engine(), path, merge, prefer_new, overwrite)
def downgrade(self, version=None): """Downgrade the database's migration level""" print( "Warning: DB downgrade is deprecated and will be removed in N " "release. Users should make a full database backup of the " "production data before attempting any upgrade.", file=sys.stderr) migration.db_sync(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, version)
def downgrade(self, version=None): """Downgrade the database's migration level""" print("Warning: DB downgrade is deprecated and will be removed in N " "release. Users should make a full database backup of the " "production data before attempting any upgrade.", file=sys.stderr) migration.db_sync(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, version)
def db_sync(version=None, init_version=0, engine=None): """Migrate the database to `version` or the most recent version.""" if engine is None: engine = db_api.get_engine() return get_backend().db_sync(engine=engine, abs_path=MIGRATE_REPO_PATH, version=version, init_version=init_version)
def setUp(self): """Establish a clean test environment""" super(TestRegistryV2Client, self).setUp() db_api.get_engine() self.context = context.RequestContext(is_admin=True) uuid1_time = timeutils.utcnow() uuid2_time = uuid1_time + datetime.timedelta(seconds=5) self.FIXTURES = [ self.get_extra_fixture( id=UUID1, name='fake image #1', is_public=False, disk_format='ami', container_format='ami', size=13, virtual_size=26, properties={'type': 'kernel'}, location="swift://*****:*****@acct/container/obj.tar.0", created_at=uuid1_time), self.get_extra_fixture(id=UUID2, name='fake image #2', properties={}, size=19, virtual_size=38, location="file:///tmp/xmonitor-tests/2", created_at=uuid2_time)] self.destroy_fixtures() self.create_fixtures() self.client = rclient.RegistryClient("0.0.0.0")
def unload_metadefs(self): """Unload metadefinitions from database""" metadata.db_unload_metadefs(db_api.get_engine())
def upgrade(self, version=None): """Upgrade the database's migration level""" migration.db_sync(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, version)
def test_legacy_db_downgrade_version(self, db_sync): self._main_test_helper(['xmonitor.cmd.manage', 'db_downgrade', '20'], migration.db_sync, db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, '20')
def unload_metadefs(): """Unload metadefinitions from database""" return get_backend().db_unload_metadefs(engine=db_api.get_engine())
def version_control(self, version=None): """Place a database under migration control""" migration.db_version_control(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, version)
def test_legacy_db_upgrade(self, db_sync): self._main_test_helper(['xmonitor.cmd.manage', 'db_upgrade'], migration.db_sync, db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, None)
def test_db_metadefs_export_with_specified_path(self): db_metadata.db_export_metadefs = mock.Mock() self._main_test_helper([ 'xmonitor.cmd.manage', 'db', 'export_metadefs', '--path', '/mock/' ], db_metadata.db_export_metadefs, db_api.get_engine(), '/mock/')
def export_metadefs(self, path=None): """Export metadefinitions data from database to files""" metadata.db_export_metadefs(db_api.get_engine(), path)
def version(self): """Print database's current migration level""" print( migration.db_version(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, db_migration.INIT_VERSION))
def test_db_metadefs_load_with_specified_path(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper( ['xmonitor.cmd.manage', 'db_load_metadefs', '/mock/'], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', None, None, None)
def destroy_fixtures(self): db_models.unregister_models(db_api.get_engine()) db_models.register_models(db_api.get_engine())
def test_legacy_db_version(self, db_version): with mock.patch('sys.stdout', new_callable=StringIO): self._main_test_helper(['xmonitor.cmd.manage', 'db_version'], migration.db_version, db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, 0)
def version(self): """Print database's current migration level""" print(migration.db_version(db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, db_migration.INIT_VERSION))
def test_db_metadefs_unload(self): db_metadata.db_unload_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db_unload_metadefs'], db_metadata.db_unload_metadefs, db_api.get_engine())
def test_legacy_db_version_control(self, db_version_control): self._main_test_helper(['xmonitor.cmd.manage', 'db_version_control'], migration.db_version_control, db_api.get_engine(), db_migration.MIGRATE_REPO_PATH, None)
def test_db_metadefs_load_from_path_merge(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper( ['xmonitor.cmd.manage', 'db_load_metadefs', '/mock/', 'True'], db_metadata.db_load_metadefs, db_api.get_engine(), '/mock/', 'True', None, None)
def test_db_metadefs_export(self): db_metadata.db_export_metadefs = mock.Mock() self._main_test_helper( ['xmonitor.cmd.manage', 'db', 'export_metadefs'], db_metadata.db_export_metadefs, db_api.get_engine(), None)
def export_metadefs(): """Export metadefinitions from database to files""" return get_backend().db_export_metadefs(engine=db_api.get_engine(), metadata_path=None)
def test_db_metadefs_export(self): db_metadata.db_export_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db', 'export_metadefs'], db_metadata.db_export_metadefs, db_api.get_engine(), None)
def test_db_metadefs_load(self): db_metadata.db_load_metadefs = mock.Mock() self._main_test_helper(['xmonitor.cmd.manage', 'db', 'load_metadefs'], db_metadata.db_load_metadefs, db_api.get_engine(), None, False, False, False)