def load_modules(module_path=mod_path, blacklist=None): logger = clogger.Logger() filenames = glob.glob("%s/*.py" % module_path) filenames += glob.glob("%s/*.pyc" % module_path) filenames += glob.glob("%s/*.pyo" % module_path) # Allow recursive modules filenames += glob.glob("%s/**/*.py" % module_path) filenames += glob.glob("%s/**/*.pyc" % module_path) filenames += glob.glob("%s/**/*.pyo" % module_path) for fn in filenames: basename = fn.replace(mod_path, '') modname = "" if basename.__contains__("__pycache__") or basename.__contains__("__init__.py"): continue if basename[0] == "/": basename = basename[1:] basename = basename.replace("/", ".") if basename[-3:] == ".py": modname = basename[:-3] elif basename[-4:] in [".pyc", ".pyo"]: modname = basename[:-4] __import_module(mod_path, modname, logger) return MODULE_CACHE, MODULES_BY_CATEGORY
def __init__(self, collection_mgr, logger=None): """ Constructor """ # self.collection_mgr = collection_mgr # self.api = collection_mgr.api # self.settings = collection_mgr.settings() self.hardlink = None if logger is None: logger = clogger.Logger() self.logger = logger self.family = utils.get_family() # Getting the path to hardlink for possible_location in ["/usr/bin/hardlink", "/usr/sbin/hardlink"]: if os.path.exists(possible_location): self.hardlink = possible_location if not self.hardlink: utils.die(self.logger, "please install 'hardlink' to use this feature") # Setting the args for hardlink accodring to the distribution if self.family == "debian": self.hardlink_args = "-f -p -o -t -v /var/www/cobbler/distro_mirror /var/www/cobbler/repo_mirror" elif self.family == "suse": self.hardlink_args = "-f -v /var/www/cobbler/distro_mirror /var/www/cobbler/repo_mirror" else: self.hardlink_args = "-c -v /var/www/cobbler/distro_mirror /var/www/cobbler/repo_mirror" self.hardlink_cmd = "%s %s" % (self.hardlink, self.hardlink_args)
def __init__(self, collection_mgr, verbose=True, dhcp=None, dns=None, logger=None, tftpd=None): """ Constructor """ self.logger = logger if logger is None: self.logger = clogger.Logger() self.verbose = verbose self.collection_mgr = collection_mgr self.api = collection_mgr.api self.distros = collection_mgr.distros() self.profiles = collection_mgr.profiles() self.systems = collection_mgr.systems() self.settings = collection_mgr.settings() self.repos = collection_mgr.repos() self.templar = templar.Templar(collection_mgr, self.logger) self.tftpgen = tftpgen.TFTPGen(collection_mgr, self.logger) self.dns = dns self.dhcp = dhcp self.tftpd = tftpd self.bootloc = self.settings.tftpboot_location self.tftpgen.verbose = verbose self.dns.verbose = verbose self.dhcp.verbose = verbose self.pxelinux_dir = os.path.join(self.bootloc, "pxelinux.cfg") self.grub_dir = os.path.join(self.bootloc, "grub") self.images_dir = os.path.join(self.bootloc, "images") self.yaboot_bin_dir = os.path.join(self.bootloc, "ppc") self.yaboot_cfg_dir = os.path.join(self.bootloc, "etc") self.rendered_dir = os.path.join(self.settings.webdir, "rendered")
def run(api, args, logger): if not logger: logger = clogger.Logger() logger.info("sync_post_tftp_proxies started") settings = api.settings() # test if proxies are configured: try: p = settings.proxies except: # not configured - so we return return 0 tftpbootdir = "/srv/tftpboot" syncstart = os.stat(tftpbootdir).st_mtime find_delete_from_proxies(tftpbootdir, settings, logger=logger) for root, dirs, files in os.walk(tftpbootdir): for fname in files: path = os.path.join(root, fname) if '.link_cache' in path: continue check_push(path, tftpbootdir, settings, logger=logger) return 0
def __init__(self, collection_mgr, tries=1, nofail=False, logger=None): """ Constructor :param collection_mgr: The object which holds all information in Cobbler. :param tries: The number of tries before the operation fails. :param nofail: This sets the strictness of the reposync result handling. :param logger: The logger to audit all actions with. """ self.verbose = True self.api = collection_mgr.api self.collection_mgr = collection_mgr self.distros = collection_mgr.distros() self.profiles = collection_mgr.profiles() self.systems = collection_mgr.systems() self.settings = collection_mgr.settings() self.repos = collection_mgr.repos() self.rflags = self.settings.reposync_flags self.tries = tries self.nofail = nofail self.logger = logger self.dlmgr = download_manager.DownloadManager(self.collection_mgr, self.logger) if logger is None: self.logger = clogger.Logger() self.logger.info("hello, reposync")
def __init__(self, hostname): """Constructor. Requires a Cobbler API handle.""" self.hostname = hostname self.handle = capi.CobblerAPI() self.system = self.handle.find_system(hostname=self.hostname) self.host_vars = self.get_cobbler_resource('autoinstall_meta') self.logger = clogger.Logger() self.mgmtclasses = self.get_cobbler_resource('mgmt_classes')
def __init__(self, config, logger): self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.config = config self.systems = config.systems() self.templar = templar.Templar(config)
def __init__(self, collection_mgr, logger=None): """ Constructor """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger): """ Constructor """ self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.collection_mgr = collection_mgr self.templar = templar.Templar(collection_mgr)
def __init__(self, collection_mgr, system, api, logger=None): """ Log library constructor requires a Cobbler system object. """ self.system = system self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.api = api if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger): """ Constructor """ self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.collection_mgr = collection_mgr self.templar = templar.Templar(collection_mgr) self.settings_file = "/etc/xinetd.d/tftp"
def __init__(self, collection_mgr, mode, logger=None): """ Constructor """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.ip_data = {} self.mode = mode if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger=None): """ Constructor :param collection_mgr: The main collection manager instance which is used by the current running server. :param logger: The logger object which logs to the desired target. """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger=None): """ Constructor """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.api = collection_mgr.api self.remote = None self.uri = None if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger=None): """ Constructor :param collection_mgr: The collection manager which holds all information. :param logger: The logger to audit all actions with. """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger): """ Constructor :param collection_mgr: The instance who holds all the information from Cobbler. :param logger: The logger to audit all actions with. """ self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.collection_mgr = collection_mgr self.bootloc = collection_mgr.settings().tftpboot_location self.templar = templar.Templar(collection_mgr)
def __init__(self, config, logger): """ This class can manage a New-DJBDNS server. :param config: Currently an usused parameter. :param logger: The logger to audit the actions with. """ self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.config = config self.systems = config.systems() self.templar = templar.Templar(config)
def __init__(self, collection_mgr, logger): """ Constructor """ self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.collection_mgr = collection_mgr self.templar = templar.Templar(collection_mgr) self.settings_file = "/etc/xinetd.d/tftp" self.tftpgen = tftpgen.TFTPGen(collection_mgr, self.logger) self.systems = collection_mgr.systems() self.bootloc = utils.tftpboot_location()
def __init__(self, collection_mgr, logger=None): """ Constructor :param collection_mgr: The collection manager which holds all information available in Cobbler. :param logger: The logger to audit all action with. """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.api = collection_mgr.api self.remote = None self.uri = None if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, api, collection_mgr, logger=None): """ Constructor @param CobblerAPI api Cobbler API @param CollectionManager collection_mgr collection manager @param Logger logger logger """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.api = api if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger=None): """ Constructor for the autoinstall manager. :param collection_mgr: The collection manager which has all objects. :param logger: The logger object which logs to the desired target. If this argument is None then a default Cobbler logger is created. """ self.collection_mgr = collection_mgr self.snippets_base_dir = self.collection_mgr.settings().autoinstall_snippets_dir self.templates_base_dir = self.collection_mgr.settings().autoinstall_templates_dir self.autoinstallgen = autoinstallgen.AutoInstallationGen(self.collection_mgr) if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, mode, logger=None): """ Constructor :param collection_mgr: The collection manager which holds all information. :param mode: This describes how Cobbler should report. Currently there only the option ``text`` can be set explicitly. :param logger: The logger to audit all actions with. """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.ip_data = {} self.mode = mode if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger): """ Constructor :param collection_mgr: The collection manager to resolve all information with. :param logger: The logger to audit all actions with. """ self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.collection_mgr = collection_mgr self.templar = templar.Templar(collection_mgr) self.tftpgen = tftpgen.TFTPGen(collection_mgr, self.logger) self.systems = collection_mgr.systems() self.bootloc = collection_mgr.settings().tftpboot_location
def __init__(self, collection_mgr, logger=None): """ Constructor """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.api = collection_mgr.api self.report_type = None self.report_what = None self.report_name = None self.report_fields = None self.report_noheaders = None self.array_re = re.compile(r'([^[]+)\[([^]]+)\]') if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, verbose=True, dhcp=None, dns=None, logger=None, tftpd=None): """ Constructor :param collection_mgr: The collection manager instance which holds all information about cobbler. :param verbose: Whether to log the actions performed in this module verbose or not. :param dhcp: The DHCP manager which can update the DHCP config. :param dns: The DNS manager which can update the DNS config. :param logger: The logger to audit all action with. :param tftpd: The TFTP manager which can update the TFTP config. """ self.logger = logger if logger is None: self.logger = clogger.Logger() self.verbose = verbose self.collection_mgr = collection_mgr self.api = collection_mgr.api self.distros = collection_mgr.distros() self.profiles = collection_mgr.profiles() self.systems = collection_mgr.systems() self.settings = collection_mgr.settings() self.repos = collection_mgr.repos() self.templar = templar.Templar(collection_mgr, self.logger) self.tftpgen = tftpgen.TFTPGen(collection_mgr, self.logger) self.dns = dns self.dhcp = dhcp self.tftpd = tftpd self.bootloc = self.settings.tftpboot_location self.tftpgen.verbose = verbose self.dns.verbose = verbose self.dhcp.verbose = verbose self.pxelinux_dir = os.path.join(self.bootloc, "pxelinux.cfg") self.grub_dir = os.path.join(self.bootloc, "grub") self.images_dir = os.path.join(self.bootloc, "images") self.yaboot_bin_dir = os.path.join(self.bootloc, "ppc") self.yaboot_cfg_dir = os.path.join(self.bootloc, "etc") self.ipxe_dir = os.path.join(self.bootloc, "ipxe") self.rendered_dir = os.path.join(self.settings.webdir, "rendered")
def __init__(self, collection_mgr, logger): """ Constructor """ self.logger = logger if self.logger is None: self.logger = clogger.Logger() self.collection_mgr = collection_mgr self.api = collection_mgr.api self.distros = collection_mgr.distros() self.profiles = collection_mgr.profiles() self.systems = collection_mgr.systems() self.settings = collection_mgr.settings() self.repos = collection_mgr.repos() self.templar = templar.Templar(collection_mgr) self.settings_file = utils.namedconf_location(self.api) self.zonefile_base = utils.zonefile_base(self.api)
def __init__(self, api, collection_mgr, logger=None): """ Constructor :param api: Cobbler API :type api: CobblerAPI :param collection_mgr: collection manager :type collection_mgr: CollectionManager :param logger: A logger object to audit the actions of the object instance. :type logger: Logger """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.api = api if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger=None): """ Constructor @param CollectionManager collection_mgr collection manager @param Logger logger logger """ self.collection_mgr = collection_mgr self.snippets_base_dir = self.collection_mgr.settings( ).autoinstall_snippets_dir self.templates_base_dir = self.collection_mgr.settings( ).autoinstall_templates_dir self.autoinstallgen = autoinstallgen.AutoInstallationGen( self.collection_mgr) if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, logger=None): """ Constructor :param collection_mgr: The collection manager to hold all information in Cobbler available. :param logger: The logger to audit all action with. """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.api = collection_mgr.api self.report_type = None self.report_what = None self.report_name = None self.report_fields = None self.report_noheaders = None self.array_re = re.compile(r'([^[]+)\[([^]]+)\]') if logger is None: logger = clogger.Logger() self.logger = logger
def __init__(self, collection_mgr, verbose=False, logger=None): """ Constructor """ self.verbose = verbose self.collection_mgr = collection_mgr self.distros = collection_mgr.distros() self.profiles = collection_mgr.profiles() self.systems = collection_mgr.systems() self.images = collection_mgr.images() self.settings = collection_mgr.settings() self.repos = collection_mgr.repos() if logger is None: logger = clogger.Logger() self.logger = logger self.tftpd = module_loader.get_module_from_file( "tftpd", "module", "in_tftpd").get_manager(collection_mgr, logger) self.sync = collection_mgr.api.get_sync(verbose, logger=self.logger) self.sync.make_tftpboot()