Nova client源码分析---nova list命令

本文是作者对Nova client源码的初步分析,特别是聚焦于'nova list'命令的实现。从D:代码python-novaclientpython-novaclient ovaclientv1_1shell.py开始探讨,尽管可能存在理解偏差,但为学习云计算中的Nova API提供了一个切入点。

个人见解,可能会有错误。刚刚开始学习nova,就先从api入手学习吧。


1、D:\代码\python-novaclient\python-novaclient\novaclient\v1_1\shell.py,最上边怎么调用不太清楚了,先从这里开始。

def do_list(cs, args):
    """List active servers."""
    imageid = None
    flavorid = None
    #查找镜像
    if args.image:
        imageid = _find_image(cs, args.image).id
    #查找套餐类型
    if args.flavor:
        flavorid = _find_flavor(cs, args.flavor).id
    search_opts</span> = {
            'all_tenants': args.all_tenants,
            'reservation_id': args.reservation_id,
            'ip': args.ip,
            'ip6': args.ip6,
            'name': args.name,
            'image': imageid,
            'flavor': flavorid,
            'status': args.status,
            'tenant_id': args.tenant,  #租赁人id
            'host': args.host,
            'instance_name': args.instance_name}
    #过滤条件
    filters = {'flavor': lambda f: f['id'],
               'security_groups': utils._format_security_groups}
    #存放过滤后的结果
    formatters = {}
    <span style="font-family: Arial, Helvetica, sans-serif;">#formatters 字典的关键字</span>
    field_titles = []
    if args.fields:
        for field in args.fields.split(','):
            #让field 格式化成某种字符串
            field_title, formatter = utils._make_field_formatter(field,
                                                                 filters)
            field_titles.append(field_title)
            formatters[field_title] = formatter

    id_col = 'ID'

    #同一目录下 servers.py里面的list方法,下一个函数讲解这里。
    #这里的返回值是server 的列表
    servers = cs.servers.list(search_opts=search_opts)</span></strong>
    convert = [('OS-EXT-SRV-ATTR:host', 'host'),
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值