Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ResourceNotUniqueError on resources.get(api_version='v1', kind='DeploymentConfig') #284

Closed
FlorianFusseder opened this issue Apr 18, 2019 · 6 comments
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.

Comments

@FlorianFusseder
Copy link

If i want to create a simple get with:
dyn_client.resources.get(api_version='v1', kind='DeploymentConfig')
for a DeploymentConfig, ill get the following exception:

File "C:\Projekte\openshift-scripts\venv\lib\site-packages\openshift\dynamic\client.py", line 639, in get raise ResourceNotUniqueError('Multiple matches found for {}: {}'.format(kwargs, results)) openshift.dynamic.exceptions.ResourceNotUniqueError: Multiple matches found for {'api_version': 'v1', 'kind': 'DeploymentConfig'}: [<Resource(v1/deploymentconfigs)>, <Resource(v1/generatedeploymentconfigs)>]

Shouldn't this be unique? It is a standard resource? How to i get the resource <Resource(v1/deploymentconfigs)>?

@willthames
Copy link
Contributor

This is very similar to ansible/ansible#55221

Only seems to be a problem for very old openshifts (3.6 or older), there is a workaround in the above issue.

@fabianvf do you any more thoughts on this one?

@cben
Copy link

cben commented May 19, 2019

There is also a similar collision between /templates and /processedtemplates, that still exists in openshift (3.11 and 4.1.0-rc.3): openshift/origin#21668.
Can you check if you see similar issue with that?

FWIW in kubeclient (a ruby lib that's also a dynamic discovery-driven client),
I had similar issues: ManageIQ/kubeclient#376 (comment)
and ended up simply blacklisting processedtemplates: ManageIQ/kubeclient#378
Unless you do want oc process like functionality too? In kubeclient we had a special method to do it (ManageIQ/kubeclient#183).

I'm not sure what generatedeploymentconfigs did in the past but I suspect it was a similar POST-only arrangement to processedtemplates? Or maybe it did nothing — 3.6.0 discovery says "verbs": []? 🤷‍♂️
I didn't blacklist generatedeploymentconfigs because in kubeclient it didn't collide due to technicality in method names, but I think you can safely blacklist it too in openshift-restclient-python.

  • There is also ReplicationControllerDummy for extensions/v1beta1/replicationcontrollers but that's separate api group, not same kind of collision, silly but harmless 😸?

P.S. https://github.com/cben/kubernetes-discovery-samples may come in handy for checking what discovery info looks like in different versions.

@openshift-bot
Copy link

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci-robot openshift-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 10, 2020
@openshift-bot
Copy link

Stale issues rot after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci-robot openshift-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Oct 10, 2020
@openshift-bot
Copy link

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

@openshift-ci-robot
Copy link

@openshift-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
None yet
Development

No branches or pull requests

5 participants