From d1c05c90308590fae0b7c1d696773330c691eead Mon Sep 17 00:00:00 2001 From: Andrey Dolgolev Date: Sun, 12 Dec 2021 12:08:15 +0200 Subject: [PATCH] Init moonworm cli draft. --- backend/moonstreamapi/admin/cli.py | 56 ++++++++++++++++++- backend/moonstreamapi/admin/moonworm_tasks.py | 23 ++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 backend/moonstreamapi/admin/moonworm_tasks.py diff --git a/backend/moonstreamapi/admin/cli.py b/backend/moonstreamapi/admin/cli.py index 746000e2..decc4ac6 100644 --- a/backend/moonstreamapi/admin/cli.py +++ b/backend/moonstreamapi/admin/cli.py @@ -8,6 +8,7 @@ import json import os from posix import listdir from typing import Optional +from moonstreamapi.providers import moonworm_provider from moonstreamdb.db import SessionLocal @@ -15,7 +16,7 @@ from sqlalchemy.orm import with_expression from ..settings import BUGOUT_BROOD_URL, BUGOUT_SPIRE_URL, MOONSTREAM_APPLICATION_ID from ..web3_provider import yield_web3_provider -from . import subscription_types, subscriptions +from . import subscription_types, subscriptions, moonworm_tasks from .migrations import checksum_address logging.basicConfig(level=logging.INFO) @@ -115,6 +116,16 @@ def migrations_run(args: argparse.Namespace) -> None: db_session.close() +def moonworm_tasks_list_handler(args: argparse.Namespace) -> None: + + moonworm_tasks.get_list_of_tags(args.query, args.tag) + + +def moonworm_tasks_add_subscription_handler(args: argparse.Namespace) -> None: + + moonworm_tasks.add_subscription(args.id) + + def main() -> None: cli_description = f"""Moonstream Admin CLI @@ -335,6 +346,49 @@ This CLI is configured to work with the following API URLs: ) parser_migrations_run.set_defaults(func=migrations_run) + parser_moonworm_tasks = subcommands.add_parser( + "moonworm-tasks", description="Manage tasks for moonworm journal." + ) + + parser_moonworm_tasks.set_defaults(func=lambda _: parser_migrations.print_help()) + subcommands_moonworm_tasks = parser_moonworm_tasks.add_subparsers( + description="Moonworm taks commands" + ) + parser_moonworm_tasks_list = subcommands_moonworm_tasks.add_parser( + "list", description="Return list of addresses in moonworm journal." + ) + + parser_moonworm_tasks_list.add_argument( + "-q", + "--query", + type=str, + help="query filter.", + ) + + parser_moonworm_tasks_list.add_argument( + "-t", + "--tag", + default="address", + choices=["address"], + type=str, + help="Tag for wich we fetch and return values.", + ) + + parser_moonworm_tasks.set_defaults(func=moonworm_list_handler) + + parser_moonworm_tasks_add = subcommands_moonworm_tasks.add_parser( + "add_subscription", description="Manage tasks for moonworm journal." + ) + + parser_moonworm_tasks_add.add_argument( + "-i", + "--id", + type=str, + help="Id of subscription for add to moonworm tasks.", + ) + + parser_moonworm_tasks.set_defaults(func=moonworm_task) + args = parser.parse_args() args.func(args) diff --git a/backend/moonstreamapi/admin/moonworm_tasks.py b/backend/moonstreamapi/admin/moonworm_tasks.py new file mode 100644 index 00000000..f7dda52e --- /dev/null +++ b/backend/moonstreamapi/admin/moonworm_tasks.py @@ -0,0 +1,23 @@ +import logging + +from ..settings import BUGOUT_REQUEST_TIMEOUT_SECONDS, MOONSTREAM_ADMIN_ACCESS_TOKEN, +from ..settings import bugout_client as bc + +logger = logging.getLogger(__name__) + + + +def get_list_of_tags(query: str, tag: str): + """ + Return list of tags depends on query and tag + """ + + existing_metods = bc.search( + token=MOONSTREAM_ADMIN_ACCESS_TOKEN, + journal_id=journal_id, + query=search_query, + content=False, + timeout=10.0, + limit=limit, + offset=offset, + ) \ No newline at end of file