crowbar-client 3.5.1 → 3.5.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 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