fixinventory icon indicating copy to clipboard operation
fixinventory copied to clipboard

Digitalocean collector fails because of an unhandled error

Open Mayeu opened this issue 1 year ago • 3 comments

Description

When running workflows run collect, the collector for DigitalOcean fais with An unhandled error occurred while collecting team XXXXXX (where XXXXX is the our team ID).

Version

2.4.1

Environment

Docker compose running on macOS 10.15

Steps to Reproduce

  1. Setup the worker as described here: https://resoto.com/docs/getting-started/configure-cloud-provider-access/digitalocean
  2. Run workflows run collect
  3. Check the log to see the error

Logs

resoto-resotoworker-1        | {"timestamp": "2022-09-16T11:53:39", "level": "INFO", "message": "Collecting k8s_clusters in digitalocean_team XXXXXX", "pid": 136, "thread": "digitalocean", "process": "resotoworker"}
resoto-resotoworker-1        | {"timestamp": "2022-09-16T11:53:39", "level": "INFO", "message": "Collecting snapshots in digitalocean_team XXXXXX", "pid": 136, "thread": "digitalocean", "process": "resotoworker"}
resoto-resotoworker-1        | {"timestamp": "2022-09-16T11:53:45", "level": "ERROR", "message": "An unhandled error occurred while collecting team XXXXXXX", "pid": 136, "thread": "digitalocean", "process": "resotoworker", "exception": "Traceback (most recent call last):\n  File \"/usr/local/resoto-venv-python3/lib/python3.10/site-packages/resoto_plugin_digitalocean/__init__.py\", line 66, in collect_team\n    dopc.collect()\n  File \"/usr/local/resoto-venv-python3/lib/python3.10/site-packages/resoto_plugin_digitalocean/collector.py\", line 243, in collect\n    collector()\n  File \"<decorator-gen-24>\", line 2, in collect_snapshots\n  File \"/usr/local/resoto-venv-python3/lib/python3.10/site-packages/prometheus_client/context_managers.py\", line 81, in wrapped\n    return func(*args, **kwargs)\n  File \"/usr/local/resoto-venv-python3/lib/python3.10/site-packages/resoto_plugin_digitalocean/collector.py\", line 740, in collect_snapshots\n    self.collect_resource(\n  File \"/usr/local/resoto-venv-python3/lib/python3.10/site-packages/resoto_plugin_digitalocean/collector.py\", line 372, in collect_resource\n    log.debug(f\"Parent resource for {resource_instance.rtdname} automatically set to {pr.rtdname}\")\nAttributeError: 'list' object has no attribute 'rtdname'"}
resoto-resotoworker-1        | {"timestamp": "2022-09-16T11:53:45", "level": "INFO", "message": "Collector of plugin digitalocean finished in 140.2884s", "pid": 136, "thread": "collector_digitalocean", "process": "resotoworker"}

Additional Context

No response

Mayeu avatar Sep 16 '22 11:09 Mayeu

Thanks for the report @Mayeu. @meln1k can you take a look?

aquamatthias avatar Sep 17 '22 09:09 aquamatthias

Hey @Mayeu, I'm currently trying to reproduce your issue. Could you give us more details about your setup? Which amd how many resources are you trying to collect?

meln1k avatar Sep 21 '22 14:09 meln1k

Hello, thank you for your response.

I was trying resoto directly from my mac, following the documentation using a docker setup.

On the DO side, the team I'm trying to import has the following resources:

  • Spaces (~4)
  • Droplets (~10)
  • Database (3 Pgsql + 1 Read only)
  • Redis instance (1)
  • Projects (3)
  • Volumes (2)
  • Snapshots (~50)
  • VPC (4)
  • Firewall rules (6)
  • Monitoring rules (3)

Mayeu avatar Sep 22 '22 07:09 Mayeu

Hey @Mayeu, I managed to reproduce the issue and merged the fix for it. We will release the new patched docker image soon.

meln1k avatar Sep 23 '22 14:09 meln1k