Beispiel #1
0
    def __init__(self, **kwargs):
        ConfigDataBackend.__init__(self, **kwargs)

        self._name = 'opsipxeconfd'
        self._port = u'/var/run/opsipxeconfd/opsipxeconfd.socket'
        self._timeout = 10
        self._depotId = forceHostId(getfqdn())
        self._opsiHostKey = None
        self._depotConnections = {}
        self._updateThreads = {}
        self._updateThreadsLock = threading.Lock()
        self._parseArguments(kwargs)
Beispiel #2
0
    def __init__(self, **kwargs):
        self._name = 'dhcpd'

        ConfigDataBackend.__init__(self, **kwargs)

        self._dhcpdConfigFile = System.Posix.locateDHCPDConfig(
            u'/etc/dhcp3/dhcpd.conf')
        self._reloadConfigCommand = '/usr/bin/sudo {command}'.format(
            command=System.Posix.getDHCPDRestartCommand(
                default='/etc/init.d/dhcp3-server restart'))

        self._fixedAddressFormat = u'IP'
        self._defaultClientParameters = {
            'next-server': socket.gethostbyname(getfqdn()),
            'filename': u'linux/pxelinux.0'
        }
        self._dhcpdOnDepot = False

        # Parse arguments
        for (option, value) in kwargs.items():
            option = option.lower()
            if option == 'dhcpdconfigfile':
                self._dhcpdConfigFile = value
            elif option == 'reloadconfigcommand':
                self._reloadConfigCommand = value
            elif option == 'defaultclientparameters':
                self._defaultClientParameters = forceDict(value)
            elif option == 'fixedaddressformat':
                if value not in (u'IP', u'FQDN'):
                    raise BackendBadValueError(
                        u"Bad value '%s' for fixedAddressFormat, possible values are %s"
                        % (value, u', '.join(('IP', 'FQDN'))))
                self._fixedAddressFormat = value
            elif option == 'dhcpdondepot':
                self._dhcpdOnDepot = forceBool(value)

        if self._defaultClientParameters.get(
                'next-server'
        ) and self._defaultClientParameters['next-server'].startswith(u'127'):
            raise BackendBadValueError(
                u"Refusing to use ip address '%s' as default next-server" %
                self._defaultClientParameters['next-server'])

        self._dhcpdConfFile = DHCPDConfFile(self._dhcpdConfigFile)
        self._reloadEvent = threading.Event()
        self._reloadEvent.set()
        self._reloadLock = threading.Lock()
        self._reloadThread = None
        self._depotId = forceHostId(getfqdn())
        self._opsiHostKey = None
        self._depotConnections = {}
Beispiel #3
0
    def __init__(self, **kwargs):  # pylint: disable=super-init-not-called
        ConfigDataBackend.__init__(self, **kwargs)

        self._workBackend = None
        self._masterBackend = None
        self._snapshotBackend = None
        self._clientId = None
        self._depotId = None
        self._backendChangeListeners = []

        for (option, value) in kwargs.items():
            option = option.lower()
            if option == 'workbackend':
                self._workBackend = value
            elif option == 'snapshotbackend':
                self._snapshotBackend = value
            elif option == 'masterbackend':
                self._masterBackend = value
            elif option == 'clientid':
                self._clientId = forceHostId(value)
            elif option == 'depotid':
                self._depotId = forceHostId(value)
            elif option == 'backendinfo':
                self._backendInfo = value

        if not self._workBackend:
            raise BackendConfigurationError("Work backend undefined")
        if not self._snapshotBackend:
            raise BackendConfigurationError("Snapshot backend undefined")
        if not self._clientId:
            raise BackendConfigurationError("Client id undefined")
        if not self._depotId:
            raise BackendConfigurationError("Depot id undefined")

        self._workBackend._setContext(self)
        self._backend = self._workBackend
        self._createInstanceMethods()