Files
mongo/buildscripts/resmokelib/plugin.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

36 lines
985 B
Python
Raw Normal View History

"""Interface for creating a resmoke plugin."""
import abc
class Subcommand(object):
"""A resmoke subcommand to execute."""
def execute(self):
"""Execute the subcommand."""
raise NotImplementedError("execute must be implemented by Subcommand subclasses")
class PluginInterface(abc.ABC):
"""Subcommand/plugin interface."""
def add_subcommand(self, subparsers):
"""
Add parser options for this plugin.
:param subparsers: argparse subparsers
"""
raise NotImplementedError()
def parse(self, subcommand, parser, parsed_args, should_configure_otel=True, **kwargs):
"""
Resolve command-line options to a Subcommand or None.
:param subcommand: equivalent to parsed_args.command
:param parser: parser used
:param parsed_args: output of parsing
:param kwargs: additional args
:return: None or a Subcommand
"""
raise NotImplementedError()