def updating_node_validation_error(address=False, port=False, id=False,
    weight=False):
    """
    Verified 2015-06-16:

    - when trying to update a CLB node's address/port/id, which are
      immutable.
    - when trying to update a CLB node's weight to be < 1 or > 100

    At least one of address, port, id, and weight should be `True` for this
    error to apply.

    :param bool address: Whether the address was passed to update
    :param bool port: Whether the port was passed to update
    :param bool id: Whether the ID was passed to update
    :param bool weight: Whether the weight was passed to update and wrong

    :return: a `tuple` of (dict body message, 400 http status code)
    """
    messages = []
    if address:
        messages.append('Node ip field cannot be modified.')
    if port:
        messages.append('Port field cannot be modified.')
    if weight:
        messages.append(
            'Node weight is invalid. Range is 1-100. Please specify a valid weight.'
            )
    if id:
        messages.append('Node id field cannot be modified.')
    return {'validationErrors': {'messages': messages}, 'message':
        'Validation Failure', 'code': 400, 'details': 'The object is not valid'
        }, 400
