Skip to content

Commit d05c9a2

Browse files
committed
Update PR accordng to comments
1 parent 029c6db commit d05c9a2

File tree

5 files changed

+20
-20
lines changed

5 files changed

+20
-20
lines changed

conftest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,6 @@ def helpful_thing(self):
361361
@pytest.fixture(autouse=True)
362362
def mock_gravy_valet_get_links():
363363

364-
with mock.patch('osf.external.gravy_valet.translations.get_links') as mock_get_links:
364+
with mock.patch('osf.external.gravy_valet.translations.get_verified_links') as mock_get_links:
365365
mock_get_links.return_value = []
366366
yield mock_get_links

osf/metadata/serializers/datacite/datacite_tree_walker.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77
import rdflib
88

9+
from framework import sentry
910
from osf.exceptions import MetadataSerializationError
11+
from osf.external.gravy_valet.request_helpers import get_verified_links
1012
from osf.metadata import gather
1113
from osf.metadata.rdfutils import (
1214
RDF,
@@ -396,18 +398,21 @@ def _visit_related_and_verified_links(self, parent_el):
396398
from osf.models import AbstractNode
397399

398400
if isinstance(osf_item, AbstractNode):
399-
gv_verified_link_list = osf_item.get_links()
401+
gv_verified_link_list = get_verified_links(node_guid=osf_item._id)
402+
non_url_verified_links = []
400403
for item in gv_verified_link_list:
401-
verified_link, resource_type = item.get('target_url', None), item.get('resource_type', None)
404+
verified_link, resource_type = item.attributes.get('target_url', None), item.attributes.get('resource_type', None)
402405
if verified_link and resource_type:
403-
if verified_link and isinstance(verified_link, str) and smells_like_iri(verified_link):
406+
if smells_like_iri(verified_link):
404407
self.visit(related_identifiers_el, 'relatedIdentifier', text=verified_link, attrib={
405408
'relatedIdentifierType': 'URL',
406409
'relationType': 'IsReferencedBy',
407410
'resourceTypeGeneral': resource_type.title()
408411
})
409412
else:
410-
logger.warning('skipping non-URL verified link "%s"', verified_link)
413+
non_url_verified_links.append(verified_link)
414+
if non_url_verified_links:
415+
sentry.log_message(f'Skipped - {','.join(non_url_verified_links)} for node {osf_item._id}')
411416

412417
def _visit_name_identifiers(self, parent_el, agent_iri):
413418
for identifier in sorted(self.basket[agent_iri:DCTERMS.identifier]):

osf/models/identifiers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ def request_identifier(self, category):
8686
def request_identifier_update(self, category, create=False):
8787
'''Noop if no existing identifier value for the category.'''
8888

89-
if not self.get_identifier_value(category) and not create:
90-
return
89+
# if not self.get_identifier_value(category) and not create:
90+
# return
9191

9292
client = self.get_doi_client()
9393
if client:

website/identifiers/clients/datacite.py

-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,6 @@ def create_identifier(self, node, category, doi_value=None):
5757
doi_value = doi_value or self._get_doi_value(node)
5858
metadata_record_xml = self.build_metadata(node, doi_value, as_xml=True)
5959
if settings.DATACITE_ENABLED:
60-
if isinstance(metadata_record_xml, bytes):
61-
metadata_record_xml = metadata_record_xml.decode('utf-8')
6260

6361
resp = self._client.metadata_post(metadata_record_xml)
6462
# Typical response: 'OK (10.70102/FK2osf.io/cq695)' to doi 10.70102/FK2osf.io/cq695

website/identifiers/tasks.py

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import logging
22
from django.apps import apps
33

4+
from osf.external.gravy_valet.exceptions import GVException
45
from framework.celery_tasks import app as celery_app
56
from framework.celery_tasks.handlers import queued_task
67
from framework import sentry
78

9+
logger = logging.getLogger(__name__)
10+
811
@celery_app.task(bind=True, max_retries=5, acks_late=True)
912
def task__update_doi_metadata_on_change(self, target_guid):
1013
sentry.log_message('Updating DOI for guid', extra_data={'guid': target_guid}, level=logging.INFO)
@@ -20,24 +23,18 @@ def update_doi_metadata_on_change(target_guid):
2023

2124
@celery_app.task(bind=True, max_retries=5, acks_late=True)
2225
def task__update_doi_metadata_with_verified_links(self, target_guid):
23-
sentry.log_message('Updating DOI with verified links for guid',
24-
extra_data={'guid': target_guid},
25-
level=logging.INFO)
26+
logger.info(f'Updating DOI with verified links for guid - {target_guid}')
2627

2728
Guid = apps.get_model('osf.Guid')
2829
target_object = Guid.load(target_guid).referent
2930
try:
3031

3132
target_object.request_identifier_update(category='doi')
3233

33-
sentry.log_message('DOI metadata with verified links updated for guid',
34-
extra_data={'guid': target_guid},
35-
level=logging.INFO)
36-
except Exception as exc:
37-
sentry.log_message('Failed to update DOI metadata with verified links',
38-
extra_data={'guid': target_guid, 'error': str(exc)},
39-
level=logging.ERROR)
40-
raise self.retry(exc=exc)
34+
logger.info(f'DOI metadata with verified links updated for guid - {target_guid}')
35+
except GVException as e:
36+
logger.info(f'Failed to update DOI metadata with verified links for guid - {target_guid}')
37+
raise self.retry(exc=e)
4138

4239
@queued_task
4340
@celery_app.task(ignore_results=True)

0 commit comments

Comments
 (0)