databio / bulker

Manager for multi-container computing environments
https://bulker.io
BSD 2-Clause "Simplified" License
24 stars 2 forks source link

Running bulker activate before load throws error #32

Closed jpsmith5 closed 4 years ago

jpsmith5 commented 4 years ago

Attempting to activate before loading throws error without helpful messaging. Only occurs after an init. Once something has been loaded, error disappears.

$ bulker activate databio/refgenie:0.7.0
Using default config. No config found in env var: BULKERCFG
Bulker config: /home/user/.local/lib/python3.7/site-packages/bulker/templates/bulker_config.yaml
Activating bulker crate: databio/refgenie:0.7.0

Traceback (most recent call last):
  File "/home/user/.local/bin/bulker", line 8, in <module>
    sys.exit(main())
  File "/home/user/.local/lib/python3.7/site-packages/bulker/bulker.py", line 616, in main
    bulker_activate(bulker_config, cratelist, echo=args.echo, strict=args.strict)
  File "/home/user/.local/lib/python3.7/site-packages/bulker/bulker.py", line 438, in bulker_activate
    newpath = get_new_PATH(bulker_config, cratelist, strict)
  File "/home/user/.local/lib/python3.7/site-packages/bulker/bulker.py", line 468, in get_new_PATH
    cratepaths += get_local_path(bulker_config, cratevars) + os.pathsep
  File "/home/user/.local/lib/python3.7/site-packages/bulker/bulker.py", line 455, in get_local_path
    _LOGGER.debug(bulker_config.bulker.crates[cratevars["namespace"]][cratevars["crate"]].to_dict())
TypeError: 'NoneType' object is not subscriptable
jpsmith5 commented 4 years ago

Difference between config file where something has been loaded:

bulker:
  volumes: ['/tmp', '$HOME']
  envvars: ['DISPLAY']
  registry_url: http://hub.bulker.io/
  default_crate_folder: ${HOME}/bulker_crates
  singularity_image_folder: ${HOME}/simages
  container_engine: docker
  default_namespace: bulker
  executable_template: docker_executable.jinja2
  shell_template: docker_shell.jinja2
  build_template: docker_build.jinja2
  crates:
    databio:
      refgenie:
        0.7.0: /home/user/bulker_crates/databio/refgenie/0.7.0

Versus never loaded:

bulker:
  volumes: ['/tmp', '$HOME']
  envvars: ['DISPLAY']
  registry_url: http://hub.bulker.io/
  default_crate_folder: ${HOME}/bulker_crates
  singularity_image_folder: ${HOME}/simages
  container_engine: docker
  default_namespace: bulker
  executable_template: templates/docker_executable.jinja2
  shell_template: templates/docker_shell.jinja2
  build_template: templates/docker_build.jinja2
  crates: null