Changeset View
Changeset View
Standalone View
Standalone View
swh/indexer/metadata.py
Show First 20 Lines • Show All 154 Lines • ▼ Show 20 Lines | def index(self, rev): | ||||
Args: | Args: | ||||
rev (bytes): revision artifact from storage | rev (bytes): revision artifact from storage | ||||
Returns: | Returns: | ||||
dict: dictionary representing a revision_metadata, with keys: | dict: dictionary representing a revision_metadata, with keys: | ||||
- id (str): rev's identifier (sha1_git) | - id (str): rev's identifier (sha1_git) | ||||
- indexer_configuration_id (bytes): tool used | - indexer_configuration_id (bytes): tool used | ||||
- translated_metadata (bytes): dict of retrieved metadata | - translated_metadata: dict of retrieved metadata | ||||
""" | """ | ||||
try: | try: | ||||
result = { | result = { | ||||
'id': rev['id'].decode(), | 'id': rev['id'].decode(), | ||||
'indexer_configuration_id': self.tool['id'], | 'indexer_configuration_id': self.tool['id'], | ||||
'translated_metadata': None | 'translated_metadata': None | ||||
} | } | ||||
root_dir = rev['directory'] | root_dir = rev['directory'] | ||||
dir_ls = self.storage.directory_ls(root_dir, recursive=False) | dir_ls = self.storage.directory_ls(root_dir, recursive=False) | ||||
files = [entry for entry in dir_ls if entry['type'] == 'file'] | files = [entry for entry in dir_ls if entry['type'] == 'file'] | ||||
detected_files = detect_metadata(files) | detected_files = detect_metadata(files) | ||||
result['translated_metadata'] = self.translate_revision_metadata( | result['translated_metadata'] = self.translate_revision_metadata( | ||||
detected_files) | detected_files) | ||||
except Exception as e: | except Exception as e: | ||||
self.log.exception( | self.log.exception( | ||||
'Problem when indexing rev: %r', e) | 'Problem when indexing rev: %r', e) | ||||
return result | return result | ||||
def persist_index_computations(self, results, policy_update): | def persist_index_computations(self, results, policy_update): | ||||
"""Persist the results in storage. | """Persist the results in storage. | ||||
▲ Show 20 Lines • Show All 148 Lines • Show Last 20 Lines |