URL: https://github.com/SSSD/sssd/pull/5845
Author: stanislavlevin
 Title: #5845: sss-analyze: Fix self imports
Action: opened

PR body:
"""
- fixed self imports to allow any other Python stuff use `sssd`
  Python package
    
- `sssd` Python package tranformed from namespace to regular one
    
- moved the executable out to sbin directory to split the library and
  actual executable (sbin because of only root can read sssd logs)
    
Resolves: https://github.com/SSSD/sssd/issues/5842
"""

To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/5845/head:pr5845
git checkout pr5845
From 16c96988cd82248dcf4813a8dfaf050ac3622be9 Mon Sep 17 00:00:00 2001
From: Stanislav Levin <s...@altlinux.org>
Date: Wed, 27 Oct 2021 10:18:50 +0300
Subject: [PATCH] sss-analyze: Fix self imports

- fixed self imports to allow any other Python stuff use `sssd`
  Python package

- `sssd` Python package tranformed from namespace to regular one

- moved the executable out to sbin directory to split library and
  actual executable (sbin because of only root can read sssd logs)

Resolves: https://github.com/SSSD/sssd/issues/5842
Signed-off-by: Stanislav Levin <s...@altlinux.org>
---
 Makefile.am                           |  2 +-
 contrib/sssd.spec.in                  |  3 ++-
 src/tools/analyzer/Makefile.am        | 11 ++++++++---
 src/tools/analyzer/__init__.py        |  0
 src/tools/analyzer/modules/request.py |  5 +++--
 src/tools/analyzer/source_files.py    |  2 +-
 src/tools/analyzer/source_journald.py |  5 +++--
 src/tools/analyzer/sss_analyze        |  5 +++++
 src/tools/analyzer/sss_analyze.py     |  8 ++------
 src/tools/sssctl/sssctl_logs.c        |  2 +-
 10 files changed, 26 insertions(+), 17 deletions(-)
 create mode 100644 src/tools/analyzer/__init__.py
 create mode 100755 src/tools/analyzer/sss_analyze
 mode change 100755 => 100644 src/tools/analyzer/sss_analyze.py

diff --git a/Makefile.am b/Makefile.am
index f6bc9414d0..e5124ae145 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1915,7 +1915,7 @@ sssctl_LDADD = \
     $(NULL)
 sssctl_CFLAGS = \
     $(AM_CFLAGS) \
-    -DPYTHONDIR_PATH=\"$(python3dir)/sssd\" \
+    -DSBINDIR=\"$(sbindir)\" \
     $(NULL)
 
 if BUILD_SUDO
diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in
index b46b988eb3..fc87e67d83 100644
--- a/contrib/sssd.spec.in
+++ b/contrib/sssd.spec.in
@@ -527,7 +527,7 @@ autoreconf -ivf
 
 %make_build all docs runstatedir=%{_rundir}
 
-%py3_shebang_fix src/tools/analyzer/sss_analyze.py
+%py3_shebang_fix src/tools/analyzer/sss_analyze
 sed -i -e 's:/usr/bin/python:/usr/bin/python3:' src/tools/sss_obfuscate
 
 %check
@@ -857,6 +857,7 @@ done
 %{_sbindir}/sss_debuglevel
 %{_sbindir}/sss_seed
 %{_sbindir}/sssctl
+%{_sbindir}/sss_analyze
 %{python3_sitelib}/sssd/
 %{_mandir}/man8/sss_obfuscate.8*
 %{_mandir}/man8/sss_override.8*
diff --git a/src/tools/analyzer/Makefile.am b/src/tools/analyzer/Makefile.am
index d9f82aa61a..a71c9298e7 100644
--- a/src/tools/analyzer/Makefile.am
+++ b/src/tools/analyzer/Makefile.am
@@ -1,16 +1,21 @@
-pkgpythondir = $(python3dir)/sssd
+sss_analyze_pythondir = $(sbindir)
 
-dist_pkgpython_SCRIPTS = \
-    sss_analyze.py \
+dist_sss_analyze_python_SCRIPTS = \
+    sss_analyze \
     $(NULL)
 
+pkgpythondir = $(python3dir)/sssd
+
 dist_pkgpython_DATA = \
+    __init__.py \
     source_files.py \
     source_journald.py \
     source_reader.py \
+    sss_analyze.py \
     $(NULL)
 
 modulesdir = $(pkgpythondir)/modules
 dist_modules_DATA = \
+    modules/__init__.py \
     modules/request.py \
     $(NULL)
diff --git a/src/tools/analyzer/__init__.py b/src/tools/analyzer/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/tools/analyzer/modules/request.py b/src/tools/analyzer/modules/request.py
index 098a9197bb..afe6ba03ae 100644
--- a/src/tools/analyzer/modules/request.py
+++ b/src/tools/analyzer/modules/request.py
@@ -4,8 +4,9 @@
 import logging
 
 from enum import Enum
-from source_files import Files
-from source_journald import Journald
+
+from sssd.source_files import Files
+from sssd.source_journald import Journald
 
 logger = logging.getLogger()
 
diff --git a/src/tools/analyzer/source_files.py b/src/tools/analyzer/source_files.py
index df87f92fbd..a4e7f96e5f 100644
--- a/src/tools/analyzer/source_files.py
+++ b/src/tools/analyzer/source_files.py
@@ -5,7 +5,7 @@
 import glob
 import logging
 
-from source_reader import Reader
+from sssd.source_reader import Reader
 
 logger = logging.getLogger()
 
diff --git a/src/tools/analyzer/source_journald.py b/src/tools/analyzer/source_journald.py
index 86d81d4854..fa096a2ee9 100644
--- a/src/tools/analyzer/source_journald.py
+++ b/src/tools/analyzer/source_journald.py
@@ -1,7 +1,8 @@
+from enum import Enum
+
 from systemd import journal
-from source_reader import Reader
 
-from enum import Enum
+from sssd.source_reader import Reader
 
 _EXE_PREFIX = "/usr/libexec/sssd/"
 _NSS_MATCH = _EXE_PREFIX + "sssd_nss"
diff --git a/src/tools/analyzer/sss_analyze b/src/tools/analyzer/sss_analyze
new file mode 100755
index 0000000000..3f1beaf38b
--- /dev/null
+++ b/src/tools/analyzer/sss_analyze
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+
+from sssd import sss_analyze
+
+sss_analyze.run()
diff --git a/src/tools/analyzer/sss_analyze.py b/src/tools/analyzer/sss_analyze.py
old mode 100755
new mode 100644
index 89684a3f75..6a269114ae
--- a/src/tools/analyzer/sss_analyze.py
+++ b/src/tools/analyzer/sss_analyze.py
@@ -1,10 +1,6 @@
-#!/usr/bin/env python
-
 import click
 
-import source_files
-
-from modules import request
+from sssd.modules import request
 
 
 class Analyzer(object):
@@ -22,6 +18,6 @@ def cli(ctx, source, logdir):
     ctx.obj = Analyzer(source, logdir)
 
 
-if __name__ == '__main__':
+def run():
     cli.add_command(request.request)
     cli()
diff --git a/src/tools/sssctl/sssctl_logs.c b/src/tools/sssctl/sssctl_logs.c
index b98cd68fec..f2c7ae3883 100644
--- a/src/tools/sssctl/sssctl_logs.c
+++ b/src/tools/sssctl/sssctl_logs.c
@@ -41,7 +41,7 @@
 
 #define LOG_FILE(file) " " LOG_PATH "/" file
 #define LOG_FILES LOG_FILE("*.log")
-#define SSS_ANALYZE PYTHONDIR_PATH"/sss_analyze.py"
+#define SSS_ANALYZE SBINDIR"/sss_analyze"
 
 #define CHECK(expr, done, msg) do { \
     if (expr) { \
_______________________________________________
sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org
To unsubscribe send an email to sssd-devel-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/sssd-devel@lists.fedorahosted.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to