def modify_instance()

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


def modify_instance(module, instance):
    # According to state to modify instance's some special attribute
    state = module.params["state"]
    name = module.params['instance_name']
    unique_suffix = module.params['unique_suffix']
    if not name:
        name = instance.name

    description = module.params['description']
    if not description:
        description = instance.description

    host_name = module.params['host_name']
    if unique_suffix and host_name:
        suffix = instance.host_name[-3:]
        host_name = host_name + suffix

    if not host_name:
        host_name = instance.host_name

    # password can be modified only when restart instance
    password = ""
    if state == "restarted":
        password = module.params['password']

    # userdata can be modified only when instance is stopped
    setattr(instance, "user_data", instance.describe_user_data())
    user_data = instance.user_data
    if state == "stopped":
        user_data = module.params['user_data'].encode()

    try:
        return instance.modify(name=name, description=description, host_name=host_name, password=password, user_data=user_data)
    except Exception as e:
        module.fail_json(msg="Modify instance {0} attribute got an error: {1}".format(instance.id, e))