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
    """

    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 itervalues(system_facts):
            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
Exemplo n.º 2
0
 def cleanup(self):
     # close active persistent connections
     for sock in itervalues(self._active_connections):
         conn = Connection(sock)
         conn.reset()
     self._final_q.put(_sentinel)
     self._results_thread.join()
Exemplo n.º 3
0
 def cleanup(self):
     # close active persistent connections
     for sock in itervalues(self._active_connections):
         try:
             conn = Connection(sock)
             conn.reset()
         except ConnectionError as e:
             # most likely socket is already closed
             display.debug("got an error while closing persistent connection: %s" % e)
     self._final_q.put(_sentinel)
     self._results_thread.join()
Exemplo n.º 4
0
 def wrapper(cls):
     _provider_lock.acquire()
     try:
         if network_os not in _registered_providers:
             _registered_providers[network_os] = {}
         for ct in cls.supported_connections:
             if ct not in _registered_providers[network_os]:
                 _registered_providers[network_os][ct] = {}
         for item in to_list(module_name):
             for entry in itervalues(_registered_providers[network_os]):
                 entry[item] = cls
     finally:
         _provider_lock.release()
     return cls