diff --git a/wis2-gdc-management/wis2_gdc/registrar.py b/wis2-gdc-management/wis2_gdc/registrar.py index 096e454..f5bbc03 100644 --- a/wis2-gdc-management/wis2_gdc/registrar.py +++ b/wis2-gdc-management/wis2_gdc/registrar.py @@ -213,9 +213,8 @@ def register(self, metadata: Union[dict, str], topic: str = None) -> None: self._process_record_metric( self.metadata['id'], f'{data_policy}_total', centre_id_labels) - if data_policy == 'core': - LOGGER.info('Core data detected: updating links') - self.update_record_links() + LOGGER.info('Updating links') + self.update_record_links(data_policy) LOGGER.info('Publishing metadata to backend') self._publish() @@ -360,7 +359,7 @@ def _publish(self): LOGGER.info(f'Saving to {BACKEND_TYPE} ({BACKEND_CONNECTION})') self.backend.save_record(self.metadata) - def update_record_links(self) -> None: + def update_record_links(self, data_policy: str) -> None: """ Update Global Service links @@ -379,11 +378,15 @@ def is_wis2_mqtt_link(link) -> bool: for count, value in enumerate(self.metadata['links']): if is_wis2_mqtt_link(value): LOGGER.debug('Adjusting MQTT link') - channel = value.get('wmo:topic', value.get('channel')) + channel = value.get('channel', value.get('wmo:topic')) new_link = value _ = new_link.pop('wmo:topic', None) + if data_policy == 'core': + LOGGER.debug('Adjusting channel origin to cache') + new_link['channel'] = channel.replace('origin', 'cache') + new_link['rel'] = 'items' new_link['channel'] = channel.replace('origin', 'cache') new_link['type'] = 'application/geo+json'