ansible / mazer

Experimental Ansible Galaxy Content Manager
GNU General Public License v3.0
114 stars 18 forks source link

TypeError: Object of type CollectionInfo is not JSON serializable #181

Closed jctanner closed 5 years ago

jctanner commented 5 years ago

Bug Report

MAZER VERSION
devel
CONFIGURATION
SUMMARY

Publish is trying to encode a non-serializable object

STEPS TO REPRODUCE
EXPECTED RESULTS
ACTUAL RESULTS
(venv) [jtanner@jtw530 AP-MOLECULE_COLLECTION_INIT]$ mazer publish --server=https://galaxy-dev.ansible.com collections/bar/releases/foo-bar-0.0.1.tar.gz
Traceback (most recent call last):
  File "/data/workspace.issues/AP-MOLECULE_COLLECTION_INIT/venv/bin/mazer", line 11, in <module>
    load_entry_point('mazer', 'console_scripts', 'mazer')()
  File "/data/workspace.issues/AP-MOLECULE_COLLECTION_INIT/mazer.jctanner/ansible_galaxy_cli/main.py", line 35, in main
    exit_code = cli.run()
  File "/data/workspace.issues/AP-MOLECULE_COLLECTION_INIT/mazer.jctanner/ansible_galaxy_cli/cli/galaxy.py", line 210, in run
    return self.execute()
  File "/data/workspace.issues/AP-MOLECULE_COLLECTION_INIT/mazer.jctanner/ansible_galaxy_cli/cli/__init__.py", line 151, in execute
    return fn()
  File "/data/workspace.issues/AP-MOLECULE_COLLECTION_INIT/mazer.jctanner/ansible_galaxy_cli/cli/galaxy.py", line 290, in execute_publish
    display_callback=self.display)
  File "/data/workspace.issues/AP-MOLECULE_COLLECTION_INIT/mazer.jctanner/ansible_galaxy/actions/publish.py", line 71, in publish
    display_callback=display_callback)
  File "/data/workspace.issues/AP-MOLECULE_COLLECTION_INIT/mazer.jctanner/ansible_galaxy/actions/publish.py", line 46, in _publish
    display_callback(json.dumps(manifest.collection_info))
  File "/usr/lib64/python3.7/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "/usr/lib64/python3.7/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib64/python3.7/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/usr/lib64/python3.7/json/encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type CollectionInfo is not JSON serializable