teuton 2.8.0 → 2.9.1
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/README.md +4 -4
- data/docs/changelog/changelog.1.md +119 -0
- data/docs/changelog/changelog.2.md +109 -0
- data/docs/diagram.md +10 -10
- data/docs/dsl/expect.md +76 -25
- data/docs/dsl/result.md +24 -30
- data/docs/learn/02-target.md +32 -27
- data/docs/learn/25-expect-result.md +39 -0
- data/docs/learn/26-expect_sequence.md +79 -0
- data/docs/learn/27-run_script.md +91 -0
- data/docs/learn/28-upload.md +55 -0
- data/docs/learn/README.md +4 -15
- data/docs/videos.md +14 -8
- data/lib/teuton/case/case.rb +3 -2
- data/lib/teuton/case/config.rb +0 -5
- data/lib/teuton/case/dsl/all.rb +5 -1
- data/lib/teuton/case/dsl/expect.rb +13 -42
- data/lib/teuton/case/dsl/expect_exitcode.rb +31 -0
- data/lib/teuton/case/dsl/expect_sequence.rb +173 -0
- data/lib/teuton/case/dsl/getset.rb +0 -1
- data/lib/teuton/case/dsl/host.rb +5 -0
- data/lib/teuton/case/dsl/macro.rb +7 -3
- data/lib/teuton/case/dsl/run_script.rb +35 -0
- data/lib/teuton/case/dsl/upload.rb +42 -0
- data/lib/teuton/case/dsl/weight.rb +12 -0
- data/lib/teuton/case/host.rb +68 -0
- data/lib/teuton/case/play.rb +2 -6
- data/lib/teuton/{utils → case}/result/ext_array.rb +0 -1
- data/lib/teuton/{utils → case}/result/ext_compare.rb +0 -1
- data/lib/teuton/{utils → case}/result/ext_filter.rb +0 -2
- data/lib/teuton/{utils → case}/result/result.rb +13 -21
- data/lib/teuton/check/checker.rb +82 -0
- data/lib/teuton/check/dsl/all.rb +37 -0
- data/lib/teuton/check/{builtin.rb → dsl/builtin.rb} +1 -3
- data/lib/teuton/check/dsl/expect.rb +90 -0
- data/lib/teuton/check/dsl/expect_sequence.rb +29 -0
- data/lib/teuton/check/dsl/getset.rb +23 -0
- data/lib/teuton/check/dsl/run.rb +35 -0
- data/lib/teuton/check/main.rb +29 -0
- data/lib/teuton/check/show.rb +75 -100
- data/lib/teuton/deprecated/application_test.rb +32 -0
- data/lib/teuton/readme/dsl/all.rb +32 -0
- data/lib/teuton/readme/dsl/expect.rb +29 -0
- data/lib/teuton/readme/dsl/getset.rb +33 -0
- data/lib/teuton/readme/dsl/run.rb +51 -0
- data/lib/teuton/readme/lang.rb +8 -10
- data/lib/teuton/readme/main.rb +27 -0
- data/lib/teuton/readme/readme.rb +31 -58
- data/lib/teuton/readme/result.rb +7 -0
- data/lib/teuton/utils/configfile_reader.rb +25 -10
- data/lib/teuton/utils/logger.rb +32 -0
- data/lib/teuton/utils/verbose.rb +1 -1
- data/lib/teuton/version.rb +1 -1
- data/lib/teuton.rb +6 -5
- metadata +45 -39
- data/docs/CHANGELOG.md +0 -10
- data/docs/changelog/v2.0.md +0 -18
- data/docs/changelog/v2.1.md +0 -54
- data/docs/changelog/v2.2.md +0 -42
- data/docs/changelog/v2.3.md +0 -10
- data/docs/changelog/v2.4.md +0 -41
- data/docs/changelog/v2.5.md +0 -6
- data/docs/changelog/v2.6.md +0 -4
- data/docs/changelog/v2.7.md +0 -23
- data/docs/changelog/v2.8.md +0 -11
- data/docs/changelog/version2.1.md +0 -4
- data/docs/learn/videos.md +0 -13
- data/lib/teuton/case/execute/copy_ssh.rb +0 -70
- data/lib/teuton/check/dsl.rb +0 -112
- data/lib/teuton/check/laboratory.rb +0 -59
- data/lib/teuton/readme/dsl.rb +0 -126
- /data/lib/teuton/case/dsl/{goto.rb → run.rb} +0 -0
- /data/lib/teuton/{utils → deprecated}/application.rb +0 -0
- /data/lib/teuton/{case/deprecated → deprecated}/runner.rb +0 -0
- /data/lib/teuton/{case/deprecated → deprecated}/utils.rb +0 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
require "rainbow"
|
2
|
+
|
3
|
+
class Logger
|
4
|
+
@verbose = true
|
5
|
+
|
6
|
+
def self.verbose=(value)
|
7
|
+
@verbose = value
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.verbose
|
11
|
+
@verbose
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.info(message)
|
15
|
+
puts message if @verbose
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.warn(message)
|
19
|
+
text = Rainbow(message).bright.yellow
|
20
|
+
info(text)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.error(message)
|
24
|
+
text = Rainbow(message).bright.red
|
25
|
+
info(text)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.debug(message)
|
29
|
+
text = Rainbow(message).white
|
30
|
+
info(text)
|
31
|
+
end
|
32
|
+
end
|
data/lib/teuton/utils/verbose.rb
CHANGED
data/lib/teuton/version.rb
CHANGED
data/lib/teuton.rb
CHANGED
@@ -8,15 +8,16 @@ module Teuton
|
|
8
8
|
|
9
9
|
def self.check(projectpath, options = {})
|
10
10
|
Project.add_input_params(projectpath, options)
|
11
|
-
require_dsl_and_script("teuton/check/
|
12
|
-
|
11
|
+
require_dsl_and_script("teuton/check/main")
|
12
|
+
require_relative "teuton/check/checker"
|
13
|
+
checker = Checker.new(
|
13
14
|
Project.value[:script_path],
|
14
15
|
Project.value[:config_path]
|
15
16
|
)
|
16
17
|
if options["onlyconfig"]
|
17
|
-
|
18
|
+
checker.show_onlyconfig
|
18
19
|
else
|
19
|
-
|
20
|
+
checker.show
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
@@ -28,7 +29,7 @@ module Teuton
|
|
28
29
|
|
29
30
|
def self.readme(projectpath, options = {})
|
30
31
|
Project.add_input_params(projectpath, options)
|
31
|
-
require_dsl_and_script("teuton/readme/
|
32
|
+
require_dsl_and_script("teuton/readme/main") # Define DSL
|
32
33
|
readme = Readme.new(
|
33
34
|
Project.value[:script_path],
|
34
35
|
Project.value[:config_path]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teuton
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Vargas Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|
@@ -124,18 +124,9 @@ extensions: []
|
|
124
124
|
extra_rdoc_files:
|
125
125
|
- README.md
|
126
126
|
- LICENSE
|
127
|
-
- docs/
|
127
|
+
- docs/changelog/changelog.1.md
|
128
|
+
- docs/changelog/changelog.2.md
|
128
129
|
- docs/changelog/todo.md
|
129
|
-
- docs/changelog/v2.0.md
|
130
|
-
- docs/changelog/v2.1.md
|
131
|
-
- docs/changelog/v2.2.md
|
132
|
-
- docs/changelog/v2.3.md
|
133
|
-
- docs/changelog/v2.4.md
|
134
|
-
- docs/changelog/v2.5.md
|
135
|
-
- docs/changelog/v2.6.md
|
136
|
-
- docs/changelog/v2.7.md
|
137
|
-
- docs/changelog/v2.8.md
|
138
|
-
- docs/changelog/version2.1.md
|
139
130
|
- docs/commands/README.md
|
140
131
|
- docs/commands/example_check.md
|
141
132
|
- docs/commands/example_run.md
|
@@ -188,25 +179,19 @@ extra_rdoc_files:
|
|
188
179
|
- docs/learn/22-result.md
|
189
180
|
- docs/learn/23-test-code.md
|
190
181
|
- docs/learn/24-test-sql.md
|
182
|
+
- docs/learn/25-expect-result.md
|
183
|
+
- docs/learn/26-expect_sequence.md
|
184
|
+
- docs/learn/27-run_script.md
|
185
|
+
- docs/learn/28-upload.md
|
191
186
|
- docs/learn/README.md
|
192
|
-
- docs/learn/videos.md
|
193
187
|
- docs/videos.md
|
194
188
|
files:
|
195
189
|
- LICENSE
|
196
190
|
- README.md
|
197
191
|
- bin/teuton
|
198
|
-
- docs/
|
192
|
+
- docs/changelog/changelog.1.md
|
193
|
+
- docs/changelog/changelog.2.md
|
199
194
|
- docs/changelog/todo.md
|
200
|
-
- docs/changelog/v2.0.md
|
201
|
-
- docs/changelog/v2.1.md
|
202
|
-
- docs/changelog/v2.2.md
|
203
|
-
- docs/changelog/v2.3.md
|
204
|
-
- docs/changelog/v2.4.md
|
205
|
-
- docs/changelog/v2.5.md
|
206
|
-
- docs/changelog/v2.6.md
|
207
|
-
- docs/changelog/v2.7.md
|
208
|
-
- docs/changelog/v2.8.md
|
209
|
-
- docs/changelog/version2.1.md
|
210
195
|
- docs/commands/README.md
|
211
196
|
- docs/commands/example_check.md
|
212
197
|
- docs/commands/example_run.md
|
@@ -259,8 +244,11 @@ files:
|
|
259
244
|
- docs/learn/22-result.md
|
260
245
|
- docs/learn/23-test-code.md
|
261
246
|
- docs/learn/24-test-sql.md
|
247
|
+
- docs/learn/25-expect-result.md
|
248
|
+
- docs/learn/26-expect_sequence.md
|
249
|
+
- docs/learn/27-run_script.md
|
250
|
+
- docs/learn/28-upload.md
|
262
251
|
- docs/learn/README.md
|
263
|
-
- docs/learn/videos.md
|
264
252
|
- docs/videos.md
|
265
253
|
- lib/teuton.rb
|
266
254
|
- lib/teuton/case/builtin/main.rb
|
@@ -272,24 +260,32 @@ files:
|
|
272
260
|
- lib/teuton/case/case.rb
|
273
261
|
- lib/teuton/case/close.rb
|
274
262
|
- lib/teuton/case/config.rb
|
275
|
-
- lib/teuton/case/deprecated/runner.rb
|
276
|
-
- lib/teuton/case/deprecated/utils.rb
|
277
263
|
- lib/teuton/case/dsl/all.rb
|
278
264
|
- lib/teuton/case/dsl/expect.rb
|
265
|
+
- lib/teuton/case/dsl/expect_exitcode.rb
|
266
|
+
- lib/teuton/case/dsl/expect_sequence.rb
|
279
267
|
- lib/teuton/case/dsl/getset.rb
|
280
|
-
- lib/teuton/case/dsl/
|
268
|
+
- lib/teuton/case/dsl/host.rb
|
281
269
|
- lib/teuton/case/dsl/log.rb
|
282
270
|
- lib/teuton/case/dsl/macro.rb
|
271
|
+
- lib/teuton/case/dsl/run.rb
|
272
|
+
- lib/teuton/case/dsl/run_script.rb
|
283
273
|
- lib/teuton/case/dsl/send.rb
|
284
274
|
- lib/teuton/case/dsl/target.rb
|
285
275
|
- lib/teuton/case/dsl/unique.rb
|
286
|
-
- lib/teuton/case/
|
276
|
+
- lib/teuton/case/dsl/upload.rb
|
277
|
+
- lib/teuton/case/dsl/weight.rb
|
287
278
|
- lib/teuton/case/execute/execute_base.rb
|
288
279
|
- lib/teuton/case/execute/execute_local.rb
|
289
280
|
- lib/teuton/case/execute/execute_manager.rb
|
290
281
|
- lib/teuton/case/execute/execute_ssh.rb
|
291
282
|
- lib/teuton/case/execute/execute_telnet.rb
|
283
|
+
- lib/teuton/case/host.rb
|
292
284
|
- lib/teuton/case/play.rb
|
285
|
+
- lib/teuton/case/result/ext_array.rb
|
286
|
+
- lib/teuton/case/result/ext_compare.rb
|
287
|
+
- lib/teuton/case/result/ext_filter.rb
|
288
|
+
- lib/teuton/case/result/result.rb
|
293
289
|
- lib/teuton/case_manager/case_manager.rb
|
294
290
|
- lib/teuton/case_manager/check_cases.rb
|
295
291
|
- lib/teuton/case_manager/dsl.rb
|
@@ -299,19 +295,33 @@ files:
|
|
299
295
|
- lib/teuton/case_manager/send_manager.rb
|
300
296
|
- lib/teuton/case_manager/show_report.rb
|
301
297
|
- lib/teuton/case_manager/utils.rb
|
302
|
-
- lib/teuton/check/
|
303
|
-
- lib/teuton/check/dsl.rb
|
304
|
-
- lib/teuton/check/
|
298
|
+
- lib/teuton/check/checker.rb
|
299
|
+
- lib/teuton/check/dsl/all.rb
|
300
|
+
- lib/teuton/check/dsl/builtin.rb
|
301
|
+
- lib/teuton/check/dsl/expect.rb
|
302
|
+
- lib/teuton/check/dsl/expect_sequence.rb
|
303
|
+
- lib/teuton/check/dsl/getset.rb
|
304
|
+
- lib/teuton/check/dsl/run.rb
|
305
|
+
- lib/teuton/check/main.rb
|
305
306
|
- lib/teuton/check/show.rb
|
306
307
|
- lib/teuton/cli.rb
|
308
|
+
- lib/teuton/deprecated/application.rb
|
309
|
+
- lib/teuton/deprecated/application_test.rb
|
310
|
+
- lib/teuton/deprecated/runner.rb
|
311
|
+
- lib/teuton/deprecated/utils.rb
|
307
312
|
- lib/teuton/files/README.md
|
308
313
|
- lib/teuton/files/config.yaml
|
309
314
|
- lib/teuton/files/start.rb
|
310
315
|
- lib/teuton/files/template/case.html
|
311
316
|
- lib/teuton/files/template/resume.html
|
312
|
-
- lib/teuton/readme/dsl.rb
|
317
|
+
- lib/teuton/readme/dsl/all.rb
|
318
|
+
- lib/teuton/readme/dsl/expect.rb
|
319
|
+
- lib/teuton/readme/dsl/getset.rb
|
320
|
+
- lib/teuton/readme/dsl/run.rb
|
313
321
|
- lib/teuton/readme/lang.rb
|
322
|
+
- lib/teuton/readme/main.rb
|
314
323
|
- lib/teuton/readme/readme.rb
|
324
|
+
- lib/teuton/readme/result.rb
|
315
325
|
- lib/teuton/report/formatter/base_formatter.rb
|
316
326
|
- lib/teuton/report/formatter/default/array.rb
|
317
327
|
- lib/teuton/report/formatter/default/colored_text.rb
|
@@ -330,14 +340,10 @@ files:
|
|
330
340
|
- lib/teuton/report/formatter/resume/yaml.rb
|
331
341
|
- lib/teuton/report/report.rb
|
332
342
|
- lib/teuton/skeleton.rb
|
333
|
-
- lib/teuton/utils/application.rb
|
334
343
|
- lib/teuton/utils/configfile_reader.rb
|
344
|
+
- lib/teuton/utils/logger.rb
|
335
345
|
- lib/teuton/utils/name_file_finder.rb
|
336
346
|
- lib/teuton/utils/project.rb
|
337
|
-
- lib/teuton/utils/result/ext_array.rb
|
338
|
-
- lib/teuton/utils/result/ext_compare.rb
|
339
|
-
- lib/teuton/utils/result/ext_filter.rb
|
340
|
-
- lib/teuton/utils/result/result.rb
|
341
347
|
- lib/teuton/utils/settings.rb
|
342
348
|
- lib/teuton/utils/verbose.rb
|
343
349
|
- lib/teuton/version.rb
|
data/docs/CHANGELOG.md
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
[<< back](../README.md)
|
2
|
-
|
3
|
-
# Changelog
|
4
|
-
|
5
|
-
* [version 2.5](changelog/v2.5.md)
|
6
|
-
* [version 2.4](changelog/v2.4.md)
|
7
|
-
* [version 2.3](changelog/v2.3.md)
|
8
|
-
* [version 2.2](changelog/v2.2.md)
|
9
|
-
* [version 2.1](changelog/v2.1.md)
|
10
|
-
* [version 2.0](changelog/v2.0.md)
|
data/docs/changelog/v2.0.md
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
[<< back](../CHANGELOG.md)
|
2
|
-
|
3
|
-
# CHANGELOG
|
4
|
-
|
5
|
-
## 2019
|
6
|
-
|
7
|
-
|Date |Version |Changes |
|
8
|
-
|--------- |------- |------- |
|
9
|
-
| August 2019 | 2.0.4 | TEUTON project grew up and was divided into the folowing repositories: teuton, challenges, panel, resources and vagrant. Documentation has been moved into respository teuton wiki. Only maintain English docs. |
|
10
|
-
|January 2019 |1.10.0 | SysadminGame change his name by TEUTON. "project" command replaced by "teuton". Challenges (Teuton scripts) moved to "teuton-challenges" github repository. Execute "rake get_challenges" to get sample teuton challenges |
|
11
|
-
|
12
|
-
## 2017
|
13
|
-
|
14
|
-
|Date |Version |Changes |
|
15
|
-
|--------- |------- |------- |
|
16
|
-
|July 2017 |1.0.0 | New stable version |
|
17
|
-
|June 2017 |0.22.1 | * Now it's posible to use config files with YAML and JSON format |
|
18
|
-
| | | * Preparing migration of CLI command to use Thor gem |
|
data/docs/changelog/v2.1.md
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
[<< back](../CHANGELOG.md)
|
2
|
-
|
3
|
-
# CHANGELOG teuton v 2.1
|
4
|
-
|
5
|
-
# 1. Export grades on csv file using Moodle format
|
6
|
-
|
7
|
-
* Automaticaly exports `moodle.csv` file with all cases grades, using adecuate format so it could be imported directly into Moodle platform.
|
8
|
-
* We need to configure some params like this:
|
9
|
-
|
10
|
-
```
|
11
|
-
---
|
12
|
-
:global:
|
13
|
-
:cases:
|
14
|
-
- :tt_members: ...
|
15
|
-
:tt_moodle_id: User Moodle Identity
|
16
|
-
```
|
17
|
-
|
18
|
-
# 2. readme keyword
|
19
|
-
|
20
|
-
We currently use the "teuton readme pry-folder" command to export README file from the challenge.
|
21
|
-
|
22
|
-
* This example shows how to use readme keyword to add group description or target description:
|
23
|
-
|
24
|
-
```
|
25
|
-
group "GROUPNAME" do
|
26
|
-
readme "Description for this group"
|
27
|
-
|
28
|
-
target "target1"
|
29
|
-
readme "Description for this target"
|
30
|
-
goto :host, :exec => 'id root'
|
31
|
-
expec_one 'root'
|
32
|
-
```
|
33
|
-
|
34
|
-
# 3. Installation process
|
35
|
-
|
36
|
-
* Use Bundler to install gems instead of rake.
|
37
|
-
* It will be usefull use sysadming-game as gem? And install it with `gem install teuton`.
|
38
|
-
* Vagrant: test how to use vagrant machines as case hosts.
|
39
|
-
|
40
|
-
# 4. Info sobre novedades de la versión 2.1
|
41
|
-
|
42
|
-
1. Teuton readme y dsl readme
|
43
|
-
2. Macros de define macro
|
44
|
-
3. Export yaml y html
|
45
|
-
4. Teuton --no-color
|
46
|
-
5. teuton run --case
|
47
|
-
6. teuton run --cname
|
48
|
-
7. teuton run --cpath
|
49
|
-
8. actualizar formatos de salida
|
50
|
-
9. instalación mediante gemas
|
51
|
-
10. teuton panel
|
52
|
-
11. teuton client y server
|
53
|
-
12. nuevos nombres de comandos...
|
54
|
-
13. cambio de goto a run
|
data/docs/changelog/v2.2.md
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
[<< back](../CHANGELOG.md)
|
2
|
-
|
3
|
-
# Teuton (version 2.2)
|
4
|
-
|
5
|
-
## New features
|
6
|
-
|
7
|
-
* Let's see new features examples:
|
8
|
-
* 10 result and moodle_id
|
9
|
-
* 11 get_vars
|
10
|
-
* 12 alias
|
11
|
-
* 13 include (tt_include config param)
|
12
|
-
* 14 macros
|
13
|
-
|
14
|
-
**Configuration file**
|
15
|
-
|
16
|
-
* Por defecto los valores de clave de los ficheros de configuración serán Strings en lugar de símbolos, aunque lo símbolos seguirán funcionando.
|
17
|
-
|
18
|
-
**get_vars: To think - We are not sure about this***
|
19
|
-
|
20
|
-
* "get" keyword simplification: Simplify getting and setting params process. For example: `_username_`, may be alias for `get(:username)`. Then
|
21
|
-
|
22
|
-
```
|
23
|
-
target "Create user #{_username_}"
|
24
|
-
run "id #{_username_}"
|
25
|
-
expect_one _username_
|
26
|
-
```
|
27
|
-
Same as
|
28
|
-
|
29
|
-
```
|
30
|
-
target "Create user "+get(:username)
|
31
|
-
run "id " + get(:username)
|
32
|
-
expect_one get(:username)
|
33
|
-
```
|
34
|
-
|
35
|
-
* Promocinar el proyecto:
|
36
|
-
* Documentar y hacer videos.
|
37
|
-
* Charlas y talleres
|
38
|
-
|
39
|
-
## Fixed
|
40
|
-
|
41
|
-
* Solucionar fallo en --cname
|
42
|
-
* Revisar doc options como cpanel
|
data/docs/changelog/v2.3.md
DELETED
data/docs/changelog/v2.4.md
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
## [2.4.5]
|
2
|
-
|
3
|
-
-- FIX: "expect_nothing" was always TRUE when SSH/Telnet connections fails!
|
4
|
-
Now when SSH/Telnet connections fails result contains "SSH: NO CONNECTION!"
|
5
|
-
So "expect_nothing" will fail.
|
6
|
-
|
7
|
-
## [2.4.4]
|
8
|
-
|
9
|
-
-- Modify: teuton check output colors and exit codes.
|
10
|
-
exit code 0 = check OK
|
11
|
-
exit code 1 = check error
|
12
|
-
-- Fix teuton check docs.
|
13
|
-
|
14
|
-
## [2.4.3]
|
15
|
-
|
16
|
-
- Fix: "expect_none" without params works as "expect result.count.eq 0"
|
17
|
-
- Add: "expect_nothing" that works as "expect result.count.eq 0".
|
18
|
-
|
19
|
-
## [2.4.2]
|
20
|
-
|
21
|
-
- Fix bug with result.grep_v(Array)
|
22
|
-
|
23
|
-
## [2.4.0]
|
24
|
-
|
25
|
-
New features:
|
26
|
-
- Hide feedback from reports: `export feedback: false`
|
27
|
-
- Add new DSL keyword: expect_last, expect_fisrt
|
28
|
-
- Remove os gem.
|
29
|
-
- Change test output colors to green as use others test tools.
|
30
|
-
- Change show DSL params. Accepts one param "verbose: NUMBER" to adjust verbosity output level on screen.
|
31
|
-
|
32
|
-
New doc and example:
|
33
|
-
- 14-alias
|
34
|
-
- 16-exit_codes
|
35
|
-
|
36
|
-
Bug fixed:
|
37
|
-
- All "expect*" keywords must require 2 arguments. The second is optional.
|
38
|
-
|
39
|
-
Revise
|
40
|
-
- Remove colors to log text
|
41
|
-
- teuton readme: macros, getvars, expect_last, expect_first
|
data/docs/changelog/v2.5.md
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
|
2
|
-
## [2.5.0]
|
3
|
-
|
4
|
-
- ADD: "tt_moodle_max_score" global configuration param. Teuton grades (0-100) are divided by this value when exporting data into "moodle.csv" output file.
|
5
|
-
- UPDATE: Revise documentation. Doc learn 10,11, 12,13 y 14. 10 result and moodle_id, 12 alias, 13 include, 14 macro, Doc tt_include
|
6
|
-
- UPDATE: Internal changes. Remove Colorize gem and replace with Rainbow.
|
data/docs/changelog/v2.6.md
DELETED
data/docs/changelog/v2.7.md
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
|
2
|
-
## [2.7.3] 20230607
|
3
|
-
|
4
|
-
- [FIX] Hall of fame now use Project class instead of Application.
|
5
|
-
|
6
|
-
## [2.7.2] 20230607
|
7
|
-
|
8
|
-
- [FIX] Fixed an issue that appeared when exporting reports without feedback after failing to connect to remote computer.
|
9
|
-
|
10
|
-
## [2.7.1]
|
11
|
-
|
12
|
-
- [FIX] Fixed an issue that appeared when executing test and fail connection to remote computer.
|
13
|
-
|
14
|
-
## [2.7.0]
|
15
|
-
|
16
|
-
New features:
|
17
|
-
- [ADD] "teuton config PROJECTPATH" will suggest suitable configuration for the project.
|
18
|
-
- [ADD] Every one line command output is registered into reports.
|
19
|
-
- [ADD] "expect_exit 1", check last command exit code is equal to 1.
|
20
|
-
|
21
|
-
Internal changes:
|
22
|
-
* Application class splited into Settings and Project classes
|
23
|
-
* Create SendManager similar to ExportManager
|
data/docs/changelog/v2.8.md
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
|
2
|
-
## [2.8.0] 20230630
|
3
|
-
|
4
|
-
expect:
|
5
|
-
- [ADD] "expect_ok" as "expect_exit 0 ".
|
6
|
-
- [ADD] "expect_fail" as "expect_exit NUMBER" where NUMBER > 0.
|
7
|
-
- [FIX] expect evaluation fail when there is no remote connection.
|
8
|
-
|
9
|
-
send:
|
10
|
-
- [UPDATE] Rename "remote_dir" send param to "dir".
|
11
|
-
- [UPDATE] send output messages
|
data/docs/learn/videos.md
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
|
2
|
-
By now there are no English videos. We are sorry!
|
3
|
-
But if you want to see Spanish videos, here you are:
|
4
|
-
|
5
|
-
Teuton (v2.0):
|
6
|
-
* [CHAPI19 - Charla Teuton](https://youtu.be/KFWQDfNAFxI?t=12221)
|
7
|
-
|
8
|
-
Sysadmingame (Teuton v1.0)
|
9
|
-
* [Sysadmingame (1 de 3): Instalación del programa](https://youtu.be/dnyMq9_KDco)
|
10
|
-
* [Sysadmingame (2 de 3): Crear un caso simple](https://youtu.be/0e2g5Izvc6c)
|
11
|
-
* [Sysadmingame (3 de 3): Crear un caso complejo](https://youtu.be/ebEK6OXH8kQ)
|
12
|
-
* [CHAPI16 - Charla sysadmingame](https://youtu.be/cNJaB5xzHHQ)
|
13
|
-
|
@@ -1,70 +0,0 @@
|
|
1
|
-
require "net/ssh"
|
2
|
-
require "net/sftp"
|
3
|
-
require "rainbow"
|
4
|
-
require_relative "../../utils/project"
|
5
|
-
require_relative "../../utils/verbose"
|
6
|
-
require_relative "execute_base"
|
7
|
-
|
8
|
-
class CopySSH < ExecuteBase
|
9
|
-
def call(host, localfilename)
|
10
|
-
# Check params
|
11
|
-
unless config.get("#{host}_route".to_sym) == "NODATA"
|
12
|
-
log("'copy script' requires direct host access!", :error)
|
13
|
-
return false
|
14
|
-
end
|
15
|
-
|
16
|
-
host = host.to_s
|
17
|
-
|
18
|
-
begin
|
19
|
-
if sessions[host].nil?
|
20
|
-
# Open new SSH session
|
21
|
-
ip = config.get("#{host}_ip".to_sym).to_s
|
22
|
-
username = config.get("#{host}_username".to_sym).to_s
|
23
|
-
password = config.get("#{host}_password".to_sym).to_s
|
24
|
-
port = config.get("#{host}_port".to_sym).to_i
|
25
|
-
port = 22 if port.zero?
|
26
|
-
|
27
|
-
sessions[host] = Net::SSH.start(
|
28
|
-
ip,
|
29
|
-
username,
|
30
|
-
port: port,
|
31
|
-
password: password,
|
32
|
-
keepalive: true,
|
33
|
-
timeout: 30,
|
34
|
-
non_interactive: true
|
35
|
-
)
|
36
|
-
end
|
37
|
-
if sessions[host].instance_of? Net::SSH::Connection::Session
|
38
|
-
copy_to(host, localfilename)
|
39
|
-
else
|
40
|
-
"SSH: NO CONNECTION!"
|
41
|
-
end
|
42
|
-
rescue => e
|
43
|
-
sessions[host] = :nosession
|
44
|
-
conn_status[host] = :error
|
45
|
-
log("[#{e.class}] SSH on <#{username}@#{ip}>", :error)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def copy_to(host, localfilename)
|
50
|
-
ip = get((host + "_ip").to_sym)
|
51
|
-
username = get((host + "_username").to_sym).to_s
|
52
|
-
password = get((host + "_password").to_sym).to_s
|
53
|
-
port = get((host + "_port").to_sym).to_i
|
54
|
-
port = 22 if port.zero?
|
55
|
-
|
56
|
-
localfilepath = File.join(Dir.pwd, localfilename)
|
57
|
-
remotefilepath = File.join(".", File.basename(localfilename))
|
58
|
-
|
59
|
-
# Upload a file or directory to the remote host
|
60
|
-
begin
|
61
|
-
Net::SFTP.start(ip, username, password: password, port: port) do |sftp|
|
62
|
-
sftp.upload!(localfilepath, remotefilepath)
|
63
|
-
end
|
64
|
-
rescue
|
65
|
-
log("copy file: #{localfilename} => #{remotefilepath}", :error)
|
66
|
-
return false
|
67
|
-
end
|
68
|
-
true
|
69
|
-
end
|
70
|
-
end
|