Commit 1d8b1142 authored by Pedro Rocha's avatar Pedro Rocha
Browse files

Commit inicial de criacao do projeto.

[CSBASE-4918]
parents
Pipeline #5180 canceled with stages
# Uso da API REST do CSBase
Esse projeto contém uma api java de acesso à camada REST de um servidor CSBase.
## Documentação da API REST do CSGrid que serve ao Portal ERAS
- [Documentação Swagger da API](https://eras.tecgraf.puc-rio.br/workingserver/docs/?url=https://eras.tecgraf.puc-rio.br/workingserver/v1/swagger.yaml#/)
## Demonstrações
Para fins ilustrativos, o projeto possui algumas demos de como utilizar a api.
### Execução de Comandos
Demonstração da execução do algoritmo de "Zip Utility" (zip) através da API REST de um servidor CSGrid.
Condições para a demo executar:
- algoritmo zip cadastrado
- alguma maquina remota disponível para executar
- ter um usuário já cadastrado e com as permissões necessárias para execução do algoritmo zip nas máquinas disponíveis
- projeto previamente criado
- usuário é o dono do projeto ou tem permissão de escrita no projeto
- arquivos de entrada disponiveis localmente
- caminho válido para arquivo de saída a ser criado localmente
O código fonte da demo está disponível em https://git.tecgraf.puc-rio.br/csbase-dev/rest-client-demo-java.
Para melhor entendimento do código fonte e da parametrização de um algoritmo, pode ser útil ler as seguintes referências:
- [Parametrização de um algoritmo para execução](https://jira.tecgraf.puc-rio.br/confluence/pages/viewpage.action?pageId=36504138)
- [Manual de Criação de Configuradores para Algoritmos do CSGrid](http://webserver2.tecgraf.puc-rio.br/ftp_pub/csbase/1.5.5/manualConfiguradorXML.pdf)
A demo está disponível como um jar executável no Maven público do Tecgraf (http://maven.tecgraf.puc-rio.br:8081/nexus/)
```
<dependency>
<groupId>br.puc-rio.tecgraf.csbase</groupId>
<artifactId>rest-client-demo-java</artifactId>
<version>1.0.0</version>
<classifier>jar-with-dependencies</classifier>
</dependency>
```
Para executar, basta criar um arquivo de configuração e passar como parâmetro.
Exemplo de arquivo de configuração:
**config.properties**
```
# Host do servidor CSGrid usado na demo
host http://localhost:8010/v1/
# Login de usuário existente
username tester
# Senha do usuário
password tester
# Projeto usado para execução remota
project teste
# Pasta do projeto onde os arquivos de entrada e saída serão gerados
projectFolderPath root
# Primeiro arquivo local que será transferido para o projeto e que é entrada do algoritmo
input_file_1 input1.txt
# Segundo arquivo local que será transferido para o projeto e que é entrada do algoritmo
input_file_2 input2.txt
# Arquivo local que será criado com o conteúdo lido do arquivo resultado da execução do algoritmo
output_file output.zip
```
Exemplo de execução com o arquivo de configuração acima:
```
java -jar rest-client-demo-java-1.0.0-jar-with-dependencies.jar config.properties
```
A saída de demo é a seguinte:
```
-- Inicio da demo
Propriedades carregadas de src/main/resources/config.properties
Projeto tester/teste encontrado
Algoritmo zip encontrado
Algoritmo zip submetido com sucesso
Job test@test.BBNB3I5AHL encontrado
Job state (1548177277184): EXECUTING
Job state (1548177277231): DOWNLOADING
Job state (1548177278761): FINISHED
Job test@test.BBNB3I5AHL terminou
Resultado em input1.txt:
Breve arquivo de exemplo de entrada para ser enviado ao servidor.
Resultado em output.zip: 1882 bytes
Resultado em OUTROoutput.zip: 1882 bytes
```
OBS: O jobId (test@test.BBNB3I5AHL) será sempre único a cada execução. O valor dentro dos parêntesis após "Job state" é sempre o timestamp em milissegundos.
Para executar, a partir do código fonte, usando o Maven:
```
mvn exec:java -Dexec.args="config.properties"
```
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment