%PDF- %PDF-
Direktori : /proc/thread-self/root/usr/lib/python2.7/site-packages/salt/tops/ |
Current File : //proc/thread-self/root/usr/lib/python2.7/site-packages/salt/tops/cobbler.py |
# -*- coding: utf-8 -*- ''' Cobbler Tops ============ Cobbler Tops is a master tops subsystem used to look up mapping information from Cobbler via its API. The same cobbler.* parameters are used for both the Cobbler tops and Cobbler pillar modules. .. code-block:: yaml master_tops: cobbler: {} cobbler.url: https://example.com/cobbler_api #default is http://localhost/cobbler_api cobbler.user: username # default is no username cobbler.password: password # default is no password Module Documentation ==================== ''' from __future__ import absolute_import, print_function, unicode_literals # Import python libs import logging import salt.ext.six.moves.xmlrpc_client # pylint: disable=E0611 # Set up logging log = logging.getLogger(__name__) __opts__ = {'cobbler.url': 'http://localhost/cobbler_api', 'cobbler.user': None, 'cobbler.password': None } def top(**kwargs): ''' Look up top data in Cobbler for a minion. ''' url = __opts__['cobbler.url'] user = __opts__['cobbler.user'] password = __opts__['cobbler.password'] minion_id = kwargs['opts']['id'] log.info("Querying cobbler for information for %r", minion_id) try: server = salt.ext.six.moves.xmlrpc_client.Server(url, allow_none=True) if user: server.login(user, password) data = server.get_blended_data(None, minion_id) except Exception: log.exception( 'Could not connect to cobbler.' ) return {} return {data['status']: data['mgmt_classes']}