def clientAuth(self, mac, password): """ Authentification on PXE console. @param mac: MAC address @type mac: str @param password: prompted password on PXE @type password: str @return: "ok" if correct, otherwise "ko" @rtype: str """ def __sha1_crypt_password(password): if not password: return '' import hashlib passphrase = 'DzmCpUs3' return hashlib.sha1(password + passphrase).hexdigest() self.api.logClientAction(mac, LOG_LEVEL.INFO, LOG_STATE.IDENTITY, "menu identification request") if __sha1_crypt_password(password) == P2PServerCP().pxe_password: logging.getLogger().debug("PXE Proxy: client authentification OK") return succeed('ok') else: logging.getLogger().warn( "PXE Proxy: client authentification FAILED") return succeed("ko")
def xmlrpc_putPackageDetail(self, package, need_assign=True): self.logger.debug("xmlrpc_putPackageDetail") pa = Package() pa.fromH(package) if pa.id in Common().dontgivepkgs and len( Common().dontgivepkgs[pa.id]) > 0: return (False, "This package is curently locked") ret = Common().editPackage(package['id'], pa, need_assign, self.mp) if not ret: return False # Create conf file in package ret = Common().writePackageTo(package['id'], self.mp) ret, confdir = ret if not ret: return False ret = Common().associatePackage2mp(package['id'], self.mp) if not ret: return False if not P2PServerCP().package_detect_activate: del Common().inEdition[package['id']] # Force packavge detection Common().detectNewPackages() Common()._createMD5File(pa.root, force_compute=True) # Reload all package info #desc = Common().desc #Common().init(Common().config) #Common().desc = desc return (True, package['id'], confdir, pa.toH())
def SvcDoRun(self): import servicemanager servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_display_name_, '')) from pulse2.package_server.config import P2PServerCP config = P2PServerCP() config.setup(self.inifile) if config.use_iocp_reactor: from twisted.internet import iocpreactor iocpreactor.install() self.CheckForQuit() self.init(config) twisted.internet.reactor.run(installSignalHandlers=0) servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STOPPED, (self._svc_display_name_, ''))
def xmlrpc_putPackageDetail(self, package, need_assign = True): self.logger.debug("xmlrpc_putPackageDetail") pa = Package() pa.fromH(package) if Common().dontgivepkgs.has_key(pa.id) and len(Common().dontgivepkgs[pa.id]) > 0: return (False, "This package is curently locked") ret = Common().editPackage(package['id'], pa, need_assign) if not ret: return False # Create conf.xml file in package ret = Common().writePackageTo(package['id'], self.mp) ret, confdir = ret if not ret: return False ret = Common().associatePackage2mp(package['id'], self.mp) if not ret: return False if not P2PServerCP().package_detect_activate: del Common().inEdition[package['id']] return (True, package['id'], confdir, pa.toH())
def glpi_register(self, mac, hostname, ip_address): """ Computer register sending a minimal inventory @param mac: MAC address @type mac: str @param hostname: hostname of inventoried machine @type hostname: str @param ip_address: machine IP address @type ip_address: str """ logging.getLogger().debug("glpi_register") boot_inv = BootInventory() boot_inv.macaddr_info = mac boot_inv.ipaddr_info = {'ip': ip_address, 'port': 0} # add information network in xml glpi boot_inv.netmask_info = P2PServerCP().public_mask boot_inv.subnet_info = self.subnetreseau(boot_inv.ipaddr_info['ip'], boot_inv.netmask_info) inventory = boot_inv.dumpOCS(hostname, "root") return self.send_inventory(inventory, hostname)
def __init__(self, mp, name='', tmp_input_dir=''): PackageApiGet.__init__(self, mp, name) self.tmp_input_dir = tmp_input_dir self.config = P2PServerCP()