def filter_instances(opts, conf, hostset=None):
def threshold_test(aws_launch_time):
ut = get_uptime(now, aws_launch_time)
return (ut / 60) % 60 >= opts.threshold
now = time.time()
ami = utils.get_opt(opts.ami, conf, 'AMI_ID', default=AMI_ID)
if opts.imatch:
imatch = frozenset(opts.imatch.split(','))
else:
imatch = None
if hostset is None:
if getattr(opts, 'hosts_file', None):
with open(opts.hosts_file, 'r') as f:
hostset = frozenset([line.strip() for line in f.readlines()])
elif getattr(opts, 'host', None):
hostset = frozenset((opts.host,))
inst = [i for i in get_ec2_instances(conf)
if i.image_id and i.public_dns_name
and threshold_test(i.launch_time)
and (imatch is None or i.instance_type in imatch)
and (ami is None or ami == i.image_id)
and (hostset is None or i.public_dns_name in hostset)]
inst.sort(key = lambda i : (i.image_id, i.launch_time, i.public_dns_name))
return inst
评论列表
文章目录