From: <ssm...@us...> - 2007-10-11 20:24:05
|
Revision: 2649 http://selinux.svn.sourceforge.net/selinux/?rev=2649&view=rev Author: ssmalley Date: 2007-10-11 13:24:03 -0700 (Thu, 11 Oct 2007) Log Message: ----------- Author: Daniel J Walsh Email: dw...@re... Subject: deleteall added for ports and fcontext in semanage Date: Sun, 07 Oct 2007 21:51:32 -0400 Modified Paths: -------------- trunk/policycoreutils/semanage/seobject.py Modified: trunk/policycoreutils/semanage/seobject.py =================================================================== --- trunk/policycoreutils/semanage/seobject.py 2007-10-11 20:21:08 UTC (rev 2648) +++ trunk/policycoreutils/semanage/seobject.py 2007-10-11 20:24:03 UTC (rev 2649) @@ -139,7 +139,7 @@ translations = fd.readlines() fd.close() except IOError, e: - raise ValueError(_("Unable to open %s: translations not supported on non-MLS machines") % (self.filename) ) + raise ValueError(_("Unable to open %s: translations not supported on non-MLS machines: %s") % (self.filename, e) ) self.ddict = {} self.comments = [] @@ -236,6 +236,9 @@ if rc < 0: semanage_handle_destroy(self.sh) raise ValueError(_("Could not establish semanage connection")) + def deleteall(self): + raise ValueError(_("Not yet implemented")) + class loginRecords(semanageRecords): def __init__(self, store = ""): @@ -776,6 +779,34 @@ semanage_port_key_free(k) semanage_port_free(p) + def deleteall(self): + (rc, plist) = semanage_port_list_local(self.sh) + if rc < 0: + raise ValueError(_("Could not list the ports")) + + rc = semanage_begin_transaction(self.sh) + if rc < 0: + raise ValueError(_("Could not start semanage transaction")) + + for port in plist: + proto = semanage_port_get_proto(port) + proto_str = semanage_port_get_proto_str(proto) + low = semanage_port_get_low(port) + high = semanage_port_get_high(port) + port_str = "%s-%s" % (low, high) + ( k, proto_d, low, high ) = self.__genkey(port_str , proto_str) + if rc < 0: + raise ValueError(_("Could not create a key for %s") % port_str) + + rc = semanage_port_del_local(self.sh, k) + if rc < 0: + raise ValueError(_("Could not delete the port %s") % port_str) + semanage_port_key_free(k) + + rc = semanage_commit(self.sh) + if rc < 0: + raise ValueError(_("Could not delete the %s") % port_str) + def delete(self, port, proto): ( k, proto_d, low, high ) = self.__genkey(port, proto) (rc,exists) = semanage_port_exists(self.sh, k) @@ -1175,6 +1206,32 @@ semanage_fcontext_key_free(k) semanage_fcontext_free(fcontext) + def deleteall(self): + (rc, flist) = semanage_fcontext_list_local(self.sh) + if rc < 0: + raise ValueError(_("Could not list the file contexts")) + + rc = semanage_begin_transaction(self.sh) + if rc < 0: + raise ValueError(_("Could not start semanage transaction")) + + for fcontext in flist: + target = semanage_fcontext_get_expr(fcontext) + ftype = semanage_fcontext_get_type(fcontext) + ftype_str = semanage_fcontext_get_type_str(ftype) + (rc,k) = semanage_fcontext_key_create(self.sh, target, file_types[ftype_str]) + if rc < 0: + raise ValueError(_("Could not create a key for %s") % target) + + rc = semanage_fcontext_del_local(self.sh, k) + if rc < 0: + raise ValueError(_("Could not delete the file context %s") % target) + semanage_fcontext_key_free(k) + + rc = semanage_commit(self.sh) + if rc < 0: + raise ValueError(_("Could not delete the file context %s") % target) + def delete(self, target, ftype): (rc,k) = semanage_fcontext_key_create(self.sh, target, file_types[ftype]) if rc < 0: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |