Esempio n. 1
0
            def _reset_alembic_log(logger, config, repo_dir):
                session = get_odb_session_from_server_config(
                    config,
                    get_crypto_manager_from_server_config(config, repo_dir))

                with closing(session) as session:
                    query = 'SELECT version_num FROM alembic_version'
                    result = session.execute(query).fetchone()

                    # Check if there is any previous migration and if there is one that indicates
                    # that migrations from previous versions were run (i.e.. from 2.0), delete them.
                    if result:

                        # There will be only one row
                        current_revision = result[0]

                        # All revisions for commit d25de71c have this label in their names
                        if 'git_25de71c' not in current_revision:

                            # Log to user
                            logger.info('Removing old Alembic revisions')

                            # Actually delete
                            query = 'DELETE FROM alembic_version'
                            session.execute(query)

                    # Commit all changes
                    session.commit()
Esempio n. 2
0
    def set_zato_client(self):

        repo_dir = os.path.join(
            os.path.abspath(os.path.join(self.server_path)), 'config', 'repo')
        config = get_config(repo_dir, 'server.conf')

        self.client = ZatoClient('http://{}'.format(config.main.gunicorn_bind),
                                 '/zato/admin/invoke',
                                 get_server_client_auth(config, repo_dir),
                                 max_response_repr=15000)

        session = get_odb_session_from_server_config(
            config, get_crypto_manager_from_server_config(config, repo_dir))

        self.client.cluster_id = session.query(odb.model.Server).\
            filter(odb.model.Server.token == config.main.token).\
            one().cluster_id

        self.client.odb_session = session

        # Sanity check
        self.client.invoke('zato.ping')


# ################################################################################################################################
Esempio n. 3
0
def get_client_from_server_conf(server_dir, client_auth_func, get_config_func, server_url=None):
    """ Returns a Zato client built out of data found in a given server's config files.
    """

    # To avoid circular references
    from zato.common.util import get_crypto_manager_from_server_config, get_odb_session_from_server_config

    class ZatoClient(AnyServiceInvoker):
        def __init__(self, *args, **kwargs):
            super(ZatoClient, self).__init__(*args, **kwargs)
            self.cluster_id = None
            self.odb_session = None

    repo_dir = os.path.join(os.path.abspath(os.path.join(server_dir)), 'config', 'repo')
    config = get_config_func(repo_dir, 'server.conf')

    server_url = server_url if server_url else config.main.gunicorn_bind
    client = ZatoClient('http://{}'.format(server_url),
        '/zato/admin/invoke', client_auth_func(config, repo_dir), max_response_repr=15000)

    session = get_odb_session_from_server_config(
        config, get_crypto_manager_from_server_config(config, repo_dir))

    client.cluster_id = session.query(Server).\
        filter(Server.token == config.main.token).\
        one().cluster_id

    client.odb_session = session

    return client
Esempio n. 4
0
    def set_zato_client(self):

        repo_dir = os.path.join(os.path.abspath(os.path.join(self.server_path)), 'config', 'repo')
        config = get_config(repo_dir, 'server.conf')

        self.client = ZatoClient('http://{}'.format(config.main.gunicorn_bind),
            '/zato/admin/invoke', get_server_client_auth(config, repo_dir), max_response_repr=15000)

        session = get_odb_session_from_server_config(
            config, get_crypto_manager_from_server_config(config, repo_dir))

        self.client.cluster_id = session.query(odb.model.Server).\
            filter(odb.model.Server.token == config.main.token).\
            one().cluster_id

        self.client.odb_session = session

        # Sanity check
        self.client.invoke('zato.ping')