brpm_content 0.1.19 → 0.1.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDE5MTA3Y2Y5ZjM0NGQzYzBhNTgyMGM4YzZkMzc5NzhiZDNhZjMwNw==
4
+ MmNhMDI1MGFjY2JjNzZjYThjZTc3NjFlYjI5Y2ZiNGJkYTVkMDEyMQ==
5
5
  data.tar.gz: !binary |-
6
- YzcwMjBkNTQyYjM0NjIzNjJlMTY5OGJmMDdkZjhjZmQ1NDBmZDI0Mw==
6
+ YWY5OGI2NDA4N2Q0YTZmOWU2YjNhNjUwOTA1YzhhZmM5ZGZjNmQxZg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZmM5NmY2ZDVkNzljYzhiYjM4NTczODdjMTQwNTQ4YmM2MzQ0Y2JmNTNlMmE3
10
- NzI0YjM4YmY1YmZiMjJlYTE4YTM3NWI1Njc0ODAzMWJlMzJiOGQ2NzM5OGQw
11
- NDI3ODMwOGFkM2IxMDZiOThiZDFmYTcxZmJiNWI5YzcxY2RhNTQ=
9
+ MWRjOTYwMDI0MDkzNWY1NmJmYTY5OTdmMTQ2ZTQ5ZWJiMDg5ZjAxODNlZDQ4
10
+ ZDYyZmI2YjJjMjZjYWVhZTE1ODBmMTAxZTA2ZmIxMWM3ODk4YTEzN2UzYWQy
11
+ ZTI2ODYwNzAzNDlmOGQ3OTk0YmFhNjc3YWE2ZDRjYmVlM2IzN2Y=
12
12
  data.tar.gz: !binary |-
13
- YmI5ODQxMTU1MTZjZTc4OTE2ODhhOGVjOWUzMGI2NzIwMWY1MzU5N2I3ODAw
14
- ZWUwMDk1YjA1ZGFhNTY4ZGNjNmU4NDhjZmJiY2JlYzgxZGViZGMzNzc5NzAx
15
- MzM5MjIyMWRmMjMxOGFkZmFiOTY4YzlhNDk3MjI3OTg3NTQ5OTU=
13
+ YzAyNjliOThkZTM0YzRiM2UxNzJjMDFiZmVmNzc1NzgzMDExOWQ0OGM0ZWQ5
14
+ MWMyYTBiZGVkOGY0NWE3ODE1NDA4ZjIzZDBhYzUwZDAxODY5MTI5OGY0OWM3
15
+ OTJhNDQ5N2U4YTBiYjA2M2NlMTA2ZTZhMTk3M2ExN2Y3M2Y2MTI=
@@ -19,5 +19,5 @@ end
19
19
  module_name = ARGV[0]
20
20
  module_version = ARGV[1] # optional
21
21
 
22
- brpm_installer = BrpmInstaller.new
23
- brpm_installer.install_module(module_name, module_version)
22
+ module_installer = ModuleInstaller.new
23
+ module_installer.install_module(module_name, module_version)
@@ -1,4 +1,4 @@
1
- version: 0.1.19
1
+ version: 0.1.20
2
2
 
3
3
  author: Niek Bartholomeus
4
4
  email: niek.bartholomeus@gmail.com
@@ -1,4 +1,4 @@
1
- class BrpmInstaller
1
+ class ModuleInstaller
2
2
  def install_module(module_name, module_version)
3
3
  BrpmAuto.log "Installing module #{module_name} #{module_version.nil? ? "" : module_version}..."
4
4
 
@@ -80,6 +80,8 @@ class BrpmInstaller
80
80
 
81
81
  def install_auto_script_wrappers(module_path, module_name)
82
82
  brpm_file = File.expand_path("~/.brpm")
83
+
84
+ config = nil
83
85
  if File.exists?(brpm_file)
84
86
  config = YAML.load_file(brpm_file)
85
87
  end
@@ -110,11 +112,18 @@ class BrpmInstaller
110
112
  resource_automation_dir = "#{module_path}/resource_automations"
111
113
  resource_automation_script_paths = Dir.glob("#{resource_automation_dir}/*.rb")
112
114
 
115
+ failed_scripts = []
113
116
  if resource_automation_script_paths.size > 0
114
117
  BrpmAuto.log "Installing the wrapper scripts for the resource automations..."
115
118
 
116
119
  resource_automation_script_paths.each do |auto_script_path|
117
- install_auto_script_wrapper(auto_script_path, "ResourceAutomation", module_name, integration_servers, brpm_rest_client)
120
+ begin
121
+ install_auto_script_wrapper(auto_script_path, "ResourceAutomation", module_name, integration_servers, brpm_rest_client)
122
+ rescue Exception => e
123
+ failed_scripts << auto_script_path
124
+ BrpmAuto.log_error(e)
125
+ BrpmAuto.log e.backtrace.join("\n\t")
126
+ end
118
127
  end
119
128
  end
120
129
 
@@ -126,9 +135,24 @@ class BrpmInstaller
126
135
  BrpmAuto.log "Installing the wrapper scripts for the automations..."
127
136
 
128
137
  automation_script_paths.each do |auto_script_path|
129
- install_auto_script_wrapper(auto_script_path, "Automation", module_name, integration_servers, brpm_rest_client)
138
+ begin
139
+ install_auto_script_wrapper(auto_script_path, "Automation", module_name, integration_servers, brpm_rest_client)
140
+ rescue Exception => e
141
+ failed_scripts << auto_script_path
142
+ BrpmAuto.log_error(e)
143
+ BrpmAuto.log e.backtrace.join("\n\t")
144
+ end
130
145
  end
131
146
  end
147
+
148
+ if failed_scripts.size > 0
149
+ BrpmAuto.log "The following wrapper scripts generated errors during the installation:"
150
+ failed_scripts.each do |failed_script|
151
+ BrpmAuto.log " - #{failed_script}"
152
+ end
153
+ else
154
+ BrpmAuto.log "All wrapper scripts were installed successfully."
155
+ end
132
156
  end
133
157
 
134
158
  def install_auto_script_wrapper(auto_script_path, automation_type, module_name, integration_servers, brpm_rest_client)
@@ -139,19 +163,14 @@ class BrpmInstaller
139
163
 
140
164
  auto_script_config_content = File.exists?(auto_script_config_path) ? File.read(auto_script_config_path) : ""
141
165
  match = auto_script_config_content.match(/###\n(.*)\n###/m)
142
- input_params_content = match ? match[1] : ""
166
+ input_params_content = match ? "#{match[1]}\n" : ""
143
167
 
144
- input_params_content += <<EOR
168
+ matches = input_params_content.scan(/^# {0,1}(.*)/) || []
169
+ input_params_yaml = YAML.load(matches.join("\n")) || {}
145
170
 
146
- # framework_version:
147
- # name: Framework version
148
- # required: no
149
- # module_version:
150
- # name: Module version
151
- # required: no
152
- EOR
171
+ input_params_content += get_input_params_template(input_params_yaml)
153
172
 
154
- wrapper_script_content = "###\n#{input_params_content}###"
173
+ wrapper_script_content = "###\n#{input_params_content}###\n"
155
174
 
156
175
  auto_script_config = YAML.load(auto_script_config_content) || {}
157
176
 
@@ -162,17 +181,8 @@ EOR
162
181
  integration_server = integration_servers.find { |integration_server| integration_server["server_name_id"] == server_type_id } #TODO: support multiple integration servers of same type (user should pick one)
163
182
 
164
183
  if integration_server
165
- wrapper_script_content += <<EOR
166
-
167
- #=== #{auto_script_config["integration_server_type"]} Integration Server: #{integration_server["name"]} ===#
168
- # [integration_id=#{integration_server["id"]}]
169
- #=== End ===#
170
-
171
- params["SS_integration_dns"] = SS_integration_dns
172
- params["SS_integration_username"] = SS_integration_username
173
- params["SS_integration_password_enc"] = SS_integration_password_enc
174
- params["SS_integration_details"] = YAML.load(SS_integration_details)
175
- EOR
184
+ wrapper_script_content += "\n"
185
+ wrapper_script_content += get_integration_server_template(integration_server["id"], integration_server["name"], auto_script_config["integration_server_type"])
176
186
  else
177
187
  BrpmAuto.log "WARNING - An integration server of type #{auto_script_config["integration_server_type"]} doesn't exist so not setting the integration server in the wrapper script."
178
188
  end
@@ -181,32 +191,8 @@ EOR
181
191
  end
182
192
  end
183
193
 
184
- wrapper_script_content += <<EOR
185
-
186
- params["direct_execute"] = "true"
187
-
188
- params["framework_version"] = nil if params["framework_version"].empty?
189
- params["module_version"] = nil if params["module_version"].empty?
190
-
191
- require "\#{ENV["BRPM_CONTENT_HOME"] || "\#{ENV["BRPM_HOME"]}/modules"}/gems/brpm_content-\#{params["framework_version"] || "latest"}/modules/framework/brpm_script_executor.rb"
192
- EOR
193
-
194
- if automation_type == "Automation"
195
-
196
- wrapper_script_content += <<EOR
197
-
198
- BrpmScriptExecutor.execute_automation_script_from_gem("#{module_name}", "#{auto_script_name}", params)
199
- EOR
200
-
201
- elsif automation_type == "ResourceAutomation"
202
-
203
- wrapper_script_content += <<EOR
204
-
205
- def execute(script_params, parent_id, offset, max_records)
206
- BrpmScriptExecutor.execute_resource_automation_script_from_gem("#{module_name}", "#{auto_script_name}", script_params, parent_id, offset, max_records)
207
- end
208
- EOR
209
- end
194
+ wrapper_script_content += "\n"
195
+ wrapper_script_content += get_script_executor_template(automation_type, module_name, auto_script_name)
210
196
 
211
197
  auto_script_friendly_name = auto_script_config["friendly_name"] || "#{module_name.sub("brpm_module_", "").capitalize} - #{auto_script_name.gsub("_", " ").capitalize}"
212
198
  automation_category = auto_script_config["automation_category"] || "#{module_name.sub("brpm_module_", "").capitalize}"
@@ -219,8 +205,8 @@ EOR
219
205
  script["content"] = wrapper_script_content
220
206
  script["integration_id"] = integration_server["id"] if auto_script_config["integration_server_type"] and integration_server
221
207
  if automation_type == "ResourceAutomation"
222
- script["resource_id"] = auto_script_config["resource_id"] if auto_script_config["resource_id"]
223
- script["render_as"] = auto_script_config["render_as"] if auto_script_config["render_as"]
208
+ script["resource_id"] = auto_script_config["resource_id"] || auto_script_name
209
+ script["render_as"] = auto_script_config["render_as"] || "List"
224
210
  end
225
211
 
226
212
  script = brpm_rest_client.create_or_update_script(script)
@@ -241,4 +227,76 @@ EOR
241
227
  script = brpm_rest_client.update_script_from_hash(script_to_update)
242
228
  end
243
229
  end
230
+
231
+ def get_input_params_template(input_params_yaml)
232
+ include_position_attribute = false
233
+ if input_params_yaml.find {|_, param| param.has_key?("position")}
234
+ include_position_attribute = true
235
+ end
236
+
237
+ template = <<EOR
238
+ # framework_version:
239
+ # name: Framework version
240
+ # required: no
241
+ EOR
242
+
243
+ if include_position_attribute
244
+ template += "# position: A#{input_params_yaml.size + 1}:D#{input_params_yaml.size + 1}\n"
245
+ end
246
+
247
+ template += <<EOR
248
+ # module_version:
249
+ # name: Module version
250
+ # required: no
251
+ EOR
252
+
253
+ if include_position_attribute
254
+ template += "# position: A#{input_params_yaml.size + 2}:D#{input_params_yaml.size + 2}\n"
255
+ end
256
+
257
+ template
258
+ end
259
+
260
+ def get_integration_server_template(integration_server_id, integration_server_name, integration_server_type)
261
+ <<EOR
262
+ #=== #{integration_server_type} Integration Server: #{integration_server_name} ===#
263
+ # [integration_id=#{integration_server_id}]
264
+ #=== End ===#
265
+
266
+ params["SS_integration_dns"] = SS_integration_dns
267
+ params["SS_integration_username"] = SS_integration_username
268
+ params["SS_integration_password_enc"] = SS_integration_password_enc
269
+ params["SS_integration_details"] = YAML.load(SS_integration_details)
270
+ EOR
271
+ end
272
+
273
+ def get_script_executor_template(automation_type, module_name, auto_script_name)
274
+ template = <<EOR
275
+ params["direct_execute"] = "true"
276
+
277
+ params["framework_version"] = nil if params["framework_version"].empty?
278
+ params["module_version"] = nil if params["module_version"].empty?
279
+
280
+ require "\#{ENV["BRPM_CONTENT_HOME"] || "\#{ENV["BRPM_HOME"]}/modules"}/gems/brpm_content-\#{params["framework_version"] || "latest"}/modules/framework/brpm_script_executor.rb"
281
+ EOR
282
+
283
+ if automation_type == "Automation"
284
+
285
+ template += <<EOR
286
+
287
+ BrpmScriptExecutor.execute_automation_script_from_gem("#{module_name}", "#{auto_script_name}", params)
288
+ EOR
289
+
290
+ elsif automation_type == "ResourceAutomation"
291
+
292
+ template += <<EOR
293
+
294
+ def execute(script_params, parent_id, offset, max_records)
295
+ BrpmScriptExecutor.execute_resource_automation_script_from_gem("#{module_name}", "#{auto_script_name}", script_params, parent_id, offset, max_records)
296
+ end
297
+ EOR
298
+ end
299
+
300
+ template
301
+ end
244
302
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brpm_content
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.19
4
+ version: 0.1.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niek Bartholomeus
@@ -291,10 +291,10 @@ files:
291
291
  - modules/framework/config/customer_include.rb
292
292
  - modules/framework/config/server.yml
293
293
  - modules/framework/customer_include_default.rb
294
- - modules/framework/lib/brpm_installer.rb
295
294
  - modules/framework/lib/logging/brpm_logger.rb
296
295
  - modules/framework/lib/logging/logger_base.rb
297
296
  - modules/framework/lib/logging/simple_logger.rb
297
+ - modules/framework/lib/module_installer.rb
298
298
  - modules/framework/lib/params/all_params.rb
299
299
  - modules/framework/lib/params/integration_settings.rb
300
300
  - modules/framework/lib/params/params.rb