hybrid_platforms_conductor 33.0.1 → 33.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|