in libraries/edge/opensearch/datacastingresponsebysolr.py [0:0]
def _populate(self, solrDatasetResponse, solrGranuleResponse = None):
if solrDatasetResponse is not None:
solrJson = json.loads(solrDatasetResponse)
logging.debug('dataset count: '+str(len(solrJson['response']['docs'])))
if len(solrJson['response']['docs']) == 1:
# ok now populate variables!
doc = solrJson['response']['docs'][0]
self.variables['doc'] = doc
# Format dates
try:
self.variables['DatasetCitation_ReleaseYear'] = DateUtility.convertTimeLong(doc['DatasetCitation-ReleaseDateLong'][0], '%Y')
except:
pass
# Link to dataset portal page
self.variables['DatasetPortalPage'] = self.portalUrl+'/'+doc['Dataset-ShortName'][0]
# Set default pub date to x hours ago because we cast all granules archived within the last x hours
self.variables['PubDate'] = DateUtility.pastDateRFC822(self.archivedWithin)
else:
raise Exception('No dataset found')
if solrGranuleResponse is not None:
solrGranuleJson = json.loads(solrGranuleResponse)
logging.debug('granule count: '+str(len(solrGranuleJson['response']['docs'])))
pubDate = 0
for doc in solrGranuleJson['response']['docs']:
if (doc['Granule-ArchiveTimeLong'][0] > pubDate):
pubDate = doc['Granule-ArchiveTimeLong'][0]
self._populateItem(solrGranuleResponse, doc, None)
if pubDate != 0:
# Set pub date to latest granule archive date
self.variables['PubDate'] = DateUtility.convertTimeLongToRFC822(pubDate)
self.variables['granules'] = solrGranuleJson['response']['docs']
else:
raise Exception('No granules found')