@staticmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
completion = subparser.add_parser("completion", help="commands auto-completion")
@staticmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
config = subparser.add_parser("config", help="change configuration of a running resolver")
config.add_argument(
@staticmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
convert = subparser.add_parser("convert", help="convert JSON/YAML configuration to Lua script")
convert.add_argument(
@staticmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
stop = subparser.add_parser("exit", help="exit kresctl")
return stop, ExitCommand
@staticmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
metrics = subparser.add_parser("metrics", help="get prometheus metrics data")
metrics.add_argument("file", help="optional, file to export metrics to", nargs="?", default=None)
import argparse
+import json
from typing import List, Optional, Tuple, Type
from knot_resolver_manager.cli.command import Command, CommandArgs, register_command
-from knot_resolver_manager.utils.requests import request
+from knot_resolver_manager.datamodel.config_schema import KresConfig
@register_command
@staticmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
- schema = subparser.add_parser("schema", help="get JSON schema reprezentation of the configuration")
+ schema = subparser.add_parser("schema", help="get JSON schema representation of the configuration")
schema.add_argument("file", help="optional, file to export JSON schema to", nargs="?", default=None)
return schema, SchemaCommand
return []
def run(self, args: CommandArgs) -> None:
- url = f"{args.socket}/schema"
- response = request("GET", url)
+ schema = json.dumps(KresConfig.json_schema(), indent=4)
- if self.file and response.status == 200:
+ if self.file:
with open(self.file, "w") as f:
- f.write(response.body)
+ f.write(schema)
else:
- print(response)
+ print(schema)
@staticmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
stop = subparser.add_parser("stop", help="shutdown everything")
return stop, StopCommand
@staticmethod
@abstractmethod
def register_args_subparser(
- subparser: argparse._SubParsersAction[argparse.ArgumentParser],
+ subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
) -> Tuple[argparse.ArgumentParser, "Type[Command]"]:
raise NotImplementedError()