From patchwork Thu Sep 22 15:17:31 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Zaman X-Patchwork-Id: 9345533 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6EC246077A for ; Thu, 22 Sep 2016 15:21:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6111A1FF27 for ; Thu, 22 Sep 2016 15:21:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5611B2AB8E; Thu, 22 Sep 2016 15:21:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (smtp.nsa.gov [8.44.101.8]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 836B42AB7A for ; Thu, 22 Sep 2016 15:21:19 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.30,378,1470700800"; d="scan'208";a="17864597" IronPort-PHdr: =?us-ascii?q?9a23=3ACImDRxYyPDWuR5jGpukaVlj/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZpci9bnLW6fgltlLVR4KTs6sC0LuM9fi8Ejxdqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i760zceF13FOBZv?= =?us-ascii?q?IaytQ8iJ3p7xj7z5q8CbSj4LrQL1Wal1IhSyoFeZnegtqqwmFJwMzADUqGBDYe?= =?us-ascii?q?VcyDAgD1uSmxHh+pX4p8Y7oGxtofZpy+psGeW/Jvx5HvRkC2E9PmQ04tD7nQXS?= =?us-ascii?q?RguIoH0HWyMZlQQbLRLC6UTYV4z2tGPIv+903mHOP8TtSrYcQTm44aZtSRjuzi?= =?us-ascii?q?wAMmhqoynslsVsgfcD81qarBtlztuROdmY?= X-IPAS-Result: =?us-ascii?q?A2E7CQB+9uNX/wHyM5BeHAEBBAEBCgEBGAEFAQsBgn0TAQE?= =?us-ascii?q?BAQEeV3ymUgGUICIDgXiFdUwBAQEBAQEBAQIBAlsngjIEAxMFeVs9AgEDAQIPK?= =?us-ascii?q?AYBAQwgDAIDCQEBFykICAMBLQMBBQELEQ4LBRgEAYgpAaB/gTI+MopWhTABAQV?= =?us-ascii?q?Gh2IIEIQXinoRAWiFEo45dopLj2hliHElhW+IfIYmMYERVIMLggdlAYU7eIEnA?= =?us-ascii?q?QEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 22 Sep 2016 15:20:51 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus [192.168.25.40]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id u8MFKkPD016002; Thu, 22 Sep 2016 11:20:48 -0400 Received: from tarius.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id u8MFIbcw125871 for ; Thu, 22 Sep 2016 11:18:37 -0400 Received: from goalie.tycho.ncsc.mil (goalie [144.51.242.250]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id u8MFIW5F015315 for ; Thu, 22 Sep 2016 11:18:37 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1BiAgBR9eNXekLcVdFeHAEFAQsBgykTAQEBAQF1fLZphBMchgICgWhMAQIBAQEBAQITAQEJCwwIGYURAgEDEi4BATcBD1E0AQUBHBkiiCkBoQCBMj4yilaFMAEBBUaHOQEBAQEGAgEcCBCEF4t0ggALgweOOXaKS49oZYhxhhSIfIYmMYERhWZlAYdaAQEB X-IPAS-Result: A1BiAgBR9eNXekLcVdFeHAEFAQsBgykTAQEBAQF1fLZphBMchgICgWhMAQIBAQEBAQITAQEJCwwIGYURAgEDEi4BATcBD1E0AQUBHBkiiCkBoQCBMj4yilaFMAEBBUaHOQEBAQEGAgEcCBCEF4t0ggALgweOOXaKS49oZYhxhhSIfIYmMYERhWZlAYdaAQEB X-IronPort-AV: E=Sophos;i="5.30,378,1470715200"; d="scan'208";a="5722225" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 22 Sep 2016 11:18:36 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AdTt4uR3tXVko4dOasmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?segVKPad9pjvdHbS+e9qxAeQG96KsbQc16GG7ujJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL2PbrnD61zMOABK3bVMz?= =?us-ascii?q?fbWvXNaOxJTqn8mJuLTrKz1SgzS8Zb4gZD6Xli728vcsvI15N6wqwQHIqHYbM8?= =?us-ascii?q?5fxGdvOE7B102kvpT4r9Zf9HFLtvYg8dNQebnrdKQ/C7pDBXIpNH5mytfssEzh?= =?us-ascii?q?RBCI4DMuW2AflFIcAQHe6xfSRprrvCr8t+17niKdOJulHvgPRT2+4vIzG1fTgy?= =?us-ascii?q?AdOmth/Q=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GdBQDJ9eNXekLcVdFeHAEFAQsBGQYMg?= =?us-ascii?q?n4TAQEBAQF1fKZTkBaEExyGAgKBaEwBAQEBAQEBAQIBAhABAQkLDAgZL4IyGII?= =?us-ascii?q?YAgEDEi4BATcBD1E0AQUBHBkiiCkBoQOBMj4yilaFMAEBBUaHOQEBAQEGAgEcC?= =?us-ascii?q?BCEF4t0ggALgweOOXaKS49oZYhxhhSIfIYmMYERhWZlAYdaAQEB?= X-IPAS-Result: =?us-ascii?q?A0GdBQDJ9eNXekLcVdFeHAEFAQsBGQYMgn4TAQEBAQF1fKZ?= =?us-ascii?q?TkBaEExyGAgKBaEwBAQEBAQEBAQIBAhABAQkLDAgZL4IyGIIYAgEDEi4BATcBD?= =?us-ascii?q?1E0AQUBHBkiiCkBoQOBMj4yilaFMAEBBUaHOQEBAQEGAgEcCBCEF4t0ggALgwe?= =?us-ascii?q?OOXaKS49oZYhxhhSIfIYmMYERhWZlAYdaAQEB?= X-IronPort-AV: E=Sophos;i="5.30,378,1470700800"; d="scan'208";a="19469552" Received: from mail-pa0-f66.google.com ([209.85.220.66]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 22 Sep 2016 15:18:14 +0000 Received: by mail-pa0-f66.google.com with SMTP id oz2so3803335pac.0 for ; Thu, 22 Sep 2016 08:18:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=perfinion-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xhCRVr6KVstycb1Y/oDKfQtMZ1l7gsOsrDUdrEATYd8=; b=PlK+FkFJY+p7C34J1AehWv6yJr4+iNFZjMkgr3SK17apwNtuVMsZza2m2oS1pZfDUr HXsVS/r5bj67RMyuzCdN7ZPkaFBztu9R1JBZ6st7KKUXPy7CA9/qlL9vMjHnKCP+KRDZ 9OhjxwrtRxXJ58XZbkSpQJUU+We9bkn00DaZ1jxJSnRTbAjMURqQX+IFM45zDm3B1Bmg wElEqwlmiaHza6ketH5lBaAWJPjOvZUIg7xphUVy80DMgV5vlZ8C+JseB+ibqOssWTgS o/I+aIUSU/TO/IDgWIjyNmcPJ/l8DdGn1ChldKW/bgQfpmaG1tsRzXzGpWoSDICpf0DT GkdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xhCRVr6KVstycb1Y/oDKfQtMZ1l7gsOsrDUdrEATYd8=; b=AneFEErDHmJARHR2RuF0EdsqQpFgpecNrd8bhev2WZqDrHUNIkV6wYPyxKPKAYuSOA N13Ewdesf+hDr5Hh/jcIdHtBHnNmIlca8ttl3wYqGRAQBMWIZhqbUfTiIsT7QVFSHrD5 CxKfOc9Vzl5W5nHrAThFk0ff+fAffUIaOb7K+Svc72onQkH2oH6J6atpAs3/vB8H6tEC hq1/3c4ZagDDGr12R0ZEzocm+ljAef+0fkxlEARSLmRYESOUuGYI2qKxBrxAlLR77EcA Og9ny2xy1JoNo8Se6Eu7yo0bKnJpRlOyUcbNukKjKItczpYN1Tlq7YC3oAoiIacnvEXx VpkQ== X-Gm-Message-State: AE9vXwOMhDNpZGU8nykh8NLJVq0ExrwIo83k42pQRDat8JoJlwbCaLivp+oanewiB8Fc+w== X-Received: by 10.66.16.97 with SMTP id f1mr4211185pad.39.1474557493480; Thu, 22 Sep 2016 08:18:13 -0700 (PDT) Received: from localhost ([2404:e800:e600:57b:e014:183:951f:342c]) by smtp.gmail.com with ESMTPSA id k77sm4934080pfj.65.2016.09.22.08.18.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Sep 2016 08:18:12 -0700 (PDT) From: Jason Zaman To: selinux@tycho.nsa.gov Subject: [PATCH 5/7] sepolicy: make info() use setools4 api Date: Thu, 22 Sep 2016 23:17:31 +0800 Message-Id: <1474557453-14379-6-git-send-email-jason@perfinion.com> X-Mailer: git-send-email 2.7.3 In-Reply-To: <1474557453-14379-1-git-send-email-jason@perfinion.com> References: <1474557453-14379-1-git-send-email-jason@perfinion.com> X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Also make it return generators instead of an explicit list. Signed-off-by: Jason Zaman --- policycoreutils/sepolicy/sepolicy/__init__.py | 85 ++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/policycoreutils/sepolicy/sepolicy/__init__.py b/policycoreutils/sepolicy/sepolicy/__init__.py index 319cb34..a3ab10c 100644 --- a/policycoreutils/sepolicy/sepolicy/__init__.py +++ b/policycoreutils/sepolicy/sepolicy/__init__.py @@ -164,8 +164,89 @@ except ValueError as e: def info(setype, name=None): - dict_list = _policy.info(setype, name) - return dict_list + if setype == TYPE: + q = setools.TypeQuery(_pol) + if name: + q.name = name + + return ({ + 'aliases': map(str, x.aliases()), + 'name': str(x), + 'permissive': bool(x.ispermissive), + } for x in q.results()) + + elif setype == ROLE: + q = setools.RoleQuery(_pol) + if name: + q.name = name + + return ({ + 'name': str(x), + 'roles': map(str, x.expand()), + 'types': map(str, x.types()), + } for x in q.results()) + + elif setype == ATTRIBUTE: + q = setools.TypeAttributeQuery(_pol) + if name: + q.name = name + + return ({ + 'name': str(x), + 'types': map(str, x.expand()), + } for x in q.results()) + + elif setype == PORT: + q = setools.PortconQuery(_pol) + if name: + ports = [int(i) for i in name.split("-")] + if len(ports) == 2: + q.ports = ports + elif len(ports) == 1: + q.ports = (ports[0], ports[0]) + + return ({ + 'high': x.ports.high, + 'protocol': str(x.protocol), + 'range': str(x.context.range_), + 'type': str(x.context.type_), + 'low': x.ports.low, + } for x in q.results()) + + elif setype == USER: + q = setools.UserQuery(_pol) + if name: + q.name = name + + return ({ + 'range': str(x.mls_range), + 'name': str(x), + 'roles': map(str, x.roles), + 'level': str(x.mls_level), + } for x in q.results()) + + elif setype == BOOLEAN: + q = setools.BoolQuery(_pol) + if name: + q.name = name + + return ({ + 'name': str(x), + 'state': x.state, + } for x in q.results()) + + elif setype == TCLASS: + q = setools.ObjClassQuery(_pol) + if name: + q.name = name + + return ({ + 'name': str(x), + 'permlist': list(x.perms), + } for x in q.results()) + + else: + raise ValueError("Invalid type") def search(types, info={}):