@@ -119,11 +119,16 @@ def get_type(key):
119119 return 'unknown'
120120
121121
122+ def replace_api_version (old , new = 'api_v1' ):
123+ return old .replace ('apis_autoscaling_v1' , new )\
124+ .replace ('apis_apps_v1' , new )\
125+ .replace ('apis_networking.k8s.io_v1beta1' , new )
126+
127+
122128def get_namespace (url , resource_type ):
123129 """Inspects the URL and gets namespace from it if there is any"""
124130 # correct back to proper namespace API
125- url = url .replace ('apis_autoscaling_v1' , 'api_v1' )
126- url = url .replace ('apis_extensions_v1beta1' , 'api_v1' )
131+ url = replace_api_version (url )
127132 # check if this is a subresource
128133 subresource , resource_type , url = is_subresource (resource_type , url )
129134 # get namespace name
@@ -391,7 +396,8 @@ def upsert_pods(controller, url):
391396 # turn RC / RS (which a Deployment creates) url into pods one
392397 url = url .replace (cache_key (controller ['metadata' ]['name' ]), '' )
393398 if '_replicasets_' in url :
394- url = url .replace ('_replicasets_' , '_pods' ).replace ('apis_extensions_v1beta1' , 'api_v1' ) # noqa
399+ url = url .replace ('_replicasets_' , '_pods' )
400+ url = replace_api_version (url )
395401 else :
396402 url = url .replace ('_replicationcontrollers_' , '_pods' )
397403 # make sure url only has up to "_pods"
@@ -512,7 +518,8 @@ def manage_replicasets(deployment, url):
512518
513519def update_deployment_status (namespaced_url , url , deployment , rs ):
514520 # Fill out deployment.status for success as pods transition to running state
515- pod_url = namespaced_url .replace ('_replicasets' , '_pods' ).replace ('apis_extensions_v1beta1' , 'api_v1' ) # noqa
521+ pod_url = namespaced_url .replace ('_replicasets' , '_pods' )
522+ pod_url = replace_api_version (pod_url )
516523 while True :
517524 # The below needs to be done to emulate Deployment handling things
518525 # always cleanup pods
@@ -689,7 +696,7 @@ def post(request, context):
689696 if resource_type not in ['nodes' , 'namespaces' ]:
690697 namespace = request .url .replace (settings .SCHEDULER_URL , '' )
691698 namespace = namespace .replace ('/api/v1/namespaces/' , '' )
692- namespace = re .sub (r'/apis/.{1,}/.{1,} /namespaces/' , '' , namespace )
699+ namespace = re .sub (r'/apis/.+/.+ /namespaces/' , '' , namespace )
693700 namespace = namespace .split ('/' )[0 ]
694701 data ['metadata' ]['namespace' ] = namespace
695702
0 commit comments