文档章节

python检测xen下虚拟机的状态

a
 adustdu2015
发布于 2016/03/23 21:56
字数 409
阅读 26
收藏 0

#!/usr/bin/env python
# Copyright (c) 2006-2007 XenSource, Inc.
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

# Take all running VMS, their resident_on hosts, permute them and migrate
# all VMS simultaneously. Repeat N times.

import sys, time

import XenAPI


def main(session):
    # Find a non-template VM object
    all = session.xenapi.VM.get_all()
    vms = []
    hosts = []
    name=[]
    for vm in all:
        record = session.xenapi.VM.get_record(vm)
        if not(record["is_a_template"]) and not(record["is_control_domain"]) and record["power_state"] == "Running":
            vms.append(vm)
            hosts.append(record["resident_on"])
            name.append(record['name_label'])
    if "666" in name:
    print ("666")
    if "665" in name:
    print ("665")
    if "667" in name:
    print ("667")  
    #print "Found %d suitable running VMs " % (len(vms))
    # use a rotation as a permutation
    #hosts = [hosts[-1]] + hosts[:(len(hosts)-1)]

    #tasks = []
    #for i in range(0, len(vms)):
    #    vm = vms[i]
    #    host = hosts[i]
     #   task = session.xenapi.Async.VM.pool_migrate(vm, host, { "live": "true" })
     #   tasks.append(task)
    #finished = False
    #records = {}
    #while not(finished):
       # finished = True
       # for task in tasks:
          #  record = session.xenapi.task.get_record(task)
           # records[task] = record
           # if record["status"] == "pending":
             #   finished = False
        #time.sleep(1)
    #allok = True
    #for task in tasks:
       # record = records[task]
       # if record["status"] <> "success":
           # allok = False
    #if not(allok):
       # print "One of the tasks didn't succeed at", time.strftime("%F:%HT%M:%SZ", time.gmtime())
        #idx = 0
        #for task in tasks:
            #record = records[task]
           # vm_name = session.xenapi.VM.get_name_label(vms[idx])
            #host_name = session.xenapi.host.get_name_label(hosts[idx])
            #print "%s : %12s %s -> %s [ status: %s; result = %s; error = %s ]" % (record["uuid"], record["name_label"], vm_name, host_name, record["status"], record["result"], repr(record["error_info"]))
            #idx = idx + 1
       # raise "Task failed"
    #else:
        #for task in tasks:
            #session.xenapi.task.destroy(task)


if __name__ == "__main__":
    #if len(sys.argv) <> 2:
      #  print "Usage:"
       # print sys.argv[0], " <url> <username> <password> <iterations>"
       # sys.exit(1)
    url = "***********“
    username = "*****"
    password = "*********"
   # iterations = int(sys.argv[1])
    # First acquire a valid session by logging in:
    session = XenAPI.Session(url)
    session.xenapi.login_with_password(username, password)
    main(session)
    session.xenapi.session.logout()

© 著作权归作者所有

a
粉丝 1
博文 65
码字总数 14043
作品 0
钦州
私信 提问
在Redhat Enterprise 5上安装配置XEN

简介 Xen是一个基于虚拟硬件监控器技术的虚拟化软件。Xen运行在一个宿主linux系统上,提供同时引导启动多个linux实例的能力。每个由Xen生成的虚拟机,被称为domain。新创建的domain需要为其安...

独钓渔
2013/06/26
107
0
Centos5.5安装使用Xen

Xen是主流虚拟机中性能损耗最小的(但是不支持windows平台),目前可以运行在x86系统上,并正在向x86_64、IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。 1.安装支持Xen的...

雪人
2012/04/19
1K
1
KVM系列之KVM Server 部署

介绍 什么是虚拟化? 通过虚拟化工具,将真实的硬件资源模拟划分成更少的虚拟硬件资源。 虚拟话技术分为软件模拟、虚拟化层翻译、容器虚拟化。 虚拟化层翻译分为 软件模拟出所有的硬件设备又...

Kry1702
2018/06/28
0
0
Xen 虚拟机安装教程

[导读] 大家都知道现在市场有很多虚拟机都是基于xen的,本篇文章不讨论xen的原理,我们先讨论下虚拟化的使用场景. 以及虚拟化虚拟化应用场景限制. 一.虚拟化适用的场景: 1.对I/O性能或响应要...

虫虫
2012/04/01
3K
0
RHEL5 Xen 虚拟网络管理及虚拟机的安装

Xen的虚拟化由于使用的是"半虚拟化"(Para-virtualization),所有的硬件只是通过xen hypervisor进行调度,比起VMware Server及Workstations要虚拟整套的硬件设备性能要好得多了!但一直在用的...

JavaGG
2009/05/08
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 7系统增加swap

转载请注明文章出处:CentOS 7系统增加swap swap是位于磁盘上的特殊文件(或分区),属于“虚拟内存”的一部分。通俗点就是内存的备胎,内存充足的情况下,基本上没swap什么事(和设置有关)...

tlanyan
19分钟前
2
0
基于Prometheus和Grafana的监控平台 - 环境搭建

相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。 Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说...

JAVA日知录
59分钟前
5
0
PHP运行时全局构造体

struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使...

冻结not
今天
4
0
webpack插件html-webpack-plugin

本文转载于:专业的前端网站→webpack插件html-webpack-plugin 1、插件安装 npm install html-webpack-plugin --save-dev 2、插件使用 webpack.config.js配置文件为: var htmlWebpackPlugin=...

前端老手
今天
6
0
数据挖掘

zhengchen1996
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部