hybrid_platforms_conductor 33.8.4 → 33.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/docs/config_dsl.md +10 -4
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef.rb +4 -18
- data/lib/hybrid_platforms_conductor/platform_handler.rb +17 -7
- data/lib/hybrid_platforms_conductor/platforms_handler.rb +9 -7
- data/lib/hybrid_platforms_conductor/version.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/nodes_selectors_spec.rb +9 -4
- data/spec/hybrid_platforms_conductor_test/api/platforms_handler_spec.rb +43 -13
- data/spec/hybrid_platforms_conductor_test/helpers/platforms_handler_helpers.rb +4 -2
- data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/test.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d88a5c946d63351586ef1b77ec9840e13e84af48c210bc8dfd1004abc27f547d
|
|
4
|
+
data.tar.gz: 8d04e563077d81cc72d5c3dc883f0010205a3880a255c1fb229ff3ba11771b49
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 211847acef3bff5d8e2e554a6262c783230989c3877b830cdbf4a3c5ff8a0fdb414669c891b9bf102f8adf26aed4000189df7565a1e33e93094ee384a577cbd1
|
|
7
|
+
data.tar.gz: 1faa911b27e3fdda61c605711de26598c6bac9a533519a4b2d583da479f1be9ea32265433d34cf9d8c6aaeee06d45e83b80e648c013ed2342df728a83f9bb6cf
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# [v33.9.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v33.8.4...v33.9.0) (2021-08-24 13:15:44)
|
|
2
|
+
|
|
3
|
+
## Global changes
|
|
4
|
+
### Patches
|
|
5
|
+
|
|
6
|
+
* [[Feature(platform_handler)] [#102] Add the name option when declaring platforms to set the platform name](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/13ada7687f08b3f970521320e2b26ea42d9a6d7f)
|
|
7
|
+
|
|
8
|
+
## Changes for platform_handler
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* [[Feature(platform_handler)] [#102] Add the name option when declaring platforms to set the platform name](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/13ada7687f08b3f970521320e2b26ea42d9a6d7f)
|
|
12
|
+
|
|
1
13
|
# [v33.8.4](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v33.8.3...v33.8.4) (2021-08-20 15:45:41)
|
|
2
14
|
|
|
3
15
|
## Global changes
|
data/docs/config_dsl.md
CHANGED
|
@@ -28,19 +28,25 @@ This DSL can also be completed by plugins. Check [the plugins documentations](pl
|
|
|
28
28
|
Declare a new platform of type `<platform_type>`, providing either a local path to it (using `path: '/path/to/files'`) or a git repository to it (using `git: 'git_url'`). The possible platform types are the names of the [`platform_handler` plugins](plugins.md#platform_handler).
|
|
29
29
|
|
|
30
30
|
Git branches can also be specified using `branch: 'branch_name'`.
|
|
31
|
+
|
|
32
|
+
The name of the platform (as used for example by the [`for_nodes`](#for_nodes) DSL) defaults to the base name of the directory in case of a local path, or the base name of the first remote in case of a git repository. It can be enforced to a given name using `name: 'platform_name'` (useful to avoid name conflicts and keep consistency with the rest of your configuration among the team).
|
|
33
|
+
|
|
31
34
|
An optional code block taking the local repository path as parameter can also be specified to add configuration that is specific to this platform.
|
|
32
35
|
|
|
33
36
|
Examples:
|
|
34
37
|
```ruby
|
|
35
|
-
# Declare a platform of type Chef, located in a distant git repository
|
|
38
|
+
# Declare a platform of type Chef, located in a distant git repository (its name will be my-chef-repo)
|
|
36
39
|
chef_platform git: 'https://my-git.domain.com/project/my-chef-repo.git'
|
|
37
40
|
|
|
38
|
-
# Declare a platform located in a local path
|
|
39
|
-
chef_platform path: '/path/to/my-chef-repo'
|
|
41
|
+
# Declare a platform located in a local path (its name will be my-other-chef-repo)
|
|
42
|
+
chef_platform path: '/path/to/my-other-chef-repo'
|
|
43
|
+
|
|
44
|
+
# Declare a platform located in a local path and forces its name (its name will be my-platform)
|
|
45
|
+
chef_platform path: '/path/to/my-repo', name: 'my-platform'
|
|
40
46
|
|
|
41
47
|
# Declare a platform from a git branch, and apply some configuration to it
|
|
42
48
|
chef_platform(
|
|
43
|
-
git: 'https://my-git.domain.com/project/
|
|
49
|
+
git: 'https://my-git.domain.com/project/devops-chef-repo.git',
|
|
44
50
|
branch: 'my-branch'
|
|
45
51
|
) do |path|
|
|
46
52
|
# Here path will be a local path containing a checkout of the branch my-branch of the git repo.
|
|
@@ -47,24 +47,10 @@ module HybridPlatformsConductor
|
|
|
47
47
|
end
|
|
48
48
|
extend_config_dsl_with MyDSLExtension, :init_serverless_chef
|
|
49
49
|
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
|
-
#
|
|
53
|
-
|
|
54
|
-
# * *repository_path* (String): Repository path
|
|
55
|
-
# * *logger* (Logger): Logger to be used [default: Logger.new(STDOUT)]
|
|
56
|
-
# * *logger_stderr* (Logger): Logger to be used for stderr [default: Logger.new(STDERR)]
|
|
57
|
-
# * *config* (Config): Config to be used. [default: Config.new]
|
|
58
|
-
# * *cmd_runner* (CmdRunner): Command executor to be used. [default: CmdRunner.new]
|
|
59
|
-
def initialize(
|
|
60
|
-
platform_type,
|
|
61
|
-
repository_path,
|
|
62
|
-
logger: Logger.new($stdout),
|
|
63
|
-
logger_stderr: Logger.new($stderr),
|
|
64
|
-
config: Config.new,
|
|
65
|
-
cmd_runner: CmdRunner.new
|
|
66
|
-
)
|
|
67
|
-
super
|
|
50
|
+
# Initialize a new instance of this platform handler.
|
|
51
|
+
# [API] - This method is optional.
|
|
52
|
+
# [API] - @cmd_runner is accessible.
|
|
53
|
+
def init
|
|
68
54
|
# Mutex for getting the full recipes tree
|
|
69
55
|
@recipes_tree_mutex = Mutex.new
|
|
70
56
|
end
|
|
@@ -17,13 +17,13 @@ module HybridPlatformsConductor
|
|
|
17
17
|
# Make sure we define automatically a helper for such a platform
|
|
18
18
|
mixin = Module.new
|
|
19
19
|
platform_type = subclass.name.split('::').last.gsub(/([a-z\d])([A-Z\d])/, '\1_\2').downcase.to_sym
|
|
20
|
-
mixin.define_method("#{platform_type}_platform".to_sym) do |path: nil, git: nil, branch: 'master', &platform_config_code|
|
|
20
|
+
mixin.define_method("#{platform_type}_platform".to_sym) do |path: nil, git: nil, branch: 'master', name: nil, &platform_config_code|
|
|
21
21
|
repository_path =
|
|
22
22
|
if !path.nil?
|
|
23
23
|
path
|
|
24
24
|
elsif !git.nil?
|
|
25
25
|
# Clone in a local repository
|
|
26
|
-
local_repository_path = "#{@git_platforms_dir}/#{File.basename(git)[0..-File.extname(git).size - 1]}"
|
|
26
|
+
local_repository_path = "#{@git_platforms_dir}/#{name.nil? ? File.basename(git)[0..-File.extname(git).size - 1] : name}"
|
|
27
27
|
unless File.exist?(local_repository_path)
|
|
28
28
|
branch = "refs/heads/#{branch}" unless branch.include?('/')
|
|
29
29
|
local_ref = "refs/remotes/origin/#{branch.split('/').last}"
|
|
@@ -37,8 +37,10 @@ module HybridPlatformsConductor
|
|
|
37
37
|
else
|
|
38
38
|
raise 'The platform has to be defined with either a path or a git URL'
|
|
39
39
|
end
|
|
40
|
-
@
|
|
41
|
-
@
|
|
40
|
+
@platforms_info[platform_type] = {} unless @platforms_info.key?(platform_type)
|
|
41
|
+
raise "Platform repository path #{repository_path} is declared several times." if @platforms_info.values.any? { |known_platforms_info| known_platforms_info.key?(repository_path) }
|
|
42
|
+
|
|
43
|
+
@platforms_info[platform_type][repository_path] = name.nil? ? {} : { name: name }
|
|
42
44
|
platform_config_code&.call(repository_path)
|
|
43
45
|
end
|
|
44
46
|
# Register this new mixin in the Config DSL
|
|
@@ -66,18 +68,21 @@ module HybridPlatformsConductor
|
|
|
66
68
|
# * *logger_stderr* (Logger): Logger to be used for stderr [default: Logger.new(STDERR)]
|
|
67
69
|
# * *config* (Config): Config to be used. [default: Config.new]
|
|
68
70
|
# * *cmd_runner* (CmdRunner): Command executor to be used. [default: CmdRunner.new]
|
|
71
|
+
# * *name* (String or nil): Platform name, or nil for defaults (based on path or git remote) [default: nil]
|
|
69
72
|
def initialize(
|
|
70
73
|
platform_type,
|
|
71
74
|
repository_path,
|
|
72
75
|
logger: Logger.new($stdout),
|
|
73
76
|
logger_stderr: Logger.new($stderr),
|
|
74
77
|
config: Config.new,
|
|
75
|
-
cmd_runner: CmdRunner.new
|
|
78
|
+
cmd_runner: CmdRunner.new,
|
|
79
|
+
name: nil
|
|
76
80
|
)
|
|
77
81
|
super(logger: logger, logger_stderr: logger_stderr, config: config)
|
|
78
82
|
@platform_type = platform_type
|
|
79
83
|
@repository_path = repository_path
|
|
80
84
|
@cmd_runner = cmd_runner
|
|
85
|
+
@name = name
|
|
81
86
|
init if respond_to?(:init)
|
|
82
87
|
end
|
|
83
88
|
|
|
@@ -142,7 +147,12 @@ module HybridPlatformsConductor
|
|
|
142
147
|
git_status = git.status
|
|
143
148
|
git_commit = git.log.first
|
|
144
149
|
{
|
|
145
|
-
repo_name:
|
|
150
|
+
repo_name:
|
|
151
|
+
if @name.nil?
|
|
152
|
+
git.remotes.empty? ? File.basename(@repository_path) : File.basename(git.remotes.first.url).gsub(/\.git$/, '')
|
|
153
|
+
else
|
|
154
|
+
@name
|
|
155
|
+
end,
|
|
146
156
|
commit: {
|
|
147
157
|
id: git_commit.sha,
|
|
148
158
|
ref: git_commit.name,
|
|
@@ -162,7 +172,7 @@ module HybridPlatformsConductor
|
|
|
162
172
|
}
|
|
163
173
|
else
|
|
164
174
|
{
|
|
165
|
-
repo_name: File.basename(@repository_path)
|
|
175
|
+
repo_name: @name.nil? ? File.basename(@repository_path) : @name
|
|
166
176
|
}
|
|
167
177
|
end
|
|
168
178
|
end
|
|
@@ -9,13 +9,14 @@ module HybridPlatformsConductor
|
|
|
9
9
|
# Add some config DSL
|
|
10
10
|
module ConfigDSLExtension
|
|
11
11
|
|
|
12
|
-
# List of platforms repository directories, per platform type
|
|
13
|
-
# Hash<Symbol,
|
|
14
|
-
|
|
12
|
+
# List of platforms repository directories and their associated info, per platform type
|
|
13
|
+
# Hash<Symbol, Hash<String, Hash<Symbol,Object> > >
|
|
14
|
+
# Hash<platform_type, Hash<repository_path, Hash<Symbol,Object> > >
|
|
15
|
+
attr_reader :platforms_info
|
|
15
16
|
|
|
16
17
|
# Mixin initializer
|
|
17
18
|
def init_platforms_handler
|
|
18
|
-
@
|
|
19
|
+
@platforms_info = {}
|
|
19
20
|
# Directory in which platforms are cloned
|
|
20
21
|
@git_platforms_dir = "#{@hybrid_platforms_dir}/cloned_platforms"
|
|
21
22
|
end
|
|
@@ -46,15 +47,16 @@ module HybridPlatformsConductor
|
|
|
46
47
|
# Hash<Symbol, Array<PlatformHandler> >
|
|
47
48
|
@platform_handlers = {}
|
|
48
49
|
# Read all platforms from the config
|
|
49
|
-
@config.
|
|
50
|
-
|
|
50
|
+
@config.platforms_info.each do |platform_type, repositories_info|
|
|
51
|
+
repositories_info.each do |repository_path, repository_info|
|
|
51
52
|
platform_handler = @platform_types[platform_type].new(
|
|
52
53
|
platform_type,
|
|
53
54
|
repository_path,
|
|
54
55
|
logger: @logger,
|
|
55
56
|
logger_stderr: @logger_stderr,
|
|
56
57
|
config: @config,
|
|
57
|
-
cmd_runner: @cmd_runner
|
|
58
|
+
cmd_runner: @cmd_runner,
|
|
59
|
+
name: repository_info[:name]
|
|
58
60
|
)
|
|
59
61
|
# Check that this platform has unique name
|
|
60
62
|
raise "Platform name #{platform_handler.name} is declared several times." if @platform_handlers.values.flatten.any? { |known_platform| known_platform.name == platform_handler.name }
|
|
@@ -15,6 +15,10 @@ describe HybridPlatformsConductor::NodesHandler do
|
|
|
15
15
|
},
|
|
16
16
|
'platform2' => {
|
|
17
17
|
nodes: { 'node4' => {}, 'node5' => { services: %w[service3 service1] }, 'node6' => {} }
|
|
18
|
+
},
|
|
19
|
+
'platform3' => {
|
|
20
|
+
nodes: { 'node7' => {} },
|
|
21
|
+
name: 'other_platform'
|
|
18
22
|
}
|
|
19
23
|
},
|
|
20
24
|
&block
|
|
@@ -24,12 +28,13 @@ describe HybridPlatformsConductor::NodesHandler do
|
|
|
24
28
|
# List all tests of nodes selectors, and the corresponding nodes list they should be resolved into
|
|
25
29
|
{
|
|
26
30
|
[] => [],
|
|
27
|
-
[{ all: true }] => %w[node1 node2 node3 node4 node5 node6],
|
|
31
|
+
[{ all: true }] => %w[node1 node2 node3 node4 node5 node6 node7],
|
|
28
32
|
'node1' => %w[node1],
|
|
29
33
|
'/node[12]/' => %w[node1 node2],
|
|
30
34
|
[{ list: 'nodeslist1' }] => %w[node1 node3],
|
|
31
35
|
[{ list: 'nodeslist2' }] => %w[node1 node2],
|
|
32
36
|
[{ platform: 'platform2' }] => %w[node4 node5 node6],
|
|
37
|
+
[{ platform: 'other_platform' }] => %w[node7],
|
|
33
38
|
[{ service: 'service1' }] => %w[node2 node5],
|
|
34
39
|
['/node[12]/', { service: 'service1' }] => %w[node1 node2 node5],
|
|
35
40
|
[{ git_diff: { platform: 'platform2' } }] => %w[node4 node5 node6]
|
|
@@ -45,13 +50,13 @@ describe HybridPlatformsConductor::NodesHandler do
|
|
|
45
50
|
|
|
46
51
|
it 'fails when selecting unknown nodes' do
|
|
47
52
|
with_test_platform_for_nodes do
|
|
48
|
-
expect { test_nodes_handler.select_nodes('node1', '
|
|
53
|
+
expect { test_nodes_handler.select_nodes('node1', 'unknown_node') }.to raise_error(RuntimeError, 'Unknown nodes: unknown_node')
|
|
49
54
|
end
|
|
50
55
|
end
|
|
51
56
|
|
|
52
57
|
it 'ignore unknown nodes when asked' do
|
|
53
58
|
with_test_platform_for_nodes do
|
|
54
|
-
expect(test_nodes_handler.select_nodes(%w[node1
|
|
59
|
+
expect(test_nodes_handler.select_nodes(%w[node1 unknown_node], ignore_unknowns: true).sort).to eq %w[node1 unknown_node].sort
|
|
55
60
|
end
|
|
56
61
|
end
|
|
57
62
|
|
|
@@ -105,7 +110,7 @@ describe HybridPlatformsConductor::NodesHandler do
|
|
|
105
110
|
|
|
106
111
|
it 'considers all nodes for en empty nodes selector stack' do
|
|
107
112
|
with_test_platform_for_nodes do
|
|
108
|
-
expect(test_nodes_handler.select_from_nodes_selector_stack([]).sort).to eq %w[node1 node2 node3 node4 node5 node6].sort
|
|
113
|
+
expect(test_nodes_handler.select_from_nodes_selector_stack([]).sort).to eq %w[node1 node2 node3 node4 node5 node6 node7].sort
|
|
109
114
|
end
|
|
110
115
|
end
|
|
111
116
|
|
|
@@ -2,22 +2,22 @@ describe HybridPlatformsConductor::PlatformsHandler do
|
|
|
2
2
|
|
|
3
3
|
context 'when checking config specific DSL' do
|
|
4
4
|
|
|
5
|
-
it 'returns
|
|
5
|
+
it 'returns platforms info' do
|
|
6
6
|
with_test_platforms(
|
|
7
7
|
{
|
|
8
8
|
'platform1' => { platform_type: :test },
|
|
9
9
|
'platform2' => { platform_type: :test_2 },
|
|
10
|
-
'platform3' => { platform_type: :test }
|
|
10
|
+
'platform3' => { platform_type: :test, name: 'other_platform' }
|
|
11
11
|
}
|
|
12
12
|
) do |repositories|
|
|
13
|
-
expect(test_config.
|
|
14
|
-
expect(test_config.
|
|
15
|
-
repositories['platform1'],
|
|
16
|
-
repositories['platform3']
|
|
17
|
-
|
|
18
|
-
expect(test_config.
|
|
19
|
-
repositories['platform2']
|
|
20
|
-
|
|
13
|
+
expect(test_config.platforms_info.keys.sort).to eq %i[test test_2].sort
|
|
14
|
+
expect(test_config.platforms_info[:test]).to eq(
|
|
15
|
+
repositories['platform1'] => {},
|
|
16
|
+
repositories['platform3'] => { name: 'other_platform' }
|
|
17
|
+
)
|
|
18
|
+
expect(test_config.platforms_info[:test_2]).to eq(
|
|
19
|
+
repositories['platform2'] => {}
|
|
20
|
+
)
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
|
|
@@ -55,27 +55,57 @@ describe HybridPlatformsConductor::PlatformsHandler do
|
|
|
55
55
|
{
|
|
56
56
|
'platform1' => { platform_type: :test },
|
|
57
57
|
'platform2' => { platform_type: :test_2 },
|
|
58
|
-
'platform3' => { platform_type: :test }
|
|
58
|
+
'platform3' => { platform_type: :test, name: 'other_platform' }
|
|
59
59
|
}
|
|
60
60
|
) do
|
|
61
|
-
expect(test_platforms_handler.known_platforms.map(&:name).sort).to eq %w[platform1 platform2
|
|
61
|
+
expect(test_platforms_handler.known_platforms.map(&:name).sort).to eq %w[platform1 platform2 other_platform].sort
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
it 'fails if several platforms share the same name' do
|
|
66
66
|
with_repository('platform1') do |repository|
|
|
67
|
+
FileUtils.mkdir_p "#{repository}/platform1"
|
|
67
68
|
with_test_platforms(
|
|
68
69
|
{
|
|
69
70
|
'platform1' => { platform_type: :test },
|
|
70
71
|
'platform2' => { platform_type: :test_2 }
|
|
71
72
|
},
|
|
72
|
-
additional_config: "test_2_platform path: \'#{repository}\'"
|
|
73
|
+
additional_config: "test_2_platform path: \'#{repository}/platform1\'"
|
|
73
74
|
) do
|
|
74
75
|
expect { test_platforms_handler.known_platforms }.to raise_error 'Platform name platform1 is declared several times.'
|
|
75
76
|
end
|
|
76
77
|
end
|
|
77
78
|
end
|
|
78
79
|
|
|
80
|
+
it 'fails if several platforms share the same path' do
|
|
81
|
+
with_repository('platform1') do |repository|
|
|
82
|
+
with_test_platforms(
|
|
83
|
+
{
|
|
84
|
+
'platform1' => { platform_type: :test },
|
|
85
|
+
'platform2' => { platform_type: :test_2 }
|
|
86
|
+
},
|
|
87
|
+
additional_config: "test_2_platform path: \'#{repository}\', name: 'other_platform'"
|
|
88
|
+
) do
|
|
89
|
+
expect { test_platforms_handler.known_platforms }.to raise_error "Platform repository path #{repository} is declared several times."
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
it 'can differentiate several platforms sharing the same path ending but with different explicit names' do
|
|
95
|
+
with_repository('platform1') do |repository|
|
|
96
|
+
FileUtils.mkdir_p "#{repository}/platform1"
|
|
97
|
+
with_test_platforms(
|
|
98
|
+
{
|
|
99
|
+
'platform1' => { platform_type: :test },
|
|
100
|
+
'platform2' => { platform_type: :test_2 }
|
|
101
|
+
},
|
|
102
|
+
additional_config: "test_platform path: \'#{repository}/platform1\', name: 'other_platform'"
|
|
103
|
+
) do
|
|
104
|
+
expect(test_platforms_handler.known_platforms.map(&:name).sort).to eq %w[platform1 platform2 other_platform].sort
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
79
109
|
it 'returns defined platforms filtered by platform type' do
|
|
80
110
|
with_test_platforms(
|
|
81
111
|
{
|
|
@@ -73,7 +73,9 @@ module HybridPlatformsConductorTest
|
|
|
73
73
|
# Clean-up at the end.
|
|
74
74
|
#
|
|
75
75
|
# Parameters::
|
|
76
|
-
# * *platforms_info* (Hash<String,Object>): Platforms info for the test platform
|
|
76
|
+
# * *platforms_info* (Hash<String,Object>): Platforms info for the test platform:
|
|
77
|
+
# * *platform_type* (Symbol): Name of the platform handler plugin for this platform
|
|
78
|
+
# * *name* (String): Optional name to give the platform [optional]
|
|
77
79
|
# * *as_git* (Boolean): Do we initialize those repositories as Git repositories? [default: false]
|
|
78
80
|
# * *additional_config* (String): Additional config to be added [default: '']
|
|
79
81
|
# * Proc: Code called with the environment ready
|
|
@@ -86,7 +88,7 @@ module HybridPlatformsConductorTest
|
|
|
86
88
|
repositories.map do |platform, dir|
|
|
87
89
|
platform_type = platforms_info[platform].key?(:platform_type) ? platforms_info[platform][:platform_type] : :test
|
|
88
90
|
platform_types << platform_type unless platform_types.include?(platform_type)
|
|
89
|
-
"#{platform_type}_platform path: '#{dir}'"
|
|
91
|
+
"#{platform_type}_platform path: '#{dir}'#{platforms_info[platform].key?(:name) ? ", name: '#{platforms_info[platform][:name]}'" : ''}"
|
|
90
92
|
end.join("\n") + "\n#{additional_config}"
|
|
91
93
|
) do
|
|
92
94
|
register_platform_handlers(platform_types.map do |platform_type|
|
|
@@ -200,10 +200,11 @@ module HybridPlatformsConductorTest
|
|
|
200
200
|
# Result::
|
|
201
201
|
# * Hash<Symbol, Object>: Platform info (check TestPlatformHandler#platforms_info to know about properties)
|
|
202
202
|
def platform_info
|
|
203
|
+
_repo_base_name, found_platform_info = HybridPlatformsConductorTest::PlatformHandlerPlugins::Test.platforms_info.find { |search_repo_base_name, search_platform_info| (search_platform_info[:name] || search_repo_base_name) == name }
|
|
203
204
|
{
|
|
204
205
|
nodes: {},
|
|
205
206
|
nodes_lists: {}
|
|
206
|
-
}.merge(
|
|
207
|
+
}.merge(found_platform_info)
|
|
207
208
|
end
|
|
208
209
|
|
|
209
210
|
# Return the node info of a given node
|
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.
|
|
4
|
+
version: 33.9.0
|
|
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-08-
|
|
11
|
+
date: 2021-08-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: range_operators
|