Skip to content
This repository was archived by the owner on Mar 13, 2022. It is now read-only.

Commit b4d3aad

Browse files
authored
Merge pull request #236 from Yashks1994/header-patch1
Support customizing “Accept” header #1428
2 parents 4d19204 + bde3935 commit b4d3aad

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

Diff for: dynamic/client.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -219,11 +219,14 @@ def request(self, method, path, body=None, **params):
219219
header_params = params.get('header_params', {})
220220
form_params = []
221221
local_var_files = {}
222-
# HTTP header `Accept`
223-
header_params['Accept'] = self.client.select_header_accept([
224-
'application/json',
225-
'application/yaml',
226-
])
222+
223+
# Checking Accept header.
224+
new_header_params = dict((key.lower(), value) for key, value in header_params.items())
225+
if not 'accept' in new_header_params:
226+
header_params['Accept'] = self.client.select_header_accept([
227+
'application/json',
228+
'application/yaml',
229+
])
227230

228231
# HTTP header `Content-Type`
229232
if params.get('content_type'):

Diff for: dynamic/test_client.py

+17-1
Original file line numberDiff line numberDiff line change
@@ -359,11 +359,27 @@ def test_configmap_apis(self):
359359

360360
resp = api.get(namespace='default', pretty=True, label_selector="e2e-test=true")
361361
self.assertEqual([], resp.items)
362-
362+
363363
def test_node_apis(self):
364364
client = DynamicClient(api_client.ApiClient(configuration=self.config))
365365
api = client.resources.get(api_version='v1', kind='Node')
366366

367367
for item in api.get().items:
368368
node = api.get(name=item.metadata.name)
369369
self.assertTrue(len(dict(node.metadata.labels)) > 0)
370+
371+
# test_node_apis_partial_object_metadata lists all nodes in the cluster, but only retrieves object metadata
372+
def test_node_apis_partial_object_metadata(self):
373+
client = DynamicClient(api_client.ApiClient(configuration=self.config))
374+
api = client.resources.get(api_version='v1', kind='Node')
375+
376+
params = {'header_params': {'Accept': 'application/json;as=PartialObjectMetadataList;v=v1;g=meta.k8s.io'}}
377+
resp = api.get(**params)
378+
self.assertEqual('PartialObjectMetadataList', resp.kind)
379+
self.assertEqual('meta.k8s.io/v1', resp.apiVersion)
380+
381+
params = {'header_params': {'aCcePt': 'application/json;as=PartialObjectMetadataList;v=v1;g=meta.k8s.io'}}
382+
resp = api.get(**params)
383+
self.assertEqual('PartialObjectMetadataList', resp.kind)
384+
self.assertEqual('meta.k8s.io/v1', resp.apiVersion)
385+

0 commit comments

Comments
 (0)