def wait_for_instance_modify_charge()

in src/ansible_collections/alibaba/apsarastack/plugins/modules/ali_instance.py [0:0]


def wait_for_instance_modify_charge(ecs, instance_ids, charge_type, delay=10, timeout=300):
    """
    To verify instance charge type has become expected after modify instance charge type
    """
    try:
        while True:
            instances = ecs.describe_instances(instance_ids=instance_ids)
            flag = True
            for inst in instances:
                if inst and inst.instance_charge_type != charge_type:
                    flag = False
            if flag:
                return
            timeout -= delay
            time.sleep(delay)
            if timeout <= 0:
                raise Exception("Timeout Error: Waiting for instance to {0}. ".format(charge_type))
    except Exception as e:
        raise e