'Apply some changes to the cluster state.
:param IClusterChangeSource source: An object representing the entity
that gave us these changes.  The information in the changes will be
kept until they are overwritten or this entity goes away.
:param list changes: Some ``IClusterStateChange`` providers to use to
update the internal cluster state.'

def apply_changes_from_source(self, source, changes):

    for change in changes:
        self._deployment_state = change.update_cluster_state(self._deployment_state)
    for change in changes:
        wiper = change.get_information_wipe()
        key = (wiper.__class__, wiper.key())
        self._information_wipers = self._information_wipers.set(key, _WiperAndSource(wiper=wiper, source=source))
