'Returns datasources for dataset; if datasources are not available
due to indexing, indexing is started. Return value is a dictionary
with entries of type
(<datasource_type> : {<datasource_name>, <indexing_message>}).'

def get_datasources(self, trans):

    data_sources_dict = {}
    msg = None
    for (source_type, source_list) in self.datatype.data_sources.items():
        data_source = None
        if (source_type == 'data_standalone'):
            msg = None
            data_source = source_list
        else:
            if isinstance(source_list, string_types):
                source_list = [source_list]
            for source in source_list:
                msg = self.convert_dataset(trans, source)
                if ((not msg) or (msg == self.conversion_messages.PENDING)):
                    data_source = source
                    break
        data_sources_dict[source_type] = {'name': data_source, 'message': msg}
    return data_sources_dict
