Beispiel #1
0
    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")
Beispiel #2
0
    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_, ''))
Beispiel #4
0
    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())
Beispiel #5
0
    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)
Beispiel #6
0
 def __init__(self, mp, name='', tmp_input_dir=''):
     PackageApiGet.__init__(self, mp, name)
     self.tmp_input_dir = tmp_input_dir
     self.config = P2PServerCP()