%PDF- %PDF-
Direktori : /proc/thread-self/root/lib/python2.7/site-packages/salt/grains/ |
Current File : //proc/thread-self/root/lib/python2.7/site-packages/salt/grains/junos.py |
# -*- coding: utf-8 -*- ''' Grains for junos. NOTE this is a little complicated--junos can only be accessed via salt-proxy-minion.Thus, some grains make sense to get them from the minion (PYTHONPATH), but others don't (ip_interfaces) ''' # Import Python libs from __future__ import absolute_import, print_function, unicode_literals import logging # Import Salt libs from salt.ext import six __proxyenabled__ = ['junos'] __virtualname__ = 'junos' # Get looging started log = logging.getLogger(__name__) def __virtual__(): if 'proxy' not in __opts__: return False else: return __virtualname__ def _remove_complex_types(dictionary): ''' Linode-python is now returning some complex types that are not serializable by msgpack. Kill those. ''' for k, v in six.iteritems(dictionary): if isinstance(v, dict): dictionary[k] = _remove_complex_types(v) elif hasattr(v, 'to_eng_string'): dictionary[k] = v.to_eng_string() return dictionary def defaults(): return {'os': 'proxy', 'kernel': 'unknown', 'osrelease': 'proxy'} def facts(proxy=None): if proxy is None or proxy['junos.initialized']() is False: return {} return {'junos_facts': proxy['junos.get_serialized_facts']()} def os_family(): return {'os_family': 'junos'}