def executar_acao(self): while True: time.sleep(1) k = list(map(str, self.recebi.keys())) for i, k in self.recebi.items(): print("Key:", i) for j in k: print(j) for key in k: if key != None: mydir = self.dir + "//" + key consumo = self.consome_recebi(key) acao = consumo[0] print(key, consumo) if acao == "Conectado": print("Conectou") self.dir_usuarios.append(key) elif acao == "Created": pathis = consumo[1] if pathis == "dir": print("Criou dir") util.criar_diretorio(mydir) elif acao == "Renamed from something": print("Renomeou dir ou file") dir2 = self.dir + "//" + consumo[1] util.renomear_arquivo_ou_diretorio(mydir, dir2) else: self.add_recebi(key, consumo)
def resolver_mudanca(self, alteracao): if len(alteracao) != 2: # Não é renomear acao, diretorio = alteracao.split(" -- ") if os.path.isfile(diretorio): pass else: dir = util.mudar_caminho(diretorio, self.dir_backup, self.dir_superv) if acao == "Created": print("Criar diretorio %s ..." % dir) util.criar_diretorio(dir) self.alteracoes.remove(alteracao) elif acao == "Deleted": print("Deletar diretorio %s ..." % dir) util.deletar_diretorio(dir) self.alteracoes.remove(alteracao) else: dir1, dir2 = alteracao[0].split(" -- ")[1], alteracao[1].split( " -- ")[1] dir1 = util.mudar_caminho(dir1, self.dir_backup, self.dir_superv) dir2 = util.mudar_caminho(dir2, self.dir_backup, self.dir_superv) print("Renomar diretorio ou arquivo\nDe: %s" % dir1) print("Para: %s" % dir2) util.renomear_arquivo_ou_diretorio(dir1, dir2)
def executar_acao(self): ''' Executa as alteracoes armazenadas. Existe uma região critica concorrente com receber_servico. Se não existe alteracoes ele dorme. Executado por uma Thread. ''' while True: # Região critica self.semaforo_recebi.acquire() dirs = list(map(str, self.recebi.keys())) self.semaforo_recebi.release() for dir in dirs: consumo = self.consome_recebi(dir) # Função critica dir_me = self.dir + dir acao = consumo[0] isfile = consumo[1] if acao == "Conectado": print("Usuario conectado possui o diretorio:", dir) self.dir_usuarios.append(dir) elif acao == "Created": if isfile == "dir": print("Diretorio criado:", dir) util.criar_diretorio(dir_me) elif isfile == "file": print("Arquivo criado:", dir) dados = consumo[2] util.criar_arquivo(dir_me, dados) elif acao == "Deleted": if os.path.isfile(dir_me): print("Arquivo deletado:", dir) util.deletar_arquivo(dir_me) if os.path.isdir(dir_me): print("Diretorio deletado:", dir) util.deletar_diretorio(dir_me) elif acao == "Renamed from something": dir2 = isfile if os.path.isfile(dir_me): print("Arquivo renomeado") if os.path.isdir(dir_me): print("Diretorio renomeado") print("De:", dir) print("Para:", dir2) if os.path.isdir(dir_me) or os.path.isfile: print( "Esse arquivo ou diretório existe e posso altera-lo" ) util.renomear_arquivo_ou_diretorio( dir_me, self.dir + dir2) elif acao == "Updated": if os.path.isfile(dir_me): print("Arquivo alterado:", dir) dados = consumo[2] if os.path.isfile(dir_me): print("Esse arquivo existe e posso atualiza-lo") util.criar_arquivo(dir_me, dados) else: # Se eu não consegui fazer nada, coloca de volta na estrutura print("Não existe um procedimento para essa ação ainda.") print("Acao retornada para a estrutura.") print(consumo) # self.add_recebi(dir, consumo) # Função critica else: time.sleep(1)