summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOpenShift Bot <eparis+openshiftbot@redhat.com>2017-07-03 17:56:40 -0400
committerGitHub <noreply@github.com>2017-07-03 17:56:40 -0400
commit2ae2dfdb085be0e1bda00d0e33a7c9388b337307 (patch)
treeeeeb2ce913de2b9f0ba079d73dddc8bb3eea5a2c
parent52d46f65d381bd12590d608c3185b4ce2dd9885f (diff)
parentfb6a92516f73f255ead05281caac71bda489c80d (diff)
downloadopenshift-2ae2dfdb085be0e1bda00d0e33a7c9388b337307.tar.gz
openshift-2ae2dfdb085be0e1bda00d0e33a7c9388b337307.tar.bz2
openshift-2ae2dfdb085be0e1bda00d0e33a7c9388b337307.tar.xz
openshift-2ae2dfdb085be0e1bda00d0e33a7c9388b337307.zip
Merge pull request #3131 from sdodson/no_proxy_bz1414749_bz1414748
Merged by openshift-bot
-rwxr-xr-xroles/openshift_facts/library/openshift_facts.py45
1 files changed, 27 insertions, 18 deletions
diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py
index cc2a1d2eb..30701a518 100755
--- a/roles/openshift_facts/library/openshift_facts.py
+++ b/roles/openshift_facts/library/openshift_facts.py
@@ -1618,14 +1618,7 @@ def sort_unique(alist):
Returns:
list: a sorted de-duped list
"""
-
- alist.sort()
- out = list()
- for i in alist:
- if i not in out:
- out.append(i)
-
- return out
+ return sorted(list(set(alist)))
def safe_get_bool(fact):
@@ -1649,20 +1642,36 @@ def set_proxy_facts(facts):
"""
if 'common' in facts:
common = facts['common']
+
+ # No openshift_no_proxy settings detected, empty list for now
+ if 'no_proxy' not in common:
+ common['no_proxy'] = []
+
+ # _no_proxy settings set. It is just a simple string, not a
+ # list or anything
+ elif 'no_proxy' in common and isinstance(common['no_proxy'], string_types):
+ # no_proxy is now a list of all the comma-separated items
+ # in the _no_proxy value
+ common['no_proxy'] = common['no_proxy'].split(",")
+
+ # at this point common['no_proxy'] is a LIST datastructure. It
+ # may be empty, or it may contain some hostnames or ranges.
+
+ # We always add local dns domain and ourselves no matter what
+ common['no_proxy'].append('.' + common['dns_domain'])
+ common['no_proxy'].append(common['hostname'])
+
+ # You are also setting system proxy vars, openshift_http_proxy/openshift_https_proxy
if 'http_proxy' in common or 'https_proxy' in common:
- if 'no_proxy' in common and isinstance(common['no_proxy'], string_types):
- common['no_proxy'] = common['no_proxy'].split(",")
- elif 'no_proxy' not in common:
- common['no_proxy'] = []
+ # You want to generate no_proxy hosts and it's a boolean value
if 'generate_no_proxy_hosts' in common and safe_get_bool(common['generate_no_proxy_hosts']):
+ # And you want to set up no_proxy for internal hostnames
if 'no_proxy_internal_hostnames' in common:
+ # Split the internal_hostnames string by a comma
+ # and add that list to the overall no_proxy list
common['no_proxy'].extend(common['no_proxy_internal_hostnames'].split(','))
- # We always add local dns domain and ourselves no matter what
- common['no_proxy'].append('.' + common['dns_domain'])
- common['no_proxy'].append('.svc')
- common['no_proxy'].append(common['hostname'])
- common['no_proxy'] = ','.join(sort_unique(common['no_proxy']))
- facts['common'] = common
+
+ common['no_proxy'] = ','.join(sort_unique(common['no_proxy']))
return facts