def getBootParams(self, address): if not self.enabled: return None proxy = JSONServiceProxy(self.proxy_url, mode='GET') status= "localboot" kernel = "localboot" append = "" product= "" client_id = proxy.getClientIdByMac(address) if not client_id: return None # Find netboot product with actionRequest for product in proxy.getNetBootProductStates_hash(client_id)[client_id]: if 'actionRequest' in product and not product['actionRequest'] in ['', 'undefined', 'none']: status = "install" product = "product=%s" % product['productId'] break # Installation requested if status == "install": params = [] # append short hostname if self.force_hostname: params.append("hn=%s" % client_id.split('.', 1)[0]) # append domain if self.force_domain: params.append("dn=%s" % client_id.split('.', 1)[1]) # Set product params.append(product) # Load pc key pc_key = proxy.getOpsiHostKey(client_id) if pc_key: params.append("pckey=%s" % pc_key) # Load depot server for this client depot_id = proxy.getDepotId(client_id) if depot_id: params.append("service=%s" % depot_id) # Set language params.append("lang=%s" % self.lang) # Set PXE parameters kernel = "opsi-install" append = " ".join([self.append] + params) return self.make_pxe_entry(kernel, append, label="OPSI boot - powered by FTS")
def __init__(self): super(ClacksBoot, self).__init__() proxy_url = self.config.get('clacks.proxy') if not proxy_url: syslog.syslog(syslog.LOG_ERR, "no clacks.proxy defined - disabling module") return if proxy_url.startswith('amqp'): if not has_amqp: syslog.syslog( syslog.LOG_ERR, "AMQP is configured, but there's no clacks.common available - disabling module" ) return self.proxy = AMQPServiceProxy(proxy_url) else: self.proxy = JSONServiceProxy(proxy_url) self.enabled = True