Source code for argus_cli.cli
from argus_api import ArgusAPI
from pprint import pprint
from argus_cli.helpers.log import log
from argus_cli import plugin, __version__
from argus_cli.arguments import get_command_arguments, get_plugin_arguments
from argus_cli.plugin import run_command, load_plugin_module, get_plugin_modules, register_command_metadata
from argus_cli.settings import settings
[docs]def get_api_instance(arguments):
"""Creates a instance of the API
:param arguments: Arguments
:return: ArgusAPI instance
"""
log.info("Getting an API instance...")
api_args = {}
if "api_key" in arguments:
api_args["api_key"] = arguments["api_key"]
elif "username" in arguments:
# FIXME: Unsafe if the user doesn't supply pass or mode
# TODO: Should probably add a warning here to tell the user that they should use a API key
api_args["username"] = arguments["username"]
api_args["password"] = arguments["password"]
api_args["mode"] = arguments["auth_method"]
if "api_url" in arguments:
api_args["base_url"] = arguments["api_url"]
api_args["user_agent"] = "argus-cli/%s" % __version__
return ArgusAPI(**api_args)
[docs]def main():
"""Used to launch the application"""
plugin.api = get_api_instance(settings["api"])
plugins = get_plugin_modules(settings["cli"]["plugins"])
log.info("Loading plugins...")
for plug in plugins:
load_plugin_module(plug)
plugin_name, command_name = get_plugin_arguments()
register_command_metadata(plugin_name, command_name)
arguments = get_command_arguments()
results = run_command(plugin_name, command_name, arguments)
# If the command returns truthy values, print them out:
if results:
pprint(results, indent=2)