def test_connection_from_properties_file(self): props_filename = str(uuid.uuid4()) filename = str(uuid.uuid4()) _silentremove(filename) dburi = "sqlite:///%s" % filename f = open(props_filename,'w') # JDBCRC f.write('pegasus.catalog.replica=JDBCRC\n') f.write('pegasus.catalog.replica.db.driver=SQLite\n') f.write('pegasus.catalog.replica.db.url=jdbc:sqlite:%s\n' % filename) # MASTER f.write('pegasus.dashboard.output=%s\n' % dburi) # WORKFLOW f.write('pegasus.monitord.output=%s\n' % dburi) f.close() db = connection.connect_by_properties(props_filename, connection.DBType.JDBCRC, create=True) self.assertEquals(db_current_version(db), CURRENT_DB_VERSION) db.close() _remove(filename) db = connection.connect_by_properties(props_filename, connection.DBType.MASTER, create=True) self.assertEquals(db_current_version(db), CURRENT_DB_VERSION) db.close() _remove(filename) db = connection.connect_by_properties(props_filename, connection.DBType.WORKFLOW, create=True) self.assertEquals(db_current_version(db), CURRENT_DB_VERSION) db.close() _remove(filename) _silentremove(props_filename)
def test_connection_from_properties_file(tmp_path): """ Test whether DB connections are being established from properties loaded from the properties file. """ props_filename = str(uuid.uuid4()) dburi = "sqlite://" with open(props_filename, "w") as f: # JDBCRC f.write("pegasus.catalog.replica=JDBCRC\n") f.write("pegasus.catalog.replica.db.driver=SQLite\n") f.write("pegasus.catalog.replica.db.url=jdbc:sqlite::memory:\n") # MASTER f.write("pegasus.dashboard.output=%s\n" % dburi) # WORKFLOW f.write("pegasus.monitord.output=%s\n" % dburi) db = connection.connect_by_properties( props_filename, connection.DBType.JDBCRC, create=True, verbose=False ) assert get_version(db) == CURRENT_DB_VERSION db.close() db = connection.connect_by_properties( props_filename, connection.DBType.MASTER, create=True, verbose=False ) assert get_version(db) == CURRENT_DB_VERSION db.close() db = connection.connect_by_properties( props_filename, connection.DBType.WORKFLOW, create=True, verbose=False ) assert get_version(db) == CURRENT_DB_VERSION db.close()
def test_connection_from_properties_file(self): """ Test whether DB connections are being established from properties loaded from the properties file. """ props_filename = str(uuid.uuid4()) filename = str(uuid.uuid4()) _silentremove(filename) dburi = "sqlite:///%s" % filename f = open(props_filename,'w') # JDBCRC f.write('pegasus.catalog.replica=JDBCRC\n') f.write('pegasus.catalog.replica.db.driver=SQLite\n') f.write('pegasus.catalog.replica.db.url=jdbc:sqlite:%s\n' % filename) # MASTER f.write('pegasus.dashboard.output=%s\n' % dburi) # WORKFLOW f.write('pegasus.monitord.output=%s\n' % dburi) f.close() db = connection.connect_by_properties(props_filename, connection.DBType.JDBCRC, create=True, verbose=False) self.assertEquals(db_current_version(db), CURRENT_DB_VERSION) db.close() _remove(filename) db = connection.connect_by_properties(props_filename, connection.DBType.MASTER, create=True, verbose=False) self.assertEquals(db_current_version(db), CURRENT_DB_VERSION) db.close() _remove(filename) db = connection.connect_by_properties(props_filename, connection.DBType.WORKFLOW, create=True, verbose=False) self.assertEquals(db_current_version(db), CURRENT_DB_VERSION) db.close() _remove(filename) _silentremove(props_filename)
def _get_connection( dburi=None, cl_properties=None, config_properties=None, submit_dir=None, db_type=None, pegasus_version=None, schema_check=True, create=False, force=False, print_version=True, ): """ Get connection to the database based on the parameters""" if dburi: return connection.connect( dburi, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force, db_type=db_type, print_version=print_version, ) elif submit_dir: return connection.connect_by_submitdir( submit_dir, db_type, config_properties, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force, cl_properties=cl_properties, print_version=print_version, ) elif config_properties or _has_connection_properties(cl_properties): return connection.connect_by_properties( config_properties, db_type, cl_properties=cl_properties, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force, print_version=print_version, ) if not db_type: dburi = connection._get_master_uri() return connection.connect( dburi, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force, db_type=db_type, print_version=print_version, ) return None
def _get_connection(dburi=None, config_properties=None, submit_dir=None, db_type=None, pegasus_version=None, schema_check=True, create=False, force=False): """ Get connection to the database based on the parameters""" if dburi: return connection.connect(dburi, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force) elif config_properties: return connection.connect_by_properties(config_properties, db_type, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force) elif submit_dir: return connection.connect_by_submitdir(submit_dir, db_type, config_properties, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force) if not db_type: dburi = connection._get_master_uri() return connection.connect(dburi, pegasus_version=pegasus_version, schema_check=schema_check, create=create, force=force) return None