def select_machine_name(self, hashmac): sql_select_query = ( "SELECT descricaoMaquina FROM Maquina where hashmac = ?") try: self.cursor.execute(sql_select_query, hashmac) dadosColetados = self.cursor.fetchall() return dadosColetados except Exception as err: print(err) enviarMensagemSlack("\nERRO:\nSelect no banco de dados falhou!") self.close()
def selectComp( self, maquina): # função do select que retorna o componente + idMaqComp sql_select_query = ( "select nomeComponente, idMaqComp from MaquinaComponente, Componente, Maquina where fkMaquina = idMaquina and fkComponente = idComponente and hashmac = ?" ) try: self.cursor.execute(sql_select_query, maquina) dadosColetados = self.cursor.fetchall() return dadosColetados except Exception as err: print(err) enviarMensagemSlack("\nERRO:\nSelect no banco de dados falhou!") self.close()
def connect(self): try: self.sql = pyodbc.connect( 'DRIVER={ODBC Driver 17 for SQL Server}' + ';SERVER=' + self.server + ';PORT=' + self.port + ';DATABASE=' + self.database + ';UID=' + self.user + ';PWD=' + self.password) #Criando cursor para manipulação do banco. print("Azure =", self.sql) self.cursor = self.sql.cursor() except Exception as err: print(err) enviarMensagemSlack( "\nERRO:\nConexão com o banco de dados falhou!") raise
def connect(self): try: self.sql = mysql.connector.connect(user=self.user, password=self.password, host=self.host, database=self.database) #Criando cursor para manipulação do banco. print("MySQL = ", self.sql) self.cursor = self.sql.cursor() except Exception as err: print(err) enviarMensagemSlack( "\nERRO:\nConexão com o banco de dados falhou!") raise
def newInsert( self, data ): # função do novo insert de leitura dos componentes que o cliente escolheu query = ( "INSERT INTO LeituraMaquina (leitura, dataHora, fkMaqComp) VALUES (?, ?, ?)" ) values = data try: self.cursor.execute(query, values) self.sql.commit() print('Valores Inseridos no Azure') except Exception as err: print(err) self.sql.rollback() enviarMensagemSlack("\nERRO:\nInsert no banco de dados falhou!") self.close()
mysql.connect() maquina_hash = readHashMAC() # lê o o hashmac da máquina que rodar o programa componentes = sql.selectComp(maquina_hash) # realiza select dos componentes em uso da maquina componentes_mysql = mysql.selectComp(maquina_hash) maquina = sql.select_machine_name(maquina_hash)[0][0] maquina_mysql = mysql.select_machine_name(maquina_hash)[0][0] assert maquina == maquina_mysql, "Nomes das máquinas diferentes entre os bancos Azure e MySQL." assert len(componentes) == len(componentes_mysql), "Componentes diferentes entre os bancos Azure e MySQL." for i in range(len(componentes)): assert componentes[i][-1] == componentes_mysql[i][-1], "Componentes diferentes entre os bancos Azure e MySQL." print("\nIniciando leituras na Máquina:", maquina) time.sleep(0.5) msg = "" for i in componentes: msg += str(i[0]) + ", " msg = msg[:-2] print("Componentes em Uso:", msg) time.sleep(1) analiseHardware.enviarMensagemSlack("Iniciando leituras na Máquina: " + str(maquina)) while True: dados = analiseHardware.inserirComponentes(componentes, maquina) # com estes componentes, monitora-os pegando seus valores e inserindo-os no banco sql.multi_insert(dados) # insere os valores dos componentes no Azure mysql.multi_insert(dados) # insere os valores dos componentes no MySQL time.sleep(1) # espera 1 segundo para a proxima linha ser executada