@@ -45,10 +45,12 @@ def __init__(self, url, k8s_api_verify_tls=True, metadata=None):
4545 self .url = url
4646 self .k8s_api_verify_tls = k8s_api_verify_tls
4747 self .session = get_k8s_session (self .k8s_api_verify_tls )
48- self .metadata = metadata
48+ self .metadata = {} if metadata is None else metadata
4949
5050 # map the various k8s Resources to an internal property
5151 from scheduler .resources import Resource # lazy load
52+ if not isinstance (self , Resource ):
53+ KubeHTTPClient .resource_mapping = OrderedDict ()
5254 for res in Resource :
5355 name = str (res .__name__ ).lower () # singular
5456 component = name + 's' # make plural
@@ -58,7 +60,8 @@ def __init__(self, url, k8s_api_verify_tls=True, metadata=None):
5860
5961 # get past recursion problems in case of self reference
6062 self .resource_mapping [component ] = ''
61- self .resource_mapping [component ] = res (self .url , self .k8s_api_verify_tls )
63+ self .resource_mapping [component ] = res (
64+ self .url , self .k8s_api_verify_tls , metadata = self .metadata )
6265 # map singular Resource name to the plural one
6366 self .resource_mapping [name ] = component
6467 if res .short_name is not None :
@@ -185,45 +188,45 @@ def http_get(self, path, params=None, **kwargs):
185188
186189 return response
187190
188- def http_post (self , path , data = None , json = None , ** kwargs ):
191+ def http_post (self , path , json = None , ** kwargs ):
189192 """
190193 Make a POST request to the k8s server.
191194 """
192195 try :
193196 url = urljoin (self .url , path )
194- if self . metadata is not None and "metadata" in data :
195- data ["metadata" ] = utils .dict_merge (data ["metadata" ], self .metadata )
196- response = self .session .post (url , data = data , json = json , ** kwargs )
197+ if json is not None and "metadata" in json :
198+ json ["metadata" ] = utils .dict_merge (json ["metadata" ], self .metadata )
199+ response = self .session .post (url , json = json , ** kwargs )
197200 except requests .exceptions .ConnectionError as err :
198201 # reraise as KubeException, but log stacktrace.
199202 message = "There was a problem posting data to " \
200203 "the Kubernetes API server. URL: {}, " \
201- "data: {}, json: {}" .format (url , data , json )
204+ "json: {}" .format (url , json )
202205 logger .error (message )
203206 raise KubeException (message ) from err
204207
205208 return response
206209
207- def http_put (self , path , data = None , ** kwargs ):
210+ def http_put (self , path , json = None , ** kwargs ):
208211 """
209212 Make a PUT request to the k8s server.
210213 """
211214 try :
212215 url = urljoin (self .url , path )
213- if self . metadata is not None and "metadata" in data :
214- data ["metadata" ] = utils .dict_merge (data ["metadata" ], self .metadata )
215- response = self .session .put (url , data = data , ** kwargs )
216+ if json is not None and "metadata" in json :
217+ json ["metadata" ] = utils .dict_merge (json ["metadata" ], self .metadata )
218+ response = self .session .put (url , json = json , ** kwargs )
216219 except requests .exceptions .ConnectionError as err :
217220 # reraise as KubeException, but log stacktrace.
218221 message = "There was a problem putting data to " \
219222 "the Kubernetes API server. URL: {}, " \
220- "data : {}" .format (url , data )
223+ "json : {}" .format (url , json )
221224 logger .error (message )
222225 raise KubeException (message ) from err
223226
224227 return response
225228
226- def http_patch (self , path , data = None , ** kwargs ):
229+ def http_patch (self , path , json = None , ** kwargs ):
227230 """
228231 Make a PATCH request to the k8s server.
229232 """
@@ -234,14 +237,14 @@ def http_patch(self, path, data=None, **kwargs):
234237 # application/merge-patch+json,
235238 # application/apply-patch+yaml
236239 # self.session.headers["Content-Type"] = "application/json-patch+json"
237- if self . metadata is not None and "metadata" in data :
238- data ["metadata" ] = utils .dict_merge (data ["metadata" ], self .metadata )
239- response = self .session .patch (url , data = data , ** kwargs )
240+ if json is not None and "metadata" in json :
241+ json ["metadata" ] = utils .dict_merge (json ["metadata" ], self .metadata )
242+ response = self .session .patch (url , json = json , ** kwargs )
240243 except requests .exceptions .ConnectionError as err :
241244 # reraise as KubeException, but log stacktrace.
242245 message = "There was a problem patching data to " \
243246 "the Kubernetes API server. URL: {}, " \
244- "data : {}" .format (url , data )
247+ "json : {}" .format (url , json )
245248 logger .error (message )
246249 raise KubeException (message ) from err
247250
0 commit comments