azext_edge/__init__.py (29 lines of code) (raw):
# coding=utf-8
# ----------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License file in the project root for license information.
# ----------------------------------------------------------------------------------------------
from azure.cli.core import AzCommandsLoader
from azext_edge.constants import VERSION
from knack.events import EVENT_INVOKER_POST_PARSE_ARGS
def version_check_handler(cli_ctx, **kwargs):
from .edge.util.version_check import check_latest
command: str = kwargs.get("command")
if command:
if command.startswith("iot ops"):
if command == "iot ops init":
ensure_latest = kwargs["args"].ensure_latest
check_latest(cli_ctx=cli_ctx, force_refresh=ensure_latest, throw_if_upgrade=ensure_latest)
else:
check_latest(cli_ctx)
class OpsExtensionCommandsLoader(AzCommandsLoader):
def __init__(self, cli_ctx=None):
super(OpsExtensionCommandsLoader, self).__init__(cli_ctx=cli_ctx)
if cli_ctx:
cli_ctx.register_event(EVENT_INVOKER_POST_PARSE_ARGS, version_check_handler)
def load_command_table(self, args):
from azext_edge.edge.command_map import load_iotops_commands
load_iotops_commands(self, args)
return self.command_table
def load_arguments(self, command):
from azext_edge.edge.params import load_iotops_arguments
from azext_edge.edge.providers.rpsaas.adr.params import load_adr_arguments
load_iotops_arguments(self, command)
load_adr_arguments(self, command)
COMMAND_LOADER_CLS = OpsExtensionCommandsLoader
__version__ = VERSION