brpm_content 0.1.25 → 0.1.26

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzQ3YTc4OGE4ZTg5Yjk3YzNlN2VmMDkzZGRjNTBiMTg4MjNkODY2MA==
4
+ ZGZjMzAyNjYxMzE1YWVkNzU1ZGE2MTFmODM2ZmMyOWY2ZTI0MGU2Yg==
5
5
  data.tar.gz: !binary |-
6
- Y2MxMzFmZGI1ZjhlZTE1MTZhNDBkNzJmYWVmMzMyY2RhZjIzNDI0Yg==
6
+ YmI4ZDA4ZjZlZWM1ZjBmMzI4Zjk5NWMxNmJmZWVlNGNjMDY3NTllMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NmQ0MTJkYmM4MmYwZmYxYjcxMTljYjQ3YTE5MWM2MmI2ZDI1NjhkYWRmMDMw
10
- NTIwZDI1YzUzMmIwZWZhM2E5NDM5ZGRmMzNlMmQzMTFhM2IxZjc4OGQ0ZWJh
11
- YTc0MDA2OTY1ODg2MGM4MWM4MWRiODU3YjlkYzEzMGFhZjBjNjc=
9
+ NjBlMGM5YWRlMzlhNTFlY2I1MDE1YzM0YjhhMTQ1YmQ5ZDc3ZWYyOTdiMDM2
10
+ MDQ5NzNlNzk2NGI4YTEwMGRjM2Y4N2NlYjlhYzI5NTQ5ZDAzYWQwNDNiOWEy
11
+ YTM5YzMxMzMwYzgzN2JlNThkYjBiOTU2ZGU5ZDdlNmI4YWQ0YmY=
12
12
  data.tar.gz: !binary |-
13
- Y2QwODA5MjgyYTU3NWZlMTM1MjZhM2JkNDQxZGVhYzVjZDk4MzExZDgyMDAx
14
- Y2NjMzA5NjU1NTE4ZmI0MjNkZGViMDA5NDNhMTBjZDFkNTU3ZDdhZGEyYjIx
15
- NjA0ZGFlZjc2MzBkMzU5NmQxYjM0MGYzNmUyZDBkM2M2OTdiYTY=
13
+ YTBiMTcwYzY1MzQzYTU0OTY4YzVkYTRlMGNjYTFlYmUwYjYxM2I4NGVhNWZk
14
+ MjUxNTIwMzMzNzZhYzA0MzFhYjM1NzgxNWZlOTQwMjVhMjE1ZTdjMDExNjIw
15
+ Njg2NGNhODE2OTVkODQwMWZmNDEzOGRhOWNjZDAwYzhhYmNmNTQ=
@@ -1,4 +1,4 @@
1
- version: 0.1.25
1
+ version: 0.1.26
2
2
 
3
3
  author: Niek Bartholomeus
4
4
  email: niek.bartholomeus@gmail.com
@@ -21,9 +21,45 @@ class ModuleInstaller
21
21
  FileUtils.cp("#{brpm_content_spec.gem_dir}/modules/framework/log.html", "#{ENV["BRPM_HOME"]}/automation_results")
22
22
  end
23
23
 
24
- BrpmAuto.log "Installing the automation script wrappers in the local BRPM instance..."
25
- install_auto_script_wrappers(module_spec.gem_dir, module_spec.name)
24
+ BrpmAuto.log "Preparing the connectivity to BRPM..."
25
+ if prepare_brpm_connection
26
+ module_friendly_name = get_module_friendly_name(module_name)
27
+ BrpmAuto.log "Creating an automation category for #{module_friendly_name} if one doesn't exist yet..."
28
+ create_automation_category_if_not_exists(module_friendly_name)
29
+
30
+ BrpmAuto.log "Installing the automation script wrappers in the local BRPM instance..."
31
+ install_auto_script_wrappers(module_spec.gem_dir, module_spec.name)
32
+ end
33
+ end
34
+ end
35
+
36
+ def prepare_brpm_connection
37
+ brpm_file = File.expand_path("~/.brpm")
38
+
39
+ config = nil
40
+ if File.exists?(brpm_file)
41
+ config = YAML.load_file(brpm_file)
26
42
  end
43
+
44
+ if config
45
+ unless config["brpm_url"] and config["brpm_api_token"]
46
+ BrpmAuto.log "WARNING - Properties brpm_url and/or brpm_api_token don't exist in file ~/.brpm so not installing the automation script wrappers in BRPM. If you want to install them the next time you should add brpm_url and brpm_api_token properties in yaml format in file ~/.brpm."
47
+ return false
48
+ end
49
+ else
50
+ BrpmAuto.log "WARNING - File ~/.brpm doesn't exist so not installing the automation script wrappers in BRPM. If you want to install them the next time you should create this file and add brpm_url and brpm_api_token properties in yaml format."
51
+ return false
52
+ end
53
+
54
+ begin
55
+ BrpmAuto.require_module_from_gem "brpm_module_brpm"
56
+ rescue Gem::GemNotFoundException
57
+ BrpmAuto.log "WARNING - Module brpm_module_brpm is not installed so not installing the automation script wrappers in BRPM."
58
+ return false
59
+ end
60
+
61
+ @brpm_rest_client = BrpmRestClient.new(config["brpm_url"], config["brpm_api_token"])
62
+ true
27
63
  end
28
64
 
29
65
  def install_gem(module_name, module_version)
@@ -78,35 +114,25 @@ class ModuleInstaller
78
114
  ENV["BRPM_HOME"] and !ENV["BRPM_HOME"].empty?
79
115
  end
80
116
 
81
- def install_auto_script_wrappers(module_path, module_name)
82
- brpm_file = File.expand_path("~/.brpm")
83
-
84
- config = nil
85
- if File.exists?(brpm_file)
86
- config = YAML.load_file(brpm_file)
87
- end
117
+ def get_module_friendly_name(module_name)
118
+ "#{module_name.sub("brpm_module_", "").capitalize}"
119
+ end
88
120
 
89
- if config
90
- unless config["brpm_url"] and config["brpm_api_token"]
91
- BrpmAuto.log "WARNING - Properties brpm_url and/or brpm_api_token don't exist in file ~/.brpm so not installing the automation script wrappers in BRPM. If you want to install them the next time you should add brpm_url and brpm_api_token properties in yaml format in file ~/.brpm."
92
- return false
93
- end
94
- else
95
- BrpmAuto.log "WARNING - File ~/.brpm doesn't exist so not installing the automation script wrappers in BRPM. If you want to install them the next time you should create this file and add brpm_url and brpm_api_token properties in yaml format."
96
- return false
97
- end
121
+ def create_automation_category_if_not_exists(module_friendly_name)
122
+ list_item = @brpm_rest_client.get_list_item_by_name(module_friendly_name)
98
123
 
99
- begin
100
- BrpmAuto.require_module_from_gem "brpm_module_brpm"
101
- rescue Gem::GemNotFoundException
102
- BrpmAuto.log "WARNING - Module brpm_module_brpm is not installed so not installing the automation script wrappers in BRPM."
103
- return false
124
+ unless list_item
125
+ BrpmAuto.log "Automation category #{module_friendly_name} doesn't exist yet, so creating it now..."
126
+ list_item = {}
127
+ list_item["list_id"] = 24 # AutomationCategory TODO: find the id by the name of the list
128
+ list_item["value_text"] = module_friendly_name
129
+ @brpm_rest_client.create_list_item_by_hash(list_item)
104
130
  end
131
+ end
105
132
 
106
- brpm_rest_client = BrpmRestClient.new(config["brpm_url"], config["brpm_api_token"])
107
-
133
+ def install_auto_script_wrappers(module_path, module_name)
108
134
  BrpmAuto.log "Retrieving the integration servers..."
109
- integration_servers = brpm_rest_client.get_project_servers
135
+ integration_servers = @brpm_rest_client.get_project_servers
110
136
 
111
137
  # For resource automations
112
138
  resource_automation_dir = "#{module_path}/resource_automations"
@@ -118,7 +144,7 @@ class ModuleInstaller
118
144
 
119
145
  resource_automation_script_paths.each do |auto_script_path|
120
146
  begin
121
- install_auto_script_wrapper(auto_script_path, "ResourceAutomation", module_name, integration_servers, brpm_rest_client)
147
+ install_auto_script_wrapper(auto_script_path, "ResourceAutomation", module_name, integration_servers)
122
148
  rescue Exception => e
123
149
  failed_scripts << auto_script_path
124
150
  BrpmAuto.log_error(e)
@@ -136,7 +162,7 @@ class ModuleInstaller
136
162
 
137
163
  automation_script_paths.each do |auto_script_path|
138
164
  begin
139
- install_auto_script_wrapper(auto_script_path, "Automation", module_name, integration_servers, brpm_rest_client)
165
+ install_auto_script_wrapper(auto_script_path, "Automation", module_name, integration_servers)
140
166
  rescue Exception => e
141
167
  failed_scripts << auto_script_path
142
168
  BrpmAuto.log_error(e)
@@ -155,7 +181,7 @@ class ModuleInstaller
155
181
  end
156
182
  end
157
183
 
158
- def install_auto_script_wrapper(auto_script_path, automation_type, module_name, integration_servers, brpm_rest_client)
184
+ def install_auto_script_wrapper(auto_script_path, automation_type, module_name, integration_servers)
159
185
  auto_script_name = File.basename(auto_script_path, ".rb")
160
186
  BrpmAuto.log "Installing the wrapper script for resource automation #{auto_script_name}..."
161
187
 
@@ -181,7 +207,7 @@ class ModuleInstaller
181
207
 
182
208
  integration_server = nil
183
209
  if auto_script_config["integration_server_type"]
184
- server_type_id = brpm_rest_client.get_id_for_project_server_type(auto_script_config["integration_server_type"])
210
+ server_type_id = @brpm_rest_client.get_id_for_project_server_type(auto_script_config["integration_server_type"])
185
211
  if server_type_id
186
212
  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)
187
213
 
@@ -199,14 +225,18 @@ class ModuleInstaller
199
225
  wrapper_script_content += "\n"
200
226
  wrapper_script_content += get_script_executor_template(automation_type, module_name, auto_script_name)
201
227
 
202
- auto_script_friendly_name = auto_script_config["friendly_name"] || "#{module_name.sub("brpm_module_", "").capitalize} - #{auto_script_name.gsub("_", " ").capitalize}"
203
- automation_category = auto_script_config["automation_category"] || "#{module_name.sub("brpm_module_", "").capitalize}"
228
+ module_friendly_name = get_module_friendly_name(module_name)
229
+ auto_script_friendly_name = auto_script_config["friendly_name"] || "#{module_friendly_name} - #{auto_script_name.gsub("_", " ").capitalize}"
230
+ if auto_script_config["automation_category"]
231
+ automation_category = auto_script_config["automation_category"]
232
+ create_automation_category_if_not_exists(automation_category)
233
+ end
204
234
 
205
235
  script = {}
206
236
  script["name"] = auto_script_friendly_name
207
237
  script["description"] = auto_script_friendly_name
208
238
  script["automation_type"] = automation_type
209
- script["automation_category"] = automation_category
239
+ script["automation_category"] = module_friendly_name
210
240
  script["content"] = wrapper_script_content
211
241
  script["integration_id"] = integration_server["id"] if auto_script_config["integration_server_type"] and integration_server
212
242
  if automation_type == "ResourceAutomation"
@@ -214,14 +244,14 @@ class ModuleInstaller
214
244
  script["render_as"] = auto_script_config["render_as"] || "List"
215
245
  end
216
246
 
217
- script = brpm_rest_client.create_or_update_script(script)
247
+ script = @brpm_rest_client.create_or_update_script(script)
218
248
 
219
249
  if script["aasm_state"] == "draft"
220
250
  BrpmAuto.log "Updating the aasm_state of the script to 'pending'..."
221
251
  script_to_update = {}
222
252
  script_to_update["id"] = script["id"]
223
253
  script_to_update["aasm_state"] = "pending"
224
- script = brpm_rest_client.update_script_from_hash(script_to_update)
254
+ script = @brpm_rest_client.update_script_from_hash(script_to_update)
225
255
  end
226
256
 
227
257
  if script["aasm_state"] == "pending"
@@ -229,7 +259,7 @@ class ModuleInstaller
229
259
  script_to_update = {}
230
260
  script_to_update["id"] = script["id"]
231
261
  script_to_update["aasm_state"] = "released"
232
- script = brpm_rest_client.update_script_from_hash(script_to_update)
262
+ script = @brpm_rest_client.update_script_from_hash(script_to_update)
233
263
  end
234
264
  end
235
265
 
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.25
4
+ version: 0.1.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niek Bartholomeus