| Server IP : 43.129.54.214 / Your IP : 216.73.217.113 Web Server : nginx/1.24.0 System : Linux VM-4-108-ubuntu 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/uaclient/cli/ |
Upload File : |
import logging
import sys
import tarfile
import tempfile
from uaclient import messages
from uaclient.actions import collect_logs
from uaclient.cli.commands import ProArgument, ProArgumentGroup, ProCommand
from uaclient.cli.parser import HelpCategory
from uaclient.util import replace_top_level_logger_name
PRO_COLLECT_LOGS_FILE = "pro_logs.tar.gz"
LOG = logging.getLogger(replace_top_level_logger_name(__name__))
def action_collect_logs(args, *, cfg, **kwargs):
output_file = args.output or PRO_COLLECT_LOGS_FILE
with tempfile.TemporaryDirectory() as output_dir:
collect_logs(cfg, output_dir)
try:
with tarfile.open(output_file, "x:gz") as results:
results.add(output_dir, arcname="logs/")
except PermissionError as e:
LOG.error(e)
return 1
except FileExistsError as e:
LOG.error(e)
print(
messages.E_FILE_ALREADY_EXISTS.format(
filename=output_file,
),
file=sys.stderr,
)
return 1
return 0
collect_logs_command = ProCommand(
"collect-logs",
help=messages.CLI_ROOT_COLLECT_LOGS,
description=messages.CLI_COLLECT_LOGS_DESC,
preserve_description=True,
action=action_collect_logs,
help_category=HelpCategory.TROUBLESHOOT,
argument_groups=[
ProArgumentGroup(
arguments=[
ProArgument(
"--output",
short_name="-o",
help=messages.CLI_COLLECT_LOGS_OUTPUT,
)
]
)
],
)