From 32ce9e6af77e909d5c6256909fdd5e75466bede5 Mon Sep 17 00:00:00 2001 From: Will Thames Date: Tue, 28 May 2019 23:12:30 +1000 Subject: [PATCH] Ensure that namespace and name parameters are used for apply resource definitions that are accompanied separately by names and namespaces should be updated and the name and namespace used Fixes #296 --- openshift/dynamic/client.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openshift/dynamic/client.py b/openshift/dynamic/client.py index b126bdf4..9b90f9e1 100644 --- a/openshift/dynamic/client.py +++ b/openshift/dynamic/client.py @@ -179,11 +179,12 @@ def patch(self, resource, body=None, name=None, namespace=None, **kwargs): def apply(self, resource, body=None, name=None, namespace=None): body = self.serialize_body(body) - name = name or body.get('metadata', {}).get('name') + body['metadata'] = body.get('metadata', dict()) + name = name or body['metadata'].get('name') if not name: raise ValueError("name is required to apply {}.{}".format(resource.group_version, resource.kind)) if resource.namespaced: - namespace = self.ensure_namespace(resource, namespace, body) + body['metadata']['namespace'] = self.ensure_namespace(resource, namespace, body) return apply(resource, body) def watch(self, resource, namespace=None, name=None, label_selector=None, field_selector=None, resource_version=None, timeout=None):