def __init__(self, configFilePath='/usr/local/hen/etc/configs/testbed.conf'): """\brief Initializes the class and the logger \param configFilePath (\c string) The path to the config file for the testbed. Default: /usr/local/hen/etc/configs/config """ self.__configFile = ConfigParser.ConfigParser() self.__configFile.read(configFilePath) self.__henRoot = self.__configFile.get('DEFAULT', 'ROOT') self.__pythonBin = self.__configFile.get('MAIN', 'PYTHON_BIN') self.__henRoot = self.__configFile.get('MAIN', 'ROOT') self.__henBinPath = self.__configFile.get('MAIN', 'BIN_PATH') self.__henEtcPath = self.__configFile.get('MAIN', 'ETC_PATH') self.__henVarPath = self.__configFile.get('MAIN', 'VAR_PATH') self.__henExperimentalBaseAddress = self.__configFile.get( 'MAIN', 'EXPERIMENTAL_BASE_ADDRESS') self.__henInfrastructureBaseAddress = self.__configFile.get( 'MAIN', 'INFRASTRUCTURE_BASE_ADDRESS') self.__henExportPath = self.__configFile.get('MAIN', 'EXPORT_PATH') self.__henLogPath = self.__configFile.get('MAIN', 'LOG_PATH') self.__henPhysicalTopology = self.__configFile.get( 'MAIN', 'PHYSICAL_TOPOLOGY') self.__henExperimentTopology = self.__configFile.get( 'MAIN', 'EXPERIMENTAL_TOPOLOGY') self.__userLogFile = "%s%s-%s-%s" % (self.__henLogPath, "/log", auxiliary.hen.getUserName(), auxiliary.hen.getTime()) self.__henManager = self.__configFile.get('MAIN', 'MANAGER') self.__physicalPath = self.__configFile.get('MAIN', 'PHYSICAL_PATH') self.__testbedGroup = self.__configFile.get('NETBOOT', 'GROUP') self.__experimentPath = self.__configFile.get('MAIN', 'EXPERIMENTAL_PATH') self.__configFilesPath = self.__configFile.get('MAIN', 'CONF_PATH') self.__hmDaemonConfig = self.__configFile.get( 'CONFIG_FILES', 'HM_DAEMON_CONFIG_FILENAME') self.__powerDaemonConfig = self.__configFile.get( 'CONFIG_FILES', 'POWER_DAEMON_CONFIG_FILENAME') self.__switchDaemonConfig = self.__configFile.get( 'CONFIG_FILES', 'SWITCH_DAEMON_CONFIG_FILENAME') self.__consoleDaemonConfig = self.__configFile.get( 'CONFIG_FILES', 'CONSOLE_DAEMON_CONFIG_FILENAME') self.__moteDaemonConfig = self.__configFile.get( 'CONFIG_FILES', 'MOTE_DAEMON_CONFIG_FILENAME') self.__monitorDaemonConfig = self.__configFile.get( 'CONFIG_FILES', 'MONITOR_DAEMON_CONFIG_FILENAME') self.__dhcpServerControlScript = self.__configFile.get( 'DHCP', 'SERVER_CONTROL_SCRIPT') self.__namedConfPath = self.__configFile.get('DNS', 'NAMED_CONF_PATH') self.__running = None self.__log = None self.__configNetboot = ConfigNetboot(NetbootInfo(self.__configFile.get('NETBOOT', 'AUTODETECT_LOADER'), \ self.__configFile.get('NETBOOT', 'AUTODETECT_FILESYSTEM'), \ self.__configFile.get('NETBOOT', 'AUTODETECT_KERNEL')), \ self.__testbedGroup, \ self.__configFile.get('NETBOOT', 'NFS_ROOT'), \ self.__configFile.get('NETBOOT', 'SERIAL_SPEED'), \ self.__configFile.get('NETBOOT', 'PXE_LINUX_DIRECTORY'), \ self.__configFile.get('NETBOOT', 'PXE_LINUX_FILE'), \ self.__configFile.get('NETBOOT', 'STARTUP_FILE'), \ self.__configFile.get('NETBOOT', 'INTERFACE_CONFIG_SCRIPT'), \ self.__configFile.get('NETBOOT', 'CONSOLE'), \ self.__henExportPath, \ self.__pythonBin) self.initLogging() self.__parser = HenParser(self.__henPhysicalTopology, self.__henExperimentTopology, \ self.__log, self.__physicalPath, self.__experimentPath, self.__configFile.get('MAIN', 'CURRENT_EXPERIMENTS'), self.__testbedGroup)
def __init__(self, configFilePath='/usr/local/hen/etc/configs/config'): Daemon.__init__(self) self.__version = "System Daemon v0.2 (dumb)" # Initialize testbed config file self.__configFilePath = configFilePath self.__configFile = ConfigParser.ConfigParser() self.__configFile.read(configFilePath) # Initialize parser self.__henPhysicalTopology = self.__configFile.get( 'MAIN', 'PHYSICAL_TOPOLOGY') self.__henLogPath = self.__configFile.get('MAIN', 'LOG_PATH') self.__parser = HenParser(self.__henPhysicalTopology, \ None, \ None, \ self.__henLogPath, \ None, None, None, \ None) # Initialize DNS writer self.__testbedGroup = self.__configFile.get('NETBOOT', 'GROUP') configInfo = DNSConfigInfo(self.__configFile.get('DNS', 'TTL'), \ self.__configFile.get('DNS', 'CONTACT'), \ self.__configFile.get('DNS', 'REFRESH_TIME'), \ self.__configFile.get('DNS', 'RETRY_TIME'), \ self.__configFile.get('DNS', 'EXPIRY_TIME'), \ self.__configFile.get('DNS', 'MINIMUM_TIME'), \ self.__configFile.get('MAIN', 'EXPERIMENTAL_BASE_ADDRESS'), \ self.__configFile.get('DNS', 'EXPERIMENTAL_DOMAIN_NAME'), \ self.__configFile.get('DNS', 'EXPERIMENTAL_SERVER_ADDRESS'), \ self.__configFile.get('MAIN', 'INFRASTRUCTURE_BASE_ADDRESS'), \ self.__configFile.get('DNS', 'INFRASTRUCTURE_DOMAIN_NAME'), \ self.__configFile.get('DNS', 'INFRASTRUCTURE_SERVER_ADDRESS'), \ self.__configFile.get('MAIN', 'VIRTUAL_BASE_ADDRESS'), \ self.__configFile.get('DNS', 'VIRTUAL_DOMAIN_NAME'), \ self.__configFile.get('DNS', 'VIRTUAL_SERVER_ADDRESS')) self.__dnsWriter = DNSConfigWriter(configInfo, \ self.__configFile.get('DNS', 'CONFIG_FILES_PATH'), \ self.__testbedGroup, self.__parser) # Initialize DHCP writer expSubnet = DHCPConfigSubnetInfo(self.__configFile.get('DHCP', 'EXPERIMENTAL_NET'), \ self.__configFile.get('DHCP', 'EXPERIMENTAL_NET_NETMASK'), \ self.__configFile.get('DHCP', 'EXPERIMENTAL_USE_HOST_DECL_NAMES'), \ self.__configFile.get('DHCP', 'EXPERIMENTAL_NET_NETMASK'), \ self.__configFile.get('DHCP', 'EXPERIMENTAL_NET_BROADCAST_ADDRESS'), \ self.__configFile.get('DHCP', 'EXPERIMENTAL_DOMAIN_NAME'), \ self.__configFile.get('DHCP', 'EXPERIMENTAL_ROUTERS'), \ self.__configFile.get('DHCP', 'EXPERIMENTAL_NEXT_SERVER'), \ "experimental") infraSubnet = DHCPConfigSubnetInfo(self.__configFile.get('DHCP', 'INFRASTRUCTURE_NET'), \ self.__configFile.get('DHCP', 'INFRASTRUCTURE_NET_NETMASK'), \ self.__configFile.get('DHCP', 'INFRASTRUCTURE_USE_HOST_DECL_NAMES'), \ self.__configFile.get('DHCP', 'INFRASTRUCTURE_NET_NETMASK'), \ self.__configFile.get('DHCP', 'INFRASTRUCTURE_NET_BROADCAST_ADDRESS'), \ self.__configFile.get('DHCP', 'INFRASTRUCTURE_DOMAIN_NAME'), \ self.__configFile.get('DHCP', 'INFRASTRUCTURE_ROUTERS'), \ self.__configFile.get('DHCP', 'INFRASTRUCTURE_NEXT_SERVER'), \ "infrastructure") virtualSubnet = DHCPConfigSubnetInfo(self.__configFile.get('DHCP', 'VIRTUAL_NET'), \ self.__configFile.get('DHCP', 'VIRTUAL_NET_NETMASK'), \ self.__configFile.get('DHCP', 'VIRTUAL_USE_HOST_DECL_NAMES'), \ self.__configFile.get('DHCP', 'VIRTUAL_NET_NETMASK'), \ self.__configFile.get('DHCP', 'VIRTUAL_NET_BROADCAST_ADDRESS'), \ self.__configFile.get('DHCP', 'VIRTUAL_DOMAIN_NAME'), \ self.__configFile.get('DHCP', 'VIRTUAL_ROUTERS'), \ self.__configFile.get('DHCP', 'VIRTUAL_NEXT_SERVER'), \ "virtual") subnetList = [] subnetList.append(expSubnet) subnetList.append(infraSubnet) subnetList.append(virtualSubnet) configInfo = DHCPConfigInfo(self.__configFile.get('DHCP', 'DOMAIN_NAME'), \ self.__configFile.get('DHCP', 'DOMAIN_NAME_SERVERS'), \ self.__configFile.get('DHCP', 'DEFAULT_LEASE_TIME'), \ self.__configFile.get('DHCP', 'MAXIMUM_LEASE_TIME'), \ self.__configFile.get('DHCP', 'AUTHORITATIVE'), \ self.__configFile.get('DHCP', 'DDNS_UPDATE_STYLE'), \ self.__configFile.get('DHCP', 'LOG_FACILITY'), \ subnetList) self.__henExportPath = self.__configFile.get('MAIN', 'EXPORT_PATH') self.__dhcpWriter = DHCPConfigWriter(configInfo, self.__configFile.get('DHCP', 'CONFIG_FILE_PATH'), \ self.__henExportPath, self.__testbedGroup, self.__parser) # Export methods self.__registerMethods()