Skip to content

Commit c55d227

Browse files
authored
Allow creates on subresources properly (#201) (#202)
(cherry picked from commit 173a114)
1 parent 1ab119d commit c55d227

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

openshift/dynamic/client.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,20 @@ def __init__(self, parent, **kwargs):
339339
self.verbs = kwargs.pop('verbs', None)
340340
self.extra_args = kwargs
341341

342+
#TODO(fabianvf): Determine proper way to handle differences between resources + subresources
343+
def create(self, body=None, name=None, namespace=None, **kwargs):
344+
return self.__create(self, body=body, name=name, namespace=namespace, **kwargs)
345+
346+
@meta_request
347+
def __create(self, resource, body=None, name=None, namespace=None, **kwargs):
348+
name = name or body.get('metadata', {}).get('name')
349+
body = self.parent.client.serialize_body(body)
350+
if resource.namespaced:
351+
namespace = self.parent.client.ensure_namespace(resource, namespace, body)
352+
path = self.path(name=name, namespace=namespace)
353+
return self.parent.client.request('post', path, body=body, **kwargs)
354+
355+
342356
@property
343357
def urls(self):
344358
full_prefix = '{}/{}'.format(self.prefix, self.group_version)

0 commit comments

Comments
 (0)