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

📄 main.py

📁 xen虚拟机源代码安装包
💻 PY
📖 第 1 页 / 共 5 页
字号:
                    cap)        else:            result = server.xend.domain.sched_credit_set(domid, weight, cap)            if result != 0:                err(str(result))def xm_info(args):    arg_check(args, "info", 0, 1)        try:        (options, params) = getopt.gnu_getopt(args, 'c', ['config'])    except getopt.GetoptError, opterr:        err(opterr)        usage('info')        show_xend_config = 0    for (k, v) in options:        if k in ['-c', '--config']:            show_xend_config = 1    if show_xend_config:        for name, obj in inspect.getmembers(xoptions):            if not inspect.ismethod(obj):                if name == "config":                    for x in obj[1:]:                        if len(x) < 2:                             print "%-38s: (none)" % x[0]                        else:                             print "%-38s:" % x[0], x[1]                else:                    print "%-38s:" % name, obj        return    if serverType == SERVER_XEN_API:        # Need to fake out old style xm info as people rely on parsing it                host_record = server.xenapi.host.get_record(            server.xenapi.session.get_this_host(server.getSession()))        host_cpu_records = map(server.xenapi.host_cpu.get_record, host_record["host_CPUs"])        host_metrics_record = server.xenapi.host_metrics.get_record(host_record["metrics"])        def getVal(keys, default=""):            data = host_record            for key in keys:                if key in data:                    data = data[key]                else:                    return default            return data        def getCpuMhz():            cpu_speeds = [int(host_cpu_record["speed"])                          for host_cpu_record in host_cpu_records                          if "speed" in host_cpu_record]            if len(cpu_speeds) > 0:                return sum(cpu_speeds) / len(cpu_speeds)            else:                return 0        getCpuMhz()        def getCpuFeatures():            if len(host_cpu_records) > 0:                return host_cpu_records[0].get("features", "")            else:                return ""                        info = {            "host":              getVal(["name_label"]),            "release":           getVal(["software_version", "release"]),            "version":           getVal(["software_version", "version"]),            "machine":           getVal(["software_version", "machine"]),            "nr_cpus":           getVal(["cpu_configuration", "nr_cpus"]),            "nr_nodes":          getVal(["cpu_configuration", "nr_nodes"]),            "cores_per_socket":  getVal(["cpu_configuration", "cores_per_socket"]),            "threads_per_core":  getVal(["cpu_configuration", "threads_per_core"]),            "cpu_mhz":           getCpuMhz(),            "hw_caps":           getCpuFeatures(),            "total_memory":      int(host_metrics_record["memory_total"])/1024/1024,            "free_memory":       int(host_metrics_record["memory_free"])/1024/1024,            "xen_major":         getVal(["software_version", "xen_major"]),            "xen_minor":         getVal(["software_version", "xen_minor"]),            "xen_extra":         getVal(["software_version", "xen_extra"]),            "xen_caps":          " ".join(getVal(["capabilities"], [])),            "xen_scheduler":     getVal(["sched_policy"]),            "xen_pagesize":      getVal(["other_config", "xen_pagesize"]),            "platform_params":   getVal(["other_config", "platform_params"]),            "xen_changeset":     getVal(["software_version", "xen_changeset"]),            "cc_compiler":       getVal(["software_version", "cc_compiler"]),            "cc_compile_by":     getVal(["software_version", "cc_compile_by"]),            "cc_compile_domain": getVal(["software_version", "cc_compile_domain"]),            "cc_compile_date":   getVal(["software_version", "cc_compile_date"]),            "xend_config_format":getVal(["software_version", "xend_config_format"])                                        }        sorted = info.items()        sorted.sort(lambda (x1,y1), (x2,y2): -cmp(x1,x2))                for (k, v) in sorted:           print "%-23s:" % k, v     else:        info = server.xend.node.info()        for x in info[1:]:            if len(x) < 2:                 print "%-23s: (none)" % x[0]            else:                 print "%-23s:" % x[0], x[1]def xm_console(args):    arg_check(args, "console", 1, 2)    quiet = False;    try:        (options, params) = getopt.gnu_getopt(args, 'q', ['quiet'])    except getopt.GetoptError, opterr:        err(opterr)        usage('console')    for (k, v) in options:        if k in ['-q', '--quiet']:            quiet = True        else:            assert False    if len(params) != 1:        err('No domain given')        usage('console')    dom = params[0]    try:        if serverType == SERVER_XEN_API:            domid = int(server.xenapi.VM.get_domid(get_single_vm(dom)))        else:            info = server.xend.domain(dom)            domid = int(sxp.child_value(info, 'domid', '-1'))    except:        if quiet:            sys.exit(1)        else:            raise            if domid == -1:        if quiet:            sys.exit(1)        else:            raise xmlrpclib.Fault(0, "Domain '%s' is not started" % dom)    console.execConsole(domid)def domain_name_to_domid(domain_name):    if serverType == SERVER_XEN_API:        domid = server.xenapi.VM.get_domid(                   get_single_vm(domain_name))    else:        dom = server.xend.domain(domain_name)        domid = int(sxp.child_value(dom, 'domid', '-1'))    return domiddef xm_vncviewer(args):    autopass = False;    try:        (options, params) = getopt.gnu_getopt(args, '', ['autopass','vncviewer-autopass'])    except getopt.GetoptError, opterr:        err(opterr)        usage('vncviewer')    for (k, v) in options:        if k in ['--autopass','--vncviewer-autopass']:            autopass = True        else:            assert False    if len(params) != 1:        err('No domain given (or several parameters specified)')        usage('vncviewer')    dom = params[0]    domid = domain_name_to_domid(dom)    console.runVncViewer(domid, autopass)def xm_uptime(args):    short_mode = 0    try:        (options, params) = getopt.gnu_getopt(args, 's', ['short'])    except getopt.GetoptError, opterr:        err(opterr)        usage('uptime')    for (k, v) in options:        if k in ['-s', '--short']:            short_mode = 1    doms = getDomains(params, 'all')    if short_mode == 0:        print '%-33s %4s %s ' % ('Name','ID','Uptime')    for dom in doms:        d = parse_doms_info(dom)        if d['domid'] == '':            uptime = 0        elif int(d['domid']) > 0:            uptime = int(round(d['up_time']))        else:            f=open('/proc/uptime', 'r')            upfile = f.read()            uptime = int(round(float(upfile.split(' ')[0])))            f.close()        days = int(uptime / 86400)        uptime -= (days * 86400)        hours = int(uptime / 3600)        uptime -= (hours * 3600)        minutes = int(uptime / 60)        uptime -= (minutes * 60)        seconds = uptime                    upstring = ""        if days > 0:            upstring += str(days) + " day"            if days > 1:                upstring += "s"            upstring += ", "        upstring += '%(hours)2d:%(minutes)02d' % vars()        if short_mode:            now = datetime.datetime.now()            upstring = now.strftime(" %H:%M:%S") + " up " + upstring            upstring += ", " + d['name'] + " (" + d['domid'] + ")"        else:            upstring += ':%(seconds)02d' % vars()            upstring = ("%(name)-32s %(domid)5s " % d) + upstring        print upstringdef xm_sysrq(args):    arg_check(args, "sysrq", 2)    dom = args[0]    req = args[1]    if serverType == SERVER_XEN_API:        server.xenapi.VM.send_sysrq(get_single_vm(dom), req)    else:        server.xend.domain.send_sysrq(dom, req)def xm_trigger(args):    vcpu = 0        arg_check(args, "trigger", 2, 3)    dom = args[0]    trigger = args[1]    if len(args) == 3:        vcpu = int(args[2])            if serverType == SERVER_XEN_API:        server.xenapi.VM.send_trigger(get_single_vm(dom), trigger, vcpu)    else:        server.xend.domain.send_trigger(dom, trigger, vcpu)def xm_debug_keys(args):    arg_check(args, "debug-keys", 1)    keys = str(args[0])        if serverType == SERVER_XEN_API:        server.xenapi.host.send_debug_keys(            server.xenapi.session.get_this_host(server.getSession()),            keys)    else:        server.xend.node.send_debug_keys(keys)def xm_top(args):    arg_check(args, "top", 0)    os.system('xentop')def xm_dmesg(args):    arg_check(args, "dmesg", 0, 1)        try:        (options, params) = getopt.gnu_getopt(args, 'c', ['clear'])    except getopt.GetoptError, opterr:        err(opterr)        usage('dmesg')        use_clear = 0    for (k, v) in options:        if k in ['-c', '--clear']:            use_clear = 1        if len(params) :        err("No parameter required")        usage('dmesg')    if serverType == SERVER_XEN_API:        host = server.xenapi.session.get_this_host(server.getSession())        if use_clear:            print server.xenapi.host.dmesg_clear(host),        else:            print server.xenapi.host.dmesg(host),    else:        if not use_clear:            print server.xend.node.dmesg.info(),        else:            print server.xend.node.dmesg.clear(),def xm_log(args):    arg_check(args, "log", 0)    if serverType == SERVER_XEN_API:        print server.xenapi.host.get_log(            server.xenapi.session.get_this_host(server.getSession()))    else:        print server.xend.node.log()def xm_serve(args):    if serverType == SERVER_XEN_API:        print "Not supported with XenAPI"        sys.exit(-1)    arg_check(args, "serve", 0)    from fcntl import fcntl, F_SETFL        s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)    s.connect(XendClient.XML_RPC_SOCKET)    fcntl(sys.stdin, F_SETFL, os.O_NONBLOCK)    while True:        iwtd, owtd, ewtd = select([sys.stdin, s], [], [])        if s in iwtd:            data = s.recv(4096)            if len(data) > 0:                sys.stdout.write(data)                sys.stdout.flush()            else:                break        if sys.stdin in iwtd:            data = sys.stdin.read(4096)            if len(data) > 0:                s.sendall(data)            else:                break    s.close()def parse_dev_info(info):    def get_info(n, t, d):        i = 0        while i < len(info):            if (info[i][0] == n):                return t(info[i][1])            i = i + 1        return t(d)    return {        #common        'backend-id' : get_info('backend-id',   int,   -1),        'handle'     : get_info('handle',       int,    0),        'state'      : get_info('state',        int,   -1),        'be-path'    : get_info('backend',      str,   '??'),        'event-ch'   : get_info('event-channel',int,   -1),        #network specific        'virtual-device' : get_info('virtual-device', str, '??'),        'tx-ring-ref': get_info('tx-ring-ref',  int,   -1),        'rx-ring-ref': get_info('rx-ring-ref',  int,   -1),        'mac'        : get_info('mac',          str,   '??'),        #block-device specific        'ring-ref'   : get_info('ring-ref',     int,   -1),        }def arg_check_for_resource_list(args, name):    use_long = 0    try:        (options, params) = getopt.gnu_getopt(args, 'l', ['long'])    except getopt.GetoptError, opterr:        err(opterr)        sys.exit(1)    for (k, v) in options:        if k in ['-l', '--long']:            use_long = 1    if len(params) == 0:        print 'No domain parameter given'        usage(name)    if len(params) > 1:        print 'No multiple domain parameters allowed'        usage(name)        return (use_long, params)def xm_network_list(args):    (use_long, params) = arg_check_for_resource_list(args, "network-list")    dom = params[0]    if serverType == SERVER_XEN_API:        vif_refs = server.xenapi.VM.get_VIFs(get_single_vm(dom))        vif_properties = \            map(server.xenapi.VIF.get_runtime_properties, vif_refs)        devs = map(lambda (handle, properties): [handle, map2sxp(properti

⌨️ 快捷键说明

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