Source code for cobbler.modules.installation.pre_log

import time

from cobbler import validate


[docs]def register() -> str: """ This pure python trigger acts as if it were a legacy shell-trigger, but is much faster. The return of this method indicates the trigger type. :return: Always `/var/lib/cobbler/triggers/install/pre/*` """ return "/var/lib/cobbler/triggers/install/pre/*"
[docs]def run(api, args: list) -> int: """ The method runs the trigger, meaning this logs that an installation has started. The list of args should have three elements: - 0: system or profile - 1: the name of the system or profile - 2: the ip or a "?" :param api: This parameter is currently unused. :param args: Already described above. :return: A "0" on success. """ objtype = args[0] name = args[1] ip = args[2] if not validate.validate_obj_type(objtype): return 1 if not api.find_items(objtype, name=name, return_list=False): return 1 if not (ip == "?" or validate.ipv4_address(ip) or validate.ipv6_address(ip)): return 1 # FIXME: use the logger with open("/var/log/cobbler/install.log", "a+") as fd: fd.write("%s\t%s\t%s\tstart\t%s\n" % (objtype, name, ip, time.time())) return 0