Documentation on FilePad functionality

Dear development team,

we have been using Fireworks since a few month managing our jobs on different HPC machines. Today I figure out one issue I perceived as a bug for a long time, realizing that it was actually only an issue of the documentation:

Using the FilePad tasks I would always get an exception like

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/core/rocket.py", line 262, in run
    m_action = t.run_task(my_spec)
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/user_objects/firetasks/filepad_tasks.py", line 74, in run_task
    fpad = get_fpad(self.get("filepad_file", None))
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/user_objects/firetasks/filepad_tasks.py", line 106, in get_fpad
    return FilePad.from_db_file(fpad_file)
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/utilities/filepad.py", line 302, in from_db_file
    gfs_name)
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/utilities/filepad.py", line 72, in __init__
    self.build_indexes()
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/utilities/filepad.py", line 84, in build_indexes
    self.filepad.create_index(i, unique=True, background=background)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 1958, in create_index
    self.__create_index(keys, kwargs, session, **cmd_options)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 1860, in __create_index
    session=session)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 244, in _command
    retryable_write=retryable_write)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/pool.py", line 579, in command
    unacknowledged=unacknowledged)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/network.py", line 150, in command
    parse_write_concern_error=parse_write_concern_error)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/helpers.py", line 155, in _check_command_response
    raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: command createIndexes requires authentication

``

while authentication worked fine for the LaunchPad.

Only after taking a close look at the code in https://github.com/materialsproject/fireworks/blob/master/fireworks/utilities/filepad.py, it became clear that the options “admin_user”, “admin_password”, “readonly_user” and “readonly_password” are expected within the authentication configuration file, differing from the “username” and “password” expected by LaunchPad. However, I did not find this anywhere mentioned in the documentation, neither on

https://materialsproject.github.io/fireworks/filepad_tutorial.html nor on https://materialsproject.github.io/fireworks/filepad_tasks.html

What is more, on the latter page the parameter “labels” is actually named “identifiers” in the current version. Update recommended :wink:

Best regards,

Johannes

Hi Johannes,

Thanks for reporting this! I have pushed a fix to the latest github version:

This change updates the docs for the label/identifier switch, and it also allows users to use the “username / password” combo that’s more conventional in FireWorks. The FilePad was moved over from one of our other codes (atomate) which is why the convention didn’t match to begin with.

Will try to release the online docs as well as a new FWS version v1.8.2 soon, which should close out this issue. Let me know if you see anything still amiss!

···

On Monday, November 26, 2018 at 12:28:37 PM UTC-5, Johannes Hörmann wrote:

Dear development team,

we have been using Fireworks since a few month managing our jobs on different HPC machines. Today I figure out one issue I perceived as a bug for a long time, realizing that it was actually only an issue of the documentation:

Using the FilePad tasks I would always get an exception like

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/core/rocket.py", line 262, in run
    m_action = t.run_task(my_spec)
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/user_objects/firetasks/filepad_tasks.py", line 74, in run_task
    fpad = get_fpad(self.get("filepad_file", None))
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/user_objects/firetasks/filepad_tasks.py", line 106, in get_fpad
    return FilePad.from_db_file(fpad_file)
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/utilities/filepad.py", line 302, in from_db_file
    gfs_name)
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/utilities/filepad.py", line 72, in __init__
    self.build_indexes()
  File "/usr/local/lib/python3.6/dist-packages/FireWorks-1.8.1-py3.6.egg/fireworks/utilities/filepad.py", line 84, in build_indexes
    self.filepad.create_index(i, unique=True, background=background)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 1958, in create_index
    self.__create_index(keys, kwargs, session, **cmd_options)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 1860, in __create_index
    session=session)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 244, in _command
    retryable_write=retryable_write)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/pool.py", line 579, in command
    unacknowledged=unacknowledged)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/network.py", line 150, in command
    parse_write_concern_error=parse_write_concern_error)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/helpers.py", line 155, in _check_command_response
    raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: command createIndexes requires authentication

``

while authentication worked fine for the LaunchPad.

Only after taking a close look at the code in https://github.com/materialsproject/fireworks/blob/master/fireworks/utilities/filepad.py, it became clear that the options “admin_user”, “admin_password”, “readonly_user” and “readonly_password” are expected within the authentication configuration file, differing from the “username” and “password” expected by LaunchPad. However, I did not find this anywhere mentioned in the documentation, neither on

https://materialsproject.github.io/fireworks/filepad_tutorial.html nor on https://materialsproject.github.io/fireworks/filepad_tasks.html

What is more, on the latter page the parameter “labels” is actually named “identifiers” in the current version. Update recommended :wink:

Best regards,

Johannes