]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cephadm: re-introduce the `podman logs` command
authorMichael Fritch <mfritch@suse.com>
Wed, 5 Feb 2020 16:02:02 +0000 (09:02 -0700)
committerMichael Fritch <mfritch@suse.com>
Thu, 6 Feb 2020 15:29:44 +0000 (08:29 -0700)
Fixes: https://tracker.ceph.com/issues/43973
Signed-off-by: Michael Fritch <mfritch@suse.com>
src/cephadm/cephadm

index 394ee31afb21467ea21c08a7cf61b5d52919ce4c..e6ae2e697a1593b84b76aa69acc6bd231696c592 100755 (executable)
@@ -2145,6 +2145,27 @@ def command_unit():
 
 ##################################
 
+@infer_fsid
+def command_logs():
+    # type: () -> None
+    if not args.fsid:
+        raise Error('must pass --fsid to specify cluster')
+
+    (daemon_type, daemon_id) = args.name.split('.', 1)
+    unit_name = get_unit_name(args.fsid, daemon_type, daemon_id)
+
+    cmd = [find_program('journalctl')]
+    cmd.extend(['-u', unit_name])
+    if args.command:
+        cmd.extend(args.command)
+
+    # call this directly, without our wrapper, so that we get an unmolested
+    # stdout with logger prefixing.
+    logger.debug("Running command: %s" % ' '.join(cmd))
+    subprocess.call(cmd) # type: ignore
+
+##################################
+
 def command_ls():
     # type: () -> None
     ls = list_daemons(detail=not args.no_detail,
@@ -2716,6 +2737,20 @@ def _get_parser():
         required=True,
         help='daemon name (type.id)')
 
+    parser_logs = subparsers.add_parser(
+        'logs', help='print journald logs for a daemon container')
+    parser_logs.set_defaults(func=command_logs)
+    parser_logs.add_argument(
+        '--fsid',
+        help='cluster FSID')
+    parser_logs.add_argument(
+        '--name', '-n',
+        required=True,
+        help='daemon name (type.id)')
+    parser_logs.add_argument(
+        'command', nargs='*',
+        help='additional journalctl args')
+
     parser_bootstrap = subparsers.add_parser(
         'bootstrap', help='bootstrap a cluster (mon + mgr daemons)')
     parser_bootstrap.set_defaults(func=command_bootstrap)