teuton 2.8.0 → 2.9.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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/docs/changelog/changelog.1.md +119 -0
  4. data/docs/changelog/changelog.2.md +105 -0
  5. data/docs/diagram.md +10 -10
  6. data/docs/dsl/expect.md +76 -25
  7. data/docs/dsl/result.md +24 -30
  8. data/docs/learn/02-target.md +32 -27
  9. data/docs/learn/25-expect-result.md +39 -0
  10. data/docs/learn/26-expect_sequence.md +79 -0
  11. data/docs/learn/27-run_script.md +91 -0
  12. data/docs/learn/28-upload.md +55 -0
  13. data/docs/learn/README.md +4 -15
  14. data/docs/videos.md +14 -8
  15. data/lib/teuton/case/case.rb +3 -2
  16. data/lib/teuton/case/config.rb +0 -5
  17. data/lib/teuton/case/dsl/all.rb +5 -1
  18. data/lib/teuton/case/dsl/expect.rb +13 -42
  19. data/lib/teuton/case/dsl/expect_exitcode.rb +31 -0
  20. data/lib/teuton/case/dsl/expect_sequence.rb +173 -0
  21. data/lib/teuton/case/dsl/getset.rb +0 -1
  22. data/lib/teuton/case/dsl/host.rb +5 -0
  23. data/lib/teuton/case/dsl/macro.rb +7 -3
  24. data/lib/teuton/case/dsl/run_script.rb +35 -0
  25. data/lib/teuton/case/dsl/upload.rb +42 -0
  26. data/lib/teuton/case/dsl/weight.rb +12 -0
  27. data/lib/teuton/case/host.rb +68 -0
  28. data/lib/teuton/case/play.rb +2 -6
  29. data/lib/teuton/{utils → case}/result/ext_array.rb +0 -1
  30. data/lib/teuton/{utils → case}/result/ext_compare.rb +0 -1
  31. data/lib/teuton/{utils → case}/result/ext_filter.rb +0 -2
  32. data/lib/teuton/{utils → case}/result/result.rb +13 -21
  33. data/lib/teuton/check/checker.rb +82 -0
  34. data/lib/teuton/check/dsl/all.rb +37 -0
  35. data/lib/teuton/check/{builtin.rb → dsl/builtin.rb} +1 -3
  36. data/lib/teuton/check/dsl/expect.rb +90 -0
  37. data/lib/teuton/check/dsl/expect_sequence.rb +29 -0
  38. data/lib/teuton/check/dsl/getset.rb +23 -0
  39. data/lib/teuton/check/dsl/run.rb +35 -0
  40. data/lib/teuton/check/main.rb +29 -0
  41. data/lib/teuton/check/show.rb +75 -100
  42. data/lib/teuton/deprecated/application_test.rb +32 -0
  43. data/lib/teuton/readme/dsl/all.rb +32 -0
  44. data/lib/teuton/readme/dsl/expect.rb +29 -0
  45. data/lib/teuton/readme/dsl/getset.rb +33 -0
  46. data/lib/teuton/readme/dsl/run.rb +51 -0
  47. data/lib/teuton/readme/lang.rb +8 -10
  48. data/lib/teuton/readme/main.rb +27 -0
  49. data/lib/teuton/readme/readme.rb +31 -58
  50. data/lib/teuton/readme/result.rb +7 -0
  51. data/lib/teuton/utils/configfile_reader.rb +8 -4
  52. data/lib/teuton/utils/logger.rb +32 -0
  53. data/lib/teuton/utils/verbose.rb +1 -1
  54. data/lib/teuton/version.rb +1 -1
  55. data/lib/teuton.rb +6 -5
  56. metadata +45 -39
  57. data/docs/CHANGELOG.md +0 -10
  58. data/docs/changelog/v2.0.md +0 -18
  59. data/docs/changelog/v2.1.md +0 -54
  60. data/docs/changelog/v2.2.md +0 -42
  61. data/docs/changelog/v2.3.md +0 -10
  62. data/docs/changelog/v2.4.md +0 -41
  63. data/docs/changelog/v2.5.md +0 -6
  64. data/docs/changelog/v2.6.md +0 -4
  65. data/docs/changelog/v2.7.md +0 -23
  66. data/docs/changelog/v2.8.md +0 -11
  67. data/docs/changelog/version2.1.md +0 -4
  68. data/docs/learn/videos.md +0 -13
  69. data/lib/teuton/case/execute/copy_ssh.rb +0 -70
  70. data/lib/teuton/check/dsl.rb +0 -112
  71. data/lib/teuton/check/laboratory.rb +0 -59
  72. data/lib/teuton/readme/dsl.rb +0 -126
  73. /data/lib/teuton/case/dsl/{goto.rb → run.rb} +0 -0
  74. /data/lib/teuton/{utils → deprecated}/application.rb +0 -0
  75. /data/lib/teuton/{case/deprecated → deprecated}/runner.rb +0 -0
  76. /data/lib/teuton/{case/deprecated → deprecated}/utils.rb +0 -0
@@ -1,59 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../utils/project"
4
- require_relative "../utils/result/result"
5
- require_relative "show"
6
- require_relative "dsl"
7
- require_relative "builtin"
8
-
9
- def use(filename)
10
- filename += ".rb"
11
- rbfiles = File.join(Project.value[:project_path], "**", filename)
12
- files = Dir.glob(rbfiles)
13
- use = []
14
- files.sort.each { |f| use << f if f.include?(filename) }
15
- require_relative use[0]
16
- Project.value[:uses] << use[0]
17
- end
18
-
19
- def group(name, &block)
20
- Project.value[:groups] << {name: name, block: block}
21
- end
22
- alias task group
23
-
24
- def define_macro(name, *args, &block)
25
- Project.value[:macros][name] = {args: args, block: block}
26
- end
27
- alias def_macro define_macro
28
- alias defmacro define_macro
29
-
30
-
31
- def start(&block)
32
- # Don't do nothing. We are checking test not running it
33
- end
34
- alias play start
35
-
36
- # Show objectives stats from RB script file
37
- class Laboratory
38
- attr_reader :result
39
-
40
- def initialize(script_path, config_path)
41
- @path = {}
42
- @path[:script] = script_path
43
- @path[:dirname] = File.dirname(script_path)
44
- @path[:filename] = File.basename(script_path, ".rb")
45
- @path[:config] = config_path
46
- reset
47
- end
48
-
49
- def reset
50
- @result = Result.new
51
- @targetid = 0
52
- @stats = {groups: 0, targets: 0, uniques: 0, gets: 0, logs: 0, sets: 0}
53
- @gets = {}
54
- @sets = {}
55
- @hosts = {}
56
- @requests = [] # REVISE this
57
- @verbose = Project.value[:verbose]
58
- end
59
- end
@@ -1,126 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Readme
4
- # readme, target, goto, run
5
- # expect,
6
- # gett, set, unique, log
7
- class Readme
8
- def readme(text)
9
- if @action[:target].nil?
10
- # It's a group readme
11
- @current[:readme] << text
12
- else
13
- # It's a target readme
14
- @action[:readme] << text
15
- end
16
- end
17
-
18
- def target(desc, args = {})
19
- previous_host = @action[:host]
20
- @action = {target: desc, host: previous_host, readme: []}
21
- weight = 1.0
22
- weight = args[:weight].to_f if args[:weight]
23
- @action[:weight] = weight
24
- end
25
- alias goal target
26
-
27
- def goto(host = :localhost, args = {})
28
- unless host == :localhost
29
- b = {}
30
- a = "#{host}_ip".to_sym
31
- if @config[:global][a].nil? && !@setted_params.include?(a)
32
- @cases_params << a
33
- end
34
- b[:ip] = @config[:global][a] if @config[:global][a]
35
- b[:ip] = @setted_params[a] if @setted_params[a]
36
-
37
- a = "#{host}_username".to_sym
38
- if @config[:global][a].nil? && !@setted_params.include?(a)
39
- @cases_params << a
40
- end
41
- b[:username] = @config[:global][a] if @config[:global][a]
42
- b[:username] = @setted_params[a] if @setted_params[a]
43
-
44
- a = "#{host}_password".to_sym
45
- if @config[:global][a].nil? && !@setted_params.include?(a)
46
- @cases_params << a
47
- end
48
- b[:password] = @config[:global][a] if @config[:global][a]
49
- b[:password] = @setted_params[a] if @setted_params[a]
50
-
51
- @required_hosts[host.to_s] = b
52
- end
53
- @action[:host] = host
54
- @action[:exec] = args[:exec] || "noexec"
55
- end
56
-
57
- def run(command, args = {})
58
- args[:exec] = command
59
- host = :localhost
60
- host = args[:on] if args[:on]
61
- goto(host, args)
62
- end
63
-
64
- def expect(_cond, _args = {})
65
- @current[:actions] << @action
66
- result.reset
67
- end
68
- alias expect_any expect
69
- alias expect_first expect
70
- alias expect_last expect
71
- alias expect_none expect
72
- alias expect_one expect
73
-
74
- def get(value)
75
- unless @config[:global][value].nil?
76
- @global_params[value] = @config[:global][value]
77
- return @config[:global][value]
78
- end
79
-
80
- return value.to_s.upcase if @setted_params.include? value
81
-
82
- @cases_params << value
83
- value.to_s.upcase
84
- end
85
-
86
- # If a method call is missing, then delegate to concept parent.
87
- # def method_missing(method, args = {})
88
- def method_missing(method, *args, &block)
89
- m = method.to_s
90
- if m[0] == "_"
91
- instance_eval("get(:#{m[1, m.size - 1]})", __FILE__, __LINE__)
92
- # elsif not Application.instance.macros[m].nil?
93
- elsif not Project.value[:macros][m].nil?
94
- puts "macro exec: #{m}"
95
- code = ""
96
- args[0].keys.each { |key| code += "set(:#{key}, '#{args[0][key]}')\n" }
97
- puts code
98
- # instance_eval(code)
99
- # Application.instance.macros[m].call
100
- end
101
- end
102
-
103
- def respond_to_missing?(method_name, include_private = false)
104
- true
105
- end
106
-
107
- def gett(value)
108
- a = get(value)
109
- return "[#{value}](\#required-params)" if @cases_params.include? value
110
- return "[#{value}](\#created-params)" if @setted_params[value]
111
-
112
- "[#{a}](\#global-params)" if @global_params.include? value
113
- end
114
-
115
- def set(key, value)
116
- @setted_params[key] = value
117
- end
118
-
119
- def unique(_key, _value)
120
- # don't do nothing
121
- end
122
-
123
- def log(text = "", type = :info)
124
- @data[:logs] << "[#{type}]: " + text.to_s
125
- end
126
- end
File without changes
File without changes