Ejemplo n.º 1
0
async def async_main():
    app = {}

    user_creation_loop = None
    try:
        db = Database()
        await db.async_init(maxsize=50)
        app['db'] = db

        db_instance = Database()
        await db_instance.async_init(
            maxsize=50, config_file='/database-server-config/sql-config.json')
        app['db_instance'] = db_instance

        kube.config.load_incluster_config()
        k8s_client = kube.client.CoreV1Api()
        app['k8s_client'] = k8s_client

        app['iam_client'] = aiogoogle.IAmClient(
            PROJECT,
            credentials=aiogoogle.Credentials.from_file('/gsa-key/key.json'))

        app['batch_client'] = bc.aioclient.BatchClient(None)

        users_changed_event = asyncio.Event()
        app['users_changed_event'] = users_changed_event

        async def users_changed_handler():
            return await update_users(app)

        user_creation_loop = EventHandler(users_changed_handler,
                                          event=users_changed_event,
                                          min_delay_secs=1.0)
        await user_creation_loop.start()

        while True:
            await asyncio.sleep(10000)
    finally:
        try:
            if 'db' in app:
                await app['db'].async_close()
        finally:
            try:
                if 'db_instance_pool' in app:
                    await app['db_instance_pool'].async_close()
            finally:
                if user_creation_loop is not None:
                    user_creation_loop.shutdown()
Ejemplo n.º 2
0
async def async_main():
    app = {}

    try:
        db = Database()
        await db.async_init(maxsize=50)
        app['db'] = db

        db_instance = Database()
        await db_instance.async_init(
            maxsize=50, config_file='/database-server-config/sql-config.json')
        app['db_instance'] = db_instance

        kube.config.load_incluster_config()
        k8s_client = kube.client.CoreV1Api()
        app['k8s_client'] = k8s_client

        credentials = google.oauth2.service_account.Credentials.from_service_account_file(
            '/gsa-key/key.json',
            scopes=[
                'https://www.googleapis.com/auth/cloud-platform',
                'https://www.googleapis.com/auth/devstorage.full_control'
            ])
        app['google_client'] = GoogleClient(credentials)

        app['iam_client'] = aiogoogle.IAmClient(
            PROJECT,
            credentials=aiogoogle.Credentials.from_file('/gsa-key/key.json'))

        users_changed_event = asyncio.Event()
        app['users_changed_event'] = users_changed_event

        async def users_changed_handler():
            return await update_users(app)

        user_creation_loop = EventHandler(users_changed_handler,
                                          event=users_changed_event,
                                          min_delay_secs=1.0)
        await user_creation_loop.start()

        while True:
            await asyncio.sleep(10000)
    finally:
        if 'db' in app:
            await app['db'].async_close()
        if 'db_instance_pool' in app:
            await app['db_instance_pool'].async_close()
Ejemplo n.º 3
0
async def main():
    users = [
        # username, email, is_developer, is_service_account
        ('auth', None, 0, 1),
        ('benchmark', None, 0, 1),
        ('ci', None, 0, 1),
        ('test', None, 0, 0),
        ('test-dev', None, 1, 0)
    ]

    app = {}

    db = Database()
    await db.async_init(maxsize=50)
    app['db'] = db

    db_instance = Database()
    await db_instance.async_init(
        maxsize=50, config_file='/database-server-config/sql-config.json')
    app['db_instance'] = db_instance

    # kube.config.load_incluster_config()
    await kube.config.load_kube_config()
    k8s_client = kube.client.CoreV1Api()
    app['k8s_client'] = k8s_client

    app['iam_client'] = aiogoogle.IAmClient(
        PROJECT,
        credentials=aiogoogle.Credentials.from_file('/auth-gsa-key/key.json'))

    for username, email, is_developer, is_service_account in users:
        user_id = await insert_user_if_not_exists(app, username, email,
                                                  is_developer,
                                                  is_service_account)

        if user_id is not None:
            db_user = await db.execute_and_fetchone(
                'SELECT * FROM users where id = %s;', (user_id, ))
            await create_user(app, db_user, skip_trial_bp=True)