hybrid_platforms_conductor 33.0.1 → 33.0.2
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/CHANGELOG.md +6 -0
- data/lib/hybrid_platforms_conductor/config.rb +1 -0
- data/lib/hybrid_platforms_conductor/core_extensions/cleanroom/fix_kwargs.rb +116 -0
- data/lib/hybrid_platforms_conductor/version.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/bash_spec.rb +4 -2
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/interactive_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +26 -20
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/ruby_spec.rb +39 -31
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/scp_spec.rb +20 -14
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions_spec.rb +60 -42
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connection_spec.rb +11 -9
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb +33 -21
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/logging_spec.rb +91 -81
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/timeout_spec.rb +6 -4
- metadata +136 -135
|
@@ -22,7 +22,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
22
22
|
it 'connects on a node before executing actions needing connection' do
|
|
23
23
|
with_test_platform_for_connections do
|
|
24
24
|
test_actions_executor.connector(:test_connector).accept_nodes = ['node1']
|
|
25
|
-
test_actions_executor.execute_actions('node1' => { test_action: { need_connector: true } })
|
|
25
|
+
test_actions_executor.execute_actions({ 'node1' => { test_action: { need_connector: true } } })
|
|
26
26
|
expect(action_executions).to eq [{ node: 'node1', message: 'Action executed' }]
|
|
27
27
|
expect(test_actions_executor.connector(:test_connector).calls).to eq [
|
|
28
28
|
[:connectable_nodes_from, ['node1']],
|
|
@@ -33,7 +33,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
33
33
|
|
|
34
34
|
it 'returns an error when no connector can connect to the needed node' do
|
|
35
35
|
with_test_platform_for_connections do
|
|
36
|
-
expect(test_actions_executor.execute_actions('node1' => { test_action: { need_connector: true } })).to eq(
|
|
36
|
+
expect(test_actions_executor.execute_actions({ 'node1' => { test_action: { need_connector: true } } })).to eq(
|
|
37
37
|
'node1' => [:no_connector, '', 'Unable to get a connector to node1']
|
|
38
38
|
)
|
|
39
39
|
end
|
|
@@ -42,7 +42,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
42
42
|
it 'connects on several nodes before executing actions needing connection' do
|
|
43
43
|
with_test_platform_for_connections do
|
|
44
44
|
test_actions_executor.connector(:test_connector).accept_nodes = %w[node1 node2 node3 node4]
|
|
45
|
-
test_actions_executor.execute_actions(%w[node1 node2 node3 node4] => { test_action: { need_connector: true } })
|
|
45
|
+
test_actions_executor.execute_actions({ %w[node1 node2 node3 node4] => { test_action: { need_connector: true } } })
|
|
46
46
|
expect(action_executions).to eq [
|
|
47
47
|
{ node: 'node1', message: 'Action executed' },
|
|
48
48
|
{ node: 'node2', message: 'Action executed' },
|
|
@@ -60,7 +60,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
60
60
|
with_test_platform_for_connections do
|
|
61
61
|
test_actions_executor.connector(:test_connector).accept_nodes = %w[node1 node2 node3 node4]
|
|
62
62
|
test_actions_executor.connector(:test_connector).connected_nodes = %w[node1 node2 node4]
|
|
63
|
-
test_actions_executor.execute_actions(%w[node1 node2 node3 node4] => { test_action: { need_connector: true } })
|
|
63
|
+
test_actions_executor.execute_actions({ %w[node1 node2 node3 node4] => { test_action: { need_connector: true } } })
|
|
64
64
|
expect(action_executions).to eq [
|
|
65
65
|
{ node: 'node1', message: 'Action executed' },
|
|
66
66
|
{ node: 'node2', message: 'Action executed' },
|
|
@@ -77,8 +77,10 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
77
77
|
with_test_platform_for_connections do
|
|
78
78
|
test_actions_executor.connector(:test_connector).accept_nodes = %w[node1 node2 node3 node4]
|
|
79
79
|
test_actions_executor.execute_actions(
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
{
|
|
81
|
+
%w[node1 node3] => { test_action: { need_connector: true } },
|
|
82
|
+
%w[node2 node4] => { test_action: { need_connector: false } }
|
|
83
|
+
}
|
|
82
84
|
)
|
|
83
85
|
expect(action_executions).to eq [
|
|
84
86
|
{ node: 'node1', message: 'Action executed' },
|
|
@@ -96,7 +98,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
96
98
|
it 'does not ask for any connection if actions don\'t need remote' do
|
|
97
99
|
with_test_platform_for_connections do
|
|
98
100
|
test_actions_executor.connector(:test_connector).accept_nodes = %w[node1 node2 node3 node4]
|
|
99
|
-
test_actions_executor.execute_actions(%w[node1 node2 node3 node4] => { test_action: { need_connector: false } })
|
|
101
|
+
test_actions_executor.execute_actions({ %w[node1 node2 node3 node4] => { test_action: { need_connector: false } } })
|
|
100
102
|
expect(action_executions).to eq [
|
|
101
103
|
{ node: 'node1', message: 'Action executed' },
|
|
102
104
|
{ node: 'node2', message: 'Action executed' },
|
|
@@ -111,7 +113,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
111
113
|
with_test_platform_for_connections do
|
|
112
114
|
test_actions_executor.connector(:test_connector).accept_nodes = %w[node1 node3]
|
|
113
115
|
test_actions_executor.connector(:test_connector_2).accept_nodes = %w[node2 node4]
|
|
114
|
-
test_actions_executor.execute_actions(%w[node1 node2 node3 node4] => { test_action: { need_connector: true } })
|
|
116
|
+
test_actions_executor.execute_actions({ %w[node1 node2 node3 node4] => { test_action: { need_connector: true } } })
|
|
115
117
|
expect(action_executions).to eq [
|
|
116
118
|
{ node: 'node1', message: 'Action executed' },
|
|
117
119
|
{ node: 'node2', message: 'Action executed' },
|
|
@@ -133,7 +135,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
133
135
|
with_test_platform_for_connections do
|
|
134
136
|
test_actions_executor.connector(:test_connector).accept_nodes = %w[node1 node2 node3]
|
|
135
137
|
test_actions_executor.connector(:test_connector_2).accept_nodes = %w[node2 node4]
|
|
136
|
-
test_actions_executor.execute_actions(%w[node1 node2 node3 node4] => { test_action: { need_connector: true } })
|
|
138
|
+
test_actions_executor.execute_actions({ %w[node1 node2 node3 node4] => { test_action: { need_connector: true } } })
|
|
137
139
|
expect(action_executions).to eq [
|
|
138
140
|
{ node: 'node1', message: 'Action executed' },
|
|
139
141
|
{ node: 'node2', message: 'Action executed' },
|
data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb
CHANGED
|
@@ -18,7 +18,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
18
18
|
[
|
|
19
19
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
20
20
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
21
|
-
] + ssh_expected_commands_for('node' => { connection: '192.168.42.42', user: 'test_user' })
|
|
21
|
+
] + ssh_expected_commands_for({ 'node' => { connection: '192.168.42.42', user: 'test_user' } })
|
|
22
22
|
) do
|
|
23
23
|
test_connector.ssh_user = 'test_user'
|
|
24
24
|
test_connector.with_connection_to(['node']) do |connected_nodes|
|
|
@@ -82,8 +82,10 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
82
82
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
83
83
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
84
84
|
] + ssh_expected_commands_for(
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
{
|
|
86
|
+
'node1' => { connection: '192.168.42.1', user: 'test_user' },
|
|
87
|
+
'node3' => { connection: '192.168.42.3', user: 'test_user' }
|
|
88
|
+
}
|
|
87
89
|
) + ssh_expected_commands_for(
|
|
88
90
|
{
|
|
89
91
|
'node2' => { connection: '192.168.42.2', user: 'test_user' }
|
|
@@ -115,9 +117,11 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
115
117
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
116
118
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
117
119
|
] + ssh_expected_commands_for(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
{
|
|
121
|
+
'node1' => { connection: '192.168.42.1', user: 'test_user' },
|
|
122
|
+
'node2' => { connection: '192.168.42.2', user: 'test_user' },
|
|
123
|
+
'node3' => { connection: '192.168.42.3', user: 'test_user' }
|
|
124
|
+
}
|
|
121
125
|
)
|
|
122
126
|
) do
|
|
123
127
|
test_connector.ssh_user = 'test_user'
|
|
@@ -153,9 +157,11 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
153
157
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
154
158
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
155
159
|
] + ssh_expected_commands_for(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
160
|
+
{
|
|
161
|
+
'node1' => { ip: '192.168.42.1', connection: '192.168.42.1_node1_13_node1_1', user: 'test_user_node1_13_node1_1' },
|
|
162
|
+
'node2' => { ip: '192.168.42.2', connection: '192.168.42.2', user: 'test_user' },
|
|
163
|
+
'node3' => { ip: '192.168.42.3', connection: '192.168.42.3_node3_13', user: 'test_user_node3_13' }
|
|
164
|
+
}
|
|
159
165
|
)
|
|
160
166
|
) do
|
|
161
167
|
test_connector.ssh_user = 'test_user'
|
|
@@ -217,8 +223,10 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
217
223
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
218
224
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
219
225
|
] + ssh_expected_commands_for(
|
|
220
|
-
|
|
221
|
-
|
|
226
|
+
{
|
|
227
|
+
'node1' => { connection: '192.168.42.1', user: 'test_user' },
|
|
228
|
+
'node3' => { connection: '192.168.42.3', user: 'test_user' }
|
|
229
|
+
}
|
|
222
230
|
) + ssh_expected_commands_for(
|
|
223
231
|
{
|
|
224
232
|
'node2' => { connection: '192.168.42.2', user: 'test_user', control_master_create_error: 'Can\'t connect to 192.168.42.2' }
|
|
@@ -241,7 +249,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
241
249
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
242
250
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
243
251
|
] +
|
|
244
|
-
ssh_expected_commands_for('node' => { connection: '192.168.42.42', user: 'test_user' }) +
|
|
252
|
+
ssh_expected_commands_for({ 'node' => { connection: '192.168.42.42', user: 'test_user' } }) +
|
|
245
253
|
ssh_expected_commands_for(
|
|
246
254
|
{ 'node' => { connection: '192.168.42.42', user: 'test_user' } },
|
|
247
255
|
with_strict_host_key_checking: false,
|
|
@@ -276,12 +284,16 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
276
284
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
277
285
|
] +
|
|
278
286
|
ssh_expected_commands_for(
|
|
279
|
-
|
|
280
|
-
|
|
287
|
+
{
|
|
288
|
+
'node1' => { connection: '192.168.42.1', user: 'test_user' },
|
|
289
|
+
'node3' => { connection: '192.168.42.3', user: 'test_user' }
|
|
290
|
+
}
|
|
281
291
|
) +
|
|
282
292
|
ssh_expected_commands_for(
|
|
283
|
-
|
|
284
|
-
|
|
293
|
+
{
|
|
294
|
+
'node2' => { connection: '192.168.42.2', user: 'test_user' },
|
|
295
|
+
'node4' => { connection: '192.168.42.4', user: 'test_user' }
|
|
296
|
+
}
|
|
285
297
|
) +
|
|
286
298
|
ssh_expected_commands_for(
|
|
287
299
|
{
|
|
@@ -443,7 +455,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
443
455
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
444
456
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
445
457
|
] +
|
|
446
|
-
ssh_expected_commands_for('node' => { connection: '192.168.42.42', user: 'test_user' }) +
|
|
458
|
+
ssh_expected_commands_for({ 'node' => { connection: '192.168.42.42', user: 'test_user' } }) +
|
|
447
459
|
ssh_expected_commands_for(
|
|
448
460
|
{ 'node' => { connection: '192.168.42.42', user: 'test_user' } },
|
|
449
461
|
with_strict_host_key_checking: false,
|
|
@@ -474,7 +486,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
474
486
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
475
487
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
476
488
|
] +
|
|
477
|
-
ssh_expected_commands_for('node' => { connection: '192.168.42.42', user: 'test_user' }) +
|
|
489
|
+
ssh_expected_commands_for({ 'node' => { connection: '192.168.42.42', user: 'test_user' } }) +
|
|
478
490
|
ssh_expected_commands_for(
|
|
479
491
|
{ 'node' => { connection: '192.168.42.42', user: 'test_user' } },
|
|
480
492
|
with_strict_host_key_checking: false,
|
|
@@ -512,7 +524,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
512
524
|
[
|
|
513
525
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
514
526
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
515
|
-
] + ssh_expected_commands_for('node' => { connection: '192.168.42.42', user: 'test_user' })
|
|
527
|
+
] + ssh_expected_commands_for({ 'node' => { connection: '192.168.42.42', user: 'test_user' } })
|
|
516
528
|
) do
|
|
517
529
|
test_connector.ssh_user = 'test_user'
|
|
518
530
|
# Fake a ControlMaster file that is stalled
|
|
@@ -529,7 +541,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
529
541
|
[
|
|
530
542
|
['which env', proc { [0, "/usr/bin/env\n", ''] }],
|
|
531
543
|
['ssh -V 2>&1', proc { [0, "OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\n", ''] }]
|
|
532
|
-
] + ssh_expected_commands_for('node' => { connection: '192.168.42.42', user: 'test_user' })
|
|
544
|
+
] + ssh_expected_commands_for({ 'node' => { connection: '192.168.42.42', user: 'test_user' } })
|
|
533
545
|
) do
|
|
534
546
|
test_connector.ssh_user = 'test_user'
|
|
535
547
|
# Fake a user that was not cleaned correctly
|
|
@@ -555,7 +567,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
555
567
|
[255, '', "System is booting up. See pam_nologin(8)\nAuthentication failed.\n"]
|
|
556
568
|
end
|
|
557
569
|
]] * 3 +
|
|
558
|
-
ssh_expected_commands_for('node' => { connection: '192.168.42.42', user: 'test_user' })
|
|
570
|
+
ssh_expected_commands_for({ 'node' => { connection: '192.168.42.42', user: 'test_user' } })
|
|
559
571
|
) do
|
|
560
572
|
test_connector.ssh_user = 'test_user'
|
|
561
573
|
# To speed up the test, alter the wait time between retries.
|
|
@@ -16,12 +16,14 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
16
16
|
with_test_platform_for_logging do
|
|
17
17
|
expect(
|
|
18
18
|
test_actions_executor.execute_actions(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
stdout
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
{
|
|
20
|
+
'node1' => {
|
|
21
|
+
test_action: {
|
|
22
|
+
code: proc do |stdout, stderr|
|
|
23
|
+
stdout << 'action_stdout'
|
|
24
|
+
stderr << 'action_stderr'
|
|
25
|
+
end
|
|
26
|
+
}
|
|
25
27
|
}
|
|
26
28
|
}
|
|
27
29
|
)
|
|
@@ -33,13 +35,15 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
33
35
|
with_test_platform_for_logging do
|
|
34
36
|
expect(
|
|
35
37
|
test_actions_executor.execute_actions(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
stdout
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
{
|
|
39
|
+
'node1' => {
|
|
40
|
+
test_action: {
|
|
41
|
+
code: proc do |stdout, stderr|
|
|
42
|
+
stdout << "action_stdout\n"
|
|
43
|
+
stderr << "action_stderr\n"
|
|
44
|
+
raise 'Failing action'
|
|
45
|
+
end
|
|
46
|
+
}
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
)
|
|
@@ -71,7 +75,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
71
75
|
it 'captures stdout and stderr from action correctly when using run_cmd' do
|
|
72
76
|
with_test_platform_for_logging do
|
|
73
77
|
expect(
|
|
74
|
-
test_actions_executor.execute_actions('node1' => { test_action: { run_cmd: 'echo action_stdout && >&2 echo action_stderr' } })
|
|
78
|
+
test_actions_executor.execute_actions({ 'node1' => { test_action: { run_cmd: 'echo action_stdout && >&2 echo action_stderr' } } })
|
|
75
79
|
).to eq('node1' => [0, "action_stdout\n", "action_stderr\n"])
|
|
76
80
|
end
|
|
77
81
|
end
|
|
@@ -79,7 +83,7 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
79
83
|
it 'captures stdout and stderr from action correctly when using run_cmd but with a failing command' do
|
|
80
84
|
with_test_platform_for_logging do
|
|
81
85
|
expect(
|
|
82
|
-
test_actions_executor.execute_actions('node1' => { test_action: { run_cmd: 'echo action_stdout && >&2 echo action_stderr && exit 1' } })
|
|
86
|
+
test_actions_executor.execute_actions({ 'node1' => { test_action: { run_cmd: 'echo action_stdout && >&2 echo action_stderr && exit 1' } } })
|
|
83
87
|
).to eq(
|
|
84
88
|
'node1' => [
|
|
85
89
|
:failed_command,
|
|
@@ -94,23 +98,25 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
94
98
|
with_test_platform_for_logging do
|
|
95
99
|
expect(
|
|
96
100
|
test_actions_executor.execute_actions(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
stdout
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
101
|
+
{
|
|
102
|
+
'node1' => [
|
|
103
|
+
{ test_action: {
|
|
104
|
+
code: proc do |stdout, stderr|
|
|
105
|
+
stdout << 'action1_stdout '
|
|
106
|
+
stderr << 'action1_stderr '
|
|
107
|
+
end
|
|
108
|
+
} },
|
|
109
|
+
{ test_action: {
|
|
110
|
+
run_cmd: 'echo action2_stdout && >&2 echo action2_stderr'
|
|
111
|
+
} },
|
|
112
|
+
{ test_action: {
|
|
113
|
+
code: proc do |stdout, stderr|
|
|
114
|
+
stdout << 'action3_stdout'
|
|
115
|
+
stderr << 'action3_stderr'
|
|
116
|
+
end
|
|
117
|
+
} }
|
|
118
|
+
]
|
|
119
|
+
}
|
|
114
120
|
)
|
|
115
121
|
).to eq('node1' => [0, "action1_stdout action2_stdout\naction3_stdout", "action1_stderr action2_stderr\naction3_stderr"])
|
|
116
122
|
end
|
|
@@ -120,24 +126,26 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
120
126
|
with_test_platform_for_logging do
|
|
121
127
|
expect(
|
|
122
128
|
test_actions_executor.execute_actions(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
stdout
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
stdout
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
stdout
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
129
|
+
{
|
|
130
|
+
'node1' => { test_action: {
|
|
131
|
+
code: proc do |stdout, stderr|
|
|
132
|
+
stdout << 'action1_stdout'
|
|
133
|
+
stderr << 'action1_stderr'
|
|
134
|
+
end
|
|
135
|
+
} },
|
|
136
|
+
'node2' => { test_action: {
|
|
137
|
+
code: proc do |stdout, stderr|
|
|
138
|
+
stdout << 'action2_stdout'
|
|
139
|
+
stderr << 'action2_stderr'
|
|
140
|
+
end
|
|
141
|
+
} },
|
|
142
|
+
'node3' => { test_action: {
|
|
143
|
+
code: proc do |stdout, stderr|
|
|
144
|
+
stdout << 'action3_stdout'
|
|
145
|
+
stderr << 'action3_stderr'
|
|
146
|
+
end
|
|
147
|
+
} }
|
|
148
|
+
}
|
|
141
149
|
)
|
|
142
150
|
).to eq(
|
|
143
151
|
'node1' => [0, 'action1_stdout', 'action1_stderr'],
|
|
@@ -151,40 +159,42 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
151
159
|
with_test_platform_for_logging do
|
|
152
160
|
expect(
|
|
153
161
|
test_actions_executor.execute_actions(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
stdout << 'action1_stdout '
|
|
157
|
-
stderr << 'action1_stderr '
|
|
158
|
-
end
|
|
159
|
-
} },
|
|
160
|
-
%w[node1 node2] => [
|
|
161
|
-
{ test_action: {
|
|
162
|
+
{
|
|
163
|
+
'node1' => { test_action: {
|
|
162
164
|
code: proc do |stdout, stderr|
|
|
163
|
-
stdout << '
|
|
164
|
-
stderr << '
|
|
165
|
-
end
|
|
166
|
-
} },
|
|
167
|
-
{ test_action: {
|
|
168
|
-
code: proc do |stdout, stderr|
|
|
169
|
-
stdout << 'action3_stdout '
|
|
170
|
-
stderr << 'action3_stderr '
|
|
171
|
-
end
|
|
172
|
-
} }
|
|
173
|
-
],
|
|
174
|
-
%w[node2 node3] => [
|
|
175
|
-
{ test_action: {
|
|
176
|
-
code: proc do |stdout, stderr|
|
|
177
|
-
stdout << 'action4_stdout '
|
|
178
|
-
stderr << 'action4_stderr '
|
|
165
|
+
stdout << 'action1_stdout '
|
|
166
|
+
stderr << 'action1_stderr '
|
|
179
167
|
end
|
|
180
168
|
} },
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
169
|
+
%w[node1 node2] => [
|
|
170
|
+
{ test_action: {
|
|
171
|
+
code: proc do |stdout, stderr|
|
|
172
|
+
stdout << 'action2_stdout '
|
|
173
|
+
stderr << 'action2_stderr '
|
|
174
|
+
end
|
|
175
|
+
} },
|
|
176
|
+
{ test_action: {
|
|
177
|
+
code: proc do |stdout, stderr|
|
|
178
|
+
stdout << 'action3_stdout '
|
|
179
|
+
stderr << 'action3_stderr '
|
|
180
|
+
end
|
|
181
|
+
} }
|
|
182
|
+
],
|
|
183
|
+
%w[node2 node3] => [
|
|
184
|
+
{ test_action: {
|
|
185
|
+
code: proc do |stdout, stderr|
|
|
186
|
+
stdout << 'action4_stdout '
|
|
187
|
+
stderr << 'action4_stderr '
|
|
188
|
+
end
|
|
189
|
+
} },
|
|
190
|
+
{ test_action: {
|
|
191
|
+
code: proc do |stdout, stderr|
|
|
192
|
+
stdout << 'action5_stdout '
|
|
193
|
+
stderr << 'action5_stderr '
|
|
194
|
+
end
|
|
195
|
+
} }
|
|
196
|
+
]
|
|
197
|
+
}
|
|
188
198
|
)
|
|
189
199
|
).to eq(
|
|
190
200
|
'node1' => [0, 'action1_stdout action2_stdout action3_stdout ', 'action1_stderr action2_stderr action3_stderr '],
|
|
@@ -13,10 +13,12 @@ describe HybridPlatformsConductor::ActionsExecutor do
|
|
|
13
13
|
it 'executes an action without timeout' do
|
|
14
14
|
with_test_platform_for_timeouts_tests do
|
|
15
15
|
expect(test_actions_executor.execute_actions(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
{
|
|
17
|
+
'node' => { test_action: { code: proc do |stdout, _stderr, action|
|
|
18
|
+
expect(action.timeout).to eq nil
|
|
19
|
+
stdout << 'Hello'
|
|
20
|
+
end } }
|
|
21
|
+
}
|
|
20
22
|
)['node']).to eq [0, 'Hello', '']
|
|
21
23
|
end
|
|
22
24
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hybrid_platforms_conductor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 33.0.
|
|
4
|
+
version: 33.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Muriel Salvan
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-06-
|
|
11
|
+
date: 2021-06-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: range_operators
|
|
@@ -323,181 +323,181 @@ description: Provides a complete toolset to help DevOps maintain, deploy, monito
|
|
|
323
323
|
email:
|
|
324
324
|
- muriel@x-aeon.com
|
|
325
325
|
executables:
|
|
326
|
-
-
|
|
327
|
-
-
|
|
326
|
+
- free_ips
|
|
327
|
+
- setup
|
|
328
328
|
- check-node
|
|
329
|
-
-
|
|
330
|
-
- ssh_config
|
|
329
|
+
- deploy
|
|
331
330
|
- dump_nodes_json
|
|
331
|
+
- topograph
|
|
332
332
|
- run
|
|
333
|
-
- setup
|
|
334
333
|
- report
|
|
334
|
+
- free_veids
|
|
335
|
+
- get_impacted_nodes
|
|
336
|
+
- ssh_config
|
|
335
337
|
- last_deploys
|
|
336
338
|
- nodes_to_deploy
|
|
337
|
-
-
|
|
338
|
-
- free_veids
|
|
339
|
-
- deploy
|
|
339
|
+
- test
|
|
340
340
|
extensions: []
|
|
341
341
|
extra_rdoc_files:
|
|
342
|
-
- README.md
|
|
343
342
|
- CHANGELOG.md
|
|
344
343
|
- LICENSE.md
|
|
345
|
-
-
|
|
346
|
-
- docs/tutorial/04_test.md
|
|
347
|
-
- docs/tutorial/03_scale.md
|
|
348
|
-
- docs/tutorial/01_installation.md
|
|
349
|
-
- docs/tutorial/02_first_node.md
|
|
350
|
-
- docs/tutorial.md
|
|
344
|
+
- README.md
|
|
351
345
|
- docs/install.md
|
|
352
|
-
- docs/
|
|
353
|
-
- docs/
|
|
354
|
-
- docs/
|
|
355
|
-
- docs/plugins.md
|
|
356
|
-
- docs/gen/mermaid/README.md-0.png
|
|
357
|
-
- docs/gen/mermaid/docs/executables/check-node.md-0.png
|
|
358
|
-
- docs/gen/mermaid/docs/executables/ssh_config.md-0.png
|
|
359
|
-
- docs/gen/mermaid/docs/executables/last_deploys.md-0.png
|
|
360
|
-
- docs/gen/mermaid/docs/executables/run.md-0.png
|
|
361
|
-
- docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png
|
|
362
|
-
- docs/gen/mermaid/docs/executables/test.md-0.png
|
|
363
|
-
- docs/gen/mermaid/docs/executables/free_ips.md-0.png
|
|
364
|
-
- docs/gen/mermaid/docs/executables/free_veids.md-0.png
|
|
365
|
-
- docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png
|
|
366
|
-
- docs/gen/mermaid/docs/executables/report.md-0.png
|
|
367
|
-
- docs/gen/mermaid/docs/executables/deploy.md-0.png
|
|
368
|
-
- docs/gen/mermaid/docs/executables/setup.md-0.png
|
|
369
|
-
- docs/executables/test.md
|
|
370
|
-
- docs/executables/free_ips.md
|
|
371
|
-
- docs/executables/run.md
|
|
372
|
-
- docs/executables/get_impacted_nodes.md
|
|
373
|
-
- docs/executables/last_deploys.md
|
|
374
|
-
- docs/executables/nodes_to_deploy.md
|
|
375
|
-
- docs/executables/setup.md
|
|
376
|
-
- docs/executables/deploy.md
|
|
377
|
-
- docs/executables/report.md
|
|
378
|
-
- docs/executables/check-node.md
|
|
379
|
-
- docs/executables/free_veids.md
|
|
380
|
-
- docs/executables/ssh_config.md
|
|
381
|
-
- docs/executables/topograph.md
|
|
382
|
-
- docs/executables/dump_nodes_json.md
|
|
383
|
-
- docs/plugins/platform_handler/serverless_chef.md
|
|
384
|
-
- docs/plugins/platform_handler/yaml_inventory.md
|
|
346
|
+
- docs/plugins/cmdb/platform_handlers.md
|
|
347
|
+
- docs/plugins/cmdb/config.md
|
|
348
|
+
- docs/plugins/cmdb/host_ip.md
|
|
349
|
+
- docs/plugins/cmdb/host_keys.md
|
|
385
350
|
- docs/plugins/log/remote_fs.md
|
|
386
|
-
- docs/plugins/provisioner/proxmox.md
|
|
387
|
-
- docs/plugins/provisioner/podman.md
|
|
388
351
|
- docs/plugins/provisioner/docker.md
|
|
389
|
-
- docs/plugins/
|
|
390
|
-
- docs/plugins/
|
|
391
|
-
- docs/plugins/
|
|
392
|
-
- docs/plugins/
|
|
393
|
-
- docs/plugins/
|
|
394
|
-
- docs/plugins/
|
|
395
|
-
- docs/plugins/
|
|
352
|
+
- docs/plugins/provisioner/podman.md
|
|
353
|
+
- docs/plugins/provisioner/proxmox.md
|
|
354
|
+
- docs/plugins/action/bash.md
|
|
355
|
+
- docs/plugins/action/scp.md
|
|
356
|
+
- docs/plugins/action/remote_bash.md
|
|
357
|
+
- docs/plugins/action/interactive.md
|
|
358
|
+
- docs/plugins/action/ruby.md
|
|
359
|
+
- docs/plugins/connector/ssh.md
|
|
360
|
+
- docs/plugins/connector/local.md
|
|
361
|
+
- docs/plugins/report/confluence.md
|
|
362
|
+
- docs/plugins/report/mediawiki.md
|
|
363
|
+
- docs/plugins/report/stdout.md
|
|
364
|
+
- docs/plugins/secrets_reader/thycotic.md
|
|
365
|
+
- docs/plugins/secrets_reader/cli.md
|
|
366
|
+
- docs/plugins/test/file_system_hdfs.md
|
|
367
|
+
- docs/plugins/test/mounts.md
|
|
368
|
+
- docs/plugins/test/idempotence.md
|
|
396
369
|
- docs/plugins/test/orphan_files.md
|
|
370
|
+
- docs/plugins/test/github_ci.md
|
|
397
371
|
- docs/plugins/test/veids.md
|
|
398
|
-
- docs/plugins/test/
|
|
399
|
-
- docs/plugins/test/ports.md
|
|
372
|
+
- docs/plugins/test/check_deploy_and_idempotence.md
|
|
400
373
|
- docs/plugins/test/hostname.md
|
|
401
|
-
- docs/plugins/test/
|
|
402
|
-
- docs/plugins/test/deploy_freshness.md
|
|
374
|
+
- docs/plugins/test/bitbucket_conf.md
|
|
403
375
|
- docs/plugins/test/deploy_from_scratch.md
|
|
404
|
-
- docs/plugins/test/
|
|
376
|
+
- docs/plugins/test/divergence.md
|
|
405
377
|
- docs/plugins/test/check_from_scratch.md
|
|
406
|
-
- docs/plugins/test/
|
|
407
|
-
- docs/plugins/test/linear_strategy.md
|
|
408
|
-
- docs/plugins/test/connection.md
|
|
409
|
-
- docs/plugins/test/check_deploy_and_idempotence.md
|
|
378
|
+
- docs/plugins/test/deploy_removes_root_access.md
|
|
410
379
|
- docs/plugins/test/file_system.md
|
|
411
|
-
- docs/plugins/test/
|
|
412
|
-
- docs/plugins/test/
|
|
380
|
+
- docs/plugins/test/spectre.md
|
|
381
|
+
- docs/plugins/test/vulnerabilities.md
|
|
382
|
+
- docs/plugins/test/ports.md
|
|
383
|
+
- docs/plugins/test/linear_strategy.md
|
|
413
384
|
- docs/plugins/test/jenkins_ci_conf.md
|
|
385
|
+
- docs/plugins/test/can_be_checked.md
|
|
386
|
+
- docs/plugins/test/public_ips.md
|
|
387
|
+
- docs/plugins/test/connection.md
|
|
414
388
|
- docs/plugins/test/jenkins_ci_masters_ok.md
|
|
415
|
-
- docs/plugins/test/
|
|
416
|
-
- docs/plugins/test/
|
|
417
|
-
- docs/plugins/
|
|
418
|
-
- docs/plugins/
|
|
419
|
-
- docs/plugins/
|
|
420
|
-
- docs/plugins/
|
|
389
|
+
- docs/plugins/test/deploy_freshness.md
|
|
390
|
+
- docs/plugins/test/executables.md
|
|
391
|
+
- docs/plugins/test/private_ips.md
|
|
392
|
+
- docs/plugins/test/ip.md
|
|
393
|
+
- docs/plugins/test/local_users.md
|
|
394
|
+
- docs/plugins/platform_handler/serverless_chef.md
|
|
395
|
+
- docs/plugins/platform_handler/yaml_inventory.md
|
|
421
396
|
- docs/plugins/test_report/confluence.md
|
|
422
|
-
- docs/plugins/
|
|
423
|
-
- docs/plugins/connector/ssh.md
|
|
424
|
-
- docs/plugins/action/interactive.md
|
|
425
|
-
- docs/plugins/action/scp.md
|
|
426
|
-
- docs/plugins/action/remote_bash.md
|
|
427
|
-
- docs/plugins/action/ruby.md
|
|
428
|
-
- docs/plugins/action/bash.md
|
|
429
|
-
- docs/plugins/secrets_reader/cli.md
|
|
430
|
-
- docs/plugins/secrets_reader/thycotic.md
|
|
431
|
-
- docs/plugins/cmdb/host_ip.md
|
|
432
|
-
- docs/plugins/cmdb/config.md
|
|
433
|
-
- docs/plugins/cmdb/platform_handlers.md
|
|
434
|
-
- docs/plugins/cmdb/host_keys.md
|
|
397
|
+
- docs/plugins/test_report/stdout.md
|
|
435
398
|
- docs/config_dsl.md
|
|
436
|
-
-
|
|
437
|
-
-
|
|
438
|
-
-
|
|
439
|
-
-
|
|
440
|
-
-
|
|
441
|
-
-
|
|
442
|
-
-
|
|
399
|
+
- docs/executables/free_veids.md
|
|
400
|
+
- docs/executables/last_deploys.md
|
|
401
|
+
- docs/executables/nodes_to_deploy.md
|
|
402
|
+
- docs/executables/topograph.md
|
|
403
|
+
- docs/executables/report.md
|
|
404
|
+
- docs/executables/get_impacted_nodes.md
|
|
405
|
+
- docs/executables/run.md
|
|
406
|
+
- docs/executables/deploy.md
|
|
407
|
+
- docs/executables/dump_nodes_json.md
|
|
408
|
+
- docs/executables/ssh_config.md
|
|
409
|
+
- docs/executables/test.md
|
|
410
|
+
- docs/executables/setup.md
|
|
411
|
+
- docs/executables/free_ips.md
|
|
412
|
+
- docs/executables/check-node.md
|
|
413
|
+
- docs/plugins_create.md
|
|
414
|
+
- docs/tutorial/01_installation.md
|
|
415
|
+
- docs/tutorial/04_test.md
|
|
416
|
+
- docs/tutorial/03_scale.md
|
|
417
|
+
- docs/tutorial/02_first_node.md
|
|
418
|
+
- docs/tutorial/05_extend_with_plugins.md
|
|
419
|
+
- docs/tutorial.md
|
|
420
|
+
- docs/api.md
|
|
421
|
+
- docs/executables.md
|
|
422
|
+
- docs/gen/mermaid/README.md-0.png
|
|
423
|
+
- docs/gen/mermaid/docs/executables/test.md-0.png
|
|
424
|
+
- docs/gen/mermaid/docs/executables/last_deploys.md-0.png
|
|
425
|
+
- docs/gen/mermaid/docs/executables/free_ips.md-0.png
|
|
426
|
+
- docs/gen/mermaid/docs/executables/deploy.md-0.png
|
|
427
|
+
- docs/gen/mermaid/docs/executables/check-node.md-0.png
|
|
428
|
+
- docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png
|
|
429
|
+
- docs/gen/mermaid/docs/executables/setup.md-0.png
|
|
430
|
+
- docs/gen/mermaid/docs/executables/report.md-0.png
|
|
431
|
+
- docs/gen/mermaid/docs/executables/free_veids.md-0.png
|
|
432
|
+
- docs/gen/mermaid/docs/executables/ssh_config.md-0.png
|
|
433
|
+
- docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png
|
|
434
|
+
- docs/gen/mermaid/docs/executables/run.md-0.png
|
|
435
|
+
- docs/plugins.md
|
|
436
|
+
- examples/tutorial/04_test/my-service-conf-repo/service_web-hello.rb
|
|
437
|
+
- examples/tutorial/04_test/my-service-conf-repo/service_my-service.rb
|
|
438
|
+
- examples/tutorial/04_test/my-service-conf-repo/my-service.conf.erb
|
|
439
|
+
- examples/tutorial/04_test/my-service-conf-repo/inventory.yaml
|
|
440
|
+
- examples/tutorial/04_test/my-platforms/hpc_config.rb
|
|
441
|
+
- examples/tutorial/04_test/my-platforms/Gemfile
|
|
442
|
+
- examples/tutorial/04_test/my-platforms/images/debian_10/Dockerfile
|
|
443
|
+
- examples/tutorial/04_test/my-platforms/my_commands.bash
|
|
444
|
+
- examples/tutorial/04_test/web_docker_image/hello_world.txt
|
|
445
|
+
- examples/tutorial/04_test/web_docker_image/test.bash
|
|
446
|
+
- examples/tutorial/04_test/web_docker_image/hpc_root.key.pub
|
|
447
|
+
- examples/tutorial/04_test/web_docker_image/Dockerfile
|
|
448
|
+
- examples/tutorial/04_test/web_docker_image/hpc_root.key
|
|
449
|
+
- examples/tutorial/04_test/web_docker_image/start.sh
|
|
450
|
+
- examples/tutorial/04_test/web_docker_image/main.go
|
|
451
|
+
- examples/tutorial/04_test/node/my-service.conf
|
|
452
|
+
- examples/tutorial/03_scale/my-service-conf-repo/service_web-hello.rb
|
|
453
|
+
- examples/tutorial/03_scale/my-service-conf-repo/service_my-service.rb
|
|
454
|
+
- examples/tutorial/03_scale/my-service-conf-repo/my-service.conf.erb
|
|
455
|
+
- examples/tutorial/03_scale/my-service-conf-repo/inventory.yaml
|
|
456
|
+
- examples/tutorial/03_scale/my-platforms/hpc_config.rb
|
|
457
|
+
- examples/tutorial/03_scale/my-platforms/Gemfile
|
|
458
|
+
- examples/tutorial/03_scale/my-platforms/my_commands.bash
|
|
459
|
+
- examples/tutorial/03_scale/web_docker_image/hello_world.txt
|
|
460
|
+
- examples/tutorial/03_scale/web_docker_image/test.bash
|
|
461
|
+
- examples/tutorial/03_scale/web_docker_image/hpc_root.key.pub
|
|
462
|
+
- examples/tutorial/03_scale/web_docker_image/Dockerfile
|
|
463
|
+
- examples/tutorial/03_scale/web_docker_image/hpc_root.key
|
|
464
|
+
- examples/tutorial/03_scale/web_docker_image/start.sh
|
|
465
|
+
- examples/tutorial/03_scale/web_docker_image/main.go
|
|
466
|
+
- examples/tutorial/03_scale/node/my-service.conf
|
|
443
467
|
- examples/tutorial/05_extend_with_plugins/my-service-conf-repo/service_web-hello.rb
|
|
444
|
-
- examples/tutorial/05_extend_with_plugins/my-service-conf-repo/my-service.conf.erb
|
|
445
468
|
- examples/tutorial/05_extend_with_plugins/my-service-conf-repo/service_my-service.rb
|
|
469
|
+
- examples/tutorial/05_extend_with_plugins/my-service-conf-repo/my-service.conf.erb
|
|
446
470
|
- examples/tutorial/05_extend_with_plugins/my-service-conf-repo/inventory.yaml
|
|
447
471
|
- examples/tutorial/05_extend_with_plugins/my-platforms/hpc_config.rb
|
|
448
472
|
- examples/tutorial/05_extend_with_plugins/my-platforms/Gemfile
|
|
449
|
-
- examples/tutorial/05_extend_with_plugins/my-platforms/my_commands.bash
|
|
450
473
|
- examples/tutorial/05_extend_with_plugins/my-platforms/images/debian_10/Dockerfile
|
|
474
|
+
- examples/tutorial/05_extend_with_plugins/my-platforms/my_commands.bash
|
|
451
475
|
- examples/tutorial/05_extend_with_plugins/dev_docker_image/hpc_root.key.pub
|
|
452
476
|
- examples/tutorial/05_extend_with_plugins/dev_docker_image/Dockerfile
|
|
453
477
|
- examples/tutorial/05_extend_with_plugins/dev_docker_image/hpc_root.key
|
|
454
|
-
- examples/tutorial/05_extend_with_plugins/
|
|
478
|
+
- examples/tutorial/05_extend_with_plugins/web_docker_image/hello_world.txt
|
|
479
|
+
- examples/tutorial/05_extend_with_plugins/web_docker_image/test.bash
|
|
455
480
|
- examples/tutorial/05_extend_with_plugins/web_docker_image/hpc_root.key.pub
|
|
456
|
-
- examples/tutorial/05_extend_with_plugins/web_docker_image/main.go
|
|
457
|
-
- examples/tutorial/05_extend_with_plugins/web_docker_image/start.sh
|
|
458
481
|
- examples/tutorial/05_extend_with_plugins/web_docker_image/Dockerfile
|
|
459
482
|
- examples/tutorial/05_extend_with_plugins/web_docker_image/hpc_root.key
|
|
460
|
-
- examples/tutorial/05_extend_with_plugins/web_docker_image/
|
|
461
|
-
- examples/tutorial/05_extend_with_plugins/web_docker_image/
|
|
462
|
-
- examples/tutorial/
|
|
483
|
+
- examples/tutorial/05_extend_with_plugins/web_docker_image/start.sh
|
|
484
|
+
- examples/tutorial/05_extend_with_plugins/web_docker_image/main.go
|
|
485
|
+
- examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/hosts.json
|
|
486
|
+
- examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-gcc.bash
|
|
487
|
+
- examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-python.bash
|
|
488
|
+
- examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/report/web_report.rb
|
|
489
|
+
- examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/test/root_space.rb
|
|
490
|
+
- examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/platform_handler/json_bash.rb
|
|
491
|
+
- examples/tutorial/05_extend_with_plugins/my_hpc_plugins/my_hpc_plugins.gemspec
|
|
492
|
+
- examples/tutorial/05_extend_with_plugins/node/my-service.conf
|
|
463
493
|
- examples/tutorial/02_first_node/my-service-conf-repo/service_my-service.rb
|
|
494
|
+
- examples/tutorial/02_first_node/my-service-conf-repo/my-service.conf.erb
|
|
464
495
|
- examples/tutorial/02_first_node/my-service-conf-repo/inventory.yaml
|
|
465
496
|
- examples/tutorial/02_first_node/my-platforms/hpc_config.rb
|
|
466
497
|
- examples/tutorial/02_first_node/my-platforms/Gemfile
|
|
467
498
|
- examples/tutorial/02_first_node/node/my-service.conf
|
|
468
499
|
- examples/tutorial/01_installation/my-platforms/hpc_config.rb
|
|
469
500
|
- examples/tutorial/01_installation/my-platforms/Gemfile
|
|
470
|
-
- examples/tutorial/04_test/my-service-conf-repo/service_web-hello.rb
|
|
471
|
-
- examples/tutorial/04_test/my-service-conf-repo/my-service.conf.erb
|
|
472
|
-
- examples/tutorial/04_test/my-service-conf-repo/service_my-service.rb
|
|
473
|
-
- examples/tutorial/04_test/my-service-conf-repo/inventory.yaml
|
|
474
|
-
- examples/tutorial/04_test/my-platforms/hpc_config.rb
|
|
475
|
-
- examples/tutorial/04_test/my-platforms/Gemfile
|
|
476
|
-
- examples/tutorial/04_test/my-platforms/my_commands.bash
|
|
477
|
-
- examples/tutorial/04_test/my-platforms/images/debian_10/Dockerfile
|
|
478
|
-
- examples/tutorial/04_test/node/my-service.conf
|
|
479
|
-
- examples/tutorial/04_test/web_docker_image/hpc_root.key.pub
|
|
480
|
-
- examples/tutorial/04_test/web_docker_image/main.go
|
|
481
|
-
- examples/tutorial/04_test/web_docker_image/start.sh
|
|
482
|
-
- examples/tutorial/04_test/web_docker_image/Dockerfile
|
|
483
|
-
- examples/tutorial/04_test/web_docker_image/hpc_root.key
|
|
484
|
-
- examples/tutorial/04_test/web_docker_image/test.bash
|
|
485
|
-
- examples/tutorial/04_test/web_docker_image/hello_world.txt
|
|
486
|
-
- examples/tutorial/03_scale/my-service-conf-repo/service_web-hello.rb
|
|
487
|
-
- examples/tutorial/03_scale/my-service-conf-repo/my-service.conf.erb
|
|
488
|
-
- examples/tutorial/03_scale/my-service-conf-repo/service_my-service.rb
|
|
489
|
-
- examples/tutorial/03_scale/my-service-conf-repo/inventory.yaml
|
|
490
|
-
- examples/tutorial/03_scale/my-platforms/hpc_config.rb
|
|
491
|
-
- examples/tutorial/03_scale/my-platforms/Gemfile
|
|
492
|
-
- examples/tutorial/03_scale/my-platforms/my_commands.bash
|
|
493
|
-
- examples/tutorial/03_scale/node/my-service.conf
|
|
494
|
-
- examples/tutorial/03_scale/web_docker_image/hpc_root.key.pub
|
|
495
|
-
- examples/tutorial/03_scale/web_docker_image/main.go
|
|
496
|
-
- examples/tutorial/03_scale/web_docker_image/start.sh
|
|
497
|
-
- examples/tutorial/03_scale/web_docker_image/Dockerfile
|
|
498
|
-
- examples/tutorial/03_scale/web_docker_image/hpc_root.key
|
|
499
|
-
- examples/tutorial/03_scale/web_docker_image/test.bash
|
|
500
|
-
- examples/tutorial/03_scale/web_docker_image/hello_world.txt
|
|
501
501
|
- examples/localhost/hpc_config.rb
|
|
502
502
|
- examples/localhost/Gemfile
|
|
503
503
|
- examples/localhost/inventory.yaml
|
|
@@ -695,6 +695,7 @@ files:
|
|
|
695
695
|
- lib/hybrid_platforms_conductor/config.rb
|
|
696
696
|
- lib/hybrid_platforms_conductor/confluence.rb
|
|
697
697
|
- lib/hybrid_platforms_conductor/connector.rb
|
|
698
|
+
- lib/hybrid_platforms_conductor/core_extensions/cleanroom/fix_kwargs.rb
|
|
698
699
|
- lib/hybrid_platforms_conductor/core_extensions/symbol/zero.rb
|
|
699
700
|
- lib/hybrid_platforms_conductor/credentials.rb
|
|
700
701
|
- lib/hybrid_platforms_conductor/current_dir_monitor.rb
|