mirror of
https://github.com/SELinuxProject/selinux
synced 2025-02-20 11:36:51 +00:00
python/sepolicy: Fix sepolicy manpage -w ...
Commit 7494bb1298
("sepolicy: generate man pages in parallel")
improved sepolicy performance but broke `sepolicy manpage -w ...` as it
didn't collect data about domains and roles from ManPage() and so
HTMLManPages() generated only empty page. This is fixed now, domains
and roles are being collected and used for HTML pages.
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
Acked-by: James Carter <jwcart2@gmail.com>
This commit is contained in:
parent
d31280c26e
commit
7fd9628dd4
@ -332,9 +332,10 @@ def manpage_work(domain, path, root, source_files, web):
|
||||
from sepolicy.manpage import ManPage
|
||||
m = ManPage(domain, path, root, source_files, web)
|
||||
print(m.get_man_page_path())
|
||||
return (m.manpage_domains, m.manpage_roles)
|
||||
|
||||
def manpage(args):
|
||||
from sepolicy.manpage import HTMLManPages, manpage_domains, manpage_roles, gen_domains
|
||||
from sepolicy.manpage import HTMLManPages, gen_domains
|
||||
|
||||
path = args.path
|
||||
if not args.policy and args.root != "/":
|
||||
@ -347,9 +348,17 @@ def manpage(args):
|
||||
else:
|
||||
test_domains = args.domain
|
||||
|
||||
manpage_domains = set()
|
||||
manpage_roles = set()
|
||||
p = Pool()
|
||||
async_results = []
|
||||
for domain in test_domains:
|
||||
p.apply_async(manpage_work, [domain, path, args.root, args.source_files, args.web])
|
||||
async_results.append(p.apply_async(manpage_work, [domain, path, args.root, args.source_files, args.web]))
|
||||
for result in async_results:
|
||||
domains, roles = result.get()
|
||||
manpage_domains.update(domains)
|
||||
manpage_roles.update(roles)
|
||||
|
||||
p.close()
|
||||
p.join()
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
# 02111-1307 USA
|
||||
#
|
||||
#
|
||||
__all__ = ['ManPage', 'HTMLManPages', 'manpage_domains', 'manpage_roles', 'gen_domains']
|
||||
__all__ = ['ManPage', 'HTMLManPages', 'gen_domains']
|
||||
|
||||
import string
|
||||
import selinux
|
||||
@ -147,10 +147,6 @@ def _gen_types():
|
||||
def prettyprint(f, trim):
|
||||
return " ".join(f[:-len(trim)].split("_"))
|
||||
|
||||
# for HTML man pages
|
||||
manpage_domains = []
|
||||
manpage_roles = []
|
||||
|
||||
fedora_releases = ["Fedora17", "Fedora18"]
|
||||
rhel_releases = ["RHEL6", "RHEL7"]
|
||||
|
||||
@ -408,6 +404,8 @@ class ManPage:
|
||||
"""
|
||||
modules_dict = None
|
||||
enabled_str = ["Disabled", "Enabled"]
|
||||
manpage_domains = []
|
||||
manpage_roles = []
|
||||
|
||||
def __init__(self, domainname, path="/tmp", root="/", source_files=False, html=False):
|
||||
self.html = html
|
||||
@ -453,10 +451,10 @@ class ManPage:
|
||||
if self.domainname + "_r" in self.all_roles:
|
||||
self.__gen_user_man_page()
|
||||
if self.html:
|
||||
manpage_roles.append(self.man_page_path)
|
||||
self.manpage_roles.append(self.man_page_path)
|
||||
else:
|
||||
if self.html:
|
||||
manpage_domains.append(self.man_page_path)
|
||||
self.manpage_domains.append(self.man_page_path)
|
||||
self.__gen_man_page()
|
||||
self.fd.close()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user