Ir para o conteúdo

Como limpar resíduos do ambiente

Com o passar do tempo, bots criado com problemas ou não expurgados corretamente acabam deixando resíduos nos ambientes não produtivos, tais como: módulo, imagem e publicação no estaleiro, índices no elastic, etc.

O integrador possui um endpoint usado pelo expurgo que remove os resíduos de um chatbot. Dessa forma, é possível usar o Postman para fazer uma exclusão em lote à partir de um CSV.

1. Criando o CSV com os bots candidatos à exclusão

O comando abaixo vai usar o Estaleiro Cli para listar os módulos do Serprobots, filtrar os que começam com o padrão de nome de módulo de bot (Ex: dbot), e formatar isso num arquivo CSV com as colunas ambiente e mnemônico.

estaleiro get module -s serprobots | grep -o "dbot-[^ ]\+" | sed "s/\(.\+\)\(-\)\([dp]\)\(.*\)/\"\3\",\"\1\"/" >> bots_excluir.csv

Prefixo dos bots

No comando de geração do CSV, altere o valor dbot no comando grep para o prefixo do ambiente desejado (Ex: homologação -> hbot). Geralmente todos os bots não ativos dos ambientes não produtivos podem ser excluídos, então basta passar o olho na lista de bots do ambiente e excluir um ou outro que esteja ativo naquele momento alvo de testes da equipe.

Adicione uma linha de cabeçalho no CSV gerado, com os campos ambiente e mnemonico. Tenha atenção nesse ponto, pois o nome das colunas, será também o nome das variáveis usadas pelo Postman para parametrizar as chamadas. O comando abaixo faz isso:

sed -i '1s/^/"ambiente","mnemonico"\n/' bots_excluir.csv

O arquivo deverá ficar assim:

"ambiente","mnemonico"
"d","dbot-adrain"
"p","dbot-adrain"
"d","dbot-adrian"
"p","dbot-adrian"
"d","dbot-alexis"
...

2. Criando o request parametrizada no Postman

Vá no ambiente do estaleiro e exponha o módulo Serprobots Integrador num endereço intranet protegido por senha.

Crie no Postman uma coleção Serprobots Integrador e configure a Authorization Basic Auth conforme credenciais utilizadas no endereço exposto.

Crie dentro dessa coleção um request para o endereço criado para o Integrador, com método DELETE e path parametrizado /bot/chatbots/{{ambiente}}/{{mnemonico}}. Ex:

https://integrador-d-serprobots.estaleiro.serpro.gov.br/bot/chatbots/{{ambiente}}/{{mnemonico}}?removeIndices=True

O parâmetro de query removeIndices=True é opcional, porém, se True, ele irá tentar remover os índices do Elastic.

Exclusão de índices é por ambiente

Por usar a API do Estaleiro, o Integrador de um ambiente consegue excluir os resíduos de um bot no estaleiro de qualquer outro ambiente (Ex: aponta para integrador em D manda apagar um bot em H). Mas o Integrador só consegue manipular o Elastic do seu próprio ambiente.

3. Fazendo o Postman iterar no CSV

Na coleção Postman criada, vá na opção RUN (se não estiver visível com um ícone de botão Play, clique nos três pontinhos).

Marque a requisição de DELETE criada.

No campo Data clique em Select File e ache o CSV criado. Confira no botão Preview se a estrutura do CSV está certa.

Pegue um cafézinho, mande executar e acompanhe o status das requisições no console inferior do Postman.