Example #1
0
 def _get_extension_command_tree(self):
     from azure.cli.core._session import EXT_CMD_TREE
     import os
     VALID_SECOND = 3600 * 24 * 10
     # self.cli_ctx is None when self.prog is beyond 'az', such as 'az iot'.
     # use cli_ctx from cli_help which is not lost.
     cli_ctx = self.cli_ctx or (self.cli_help.cli_ctx if self.cli_help else None)
     if not cli_ctx:
         return None
     EXT_CMD_TREE.load(os.path.join(cli_ctx.config.config_dir, 'extensionCommandTree.json'), VALID_SECOND)
     if not EXT_CMD_TREE.data:
         import requests
         from azure.cli.core.util import should_disable_connection_verify
         try:
             response = requests.get(
                 'https://azurecliextensionsync.blob.core.windows.net/cmd-index/extensionCommandTree.json',
                 verify=(not should_disable_connection_verify()),
                 timeout=10)
         except Exception as ex:  # pylint: disable=broad-except
             logger.info("Request failed for extension command tree: %s", str(ex))
             return None
         if response.status_code == 200:
             EXT_CMD_TREE.data = response.json()
             EXT_CMD_TREE.save_with_retry()
         else:
             logger.info("Error when retrieving extension command tree. Response code: %s", response.status_code)
             return None
     return EXT_CMD_TREE
Example #2
0
def _get_extension_command_tree(cli_ctx):
    from azure.cli.core._session import EXT_CMD_TREE
    import os
    VALID_SECOND = 3600 * 24 * 10
    if not cli_ctx:
        return None
    EXT_CMD_TREE.load(os.path.join(cli_ctx.config.config_dir, 'extensionCommandTree.json'), VALID_SECOND)
    if not EXT_CMD_TREE.data:
        import posixpath
        import requests
        from azure.cli.core.util import should_disable_connection_verify
        try:
            azmirror_endpoint = cli_ctx.cloud.endpoints.azmirror_storage_account_resource_id if cli_ctx and \
                cli_ctx.cloud.endpoints.has_endpoint_set('azmirror_storage_account_resource_id') else None
            url = posixpath.join(azmirror_endpoint, 'extensions', 'extensionCommandTree.json') if \
                azmirror_endpoint else 'https://aka.ms/azExtCmdTree'
            response = requests.get(
                url,
                verify=(not should_disable_connection_verify()),
                timeout=10)
        except Exception as ex:  # pylint: disable=broad-except
            logger.info("Request failed for extension command tree: %s", str(ex))
            return None
        if response.status_code == 200:
            EXT_CMD_TREE.data = response.json()
            EXT_CMD_TREE.save_with_retry()
        else:
            logger.info("Error when retrieving extension command tree. Response code: %s", response.status_code)
            return None
    return EXT_CMD_TREE