Skip to content

Duplicated translator code maybe? #226

@samoehlert

Description

@samoehlert
async def websocket_loop():
    """Connect to the websocket and start listening for messages for Gobgp."""
    logger.info("connecting to gobgp at %s", settings.gobgp_url)
    g = GoBGP(settings.gobgp_url)
    async for websocket in websockets.connect(settings.scram_events_url):
        try:
            async for message in websocket:
                await process(message, websocket, g)
        except websockets.ConnectionClosed:
            continue

Seems really close to main() at least as far connecting to the websocket

async def main():
    """Connect to the websocket and start listening for messages."""
    while True:
        try:
            logger.debug("connecting to gobgp at %s", settings.gobgp_url)
            g = GoBGP(settings.gobgp_url)
            async for websocket in websockets.connect(settings.scram_events_url):
                heartbeat_task = asyncio.create_task(heartbeat(websocket, g))
                try:
                    async for message in websocket:
                        await process(message, websocket, g)
                except websockets.ConnectionClosed:
                    heartbeat_task.cancel()
                    continue
                finally:
                    heartbeat_task.cancel()
        except RpcError as e:
            logger.warning("Encountered an error connecting to gobgp, retrying in 10s, error is: %s", e)
            await asyncio.sleep(10)
        except Exception:
            logger.exception("Unexpected error in main loop, retrying in 10s")
            await asyncio.sleep(10)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions