#!/usr/bin/env python ########################################################## # Written 3/28/2011 and released under the GNU/GPLv2 ## # (c) Jeff Schroeder (jeffschroeder@computer.org) # # ########################################################## # # # # # cobbler-puppet-ext - Used in place of cobbler 2.0.x's # # # cobbler-ext-nodes but works with # # # cobbler 2.1 and 2.0.x # # # # # ##########################################################: # To use with puppet, in the puppetmaster's /etc/puppet/puppet.conf: #external_nodes = /path/to/cobbler-puppet-ext #node_terminus = exec import sys import yaml import xmlrpclib try: import json except ImportError: import simplejson as json if len(sys.argv) != 2: raise SystemExit("usage: %s " % sys.argv[0]) hostname = sys.argv[1] cobbler_url = "http://localhost/cobbler_api" server = xmlrpclib.ServerProxy(cobbler_url) try: info = server.get_system_as_rendered(hostname) except xmlrpclib.Fault: # For cobbler 2.0.x compatibility info = server.get_system_for_koan(hostname) mgmt_classes = yaml.dump(info.get("mgmt_classes", [])).rstrip() parameters = yaml.dump(info.get("mgmt_parameters", [])).rstrip() print """ classes: %s parameters: %s """.lstrip() % (mgmt_classes, parameters)