:clipboard: Critérios de aceite de conclusão da Issue
[x] Criar repositório MONAN-Workflow.
[x] Instalar EcFlow.
[x] Criar Estrutura base EcFlow na Egeon.
[x] Testar cliente ECF rodando um HelloWorld com a estrutura criada.
:pencil: Detalhamento adicional da atividade
Carregar o modulo do ECFLOW disponível no Egeon: ecflow/5.8.4
O ECFlow disponibiliza duas versões de GUI: Uma primeira interface mais antiga similar ao seu antecessor SMS, e uma mais nova. Ambas versões possuem suas vantagens e desvantagens, porém a versão do ECFLOW instalada no Egeon inclui apenas a versão mais moderna de interface gráfica, que pode ser inicializada através do comando: ecflow_ui.
Quando a interface gráfica é inicializada, toda e qualquer atividade da suite contida no cliente é registrada e escrita na tela, este é o log do sistema. É recomendado que essas informações sejam armazenadas para futuras consultas e registro de atividades.
Script openecview.ksh que eu gosto de utilizar para abrir a interface gráfica do ECFLOW:
#!/bin/ksh
cd /eclogs
ecflow_ui >> ecflowview.${USER}.logs&
- Este script já está criado na conta `monan@egeon`, dentro do diretório `${HOME}/bin` incluido no `PATH`.
## :comet: Impactos
NA
## :link: Dependências
NA
## :hammer_and_wrench: Solução
### Aceite 1:
- Repositório criado: https://github.com/monanadmin/MONAN-WorkFlow
- Team `monanadmin/developers` adicionado no repo.
- Branch criada para este desenvolvimento: https://github.com/monanadmin/MONAN-WorkFlow/tree/feature/workflow-507-QI
---------------------------------------------
### Aceite 2:
- ECFLOW inicializado na egeon com o número de porta padrão : `port=3142` (possibilidade de usar outro PIN futuramente, ideal utilizar port = PID, chave única.)
- Estrutura básica de diretórios com arquivos de funcionamento do ECFLOW:
ecflow/ # diretorio principal do ECFLOW
eclogs/ # diretorio onde ficam os scripts que inicializam e matam o cliente ecflow, bem como os logs de toda atividade da suite.
includes/ # diretorio onde ficam os arquivos de cabeçalho (head.h) e finalização (tail.h) dos scripts ecflow.
- Script `WorkFlow/ecflow/eclogs/start.ksh` que inicializa o ECF client:
!/bin/ksh
export ECF_PORT=3142
ecflow_server --port=3142 &
- Script `WorkFlow/ecflow/eclogs/stop.ksh` que inicializa o ECF client:
- Script para facilitar a inicialização de uma suite: `inicializadef.ksh`, este script utilizo junto com minhas ferramentas gerais (diretório `${HOME}/bin` inserido no meu `PATH`, já inseri na conta monan@egeon) :
!/bin/ksh
if [ $# -ne 1 ]
then
echo ""
echo "${0} [SUITE root name]"
echo ""
exit
fi
- Script para facilitar a atualização da suite.def no servidor/cliente, esse procedimento é necessário sempre que houver alguma modificação no arquivo estrutural `.def` : `atualizadef.ksh`
!/bin/ksh
if [ $# -ne 1 ]
then
echo ""
echo "${0} [SUITE root name]"
echo ""
exit
fi
---------------------------------------------
### Aceite 3:
Estrutura base do ECFLOW criada no repo MONAN-Workflow:
- Arquivo que define a estrutura dos diretorios e tarefas a serem agendadas foi criada: `MONAN-WorkFlow/ecflow/MONAN.def`
task First_test
label Info "Mensagem..."
cron 8:00
endsuite
- Um script bash foi criado para facilitar que o operador clone a versão correta dos scripts_CD-CT e no local correto: `MONAN-WorkFlow/ecflow/clone_scripts_CD-CT.bash`:
- Segue o script que complementa a suite criada `MONAN-WorkFlow/ecflow/MONAN.def`:
`MONAN-WorkFlow/ecflow/MONAN/First_test.ecf`
%include
ecflow_client --label=Info "Inicio... "
echo "This is my first test."
echo ""
echo "Here I can use ECF environment variables, like this: %ECF_HOME%"
%include
file is served by ecflow-server
---------------------------------------------
### Aceite 4: TESTE básico
- Carregando módulo do ECFLOW no EGEON: `module load ecflow/5.8.4`
- Inicializando o cliente na minha conta:
cd /eclogs
start.ksh
- Inicializando a suite `MONAN.def` no servidor:
cd cd /
incializadef.ksh MONAN
- Inicializando a interface gráfica do ECFLow: `openecview.ksh`
- Configurando a interface gráfica para mostrar o meu cliente:
![2024-05-14_14-29](https://github.com/monanadmin/monan/assets/89524306/ecc712e7-50f1-48cc-9ac7-83792f04a7bf)
![2024-05-14_14-29_1](https://github.com/monanadmin/monan/assets/89524306/af6a8e80-b26a-4ddf-8d18-73d1046d57c8)
- Suite pronta para uso no servidor ECFLOW:
![2024-05-14_14-27](https://github.com/monanadmin/monan/assets/89524306/b03e5aa0-6c30-419f-ad2e-073cb3698e00)
- Script `First_test.ecf` agendado para rodar todos os dias as 12:00hs:
![2024-05-14_14-33](https://github.com/monanadmin/monan/assets/89524306/a15eb2a0-02f5-4b02-8077-673d66b1d7c7)
- Executando a tarefa `First_test.ecf` forçada, modo manual:
![2024-05-14_14-32](https://github.com/monanadmin/monan/assets/89524306/452fb418-fbda-4913-91ec-d8c9cd65ac50)
- Resultado do script `First_test.ecf` :
![2024-05-14_14-33](https://github.com/monanadmin/monan/assets/89524306/15d00f50-0ba2-45a7-986a-a40547fd901b)
## :rotating_light: Problemas encontrados
NA
## :white_check_mark: Conclusão
- Repositório MONAN-Workflow. criado com os arquivos básicos para funcinar em qualquer conta.
- ECFlow instalado na minha conta do EGEon para teste.
- Estrutura base do EcFlow foi criado na Egeon e versionado no repositório `https://github.com/monanadmin/MONAN-WorkFlow.git`
- Suite teste cliente ECF testado rodou um script com echo apenas para teste com a estrutura criada: sucesso!
## :spiral_calendar: Trabalhos Futuros
NA
:people_holding_hands: User Story
COMO (...) QUEREMOS (...) PARA (...)
:clipboard: Critérios de aceite de conclusão da Issue
HelloWorld
com a estrutura criada.:pencil: Detalhamento adicional da atividade
ecflow/5.8.4
ecflow_ui
.openecview.ksh
que eu gosto de utilizar para abrir a interface gráfica do ECFLOW:cd/eclogs
ecflow_ui >> ecflowview.${USER}.logs&
ecflow/ # diretorio principal do ECFLOW eclogs/ # diretorio onde ficam os scripts que inicializam e matam o cliente ecflow, bem como os logs de toda atividade da suite. includes/ # diretorio onde ficam os arquivos de cabeçalho (
head.h
) e finalização (tail.h
) dos scripts ecflow.!/bin/ksh
export ECF_PORT=3142
ecflow_server --port=3142 &
!/bin/ksh
export ECF_PORT=3142
ecflow_client --group="halt=yes; check_pt; terminate=yes"
!/bin/ksh
if [ $# -ne 1 ] then echo "" echo "${0} [SUITE root name]" echo "" exit fi
suite=${1}
export ECF_PORT=3142
ecflow_client --load=${suite}.def ecflow_client --begin=${suite}
echo "${suite} inicializada." echo ""
!/bin/ksh
if [ $# -ne 1 ] then echo "" echo "${0} [SUITE root name]" echo "" exit fi
suite=${1}
export ECF_PORT=3142
ecflow_client --delete /${suite} ecflow_client --load=${suite}.def ecflow_client --begin=${suite}
echo "${suite} atualizada." echo ""
suite MONAN
edit ECF_HOME "/mnt/beegfs/carlos.souza/repo_Monan/i507-MONAN-WorkFlow/MONAN-WorkFlow/ecflow" edit ECF_HOST "egeon-login1.cptec.inpe.br" edit ECF_INCLUDE "/mnt/beegfs/carlos.souza/repo_Monan/i507-MONAN-WorkFlow/MONAN-WorkFlow/ecflow/includes" edit ECF_TRIES "1"
task First_test label Info "Mensagem..." cron 8:00
endsuite
!/bin/bash
cd MONAN git clone https://github.com/monanadmin/scripts_CD-CT.git cd scripts_CD-CT git checkout tags/0.1.0 -b scriptsCD-CT_ecflow_v0.1.0
%include
ecflow_client --label=Info "Inicio... "
echo "This is my first test." echo "" echo "Here I can use ECF environment variables, like this: %ECF_HOME%"
%include
file is served by ecflow-server
cd/eclogs
start.ksh
cd cd/
incializadef.ksh MONAN