hybrid_platforms_conductor 33.9.1 → 33.9.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f6fe7f17295eff7ec9450d1ee910807a17904b8fa3c2bc5959449805b3c4aee
4
- data.tar.gz: 3e39403d767099165e0765ba631effcb76b4d998ab7e34069d6d63ce9d75979a
3
+ metadata.gz: 2a6b91bf179fa45f605d1b08d8c21cced9547c0588139b1998fca01a19f75abe
4
+ data.tar.gz: 5372e49247ba48adf64eed5a9fe3cc5aff5b2e82be8bc834a2283f815cc4c928
5
5
  SHA512:
6
- metadata.gz: 2abe0958607c3980f84acfb55a1d1b4b5dd96e03ab94db21f1069a30e9026e7053fca09125c253c619bd3228772718acf744af6447450d8bb36277ee341c18e5
7
- data.tar.gz: a14bfcaaf1bff4ca92206d54c7e2bf0d7367c8ccd1609a311bec0c9fb844e3ae1fd1aaf2836ab7e69446b98713bdfea227653da4c55b2c2d1c797ed9896465bb
6
+ metadata.gz: a1d886444be942a74153cb834e450b8062356959aaca508e10186bcb444f63295f8fc198b3e49f94babbbb7b6315bed146c1a29c21ab23d9112de94971e18d11
7
+ data.tar.gz: 31640de82a155dc42128926683fe7ded34039bad1cb639ff6bb8d4571f7f01a191f2103ea6a01c3de60322dc67015e92c833a0e8597b10bb3d6030e10199a864
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # [v33.9.2](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v33.9.1...v33.9.2) (2021-09-01 17:46:34)
2
+
3
+ ## Global changes
4
+ ### Patches
5
+
6
+ * [[Fix(nodes_to_deploy)] [#112] Support UTF-8 encoding from log files](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/26a7bd2fd53d387bd972b5e1b60cac9be6541ce5)
7
+
8
+ ## Changes for nodes_to_deploy
9
+ ### Patches
10
+
11
+ * [[Fix(nodes_to_deploy)] [#112] Support UTF-8 encoding from log files](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/26a7bd2fd53d387bd972b5e1b60cac9be6541ce5)
12
+
1
13
  # [v33.9.1](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v33.9.0...v33.9.1) (2021-09-01 16:59:59)
2
14
 
3
15
  ## Global changes
@@ -475,9 +475,15 @@ module HybridPlatformsConductor
475
475
  progress_name: 'Read deployment logs'
476
476
  )
477
477
  nodes.map do |node|
478
+ exit_code, stdout, stderr = read_actions_results[node] || [nil, nil, nil]
478
479
  [
479
480
  node,
480
- @log_plugins[log_plugins_for(node).first].logs_for(node, *(read_actions_results[node] || [nil, nil, nil]))
481
+ @log_plugins[log_plugins_for(node).first].logs_for(
482
+ node,
483
+ exit_code,
484
+ stdout&.force_encoding(Encoding::UTF_8),
485
+ stderr&.force_encoding(Encoding::UTF_8)
486
+ )
481
487
  ]
482
488
  end.to_h
483
489
  end
@@ -1,5 +1,5 @@
1
1
  module HybridPlatformsConductor
2
2
 
3
- VERSION = '33.9.1'
3
+ VERSION = '33.9.2'
4
4
 
5
5
  end
@@ -196,6 +196,50 @@ describe HybridPlatformsConductor::Deployer do
196
196
  end
197
197
  end
198
198
 
199
+ it 'gets deployment info from log plugins returning UTF-8 characters' do
200
+ with_test_platform_for_deploy_tests({ nodes: { 'node' => {} } }) do
201
+ HybridPlatformsConductorTest::TestLogPlugin.mocked_logs = {
202
+ 'node' => {
203
+ deployment_info: { user: 'test_user' },
204
+ exit_status: 666,
205
+ services: %w[unknown],
206
+ stderr: 'stderrの展開テストログ',
207
+ stdout: 'stdoutの展開テストログ'
208
+ }
209
+ }
210
+ expect_actions_executor_runs [
211
+ # Expect the actions to get log files
212
+ proc do |actions_per_nodes|
213
+ expect(actions_per_nodes).to eq('node' => [{ bash: 'echo Read logs for node' }])
214
+ # Simulate the fact that data returned by the ssh system calls can contain UTF-8 chars, but is perceived as binary
215
+ { 'node' => [42, 'ログファイルはstdoutを読み取ります'.force_encoding('BINARY'), 'ログファイルはstderrを読み取ります'.force_encoding('BINARY')] }
216
+ end
217
+ ]
218
+ expect(test_deployer.deployment_info_from('node')).to eq(
219
+ 'node' => {
220
+ deployment_info: { user: 'test_user' },
221
+ exit_status: 666,
222
+ services: %w[unknown],
223
+ stderr: 'stderrの展開テストログ',
224
+ stdout: 'stdoutの展開テストログ'
225
+ }
226
+ )
227
+ expect(HybridPlatformsConductorTest::TestLogPlugin.calls).to eq [
228
+ {
229
+ method: :actions_to_read_logs,
230
+ node: 'node'
231
+ },
232
+ {
233
+ method: :logs_for,
234
+ node: 'node',
235
+ exit_status: 42,
236
+ stdout: 'ログファイルはstdoutを読み取ります',
237
+ stderr: 'ログファイルはstderrを読み取ります'
238
+ }
239
+ ]
240
+ end
241
+ end
242
+
199
243
  it 'gets deployment info from log plugins not having actions_to_read_logs' do
200
244
  with_test_platform_for_deploy_tests({ nodes: { 'node' => {} } }, additional_config: 'send_logs_to :test_log_no_read') do
201
245
  expect(test_deployer.deployment_info_from('node')).to eq(
@@ -5,7 +5,7 @@ module HybridPlatformsConductorTest
5
5
 
6
6
  class << self
7
7
 
8
- attr_accessor :calls
8
+ attr_accessor(*%i[calls mocked_logs])
9
9
 
10
10
  end
11
11
 
@@ -89,7 +89,7 @@ module HybridPlatformsConductorTest
89
89
  stdout: stdout,
90
90
  stderr: stderr
91
91
  }
92
- {
92
+ TestLogPlugin.mocked_logs[node] || {
93
93
  services: %w[unknown],
94
94
  deployment_info: {
95
95
  user: 'test_user'
@@ -145,6 +145,7 @@ module HybridPlatformsConductorTest
145
145
  HybridPlatformsConductorTest::TestPlugins::NodeCheck.only_on_nodes = nil
146
146
  HybridPlatformsConductorTest::TestPlugins::SeveralChecks.runs = []
147
147
  HybridPlatformsConductorTest::TestLogPlugin.calls = []
148
+ HybridPlatformsConductorTest::TestLogPlugin.mocked_logs = {}
148
149
  HybridPlatformsConductorTest::TestLogNoReadPlugin.calls = []
149
150
  HybridPlatformsConductorTest::TestSecretsReaderPlugin.calls = []
150
151
  HybridPlatformsConductorTest::TestSecretsReaderPlugin.deployer = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hybrid_platforms_conductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 33.9.1
4
+ version: 33.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Muriel Salvan