'Load the original settings used to launch this cluster into this
Cluster object. Settings are loaded from cluster group tags and the
master node\'s user data.'

def load_receipt(self, load_plugins=True, load_volumes=True):

    try:
        tags = self.cluster_group.tags
        version = tags.get(static.VERSION_TAG, '')
        if utils.program_version_greater(version, static.VERSION):
            d = dict(cluster=self.cluster_tag, old_version=static.VERSION, new_version=version)
            msg = (user_msgs.version_mismatch % d)
            sep = ('*' * 60)
            log.warn('\n'.join([sep, msg, sep]), extra={'__textwrap__': 1})
        self.update(self._get_settings_from_tags())
        if (not (load_plugins or load_volumes)):
            return True
        try:
            master = self.master_node
        except exception.MasterDoesNotExist:
            unfulfilled_spots = [sr for sr in self.spot_requests if (not sr.instance_id)]
            if unfulfilled_spots:
                self.wait_for_active_spots()
                master = self.master_node
            else:
                raise
        if load_plugins:
            self.plugins = self.load_plugins(master.get_plugins())
        if load_volumes:
            self.volumes = master.get_volumes()
    except exception.PluginError:
        log.error('An    error    occurred    while    loading    plugins:    ', exc_info=True)
        raise
    except exception.MasterDoesNotExist:
        raise
    except Exception:
        log.debug('load    receipt    exception:    ', exc_info=True)
        raise exception.IncompatibleCluster(self.cluster_group)
    return True
