⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getpolicy.py

📁 xen虚拟机源代码安装包
💻 PY
字号:
#============================================================================# This library is free software; you can redistribute it and/or# modify it under the terms of version 2.1 of the GNU Lesser General Public# License as published by the Free Software Foundation.## This library is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU# Lesser General Public License for more details.## You should have received a copy of the GNU Lesser General Public# License along with this library; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA#============================================================================# Copyright (C) 2007 International Business Machines Corp.# Author: Stefan Berger <stefanb@us.ibm.com>#============================================================================"""Get the managed policy of the system."""import sysfrom xen.util import xsconstantsfrom xml.dom import minidomfrom xen.xm.opts import OptionErrorfrom xen.util.acmpolicy import ACMPolicyfrom xen.xm import main as xm_mainfrom xen.xm.main import serverdef help():    return """    Usage: xm getpolicy [options]    The following options are defined      --dumpxml     Display the XML of the policy    Get the policy managed by xend."""def display_policy_info(acmpol, policytype, uuid, version, flags,                        dumpxml, xml):    print "Policy name           : %s" % acmpol.get_name()    print "Policy type           : %s" % policytype    if uuid:        print "Reference             : %s" % uuid    print "Version of XML policy : %s" % version    state = []    if flags & xsconstants.XS_INST_LOAD:        state.append("loaded")    if flags & xsconstants.XS_INST_BOOT:        state.append("activated for boot")    print "Policy configuration  : %s" % ", ".join(state)    if dumpxml:        if xml:            dom = minidom.parseString(xml.encode("utf-8"))            print "%s" % dom.toprettyxml(indent="   ",newl="\n")def display_security_subsystems(xstype):    types = []    if xstype & xsconstants.XS_POLICY_ACM:        types.append("ACM")        xstype ^= xsconstants.XS_POLICY_ACM    if xstype != 0:        types.append("unsupported (%08x)" % xstype)    if len(types) == 0:        types.append("None")    print "Supported security subsystems   : %s \n" % ", ".join(types)def getpolicy(dumpxml):    if xm_main.serverType == xm_main.SERVER_XEN_API:        xstype = int(server.xenapi.XSPolicy.get_xstype())        display_security_subsystems(xstype)        policystate = server.xenapi.XSPolicy.get_xspolicy()        if int(policystate['type']) == 0:            print "No policy is installed."            return        if int(policystate['type']) != xsconstants.XS_POLICY_ACM:            print "Unknown policy type '%s'." % policystate['type']        else:            xml = policystate['repr']            acmpol = None            if xml:                acmpol = ACMPolicy(xml=xml)            display_policy_info(acmpol,                                xsconstants.ACM_POLICY_ID,                                policystate['xs_ref'],                                policystate['version'],                                int(policystate['flags']),                                dumpxml,                                xml)    else:        xstype = server.xend.security.get_xstype()        display_security_subsystems(xstype)        xml, flags = server.xend.security.get_policy()        acmpol = None        if xml != "":            dom = None            try:                dom = minidom.parseString(xml)                if dom:                    acmpol = ACMPolicy(dom=dom)            except Exception, e:                print "Error parsing the library: " + str(e)        if acmpol:            display_policy_info(acmpol,                                xsconstants.ACM_POLICY_ID,                                None,                                acmpol.get_version(),                                flags,                                dumpxml,                                xml)        else:            print "No policy is installed."def main(argv):    dumpxml = False    if '--dumpxml' in argv:        dumpxml = True    getpolicy(dumpxml)if __name__ == '__main__':    try:        main(sys.argv)    except Exception, e:        sys.stderr.write('Error: %s\n' % str(e))        sys.exit(-1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -