def __init__(self): QMainWindow.__init__(self) self.setupUi(self) #Class Variables self.thisNodeName = Utils.myHostName() logger.info("This host is %s", self.thisNodeName) self.username = Utils.getInfoFromCFG("database", "username") self.userFilter = False self.showArchivedFilter = False self.statusMsg = "ERROR" self.currentJobSel = None with open(Utils.findResource("styleSheet.css"), "r") as myStyles: self.setStyleSheet(myStyles.read()) #My UI Setup Functions self.setupTreeViews() self.connectButtons() self.setupHotkeys() self.setWindowIcon(QIcon(Utils.findResource("Images/FarmView.png"))) #Make sure this node exists self.thisNodeButtonsEnabled = True self.thisNodeExists = self.findThisNode() #Setup Signals SIGNAL("doUpdate") QObject.connect(self, SIGNAL("doUpdate"), self.doUpdate) #Start autoUpdater and then fetch data from DB self.autoUpdateThread = stoppableThread(self.doUpdateSignaler, 10, "AutoUpdate_Thread") self.doFetch()
def qtPrompt(): app = QApplication(sys.argv) loginWin = DatabaseLogin() loginWin.show() app.exec_() username, _password = loginWin.getValues() autoLogin = Utils.getInfoFromCFG("database", "autologin") autoLogin = True if str(autoLogin).lower().startswith("t") else False if username and autoLogin: updateAutologinUser(username) storeCredentials(username, _password) return username, _password
def getDatabaseInfo(): logger.debug("Finding login information...") #Get databse information host = Utils.getInfoFromCFG("database", "host") domain = Utils.getInfoFromCFG("network", "dnsDomainExtension").replace(" ", "") if domain != "" and host != "localhost": host += ".{}".format(domain) databaseName = Utils.getInfoFromCFG("database", "db") port = int(Utils.getInfoFromCFG("database", "port")) db_username = Utils.getInfoFromCFG("database", "username") #Get login information autoLogin = Utils.getInfoFromCFG("database", "autologin") autoLogin = True if str(autoLogin).lower()[0] == "t" else False if autoLogin: _db_password = PasswordStorage.loadCredentials(db_username) if not _db_password: autoLogin = False if not autoLogin: returnValues = PasswordStorage.qtPrompt() if not returnValues[0] or not returnValues[1]: logger.error("Could not login!") sys.exit(1) else: db_username = returnValues[0] _db_password = returnValues[1] return host, db_username, _db_password, databaseName, port
def consolePrompt(): print "\n\nStore Auto Login information?" #Get Login Information username = raw_input("Username: "******"Password: "******"database", "host") domain = Utils.getInfoFromCFG("network", "dnsDomainExtension").replace(" ", "") if domain != "" and host != "localhost": host += ".{}".format(domain) databaseName = Utils.getInfoFromCFG("database", "db") port = int(Utils.getInfoFromCFG("database", "port")) #Check if login is valid try: MySQLdb.connect(host=host, user=username, passwd=_password, db=databaseName, port=port) storeCredentials(username, _password) updateAutologinUser(username) except MySQLdb.Error: print "Login information was invalid!"
def __init__(self): #Setup Class Variables self.renderThread = None self.childProcess = None self.PSUtilProc = None self.statusAfterDeath = None self.childKilled = 0 self.HydraJob = None self.HydraTask = None self.logPath = None #Get this node data from the database and make sure it exists self.thisNode = getThisNodeOBJ() logger.debug(self.thisNode) if not self.thisNode: logger.critical( "This node does not exist in the database! Please Register this node and try again." ) sys.exit(-1) return #Detect RedShift GPUs self.rsGPUs = Utils.getRedshiftPreference("SelectedCudaDevices") if self.rsGPUs: self.rsGPUs = self.rsGPUs.split(",")[:-1] self.rsGPUids = [x.split(":")[0] for x in self.rsGPUs] if len(self.rsGPUs) != len(self.rsGPUids): logger.warning("Problems parsing Redshift Preferences") logger.info("%s Redshift Enabled GPU(s) found on this node", len(self.rsGPUs)) logger.debug("GPUs available for rendering are %s", self.rsGPUs) else: logger.warning("Could not find available Redshift GPUs") #Create RenderLog Directory if it doesn't exit if not os.path.isdir(Constants.RENDERLOGDIR): os.makedirs(Constants.RENDERLOGDIR) self.unstickTask() self.thisNode.software_version = Constants.VERSION with transaction() as t: self.thisNode.update(t) #Run The Server port = int(Utils.getInfoFromCFG("network", "port")) self.startServerThread(port)
def updateAutologinUser(newUsername): if Utils.getInfoFromCFG("database", "username") != newUsername: return Utils.writeInfoToCFG("database", "username", newUsername)