Пример #1
0
    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)
Пример #2
0
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()
Пример #3
0
    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)
Пример #4
0
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
Пример #5
0
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