我正在尝试编写一个python脚本来查询ov中的VM的状态(我对python来说是全新的!)
这是我正在使用的测试脚本!
APIURL="https://..."
APIUSER="...@..."
APIPASS="..."
CAFILE="path"
LOGFILENAME="/tmp/shutdown_vms_dc.log"
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(message)s',
filename=LOGFILENAME,
filemode='w')
if __name__ == "__main__":
try:
api = API(url=APIURL,
username=APIUSER,
password=APIPASS,
ca_file=CAFILE)
print 'Connected to RHEVM API %s Successfully' % APIURL
logging.info ( 'Successfully Connected to %s' % APIURL)
vmsList = api.vms.list()
while True:
print '###############################################'
for i in vmsList:
if i.name != 'HostedEngine':
print i.name + ': ' + i.status.state
time.sleep(10)
除了ex Ex :: logging.debug('意外错误:%s'%ex)
问题是状态没有得到更新,它总是在第一次运行时打印。我关闭并使用ovirt的网络界面启动VM,没有任何变化......我缺少什么?
非常感谢!!!
答案 0 :(得分:0)
没关系,我错了......
这条线
vmList=api.vms.list()
为您留下与您拨打电话时相关的静态数据。
所以,我通过调用在for循环中实现了我想要的东西:
api.vms.get(i.name).status.state
,其中i
迭代首先获得的vmList
!这就行了!