Python通过OpenStackAPI接口筛选虚机-创新互联

开发背景:

由于在OpenStack上有过热迁移失败的记录,虚机重装挂载磁盘会报错,数据盘挂载不上,所以需要在OpenStack上找出所有有过热迁移并且迁移失败的虚机处理,以免后续重装挂载不上磁盘。

在洱源等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都做网站、外贸营销网站建设 网站设计制作按需求定制设计,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸网站建设,洱源网站建设费用合理。
开发环境:

centos,Python 2.7.5,OpenStack

具体思路:

Shell筛选命令
nova list –all 找出所有虚机
nova instance-action-list 虚机ID | egrep -in 'live-migration|error' 筛选出具有相应动作的虚机。
使用shell脚本筛选,但是由于nova instance-action-list命令执行太慢,所以考虑使用Python通过OS的接口去找出这部分虚机。
通过OpenStack的API接口调用,找出所有虚机,并且查询每个虚机的所有动作,筛选出有live-migration动作并且message为Error的虚机就输出虚机名称和虚机ID。

关键步骤:

1、登录认证实现:OpenStack主要是通过keystoneauth组件来提供认证服务,我通过keystoneauth组件的keystoneauth2.session.Session 类初始化一个Session对象,此对象可以存储用户名密码和token等信息。
2、shell命令对应novaclient库的方法查询,主要通过OpenStack的官方文档:https://docs.openstack.org/python-novaclient/latest/reference/index.html 去查询想要的方法以及方法具有的参数。

具体源代码
#!/usr/bin/python2
# -*- coding: utf-8 -*-  
from novaclient import client
from keystoneauth2 import session
from keystoneauth2.identity import v3
import requests
#登录认证
auth = v3.Password(user_domain_name='Default',
                    username='******',
                    password='*********',
                    project_domain_name='Default',
                    project_name='admin',
                    auth_url='http://IP:35357/v3')
sess = session.Session(auth=auth)
nova = client.Client(2,session=sess)
#查询所有虚机
instances = nova.servers.list(search_opts={'all_tenants':'1'})
#循环
for instance in instances:
        #查询每台虚机的动作
        for i in nova.instance_action.list(instance.id):
                #筛选出live-migration的动作并且结果是Error
                if i.to_dict()['action']=='live-migration' and i.to_dict()['message']=='Error':
                        #输出虚机名称和虚机ID
                        print instance.name ,instance.id
                        break
总结

Python的novaclient库和keystoneauth2库,已经封装了具体的请求过程,基本只需要填好关键信息就可以直接调用API接口去获取虚机信息,主要遇到的问题就是OpenStack的API接口资料网上比较少,基本都是需要阅读官方文档。

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前题目:Python通过OpenStackAPI接口筛选虚机-创新互联
本文URL:https://www.cdcxhl.com/article34/dhocpe.html

成都网站建设公司_创新互联,为您提供网页设计公司响应式网站网站排名品牌网站建设网站制作电子商务

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设