|
9 | 9 |
|
10 | 10 | from .result import Result |
11 | 11 |
|
12 | | -# All threads will have a context which is |
13 | | -# managed by a stack of Context objects. As |
14 | | -# a thread establish additional context using |
15 | | -# 'with' statements, the stack will push/grow. As |
16 | | -# 'with' blocks end, the stack will pop/shrink. |
17 | | -context = local() |
18 | | - |
19 | | -context.stack = [] |
20 | | -context.default_oc_path = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_OC_PATH", "oc") # Assume oc is in $PATH by default |
21 | | -context.default_kubeconfig_path = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_CONFIG_PATH", None) |
22 | | -context.default_api_server = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_API_SERVER", None) |
23 | | -context.default_token = None # Does not support environment variable injection to discourage this insecure practice |
24 | | -context.default_ca_cert_path = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_CA_CERT_PATH", None) |
25 | | -context.default_project = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_PROJECT", None) |
26 | | -context.default_options = {} |
27 | | -context.default_loglevel = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_OC_LOGLEVEL", None) |
28 | | -context.default_skip_tls_verify = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_SKIP_TLS_VERIFY", None) |
29 | | - |
30 | 12 | # Provides defaults for ssh_client context instantiations |
31 | 13 | DEFAULT_SSH_HOSTNAME = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_SSH_HOSTNAME", None) |
32 | 14 | DEFAULT_SSH_USERNAME = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_SSH_USERNAME", None) |
@@ -605,9 +587,29 @@ def timeout(seconds): |
605 | 587 | return c |
606 | 588 |
|
607 | 589 |
|
608 | | -root_context = Context() |
609 | | -root_context.set_timeout(MASTER_TIMEOUT) |
| 590 | +class ThreadLocalContext(local): |
| 591 | + def __init__(self): |
| 592 | + self.default_oc_path = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_OC_PATH", "oc") # Assume oc is in $PATH by default |
| 593 | + self.default_kubeconfig_path = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_CONFIG_PATH", None) |
| 594 | + self.default_api_server = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_API_SERVER", None) |
| 595 | + self.default_token = None # Does not support environment variable injection to discourage this insecure practice |
| 596 | + self.default_ca_cert_path = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_CA_CERT_PATH", None) |
| 597 | + self.default_project = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_PROJECT", None) |
| 598 | + self.default_options = {} |
| 599 | + self.default_loglevel = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_OC_LOGLEVEL", None) |
| 600 | + self.default_skip_tls_verify = os.getenv("OPENSHIFT_CLIENT_PYTHON_DEFAULT_SKIP_TLS_VERIFY", None) |
| 601 | + |
| 602 | + root_context = Context() |
| 603 | + root_context.set_timeout(MASTER_TIMEOUT) |
610 | 604 |
|
611 | | -# Ensure stack always has at least one member to simplify getting last |
612 | | -# with [-1] |
613 | | -context.stack = [root_context] |
| 605 | + # Ensure stack always has at least one member to simplify getting last |
| 606 | + # with [-1] |
| 607 | + self.stack = [root_context] |
| 608 | + |
| 609 | + |
| 610 | +# All threads will have a context which is |
| 611 | +# managed by a stack of Context objects. As |
| 612 | +# a thread establish additional context using |
| 613 | +# 'with' statements, the stack will push/grow. As |
| 614 | +# 'with' blocks end, the stack will pop/shrink. |
| 615 | +context = ThreadLocalContext() |
0 commit comments