in footmark/ecs/connection.py [0:0]
def verify_join_remove_securitygrp(self, instance_id, group_id, mode, delay=DefaultWaitForInterval, timeout=DefaultTimeOut):
"""
To verify join & remove operations got performed in security group
"""
done = False
count = 0
id_of_instance = [instance_id]
tm = timeout
try:
while not done:
time.sleep(delay)
instance_list = self.get_all_instances(id_of_instance, None, None)
if len(instance_list) > 0:
if mode.lower() == 'join':
for inst in instance_list:
if len(inst.security_group_ids['security_group_id']) > 0:
for grp in inst.security_group_ids['security_group_id']:
if str(grp) == group_id:
done = True
break
elif mode.lower() == 'remove':
for inst in instance_list:
if len(inst.security_group_ids['security_group_id']) > 0:
for grp in inst.security_group_ids['security_group_id']:
if str(grp) == group_id:
count = count + 1
if count == 0:
done = True
break
tm -= delay
if tm <= 0:
raise Exception("Timeout Error: Waiting for joining or removing security group, time-consuming %d seconds." % timeout)
except Exception as ex:
raise ex
return done