Пример #1
0
 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()
Пример #2
0
 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()
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
 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()
Пример #6
0
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