/** * Startup all of the controller's components * @param floodlightModuleLoader */ public void startupComponents(FloodlightModuleLoader floodlightModuleLoader) throws FloodlightModuleException { this.moduleLoaderState = ModuleLoaderState.STARTUP; // Create the table names we use storageSourceService.createTable(CONTROLLER_TABLE_NAME, null); storageSourceService.createTable(CONTROLLER_INTERFACE_TABLE_NAME, null); storageSourceService.createTable(SWITCH_CONFIG_TABLE_NAME, null); storageSourceService.setTablePrimaryKeyName(CONTROLLER_TABLE_NAME, CONTROLLER_ID); storageSourceService.addListener(CONTROLLER_INTERFACE_TABLE_NAME, this); storageSourceService.createTable(FLOW_PRIORITY_TABLE_NAME, null); storageSourceService.setTablePrimaryKeyName(FLOW_PRIORITY_TABLE_NAME, FLOW_COLUMN_PRIMARY_KEY); storageSourceService.addListener(FLOW_PRIORITY_TABLE_NAME, this); readFlowPriorityConfigurationFromStorage(); // // Startup load monitoring if (overload_drop) { this.loadmonitor.startMonitoring(this.threadPoolService.getScheduledExecutor()); } // Add our REST API restApiService.addRestletRoutable(new CoreWebRoutable()); try { this.syncService.registerStore(OFSwitchManager.SWITCH_SYNC_STORE_NAME, Scope.LOCAL); } catch (SyncException e) { throw new FloodlightModuleException("Error while setting up sync service", e); } addInfoProvider("summary", this); }
/** * Startup all of the controller's components * @param floodlightModuleLoader */ @LogMessageDoc(message="Waiting for storage source", explanation="The system database is not yet ready", recommendation="If this message persists, this indicates " + "that the system database has failed to start. " + LogMessageDoc.CHECK_CONTROLLER) public void startupComponents(FloodlightModuleLoader floodlightModuleLoader) throws FloodlightModuleException { this.moduleLoaderState = ModuleLoaderState.STARTUP; // Create the table names we use storageSourceService.createTable(CONTROLLER_TABLE_NAME, null); storageSourceService.createTable(CONTROLLER_INTERFACE_TABLE_NAME, null); storageSourceService.createTable(SWITCH_CONFIG_TABLE_NAME, null); storageSourceService.setTablePrimaryKeyName(CONTROLLER_TABLE_NAME, CONTROLLER_ID); storageSourceService.addListener(CONTROLLER_INTERFACE_TABLE_NAME, this); storageSourceService.createTable(FLOW_PRIORITY_TABLE_NAME, null); storageSourceService.setTablePrimaryKeyName(FLOW_PRIORITY_TABLE_NAME, FLOW_COLUMN_PRIMARY_KEY); storageSourceService.addListener(FLOW_PRIORITY_TABLE_NAME, this); readFlowPriorityConfigurationFromStorage(); // // Startup load monitoring if (overload_drop) { this.loadmonitor.startMonitoring(this.threadPoolService.getScheduledExecutor()); } // Add our REST API restApiService.addRestletRoutable(new CoreWebRoutable()); try { this.syncService.registerStore(OFSwitchManager.SWITCH_SYNC_STORE_NAME, Scope.LOCAL); } catch (SyncException e) { throw new FloodlightModuleException("Error while setting up sync service", e); } addInfoProvider("summary", this); }
/** * Startup all of the controller's components * 启动所有控制器组件 * @param floodlightModuleLoader */ @LogMessageDoc(message="Waiting for storage source", explanation="The system database is not yet ready", recommendation="If this message persists, this indicates " + "that the system database has failed to start. " + LogMessageDoc.CHECK_CONTROLLER) public void startupComponents(FloodlightModuleLoader floodlightModuleLoader) throws FloodlightModuleException { this.moduleLoaderState = ModuleLoaderState.STARTUP; // Create the table names we use storageSourceService.createTable(CONTROLLER_TABLE_NAME, null); storageSourceService.createTable(CONTROLLER_INTERFACE_TABLE_NAME, null); storageSourceService.createTable(SWITCH_CONFIG_TABLE_NAME, null); storageSourceService.setTablePrimaryKeyName(CONTROLLER_TABLE_NAME, CONTROLLER_ID); storageSourceService.addListener(CONTROLLER_INTERFACE_TABLE_NAME, this); storageSourceService.createTable(FLOW_PRIORITY_TABLE_NAME, null); storageSourceService.setTablePrimaryKeyName(FLOW_PRIORITY_TABLE_NAME, FLOW_COLUMN_PRIMARY_KEY); storageSourceService.addListener(FLOW_PRIORITY_TABLE_NAME, this); readFlowPriorityConfigurationFromStorage(); // // Startup load monitoring //启动监视 if (overload_drop) { this.loadmonitor.startMonitoring(this.threadPoolService.getScheduledExecutor()); } // Add our REST API restApiService.addRestletRoutable(new CoreWebRoutable()); try { this.syncService.registerStore(OFSwitchManager.SWITCH_SYNC_STORE_NAME, Scope.LOCAL); } catch (SyncException e) { throw new FloodlightModuleException("Error while setting up sync service", e); } addInfoProvider("summary", this); }
/** * Startup all of the controller's components */ @LogMessageDoc(message="Waiting for storage source", explanation="The system database is not yet ready", recommendation="If this message persists, this indicates " + "that the system database has failed to start. " + LogMessageDoc.CHECK_CONTROLLER) public void startupComponents() { // Create the table names we use storageSource.createTable(CONTROLLER_TABLE_NAME, null); storageSource.createTable(SWITCH_TABLE_NAME, null); storageSource.createTable(PORT_TABLE_NAME, null); storageSource.createTable(CONTROLLER_INTERFACE_TABLE_NAME, null); storageSource.createTable(SWITCH_CONFIG_TABLE_NAME, null); storageSource.setTablePrimaryKeyName(CONTROLLER_TABLE_NAME, CONTROLLER_ID); storageSource.setTablePrimaryKeyName(SWITCH_TABLE_NAME, SWITCH_DATAPATH_ID); storageSource.setTablePrimaryKeyName(PORT_TABLE_NAME, PORT_ID); storageSource.setTablePrimaryKeyName(CONTROLLER_INTERFACE_TABLE_NAME, CONTROLLER_INTERFACE_ID); storageSource.addListener(CONTROLLER_INTERFACE_TABLE_NAME, this); while (true) { try { updateControllerInfo(); break; } catch (StorageException e) { log.info("Waiting for storage source"); try { Thread.sleep(1000); } catch (InterruptedException e1) { } } } // Add our REST API restApi.addRestletRoutable(new CoreWebRoutable()); }
/** * Startup all of the controller's components */ @LogMessageDoc(message="Waiting for storage source", explanation="The system database is not yet ready", recommendation="If this message persists, this indicates " + "that the system database has failed to start. " + LogMessageDoc.CHECK_CONTROLLER) public void startupComponents() { // Create the table names we use storageSource.createTable(CONTROLLER_TABLE_NAME, null); storageSource.createTable(CONTROLLER_INTERFACE_TABLE_NAME, null); storageSource.createTable(SWITCH_CONFIG_TABLE_NAME, null); storageSource.setTablePrimaryKeyName(CONTROLLER_TABLE_NAME, CONTROLLER_ID); storageSource.addListener(CONTROLLER_INTERFACE_TABLE_NAME, this); // Startup load monitoring if (overload_drop) { this.loadmonitor.startMonitoring( this.threadPool.getScheduledExecutor()); } // Add our REST API restApi.addRestletRoutable(new CoreWebRoutable()); // Start role change task ScheduledExecutorService ses = threadPool.getScheduledExecutor(); roleChangeDamper = new SingletonTask(ses, new Runnable() { @Override public void run() { doSetRole(); } }); }
/** * Startup all of the controller's components */ @LogMessageDoc(message="Waiting for storage source", explanation="The system database is not yet ready", recommendation="If this message persists, this indicates " + "that the system database has failed to start. " + LogMessageDoc.CHECK_CONTROLLER) public void startupComponents() { // Create the table names we use storageSource.createTable(CONTROLLER_TABLE_NAME, null); storageSource.createTable(CONTROLLER_INTERFACE_TABLE_NAME, null); storageSource.createTable(SWITCH_CONFIG_TABLE_NAME, null); storageSource.setTablePrimaryKeyName(CONTROLLER_TABLE_NAME, CONTROLLER_ID); storageSource.addListener(CONTROLLER_INTERFACE_TABLE_NAME, this); while (true) { try { updateControllerInfo(); break; } catch (StorageException e) { log.info("Waiting for storage source"); try { Thread.sleep(1000); } catch (InterruptedException e1) { } } } // Startup load monitoring if (overload_drop) { this.loadmonitor.startMonitoring( this.threadPool.getScheduledExecutor()); } // Add our REST API restApi.addRestletRoutable(new CoreWebRoutable()); // Start role change task ScheduledExecutorService ses = threadPool.getScheduledExecutor(); roleChangeDamper = new SingletonTask(ses, new Runnable() { @Override public void run() { doSetRole(); } }); }