crowbar-client 3.5.1 → 3.5.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: 2c9a64b119a2dbd5c8337f1a4c9d8524cb145c16e0e15796ccb131170872ab47
4
- data.tar.gz: 02e5f441dfe055079ed8474fc04c542439fbd6f214e34d5767f740b1bfcad038
3
+ metadata.gz: 46b7ba57caa745cb2c4b7b61f72fb3c4c44a6a9c23b8bf5437f5da433028ae44
4
+ data.tar.gz: a11888a2f0e8cd2276294e32da87479b542517bfbdd8e595bc76b9e3c687ec7f
5
5
  SHA512:
6
- metadata.gz: a838722e1824b05d66fca1fb0f3e99c56161fa50c87f7ec00e4116d90cb08f941f00731ff7275ea467450fa44cbf534cbd2688eb6fec08745c9f060086b15b01
7
- data.tar.gz: e9526302bc214792ea285193bd4971b5f9775b05f84131be7f201bba0030b0c554bdb41836ea9f06fd8149d024ed69011f401e8d1cdb7e5c392bd5ea3fbfc6f7
6
+ metadata.gz: 32da261c491ce8d2bfbf5303b36b0869f71d2fef7fb226371efc05fcaadc6e252650ed7eba8e730bc182cd3bb05efea6bc68dd0d15837829581945cabcb4f8d6
7
+ data.tar.gz: 086f06ec09baa46b080e64bc22f14dcafdc5438872778c9a38d1835b102fd6fccc9d6730b5de8eb498d8d66e9b07dbd79717a24b1b31d2938087df8d0570e801
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.5.2](https://github.com/crowbar/crowbar-client/releases/tag/v3.5.2) - 2018-01-09
4
+
5
+ * BUGFIX
6
+ * Display invalid nodes when editing proposal
7
+
3
8
  ## [3.5.1](https://github.com/crowbar/crowbar-client/releases/tag/v3.5.1) - 2017-12-05
4
9
 
5
10
  * BUGFIX
@@ -76,6 +76,9 @@ module Crowbar
76
76
  err "Failed to parse JSON"
77
77
  end
78
78
 
79
+ # check if the nodes in the configuration are in the list of nodes
80
+ check_nodes(json)
81
+
79
82
  if options[:merge]
80
83
  proposal_preload.easy_merge(
81
84
  json
@@ -104,6 +107,9 @@ module Crowbar
104
107
  err "Failed to process file"
105
108
  end
106
109
 
110
+ # check if the nodes in the configuration are in the list of nodes
111
+ check_nodes(json)
112
+
107
113
  if options[:merge]
108
114
  proposal_preload.easy_merge(
109
115
  json
@@ -116,8 +122,12 @@ module Crowbar
116
122
  def from_editor
117
123
  editor = Util::Editor.new content: proposal_preload
118
124
  editor.edit!
125
+ result = editor.result
119
126
 
120
- editor.result
127
+ # check if the nodes in the configuration are in the list of nodes
128
+ check_nodes(result)
129
+
130
+ result
121
131
  rescue EditorAbortError => e
122
132
  err e.message
123
133
  rescue EditorStartupError => e
@@ -140,6 +150,36 @@ module Crowbar
140
150
  from_editor
141
151
  end
142
152
  end
153
+
154
+ def check_nodes(configuration)
155
+ invalid_nodes = []
156
+ nodes_and_clusters = valid_elements
157
+
158
+ configuration["deployment"].each do |service_name, service|
159
+ next if service["elements"].nil?
160
+
161
+ service["elements"].each do |role, nodes|
162
+ nodes.each do |node|
163
+ unless nodes_and_clusters.include?(node)
164
+ invalid_nodes << { "node" => node, "role" => role,
165
+ "service_name" => service_name }
166
+ end
167
+ end
168
+ end
169
+ end
170
+
171
+ return if invalid_nodes.empty?
172
+
173
+ error_str = ""
174
+
175
+ invalid_nodes.each do |error|
176
+ error_str += "ERROR : #{error["node"]} is not available in the list of" \
177
+ " possible nodes and clusters. Added in role #{error["role"]}" \
178
+ " of service #{error["service_name"]}\r\n"
179
+ end
180
+
181
+ err error_str
182
+ end
143
183
  end
144
184
  end
145
185
  end
@@ -33,7 +33,7 @@ module Crowbar
33
33
  #
34
34
  # Patch version
35
35
  #
36
- PATCH = 1
36
+ PATCH = 2
37
37
 
38
38
  #
39
39
  # Optional suffix
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crowbar-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.1
4
+ version: 3.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Boerger
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-12-05 00:00:00.000000000 Z
13
+ date: 2018-01-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -621,7 +621,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
621
621
  version: '0'
622
622
  requirements: []
623
623
  rubyforge_project:
624
- rubygems_version: 2.7.3
624
+ rubygems_version: 2.7.4
625
625
  signing_key:
626
626
  specification_version: 4
627
627
  summary: Crowbar commandline client