1414
1515logger = logging .getLogger (__name__ )
1616session = None
17- resource_mapping = OrderedDict ()
1817
1918
2019def get_k8s_session (k8s_api_verify_tls ):
@@ -40,9 +39,9 @@ class KubeHTTPClient(object):
4039 api_prefix = 'api'
4140 # ISO-8601 which is used by kubernetes
4241 DATETIME_FORMAT = '%Y-%m-%dT%H:%M:%SZ'
42+ resource_mapping = OrderedDict ()
4343
4444 def __init__ (self , url , k8s_api_verify_tls = True ):
45- global resource_mapping
4645 self .url = url
4746 self .k8s_api_verify_tls = k8s_api_verify_tls
4847 self .session = get_k8s_session (self .k8s_api_verify_tls )
@@ -53,33 +52,32 @@ def __init__(self, url, k8s_api_verify_tls=True):
5352 name = str (res .__name__ ).lower () # singular
5453 component = name + 's' # make plural
5554 # check if component has already been processed
56- if component in resource_mapping :
55+ if component in self . resource_mapping :
5756 continue
5857
5958 # get past recursion problems in case of self reference
60- resource_mapping [component ] = ''
61- resource_mapping [component ] = res (self .url , self .k8s_api_verify_tls )
59+ self . resource_mapping [component ] = ''
60+ self . resource_mapping [component ] = res (self .url , self .k8s_api_verify_tls )
6261 # map singular Resource name to the plural one
63- resource_mapping [name ] = component
62+ self . resource_mapping [name ] = component
6463 if res .short_name is not None :
6564 # map short name to long name so a resource can be named rs
6665 # but have the main object live at replicasets
67- resource_mapping [str (res .short_name ).lower ()] = component
66+ self . resource_mapping [str (res .short_name ).lower ()] = component
6867
6968 def api (self , tmpl , * args ):
7069 """Return a fully-qualified Kubernetes API URL from a string template with args."""
7170 return "/{}/{}" .format (self .api_prefix , self .api_version ) + tmpl .format (* args )
7271
7372 def __getattr__ (self , name ):
74- global resource_mapping
75- if name in resource_mapping :
73+ if name in self .resource_mapping :
7674 # resolve to final name if needed
77- component = resource_mapping [name ]
75+ component = self . resource_mapping [name ]
7876 if type (component ) is not str :
7977 # already a component object
8078 return component
8179
82- return resource_mapping [component ]
80+ return self . resource_mapping [component ]
8381
8482 return object .__getattribute__ (self , name )
8583
0 commit comments