URL: https://github.com/SSSD/sssd/pull/5845 Author: stanislavlevin Title: #5845: sss-analyze: Fix self imports Action: synchronized
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 83cb6477973c0788b6ebad459317f2a66d5a477f 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 - tranformed `sssd` Python package from namespace to regular one - moved the executable out to libexec directory to split library and actual executable (sss_analyze is not intended to be a standalone tool) Resolves: https://github.com/SSSD/sssd/issues/5842 Signed-off-by: Stanislav Levin <s...@altlinux.org> --- Makefile.am | 1 - 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, 25 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..933f334ffc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1915,7 +1915,6 @@ sssctl_LDADD = \ $(NULL) sssctl_CFLAGS = \ $(AM_CFLAGS) \ - -DPYTHONDIR_PATH=\"$(python3dir)/sssd\" \ $(NULL) if BUILD_SUDO diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in index b46b988eb3..d50e46bc44 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 +%{_libexecdir}/%{servicename}/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..460e9e5b64 100644 --- a/src/tools/analyzer/Makefile.am +++ b/src/tools/analyzer/Makefile.am @@ -1,16 +1,21 @@ -pkgpythondir = $(python3dir)/sssd +sss_analyze_pythondir = $(libexecdir)/sssd -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..717b4f3af2 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 SSSD_LIBEXEC_PATH"/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