Source code for dhcpkit.ipv6.server.extensions.static_assignments.config

"""
Configuration elements for the static assignment handlers
"""
import logging

from ZConfig.datatypes import existing_file
from dhcpkit.ipv6.server.extensions.static_assignments.csv import CSVStaticAssignmentHandler
from dhcpkit.ipv6.server.extensions.static_assignments.sqlite import SqliteStaticAssignmentHandler
from dhcpkit.ipv6.server.handlers import HandlerFactory

logger = logging.getLogger(__name__)


[docs]class CSVStaticAssignmentHandlerFactory(HandlerFactory): """ Factory for a handler that reads assignments from a CSV file """ name_datatype = staticmethod(existing_file)
[docs] def create(self) -> CSVStaticAssignmentHandler: """ Create a handler of this class based on the configuration in the config section. :return: A handler object """ # Get the lifetimes address_preferred_lifetime = self.address_preferred_lifetime address_valid_lifetime = self.address_valid_lifetime prefix_preferred_lifetime = self.prefix_preferred_lifetime prefix_valid_lifetime = self.prefix_valid_lifetime return CSVStaticAssignmentHandler( self.name, address_preferred_lifetime, address_valid_lifetime, prefix_preferred_lifetime, prefix_valid_lifetime )
[docs]class SqliteStaticAssignmentHandlerFactory(HandlerFactory): """ Factory for a handler that reads assignments from a SQLite database """ name_datatype = staticmethod(existing_file)
[docs] def create(self) -> SqliteStaticAssignmentHandler: """ Create a handler of this class based on the configuration in the config section. :return: A handler object """ # Get the lifetimes address_preferred_lifetime = self.address_preferred_lifetime address_valid_lifetime = self.address_valid_lifetime prefix_preferred_lifetime = self.prefix_preferred_lifetime prefix_valid_lifetime = self.prefix_valid_lifetime return SqliteStaticAssignmentHandler( self.name, address_preferred_lifetime, address_valid_lifetime, prefix_preferred_lifetime, prefix_valid_lifetime )