denshoproject / ddr-cmdln

Command-line tools for automating the Densho Digital Repository's various processes.
Other
0 stars 2 forks source link

ddrindex error #72

Closed gjost closed 6 years ago

gjost commented 6 years ago
$ ddrindex publish -rf /var/www/media/ddr/ddr-densho-1000
...
2018-05-08 14:18:49.265966-07:00 | 23589/35192 POST ddr-densho-1000-316-12 
2018-05-08 14:18:49.289466-07:00 | 23590/35192 POST ddr-densho-1000-316-21 
2018-05-08 14:18:49.318086-07:00 | 23591/35192 POST ddr-densho-1000-316-8 
Traceback (most recent call last):
  File "/opt/ddr-local/venv/ddrlocal/bin/ddrindex", line 11, in <module>
    load_entry_point('ddr-cmdln==0.9.4b0', 'console_scripts', 'ddrindex')()
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/cli/ddrindex.py", line 298, in publish
    status = docstore.Docstore(hosts, index).post_multi(path, recursive=recurse, force=force)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/docstore.py", line 699, in post_multi
    document = oi.object()
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/identifier.py", line 1072, in object
    return self.object_class(mappings).from_identifier(self)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/models/entity.py", line 431, in from_identifier
    return common.from_json(Entity, identifier.path_abs('json'), identifier)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/models/common.py", line 575, in from_json
    document.load_json(fileio.read_text(json_path))
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/models/entity.py", line 478, in load_json
    json_data = common.load_json(self, module, json_text)
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/models/common.py", line 476, in load_json
    f.values()[0]
  File "/opt/ddr-local/venv/ddrlocal/local/lib/python2.7/site-packages/ddr_cmdln-0.9.4b0-py2.7.egg/DDR/modules.py", line 112, in function
    value = function(value)
  File "/opt/ddr-local/ddr-defs/repo_models/segment.py", line 1080, in jsonload_topics
    converters.text_to_bracketids(text, ['term','id'])
  File "/opt/ddr-local/ddr-defs/repo_models/segment.py", line 1076, in TEMP_scrub_topicdata
    item['term'] = TEMP_this.TOPICS[item['id']]
KeyError: '205'
gjost commented 6 years ago

This looks like a problem wherein the topic has an ID that's not in the topics tree. This prevents the object from loading. For now I'm "resolving" the problem by flagging such objects in docstore.post_multi. The publish operation will continue (i.e. it won't crash) and problem objects are printed out at the end. @GeoffFroh, thoughts?

gjost commented 6 years ago

Fixed in commit 9d6d2c2.