teuton 2.11.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +373 -674
- data/docs/devel/contribute.md +52 -0
- data/docs/devel/todo.md +162 -0
- data/docs/dsl/expect.md +5 -3
- data/lib/teuton/version.rb +1 -1
- metadata +7 -7
- data/docs/devel/README.md +0 -12
- data/docs/devel/contributions.md +0 -32
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[<< back](../../README.md)
|
|
2
|
+
|
|
3
|
+
# Contributing
|
|
4
|
+
|
|
5
|
+
List of things to do, classified into 3 sections:
|
|
6
|
+
* (A) I know read and write.
|
|
7
|
+
* (B) I work as IT teacher
|
|
8
|
+
* (C) I want to program using Ruby language
|
|
9
|
+
|
|
10
|
+
> I write this list without any criteria.
|
|
11
|
+
> Only an unordered list of interesting/usefull things to be done.
|
|
12
|
+
|
|
13
|
+
## Section A
|
|
14
|
+
|
|
15
|
+
Documentation
|
|
16
|
+
|
|
17
|
+
* Revise documentation.
|
|
18
|
+
* Make videos showing how to use this tool
|
|
19
|
+
* Video about download and install this tool
|
|
20
|
+
* Test installation scripts
|
|
21
|
+
* Vídeo with Windows installation.
|
|
22
|
+
* Video using examples 01 to 05...
|
|
23
|
+
* Write a special documentation for novice
|
|
24
|
+
|
|
25
|
+
## Section B
|
|
26
|
+
|
|
27
|
+
* Create your own (simple or complex) teuton tests.
|
|
28
|
+
* Upload your own tests to github.com/teuton-software/challenge repository.
|
|
29
|
+
* Make videos showing how to create our own tests and run it on VMs.
|
|
30
|
+
|
|
31
|
+
## Section C
|
|
32
|
+
|
|
33
|
+
Contact with us to help develop this tool.
|
|
34
|
+
|
|
35
|
+
1. Make sure you have Ruby installed
|
|
36
|
+
1. Fork it and clone it
|
|
37
|
+
1. Create your feature branch (`git checkout -b my-new-feature`)
|
|
38
|
+
1. Commit your changes (`git commit -am 'Add some feature'`)
|
|
39
|
+
1. Push to the branch (`git push origin my-new-feature`)
|
|
40
|
+
1. Create new Pull Request.
|
|
41
|
+
|
|
42
|
+
> You can also [create issues](https://github.com/teuton-software/teuton/issues) with your requests, incidences or suggestions.
|
|
43
|
+
|
|
44
|
+
**Development environment installation**
|
|
45
|
+
|
|
46
|
+
* git clone REPO
|
|
47
|
+
* install ruby-dev or ruby-devel
|
|
48
|
+
* debian => sudo apt install ruby-dev build-essential
|
|
49
|
+
* debian => ssh make gcc ruby-devel
|
|
50
|
+
* gem install bundler
|
|
51
|
+
* bundle install
|
|
52
|
+
* rake
|
data/docs/devel/todo.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
[<< back](../../README.md)
|
|
2
|
+
|
|
3
|
+
# Roadmap Teuton v3.0.0 - 20260209
|
|
4
|
+
|
|
5
|
+
**Cambios menores:**
|
|
6
|
+
|
|
7
|
+
* "Limpiar" las funciones "deprecated"
|
|
8
|
+
* Cambiar "teuton readme" por "teuton doc".
|
|
9
|
+
* Modificar código, documentación y los ejemplos
|
|
10
|
+
* Modificar los ejemplos de dvarrui/teuton-tests
|
|
11
|
+
* Añadir opciones de lenguaje a `teuton doc`.
|
|
12
|
+
* Por defecto se usará `lang=en`.
|
|
13
|
+
* Pero poder especificar el idioma usando el paráemetro `lang`. Por ejemplo :`teuton doc --lang=es`
|
|
14
|
+
* Ampliar las estadísticas de salida.
|
|
15
|
+
* Improve RESUME report or create stat-report, with stat information.
|
|
16
|
+
* the worst target/task/case,
|
|
17
|
+
* the best target/task/case,
|
|
18
|
+
* the slowest target/task/case,
|
|
19
|
+
* the fastest target/task/case, etc.
|
|
20
|
+
* Related targets: group of targets that always have the same state in every case.
|
|
21
|
+
|
|
22
|
+
**Cambios mayores:**
|
|
23
|
+
|
|
24
|
+
* Aplicar las recomendaciones del informe de seguridad de Andrés.
|
|
25
|
+
* Crear nueva gema `teuton-panel` (v2) que sustituirá la versión obsoleta actual.
|
|
26
|
+
* Modificar/ampliar las funciones de `teuton config` para facilitar el trabajo a `teuton-panel`.
|
|
27
|
+
* tt_include
|
|
28
|
+
* tt_include_params
|
|
29
|
+
* aplanar/desaplanar config file.
|
|
30
|
+
* Nueva feature "eventos".
|
|
31
|
+
* [Propuesta](https://github.com/dvarrui/teuton-book/blob/main/docs/03.eventos/index.md)
|
|
32
|
+
* Nueva gema `teuton-panel`
|
|
33
|
+
* Nuevo repo `teuton-book`: para documentación, tutoriales en español.
|
|
34
|
+
|
|
35
|
+
**teuton-panel (v2.0.0)**
|
|
36
|
+
|
|
37
|
+
Consultar en el repostorio `teuton-panel`. EN PROCESO!!!
|
|
38
|
+
|
|
39
|
+
* config cases IMPORTANTE:
|
|
40
|
+
* config/remote:
|
|
41
|
+
* accept-remote-config. activar/desactivar configuraciones remotas
|
|
42
|
+
* Acceptar post formulario y vía get curl con ruta.
|
|
43
|
+
* config/list: mostrar listado con info de alumnos
|
|
44
|
+
* Elegir ubicación de almacenamiento de las configuraciones
|
|
45
|
+
* run BAJA PRIORIDAD:
|
|
46
|
+
* Ejecutar por el profesor
|
|
47
|
+
* Todos
|
|
48
|
+
* a una selección
|
|
49
|
+
* El alumno solicita su propia ejecución vía curl
|
|
50
|
+
* every: repeticiones en bucle de I iteraciones, cada T tiempo.
|
|
51
|
+
* Elegir ubicación de almacenamiento de los informes
|
|
52
|
+
* Al finalizar cada ejecución se muestre un listado con los resultados
|
|
53
|
+
* readme/doc BAJA PRIORIDAD:
|
|
54
|
+
* activar auto "teuton doc" a página web para los alumnos.
|
|
55
|
+
* config panel:
|
|
56
|
+
* panel/new: crear fichero de configuración del panel
|
|
57
|
+
* panel/save: save configuración del panel
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
# TODO list para el FUTURO
|
|
62
|
+
|
|
63
|
+
## Ideas
|
|
64
|
+
|
|
65
|
+
Esta es una lista de ideas para que no se me olvide... lo podemos ir ajustando 😊
|
|
66
|
+
|
|
67
|
+
* **IDEA**. Editor de tests:
|
|
68
|
+
* Editor de tests ?! .... lo veo complejo... a menos que se empiece por una versión simplificada..
|
|
69
|
+
* El DSL es tan sencillo que no le veo sentido a un editor de retos.
|
|
70
|
+
* Pero si podemos aprovechar y crear una" librería " de los módulos más frecuentes?!... una ayuda para facilitar la creación de test... esto se puede emparejar con el editor de test...
|
|
71
|
+
* **SEND**. `send :email_to => :members_emails`... esto requiere que cada caso tenga un email y que además el profesor tenga configurado el acceso a su cuenta de correo... para poder enviar copias de los informes....
|
|
72
|
+
* **HELP**. When students demand help they could recibe some advises. More ideas: bonus, lives, etc.
|
|
73
|
+
* **FEATURE - SAVE STATE**:
|
|
74
|
+
* Save case state or progress. var/tesname/states.db ¿?
|
|
75
|
+
* save partial grades. Before play challenge read previous moodle.cvs.
|
|
76
|
+
* Then play challenge and when creates new moodle.csv... we could preseve old cases(grades) 100% for example.
|
|
77
|
+
* Create 2 evaluation modes:
|
|
78
|
+
1. Evaluate targets (current mode): `start eval: :targets`
|
|
79
|
+
1. Evaluate task: `start eval: :groups` and perhaps add group weight?
|
|
80
|
+
1. config file with `tt_eval: groups`
|
|
81
|
+
* Propuestas de sdelquin
|
|
82
|
+
* Docker en vez de vagrant?? → https://www.cloudbees.com/blog/ssh-into-a-docker-container-how-to-execute-your-commands
|
|
83
|
+
* Tablas "bonitas" en terminal → https://github.com/piotrmurach/tty-markdown#17-table
|
|
84
|
+
* Documentación en https://readthedocs.org/ ??
|
|
85
|
+
* **DOCUMENTACION**
|
|
86
|
+
* Snode Dockerfile with SSH server
|
|
87
|
+
* **PENSAR**: Script to set **static IP**
|
|
88
|
+
* FEATURE: Auto Parse new input format, and detect parse errors
|
|
89
|
+
* **FEATURE - EXPORT**. Sign reports generated with GPG... just to verify autenticity if needed.
|
|
90
|
+
* **ngrok**:
|
|
91
|
+
* Doc ngrok use. Use cases and tutorial
|
|
92
|
+
* Doc host1_route combined with ngrok
|
|
93
|
+
* **FEATURE**: Host object so "host(:debian)" return a Host object so
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
h = host(:debian)
|
|
97
|
+
h.ip -> get(:debian_ip)
|
|
98
|
+
h.username -> get(:debian_username)
|
|
99
|
+
h.password -> get(:debian_password)
|
|
100
|
+
h.port
|
|
101
|
+
h.route
|
|
102
|
+
h.protocol
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
* **PENSAR**: Change export to show **command output** into reports.
|
|
106
|
+
|
|
107
|
+
## Internal changes
|
|
108
|
+
|
|
109
|
+
* Implement "scp" over Telnet ¿?
|
|
110
|
+
* Default port values ssh/telnet and default username values (root, Administrator)
|
|
111
|
+
* Use travis
|
|
112
|
+
* `expect_equal "camaleon"`, same as `expect result.equal "camaleon"`.
|
|
113
|
+
* REVISE: verify get(:key) and get('key') works fine!
|
|
114
|
+
* REVISE: Formatter: xml
|
|
115
|
+
* HallOfFame test
|
|
116
|
+
* Rename Laboratory to Checker
|
|
117
|
+
* Unify messages ERROR, INFO, WARN. etc
|
|
118
|
+
* Add tt_label as alias of tt_members
|
|
119
|
+
* **TEST**: actualizar las pruebas con vagrant para la versión actual. Mejora de la calidad del código.
|
|
120
|
+
* **DOCS** PROMOCIONAR. Documentar y hacer videos. Tener foros de la comunidad o presencia en reddit o stackoverflow.... o algo parecido???
|
|
121
|
+
|
|
122
|
+
## Docker/podman integration
|
|
123
|
+
|
|
124
|
+
Host definition example:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
host1_ip:
|
|
128
|
+
host1_port:
|
|
129
|
+
host1_username:
|
|
130
|
+
host1_password:
|
|
131
|
+
|
|
132
|
+
host1_docker_image: "debian:latest"
|
|
133
|
+
host1_docker_name (default value) -> "testname_hostname_case01" as dockername
|
|
134
|
+
host1_docker_preffix: (Code added to docker name) "idp" -> "idp_hostname_case01"
|
|
135
|
+
|
|
136
|
+
host1_docker_vol_rw: "_, _, _"
|
|
137
|
+
host1_docker_vol_ro: "_, _, _"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
* Folders to mount docker volumes
|
|
141
|
+
Create temp folders for every case/host.
|
|
142
|
+
but... When create theses folders?
|
|
143
|
+
(1) While running? This may be done automaticaly at running first step
|
|
144
|
+
It's easy but temp folders that not exists before running test
|
|
145
|
+
(2) Before run? New command as: "teuton create-temp" TESTNAME
|
|
146
|
+
It's usefull if we need to put files into temp folders (volumes)
|
|
147
|
+
before running test.
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
var
|
|
151
|
+
└── test_1
|
|
152
|
+
└── tmp
|
|
153
|
+
├── case01
|
|
154
|
+
│ ├── host1
|
|
155
|
+
│ └── host2
|
|
156
|
+
├── case02
|
|
157
|
+
│ ├── host1
|
|
158
|
+
│ └── host2
|
|
159
|
+
└── case03
|
|
160
|
+
├── host1
|
|
161
|
+
└── host2
|
|
162
|
+
```
|
data/docs/dsl/expect.md
CHANGED
|
@@ -97,8 +97,10 @@ run 'cat /etc/passwd'
|
|
|
97
97
|
|
|
98
98
|
Then we can check result with:
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
```ruby
|
|
101
|
+
expect result.find(/obiwan|kenobi/).count.eq(1) # only 1 line with "obiwan" or "kenobi".
|
|
102
|
+
expect result.find(/darth/).find(/vader/).count.gt(2) # more than 2 lines with texts "darth" and "vader".
|
|
103
|
+
expect result.not_find('#').find('yoda').count.lt(3) # less than 3 lines with text "yoda" and without "#" symbol.
|
|
104
|
+
```
|
|
103
105
|
|
|
104
106
|
Read more about [result](result.md) object.
|
data/lib/teuton/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: teuton
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Vargas Ruiz
|
|
@@ -131,9 +131,9 @@ extra_rdoc_files:
|
|
|
131
131
|
- docs/commands/readme.md
|
|
132
132
|
- docs/commands/run.md
|
|
133
133
|
- docs/config_file.md
|
|
134
|
-
- docs/devel/
|
|
135
|
-
- docs/devel/contributions.md
|
|
134
|
+
- docs/devel/contribute.md
|
|
136
135
|
- docs/devel/diagram.md
|
|
136
|
+
- docs/devel/todo.md
|
|
137
137
|
- docs/dsl/README.md
|
|
138
138
|
- docs/dsl/expect.md
|
|
139
139
|
- docs/dsl/export.md
|
|
@@ -197,9 +197,9 @@ files:
|
|
|
197
197
|
- docs/commands/readme.md
|
|
198
198
|
- docs/commands/run.md
|
|
199
199
|
- docs/config_file.md
|
|
200
|
-
- docs/devel/
|
|
201
|
-
- docs/devel/contributions.md
|
|
200
|
+
- docs/devel/contribute.md
|
|
202
201
|
- docs/devel/diagram.md
|
|
202
|
+
- docs/devel/todo.md
|
|
203
203
|
- docs/dsl/README.md
|
|
204
204
|
- docs/dsl/expect.md
|
|
205
205
|
- docs/dsl/export.md
|
|
@@ -349,7 +349,7 @@ files:
|
|
|
349
349
|
- lib/teuton/version.rb
|
|
350
350
|
homepage: https://github.com/teuton-software/teuton
|
|
351
351
|
licenses:
|
|
352
|
-
-
|
|
352
|
+
- MPL-2.0
|
|
353
353
|
metadata: {}
|
|
354
354
|
rdoc_options: []
|
|
355
355
|
require_paths:
|
|
@@ -365,7 +365,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
365
365
|
- !ruby/object:Gem::Version
|
|
366
366
|
version: '0'
|
|
367
367
|
requirements: []
|
|
368
|
-
rubygems_version:
|
|
368
|
+
rubygems_version: 4.0.10
|
|
369
369
|
specification_version: 4
|
|
370
370
|
summary: Teuton (Infrastructure test)
|
|
371
371
|
test_files: []
|
data/docs/devel/README.md
DELETED
data/docs/devel/contributions.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# TO-DO list
|
|
3
|
-
|
|
4
|
-
List of things to do, classified into 3 sections:
|
|
5
|
-
* (A) I know read and write.
|
|
6
|
-
* (B) I work as IT teacher
|
|
7
|
-
* (C) I want to program ruby language
|
|
8
|
-
|
|
9
|
-
> I write this list without any criteria.
|
|
10
|
-
> Only an unordered list of interesting/usefull things to be done.
|
|
11
|
-
|
|
12
|
-
## Section A
|
|
13
|
-
|
|
14
|
-
Documentation
|
|
15
|
-
|
|
16
|
-
* Revise documentation.
|
|
17
|
-
* Make videos showing how to use this tool
|
|
18
|
-
* Video about download and install this tool
|
|
19
|
-
* Test installation scripts
|
|
20
|
-
* Vídeo with Windows installation.
|
|
21
|
-
* Video using examples 01 to 05...
|
|
22
|
-
* Write a special documentation for novice
|
|
23
|
-
|
|
24
|
-
## Section B
|
|
25
|
-
|
|
26
|
-
* Create your own (simple or complex) teuton tests.
|
|
27
|
-
* Upload your own tests to github.com/teuton-software/challenge repository.
|
|
28
|
-
|
|
29
|
-
## Section C
|
|
30
|
-
|
|
31
|
-
* Contact with us to help develop this tool :-)
|
|
32
|
-
|