def slotLCCA(self): self.lccaControl = LCCAControl() self.lccaControl.exec_()
class TopoClusterLevel(QtGui.QWidget): def __init__(self): super(TopoClusterLevel, self).__init__() self.font = QtGui.QFont() self.initUI() def slotLCCA(self): self.lccaControl = LCCAControl() self.lccaControl.exec_() def slotClusterNode(self): self.clusterNodeControl = ClusterNodeControl() self.clusterNodeControl.exec_() def slotRtop(self): self.Rtop = RtopPanel() self.Rtop.exec_() def makeActionButton(self, name, tooltip, sizeX, sizeY): button = QtGui.QPushButton(name) button.setToolTip(tooltip) button.setMinimumSize(sizeX, sizeY) self.font.setBold(True) button.setFont(self.font) color = button.palette() color.setColor(button.backgroundRole(), QtGui.QColor(0, 102, 187)) color.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255, 255, 255)) button.setPalette(color) return button def makeHardwareButton(self, label, tooltip, state, sizeX, sizeY, drillDownData): button = QtGui.QPushButton(label) button.setToolTip(tooltip) button.setMinimumSize(sizeX, sizeY) self.font.setBold(True) button.setFont(self.font) buttonsColor = button.palette() if state == 0: #HARDWARE UP AND GOOD STATE buttonsColor.setColor(button.backgroundRole(), QtGui.QColor(0, 102, 0)) buttonsColor.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255, 255, 255)) elif state == 1: #HARDWARE DOWN OR BAD STATE buttonsColor.setColor(button.backgroundRole(), QtGui.QColor(221, 0, 0)) buttonsColor.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255, 255, 255)) elif state == 2: #HARDWARE HAS NON-CRITICAL ISSUES buttonsColor.setColor(button.backgroundRole(), QtGui.QColor(255, 221, 68)) buttonsColor.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255, 255, 255)) elif state == 3: #NO HARDWARE PRESENT STATE button.setEnabled(False) button.setPalette(buttonsColor) return button def makeBCButton(self, machine, rack, state, sizeX, sizeY, drillDownData, firstBlade, lastBlade): if ('001' in machine): whichBlades = 'Blade Center 1: Blades %i-%i' % (firstBlade, lastBlade) self.bc1Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc1Button, rack) elif ('002' in machine): whichBlades = 'Blade Center 2: Blades %i-%i' % (firstBlade, lastBlade) self.bc2Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc2Button, rack) elif ('003' in machine): whichBlades = 'Blade Center 3: Blades %i-%i' % (firstBlade, lastBlade) self.bc3Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc3Button, rack) elif ('004' in machine): whichBlades = 'Blade Center 4: Blades %i-%i' % (firstBlade, lastBlade) self.bc4Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc4Button, rack) elif ('005' in machine): whichBlades = 'Blade Center 5: Blades %i-%i' % (firstBlade, lastBlade) self.bc5Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc5Button, rack) elif ('006' in machine): whichBlades = 'Blade Center 6: Blades %i-%i' % (firstBlade, lastBlade) self.bc6Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc6Button, rack) elif ('007' in machine): whichBlades = 'Blade Center 7: Blades %i-%i' % (firstBlade, lastBlade) self.bc7Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc7Button, rack) elif ('008' in machine): whichBlades = 'Blade Center 8: Blades %i-%i' % (firstBlade, lastBlade) self.bc8Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc8Button, rack) elif ('009' in machine): whichBlades = 'Blade Center 9: Blades %i-%i' % (firstBlade, lastBlade) self.bc9Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc9Button, rack) elif ('010' in machine): whichBlades = 'Blade Center 10: Blades %i-%i' % (firstBlade, lastBlade) self.bc10Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc10Button, rack) elif ('011' in machine): whichBlades = 'Blade Center 11: Blades %i-%i' % (firstBlade, lastBlade) self.bc11Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc11Button, rack) elif ('012' in machine): whichBlades = 'Blade Center 12: Blades %i-%i' % (firstBlade, lastBlade) self.bc12Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc12Button, rack) elif ('013' in machine): whichBlades = 'Blade Center 13: Blades %i-%i' % (firstBlade, lastBlade) self.bc13Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc13Button, rack) elif ('014' in machine): whichBlades = 'Blade Center 14: Blades %i-%i' % (firstBlade, lastBlade) self.bc14Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc14Button, rack) elif ('015' in machine): whichBlades = 'Blade Center 15: Blades %i-%i' % (firstBlade, lastBlade) self.bc15Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc15Button, rack) elif ('016' in machine): whichBlades = 'Blade Center 16: Blades %i-%i' % (firstBlade, lastBlade) self.bc16Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc16Button, rack) elif ('017' in machine): whichBlades = 'Blade Center 17: Blades %i-%i' % (firstBlade, lastBlade) self.bc17Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc17Button, rack) elif ('018' in machine): whichBlades = 'Blade Center 18: Blades %i-%i' % (firstBlade, lastBlade) self.bc18Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc18Button, rack) def placeBCButton(self, button, rack): if (rack == 1): self.rack1Layout.addWidget(button) elif (rack == 2): self.rack2Layout.addWidget(button) elif (rack == 3): self.rack3Layout.addWidget(button) def initUI(self): # This will be used to to set the window's layout self.layout = QtGui.QVBoxLayout() # Make the top nav bar for switching views and opening rtop topBarLayout = QtGui.QHBoxLayout() topBarFrame = QtGui.QFrame() topBarFrame.setFrameShape(QtGui.QFrame.StyledPanel) self.rtopButton = self.makeActionButton( 'RTOP', 'Launch blade, LCCA,\nand management node\nmonitor utility', 330, 60) self.rtopButton.clicked.connect(self.slotRtop) topBarLayout.addWidget(self.rtopButton) topBarFrame.setLayout(topBarLayout) hardwareLayout = QtGui.QHBoxLayout() self.hardwareList = ClusterData.managementNodeData for i in self.hardwareList: if ('LCCA' in i[0]): lccaButton = self.makeHardwareButton( i[0], 'Open LCCA Control Panel', i[1], 130, 440, i[2]) lccaButton.clicked.connect(self.slotLCCA) else: clusterManageButton = self.makeHardwareButton( i[0], 'Open Cluster Management Control Panel', i[1], 130, 440, i[2]) clusterManageButton.clicked.connect(self.slotClusterNode) # Placement requires that the Cluster Management button be placed farthest left. # followed by the LCCA and then the Blade Racks with the Blade Center buttons stacked vertically hardwareLayout.addWidget(clusterManageButton) hardwareLayout.addWidget(lccaButton) #lccaButton.clicked.connect(lambda: self.slotLCCA(*PASS DATA THROUGH HERE*)) #clusterManagementButton.clicked.connect(lambda: self.slotClusterNode(*PASS DATA THROUGH HERE*)) self.rack1Layout = QtGui.QVBoxLayout() rack1Frame = QtGui.QFrame() rack1Frame.setFrameShape(QtGui.QFrame.StyledPanel) self.rack2Layout = QtGui.QVBoxLayout() rack2Frame = QtGui.QFrame() rack2Frame.setFrameShape(QtGui.QFrame.StyledPanel) self.rack3Layout = QtGui.QVBoxLayout() rack3Frame = QtGui.QFrame() rack3Frame.setFrameShape(QtGui.QFrame.StyledPanel) self.rackData = ClusterData.topographData sizeX = 115 sizeY = 65 for i in self.rackData: #self.makeBCButton(machine, rack, state, sizeX, sizeY, drilldownData, firstBlade, lastBlade) self.makeBCButton(i[0], i[1], i[2], sizeX, sizeY, i[3], i[4], i[5]) rack1Frame.setLayout(self.rack1Layout) rack2Frame.setLayout(self.rack2Layout) rack3Frame.setLayout(self.rack3Layout) hardwareLayout.addWidget(rack1Frame) hardwareLayout.addWidget(rack2Frame) hardwareLayout.addWidget(rack3Frame) # Pack widgets and layouts self.layout.addWidget(topBarFrame) self.layout.addLayout(hardwareLayout) # Finalize layout of window and show self.setLayout(self.layout) self.move(300, 150) self.setWindowTitle('CLUSTER MAIN VIEW') self.setGeometry(50, 50, 725, 500) self.show()
class TopoClusterLevel(QtGui.QWidget): def __init__(self): super(TopoClusterLevel, self).__init__() self.font = QtGui.QFont() self.initUI() def slotLCCA(self): self.lccaControl = LCCAControl() self.lccaControl.exec_() def slotClusterNode(self): self.clusterNodeControl = ClusterNodeControl() self.clusterNodeControl.exec_() def slotRtop(self): self.Rtop = RtopPanel() self.Rtop.exec_() def makeActionButton(self, name, tooltip, sizeX, sizeY): button = QtGui.QPushButton(name) button.setToolTip(tooltip) button.setMinimumSize(sizeX, sizeY) self.font.setBold(True) button.setFont(self.font) color = button.palette() color.setColor(button.backgroundRole(), QtGui.QColor(0,102,187)) color.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255,255,255)) button.setPalette(color) return button def makeHardwareButton(self, label, tooltip, state, sizeX, sizeY, drillDownData): button = QtGui.QPushButton(label) button.setToolTip(tooltip) button.setMinimumSize(sizeX, sizeY) self.font.setBold(True) button.setFont(self.font) buttonsColor = button.palette() if state == 0: #HARDWARE UP AND GOOD STATE buttonsColor.setColor(button.backgroundRole(), QtGui.QColor(0,102,0)) buttonsColor.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255,255,255)) elif state == 1: #HARDWARE DOWN OR BAD STATE buttonsColor.setColor(button.backgroundRole(), QtGui.QColor(221,0,0)) buttonsColor.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255,255,255)) elif state == 2: #HARDWARE HAS NON-CRITICAL ISSUES buttonsColor.setColor(button.backgroundRole(), QtGui.QColor(255,221,68)) buttonsColor.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(255,255,255)) elif state == 3: #NO HARDWARE PRESENT STATE button.setEnabled(False) button.setPalette(buttonsColor) return button def makeBCButton(self, machine, rack, state, sizeX, sizeY, drillDownData, firstBlade, lastBlade): if ('001' in machine): whichBlades = 'Blade Center 1: Blades %i-%i' % (firstBlade, lastBlade) self.bc1Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc1Button, rack) elif ('002' in machine): whichBlades = 'Blade Center 2: Blades %i-%i' % (firstBlade, lastBlade) self.bc2Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc2Button, rack) elif ('003' in machine): whichBlades = 'Blade Center 3: Blades %i-%i' % (firstBlade, lastBlade) self.bc3Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc3Button, rack) elif ('004' in machine): whichBlades = 'Blade Center 4: Blades %i-%i' % (firstBlade, lastBlade) self.bc4Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc4Button, rack) elif ('005' in machine): whichBlades = 'Blade Center 5: Blades %i-%i' % (firstBlade, lastBlade) self.bc5Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc5Button, rack) elif ('006' in machine): whichBlades = 'Blade Center 6: Blades %i-%i' % (firstBlade, lastBlade) self.bc6Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc6Button, rack) elif ('007' in machine): whichBlades = 'Blade Center 7: Blades %i-%i' % (firstBlade, lastBlade) self.bc7Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc7Button, rack) elif ('008' in machine): whichBlades = 'Blade Center 8: Blades %i-%i' % (firstBlade, lastBlade) self.bc8Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc8Button, rack) elif ('009' in machine): whichBlades = 'Blade Center 9: Blades %i-%i' % (firstBlade, lastBlade) self.bc9Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc9Button, rack) elif ('010' in machine): whichBlades = 'Blade Center 10: Blades %i-%i' % (firstBlade, lastBlade) self.bc10Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc10Button, rack) elif ('011' in machine): whichBlades = 'Blade Center 11: Blades %i-%i' % (firstBlade, lastBlade) self.bc11Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc11Button, rack) elif ('012' in machine): whichBlades = 'Blade Center 12: Blades %i-%i' % (firstBlade, lastBlade) self.bc12Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc12Button, rack) elif ('013' in machine): whichBlades = 'Blade Center 13: Blades %i-%i' % (firstBlade, lastBlade) self.bc13Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc13Button, rack) elif ('014' in machine): whichBlades = 'Blade Center 14: Blades %i-%i' % (firstBlade, lastBlade) self.bc14Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc14Button, rack) elif ('015' in machine): whichBlades = 'Blade Center 15: Blades %i-%i' % (firstBlade, lastBlade) self.bc15Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc15Button, rack) elif ('016' in machine): whichBlades = 'Blade Center 16: Blades %i-%i' % (firstBlade, lastBlade) self.bc16Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc16Button, rack) elif ('017' in machine): whichBlades = 'Blade Center 17: Blades %i-%i' % (firstBlade, lastBlade) self.bc17Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc17Button, rack) elif ('018' in machine): whichBlades = 'Blade Center 18: Blades %i-%i' % (firstBlade, lastBlade) self.bc18Button = self.makeHardwareButton(machine, whichBlades, state, sizeX, sizeY, drillDownData) self.placeBCButton(self.bc18Button, rack) def placeBCButton(self, button, rack): if (rack == 1): self.rack1Layout.addWidget(button) elif (rack == 2): self.rack2Layout.addWidget(button) elif (rack == 3): self.rack3Layout.addWidget(button) def initUI(self): # This will be used to to set the window's layout self.layout = QtGui.QVBoxLayout() # Make the top nav bar for switching views and opening rtop topBarLayout = QtGui.QHBoxLayout() topBarFrame = QtGui.QFrame() topBarFrame.setFrameShape(QtGui.QFrame.StyledPanel) self.rtopButton = self.makeActionButton('RTOP', 'Launch blade, LCCA,\nand management node\nmonitor utility', 330, 60) self.rtopButton.clicked.connect(self.slotRtop) topBarLayout.addWidget(self.rtopButton) topBarFrame.setLayout(topBarLayout) hardwareLayout = QtGui.QHBoxLayout() self.hardwareList = ClusterData.managementNodeData for i in self.hardwareList: if ('LCCA' in i[0]): lccaButton = self.makeHardwareButton(i[0], 'Open LCCA Control Panel', i[1], 130, 440, i[2]) lccaButton.clicked.connect(self.slotLCCA) else: clusterManageButton = self.makeHardwareButton(i[0], 'Open Cluster Management Control Panel', i[1], 130, 440, i[2]) clusterManageButton.clicked.connect(self.slotClusterNode) # Placement requires that the Cluster Management button be placed farthest left. # followed by the LCCA and then the Blade Racks with the Blade Center buttons stacked vertically hardwareLayout.addWidget(clusterManageButton) hardwareLayout.addWidget(lccaButton) #lccaButton.clicked.connect(lambda: self.slotLCCA(*PASS DATA THROUGH HERE*)) #clusterManagementButton.clicked.connect(lambda: self.slotClusterNode(*PASS DATA THROUGH HERE*)) self.rack1Layout = QtGui.QVBoxLayout() rack1Frame = QtGui.QFrame() rack1Frame.setFrameShape(QtGui.QFrame.StyledPanel) self.rack2Layout = QtGui.QVBoxLayout() rack2Frame = QtGui.QFrame() rack2Frame.setFrameShape(QtGui.QFrame.StyledPanel) self.rack3Layout = QtGui.QVBoxLayout() rack3Frame = QtGui.QFrame() rack3Frame.setFrameShape(QtGui.QFrame.StyledPanel) self.rackData = ClusterData.topographData sizeX = 115 sizeY = 65 for i in self.rackData: #self.makeBCButton(machine, rack, state, sizeX, sizeY, drilldownData, firstBlade, lastBlade) self.makeBCButton(i[0], i[1], i[2], sizeX, sizeY, i[3], i[4], i[5]) rack1Frame.setLayout(self.rack1Layout) rack2Frame.setLayout(self.rack2Layout) rack3Frame.setLayout(self.rack3Layout) hardwareLayout.addWidget(rack1Frame) hardwareLayout.addWidget(rack2Frame) hardwareLayout.addWidget(rack3Frame) # Pack widgets and layouts self.layout.addWidget(topBarFrame) self.layout.addLayout(hardwareLayout) # Finalize layout of window and show self.setLayout(self.layout) self.move(300, 150) self.setWindowTitle('CLUSTER MAIN VIEW') self.setGeometry(50, 50, 725, 500) self.show()