class OVEApp: def __init__(self): self.app = globalApp self.app.setOrganizationName("Citrix_Systems_Inc") self.app.setOrganizationDomain("citrix.com") self.app.setApplicationName("ovsdbmonitor") self.mainWindows = [] self.flowWindows = [] self.configWindow = None def enter(self): if len(OVEConfig.Inst().hosts) < 1: self.showConfig(True) QtGui.QMessageBox.information( None, "OVSDB Monitor", "This application browses openvswitch databases on remote hosts. Please add one or more openvswitch hosts to continue") self.loadMainWindows() self.loadFlowWindows() if len(self.mainWindows) == 0 and len(self.flowWindows) == 0: self.newMainWindow() self.newLogWindow() # Reactor must be started after the event loop is running, so use a zero timeout QtCore.QTimer.singleShot(0, OVEFetch.startReactor) OVELog("Application started") retCode = self.app.exec_() index = 0 for mainWindow in self.mainWindows: if mainWindow.isVisible(): mainWindow.saveSettings(index) index += 1 # Indent intentional OVEMainWindow.terminateSettings(index) index = 0 for flowWindow in self.flowWindows: if flowWindow.isVisible(): flowWindow.saveSettings(index) index += 1 # Indent intentional OVEFlowWindow.terminateSettings(index) self.logWindow.saveSettings() def quit(self): self.app.quit() def showLog(self, value): if value: self.logWindow.hide() self.logWindow.show() else: self.logWindow.hide() def showConfig(self, value): if value: del self.configWindow self.configWindow = OVEConfigWindow(self) self.configWindow.show() else: self.configWindow.hide() def newMainWindow(self, loadIndex = None): self.mainWindows.append(OVEMainWindow(self, loadIndex)) self.mainWindows[-1].show() def newFlowWindow(self, loadIndex = None): self.flowWindows.append(OVEFlowWindow(self, loadIndex)) self.flowWindows[-1].show() def newLogWindow(self): self.logWindow = OVELogWindow(self) def loadMainWindows(self): for loadIndex in range(0, 100): if OVEMainWindow.isLoadable(loadIndex): self.newMainWindow(loadIndex) else: break def loadFlowWindows(self): for loadIndex in range(0, 100): if OVEFlowWindow.isLoadable(loadIndex): self.newFlowWindow(loadIndex) else: break
class OVEApp: def __init__(self): self.app = globalApp self.app.setOrganizationName("Citrix_Systems_Inc") self.app.setOrganizationDomain("citrix.com") self.app.setApplicationName("ovsdbmonitor") self.mainWindows = [] self.flowWindows = [] self.configWindow = None def enter(self): if len(OVEConfig.Inst().hosts) < 1: self.showConfig(True) QtGui.QMessageBox.information( None, "OVSDB Monitor", "This application browses openvswitch databases on remote hosts. Please add one or more openvswitch hosts to continue" ) self.loadMainWindows() self.loadFlowWindows() if len(self.mainWindows) == 0 and len(self.flowWindows) == 0: self.newMainWindow() self.newLogWindow() # Reactor must be started after the event loop is running, so use a zero timeout QtCore.QTimer.singleShot(0, OVEFetch.startReactor) OVELog("Application started") retCode = self.app.exec_() index = 0 for mainWindow in self.mainWindows: if mainWindow.isVisible(): mainWindow.saveSettings(index) index += 1 # Indent intentional OVEMainWindow.terminateSettings(index) index = 0 for flowWindow in self.flowWindows: if flowWindow.isVisible(): flowWindow.saveSettings(index) index += 1 # Indent intentional OVEFlowWindow.terminateSettings(index) self.logWindow.saveSettings() def quit(self): self.app.quit() def showLog(self, value): if value: self.logWindow.hide() self.logWindow.show() else: self.logWindow.hide() def showConfig(self, value): if value: del self.configWindow self.configWindow = OVEConfigWindow(self) self.configWindow.show() else: self.configWindow.hide() def newMainWindow(self, loadIndex=None): self.mainWindows.append(OVEMainWindow(self, loadIndex)) self.mainWindows[-1].show() def newFlowWindow(self, loadIndex=None): self.flowWindows.append(OVEFlowWindow(self, loadIndex)) self.flowWindows[-1].show() def newLogWindow(self): self.logWindow = OVELogWindow(self) def loadMainWindows(self): for loadIndex in range(0, 100): if OVEMainWindow.isLoadable(loadIndex): self.newMainWindow(loadIndex) else: break def loadFlowWindows(self): for loadIndex in range(0, 100): if OVEFlowWindow.isLoadable(loadIndex): self.newFlowWindow(loadIndex) else: break