个人见解,可能会有错误。刚刚开始学习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-AT