Skip to content

Specifying an empty HREF when deleting any resource ends with RecursionError #545

@lubosmj

Description

@lubosmj

Summary

When specifying an empty HREF while running a destroy command of any kind, a python error is raised.

Steps to reproduce

Execute the following command:

pulp file repository destroy --href ""
pulp file repository destroy

Expected behaviour

A reasonable error message should be displayed instead.

Stacktrace/Error log

Traceback (most recent call last):
  File "/usr/local/lib/pulp/bin/pulp", line 33, in <module>
    sys.exit(load_entry_point('pulp-cli', 'console_scripts', 'pulp')())
  File "/home/vagrant/devel/pulp-cli/pulp_cli/__init__.py", line 32, in main
    return _main()
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/generic.py", line 84, in invoke
    return super().invoke(ctx)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/generic.py", line 84, in invoke
    return super().invoke(ctx)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/generic.py", line 84, in invoke
    return super().invoke(ctx)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/generic.py", line 84, in invoke
    return super().invoke(ctx)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/pulp/lib64/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/generic.py", line 906, in callback
    entity_ctx.delete(entity_ctx.pulp_href)
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 404, in pulp_href
    return str(self.entity["pulp_href"])
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 381, in entity
    self._entity = self.show(self._entity_lookup["pulp_href"])
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 499, in show
    return self.call("read", parameters={self.HREF: href or self.pulp_href})
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 404, in pulp_href
    return str(self.entity["pulp_href"])
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 381, in entity
    self._entity = self.show(self._entity_lookup["pulp_href"])
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 499, in show
    return self.call("read", parameters={self.HREF: href or self.pulp_href})
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 404, in pulp_href
    return str(self.entity["pulp_href"])
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 381, in entity
    self._entity = self.show(self._entity_lookup["pulp_href"])
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 499, in show
    return self.call("read", parameters={self.HREF: href or self.pulp_href})
  File "/home/vagrant/devel/pulp-cli/pulpcore/cli/common/context.py", line 404, in pulp_href
    return str(self.entity["pulp_href"])
RecursionError: maximum recursion depth exceeded

Pulp and pulp-cli version info

Latest main branches.

    {
      "component": "core",
      "version": "3.21.0.dev",
      "package": "pulpcore"
    },
    {
      "component": "file",
      "version": "1.12.0.dev",
      "package": "pulp-file"
    },

Metadata

Metadata

Assignees

Labels

bugSomething isn't working (template-set)prio-listdriving Pulp's Kanban searches

Type

No type
No fields configured for issues without a type.

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions