summaryrefslogtreecommitdiffstats
path: root/roles/openshift_facts/library
diff options
context:
space:
mode:
authorJason DeTiberus <jdetiber@redhat.com>2015-11-04 22:34:39 -0500
committerJason DeTiberus <jdetiber@redhat.com>2015-11-04 22:34:39 -0500
commitf8618fc13af95613de5f022dd1855af7309c7d7c (patch)
tree750b52e73d0a038ca4230b957181736bd0465b11 /roles/openshift_facts/library
parent9dff4e68bf1e40fac6b8e957f06a06b420a0e887 (diff)
downloadopenshift-f8618fc13af95613de5f022dd1855af7309c7d7c.tar.gz
openshift-f8618fc13af95613de5f022dd1855af7309c7d7c.tar.bz2
openshift-f8618fc13af95613de5f022dd1855af7309c7d7c.tar.xz
openshift-f8618fc13af95613de5f022dd1855af7309c7d7c.zip
Bug 1277592 - SDN MTU has hardcoded default
- Attempt to detect the MTU of the interface associated with the node IP and set the default for sdn_mtu accordingly. The value can still be overriden by users and if detection fails the previous default of 1450 is still used.
Diffstat (limited to 'roles/openshift_facts/library')
-rwxr-xr-xroles/openshift_facts/library/openshift_facts.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py
index 163e67f62..19857cfd2 100755
--- a/roles/openshift_facts/library/openshift_facts.py
+++ b/roles/openshift_facts/library/openshift_facts.py
@@ -583,11 +583,12 @@ def set_deployment_facts_if_unset(facts):
return facts
-def set_sdn_facts_if_unset(facts):
+def set_sdn_facts_if_unset(facts, system_facts):
""" Set sdn facts if not already present in facts dict
Args:
facts (dict): existing facts
+ system_facts (dict): ansible_facts
Returns:
dict: the facts dict updated with the generated sdn facts if they
were not already present
@@ -606,9 +607,18 @@ def set_sdn_facts_if_unset(facts):
if 'sdn_host_subnet_length' not in facts['master']:
facts['master']['sdn_host_subnet_length'] = '8'
- if 'node' in facts:
- if 'sdn_mtu' not in facts['node']:
- facts['node']['sdn_mtu'] = '1450'
+ if 'node' in facts and 'sdn_mtu' not in facts['node']:
+ node_ip = facts['common']['ip']
+
+ # default MTU if interface MTU cannot be detected
+ facts['node']['sdn_mtu'] = '1450'
+
+ for val in system_facts.itervalues():
+ if isinstance(val, dict) and 'mtu' in val:
+ mtu = val['mtu']
+
+ if 'ipv4' in val and val['ipv4'].get('address') == node_ip:
+ facts['node']['sdn_mtu'] = str(mtu - 50)
return facts
@@ -879,7 +889,7 @@ class OpenShiftFacts(object):
facts = set_master_selectors(facts)
facts = set_metrics_facts_if_unset(facts)
facts = set_identity_providers_if_unset(facts)
- facts = set_sdn_facts_if_unset(facts)
+ facts = set_sdn_facts_if_unset(facts, self.system_facts)
facts = set_deployment_facts_if_unset(facts)
facts = set_aggregate_facts(facts)
return dict(openshift=facts)