brpm_content 0.1.16

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.
Files changed (267) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +38 -0
  3. data/.travis.yml +14 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +21 -0
  6. data/README.md +308 -0
  7. data/Rakefile +24 -0
  8. data/TO_BE_MIGRATED.txt +8 -0
  9. data/architecture.png +0 -0
  10. data/brpm_content.gemspec +31 -0
  11. data/customers/demo/integrations/brpm/process_event_handler_event.rb +183 -0
  12. data/customers/demo/integrations/jenkins/spec/api/applications_spec.rb +89 -0
  13. data/customers/demo/integrations/jenkins/spec/api/plans_spec.rb +69 -0
  14. data/customers/demo/integrations/jenkins/spec/api/requests_spec.rb +57 -0
  15. data/customers/demo/integrations/jenkins/spec/spec_helper.rb +33 -0
  16. data/customers/demo/integrations/jira/process_webhook_event.rb +33 -0
  17. data/customers/demo/jira_mappings.rb +29 -0
  18. data/infrastructure/integrations/event_handler.rb +62 -0
  19. data/infrastructure/integrations/webhook_receiver.rb +49 -0
  20. data/infrastructure/shell_scripts/backup_database.sh +19 -0
  21. data/infrastructure/shell_scripts/create_bl_package.sh +34 -0
  22. data/infrastructure/shell_scripts/create_release_request.sh +34 -0
  23. data/infrastructure/shell_scripts/ddns.sh +10 -0
  24. data/infrastructure/shell_scripts/install_brpm.sh +63 -0
  25. data/infrastructure/shell_scripts/install_content_module.sh +66 -0
  26. data/infrastructure/shell_scripts/install_content_repo.sh +60 -0
  27. data/infrastructure/shell_scripts/install_module_from_gem.sh +80 -0
  28. data/infrastructure/shell_scripts/maintenance.sh +4 -0
  29. data/infrastructure/shell_scripts/patch_brpm.sh +90 -0
  30. data/infrastructure/shell_scripts/restore_database.sh +33 -0
  31. data/infrastructure/shell_scripts/run_event_handler.cmd +16 -0
  32. data/infrastructure/shell_scripts/run_event_handler.sh +20 -0
  33. data/infrastructure/shell_scripts/run_webhook_receiver.cmd +14 -0
  34. data/infrastructure/shell_scripts/run_webhook_receiver.sh +15 -0
  35. data/infrastructure/shell_scripts/update_content_repo.sh +21 -0
  36. data/infrastructure/silent_install_options_4.6.txt +93 -0
  37. data/infrastructure/silent_install_options_upgrade_4.6.txt +92 -0
  38. data/infrastructure/smtp_settings.rb +42 -0
  39. data/infrastructure/ssh_script_header_additions.rb +21 -0
  40. data/modules/ansible/automations/execute_role.rb +3 -0
  41. data/modules/ansible/automations/execute_role.txt +12 -0
  42. data/modules/ansible/config.yml +5 -0
  43. data/modules/ansible/lib/ansible.rb +41 -0
  44. data/modules/atrium_orchestrator/automations/execute_workflow.rb +12 -0
  45. data/modules/atrium_orchestrator/automations/execute_workflow.txt +25 -0
  46. data/modules/atrium_orchestrator/automations/reserve_ip_address.rb +22 -0
  47. data/modules/atrium_orchestrator/automations/reserve_ip_address.txt +21 -0
  48. data/modules/atrium_orchestrator/config.yml +7 -0
  49. data/modules/atrium_orchestrator/lib/ao_soap_client.rb +94 -0
  50. data/modules/bladelogic/automations/create_package.rb +29 -0
  51. data/modules/bladelogic/automations/create_package.txt +26 -0
  52. data/modules/bladelogic/automations/deploy_package.rb +137 -0
  53. data/modules/bladelogic/automations/deploy_package.txt +53 -0
  54. data/modules/bladelogic/config.yml +7 -0
  55. data/modules/bladelogic/lib/bl_rest/bsa_rest_client.rb +65 -0
  56. data/modules/bladelogic/lib/bl_soap/blpackage.rb +43 -0
  57. data/modules/bladelogic/lib/bl_soap/bsa_soap_base.rb +118 -0
  58. data/modules/bladelogic/lib/bl_soap/bsa_soap_client.rb +34 -0
  59. data/modules/bladelogic/lib/bl_soap/compliance_job.rb +155 -0
  60. data/modules/bladelogic/lib/bl_soap/deploy_job.rb +48 -0
  61. data/modules/bladelogic/lib/bl_soap/depot_group.rb +47 -0
  62. data/modules/bladelogic/lib/bl_soap/job.rb +376 -0
  63. data/modules/bladelogic/lib/bl_soap/job_group.rb +72 -0
  64. data/modules/bladelogic/lib/bl_soap/job_management.rb +22 -0
  65. data/modules/bladelogic/lib/bl_soap/job_result.rb +12 -0
  66. data/modules/bladelogic/lib/bl_soap/job_run.rb +271 -0
  67. data/modules/bladelogic/lib/bl_soap/login.rb +47 -0
  68. data/modules/bladelogic/lib/bl_soap/nsh_script_job.rb +14 -0
  69. data/modules/bladelogic/lib/bl_soap/patch_catalog.rb +178 -0
  70. data/modules/bladelogic/lib/bl_soap/patch_remediation_job.rb +137 -0
  71. data/modules/bladelogic/lib/bl_soap/patching_job.rb +250 -0
  72. data/modules/bladelogic/lib/bl_soap/server.rb +12 -0
  73. data/modules/bladelogic/lib/bl_soap/template.rb +13 -0
  74. data/modules/bladelogic/lib/bl_soap/utility.rb +99 -0
  75. data/modules/bladelogic/resource_automations/select_job.rb +33 -0
  76. data/modules/bladelogic/resource_automations/select_job.txt +15 -0
  77. data/modules/bladelogic/tests/create_package_spec.rb +28 -0
  78. data/modules/bladelogic/tests/deploy_package_spec.rb +23 -0
  79. data/modules/bladelogic/tests/spec_helper.rb +82 -0
  80. data/modules/brpm/automations/create_release_from_excel.rb +34 -0
  81. data/modules/brpm/automations/create_release_from_excel.txt +5 -0
  82. data/modules/brpm/automations/create_release_request.rb +100 -0
  83. data/modules/brpm/automations/create_release_request.txt +5 -0
  84. data/modules/brpm/automations/create_request.rb +73 -0
  85. data/modules/brpm/automations/create_request.txt +23 -0
  86. data/modules/brpm/automations/promote_request.rb +197 -0
  87. data/modules/brpm/automations/promote_request.txt +24 -0
  88. data/modules/brpm/automations/select_application_version.rb +22 -0
  89. data/modules/brpm/automations/select_application_version.txt +17 -0
  90. data/modules/brpm/automations/select_component_version.rb +12 -0
  91. data/modules/brpm/automations/select_component_version.txt +5 -0
  92. data/modules/brpm/automations/select_request_template.rb +6 -0
  93. data/modules/brpm/automations/select_request_template.txt +13 -0
  94. data/modules/brpm/automations/wait_for_step_in_other_request.rb +11 -0
  95. data/modules/brpm/automations/wait_for_step_in_other_request.txt +13 -0
  96. data/modules/brpm/automations/wait_till_promoted_request_is_completed.rb +9 -0
  97. data/modules/brpm/automations/wait_till_promoted_request_is_completed.txt +5 -0
  98. data/modules/brpm/config.yml +6 -0
  99. data/modules/brpm/lib/brpm_request.rb +207 -0
  100. data/modules/brpm/lib/brpm_rest.rb +312 -0
  101. data/modules/brpm/lib/brpm_rest_client.rb +1501 -0
  102. data/modules/brpm/resource_automations/select_application.rb +16 -0
  103. data/modules/brpm/resource_automations/select_application.txt +5 -0
  104. data/modules/brpm/resource_automations/select_environment.rb +14 -0
  105. data/modules/brpm/resource_automations/select_environment.txt +5 -0
  106. data/modules/brpm/resource_automations/select_request_template.rb +16 -0
  107. data/modules/brpm/resource_automations/select_request_template.txt +5 -0
  108. data/modules/brpm/resource_automations/select_step_in_request.rb +33 -0
  109. data/modules/brpm/resource_automations/select_step_in_request.txt +5 -0
  110. data/modules/brpm/sample_applications/e-finance.json +0 -0
  111. data/modules/brpm/tests/create_release_request_spec.rb +66 -0
  112. data/modules/brpm/tests/create_request_spec.rb +84 -0
  113. data/modules/brpm/tests/select_application_version_spec.rb +47 -0
  114. data/modules/brpm/tests/spec_helper.rb +63 -0
  115. data/modules/docker_brpm/automations/create_brpm_instance_input_params.rb +10 -0
  116. data/modules/docker_brpm/automations/create_brpm_instance_input_params.txt +17 -0
  117. data/modules/docker_brpm/automations/create_brpm_instance_one_shot.rb +60 -0
  118. data/modules/docker_brpm/automations/create_brpm_instance_one_shot.txt +14 -0
  119. data/modules/docker_brpm/automations/create_brpm_instance_show_results.rb +23 -0
  120. data/modules/docker_brpm/automations/create_brpm_instance_show_results.txt +13 -0
  121. data/modules/docker_brpm/automations/create_database.rb +24 -0
  122. data/modules/docker_brpm/automations/create_database.txt +3 -0
  123. data/modules/docker_brpm/automations/create_environment.rb +14 -0
  124. data/modules/docker_brpm/automations/create_environment.txt +3 -0
  125. data/modules/docker_brpm/automations/create_image_for_application.rb +23 -0
  126. data/modules/docker_brpm/automations/create_image_for_application.txt +6 -0
  127. data/modules/docker_brpm/automations/create_image_for_brpm_application_input_params.rb +7 -0
  128. data/modules/docker_brpm/automations/create_image_for_brpm_application_input_params.txt +8 -0
  129. data/modules/docker_brpm/automations/create_image_for_brpm_database_creator_input_params.rb +7 -0
  130. data/modules/docker_brpm/automations/create_image_for_brpm_database_creator_input_params.txt +8 -0
  131. data/modules/docker_brpm/automations/create_image_for_database_creator.rb +21 -0
  132. data/modules/docker_brpm/automations/create_image_for_database_creator.txt +6 -0
  133. data/modules/docker_brpm/automations/create_installed_component_for_application.rb +11 -0
  134. data/modules/docker_brpm/automations/create_installed_component_for_application.txt +3 -0
  135. data/modules/docker_brpm/automations/create_installed_component_for_database.rb +7 -0
  136. data/modules/docker_brpm/automations/create_installed_component_for_database.txt +3 -0
  137. data/modules/docker_brpm/automations/create_installed_component_for_database_creator.rb +8 -0
  138. data/modules/docker_brpm/automations/create_installed_component_for_database_creator.txt +3 -0
  139. data/modules/docker_brpm/automations/create_installed_component_for_utilities.rb +7 -0
  140. data/modules/docker_brpm/automations/create_installed_component_for_utilities.txt +3 -0
  141. data/modules/docker_brpm/automations/create_version_tags_for_component_in_all_envs.rb +13 -0
  142. data/modules/docker_brpm/automations/create_version_tags_for_component_in_all_envs.txt +6 -0
  143. data/modules/docker_brpm/automations/delete_brpm_instance.rb +38 -0
  144. data/modules/docker_brpm/automations/delete_brpm_instance.txt +8 -0
  145. data/modules/docker_brpm/automations/execute_test_run_in_jenkins.rb +43 -0
  146. data/modules/docker_brpm/automations/execute_test_run_in_jenkins.txt +13 -0
  147. data/modules/docker_brpm/automations/execute_test_run_in_jenkins_show_results.rb +5 -0
  148. data/modules/docker_brpm/automations/execute_test_run_in_jenkins_show_results.txt +9 -0
  149. data/modules/docker_brpm/automations/launch_create_image_for_brpm_application_request.rb +27 -0
  150. data/modules/docker_brpm/automations/launch_create_image_for_brpm_application_request.txt +3 -0
  151. data/modules/docker_brpm/automations/launch_test_run_request.rb +30 -0
  152. data/modules/docker_brpm/automations/launch_test_run_request.txt +14 -0
  153. data/modules/docker_brpm/automations/release_brpm_input_params.rb +7 -0
  154. data/modules/docker_brpm/automations/release_brpm_input_params.txt +8 -0
  155. data/modules/docker_brpm/automations/run_application_container.rb +27 -0
  156. data/modules/docker_brpm/automations/run_application_container.txt +3 -0
  157. data/modules/docker_brpm/automations/run_database_container.rb +14 -0
  158. data/modules/docker_brpm/automations/run_database_container.txt +3 -0
  159. data/modules/docker_brpm/automations/stop_application_container.rb +11 -0
  160. data/modules/docker_brpm/automations/stop_application_container.txt +3 -0
  161. data/modules/docker_brpm/automations/stop_database_container.rb +11 -0
  162. data/modules/docker_brpm/automations/stop_database_container.txt +3 -0
  163. data/modules/docker_brpm/automations/test_rest_api.rb +18 -0
  164. data/modules/docker_brpm/automations/test_rest_api.txt +3 -0
  165. data/modules/docker_brpm/automations/upgrade_database.rb +19 -0
  166. data/modules/docker_brpm/automations/upgrade_database.txt +8 -0
  167. data/modules/docker_brpm/config.yml +8 -0
  168. data/modules/docker_brpm/lib/docker.rb +39 -0
  169. data/modules/docker_brpm/lib/git.rb +16 -0
  170. data/modules/docker_brpm/sample_applications/dockerizedbrpm.json +0 -0
  171. data/modules/email/automations/send_notification.rb +48 -0
  172. data/modules/email/automations/send_notification.txt +27 -0
  173. data/modules/email/config.yml +6 -0
  174. data/modules/framework/automations/direct_execute.rb +10 -0
  175. data/modules/framework/automations/direct_execute.txt +16 -0
  176. data/modules/framework/automations/install_module.rb +13 -0
  177. data/modules/framework/automations/install_module.txt +16 -0
  178. data/modules/framework/bin/brpm_install +106 -0
  179. data/modules/framework/bin/event_handler +63 -0
  180. data/modules/framework/bin/webhook_receiver +49 -0
  181. data/modules/framework/brpm_auto.rb +307 -0
  182. data/modules/framework/brpm_framework.rb +88 -0
  183. data/modules/framework/brpm_script_executor.rb +146 -0
  184. data/modules/framework/config.yml +7 -0
  185. data/modules/framework/config/customer_include.rb +26 -0
  186. data/modules/framework/config/server.yml +3 -0
  187. data/modules/framework/customer_include_default.rb +25 -0
  188. data/modules/framework/lib/logging/brpm_logger.rb +39 -0
  189. data/modules/framework/lib/logging/logger_base.rb +36 -0
  190. data/modules/framework/lib/logging/simple_logger.rb +27 -0
  191. data/modules/framework/lib/params/all_params.rb +80 -0
  192. data/modules/framework/lib/params/integration_settings.rb +27 -0
  193. data/modules/framework/lib/params/params.rb +172 -0
  194. data/modules/framework/lib/params/params_base.rb +81 -0
  195. data/modules/framework/lib/params/request_params.rb +38 -0
  196. data/modules/framework/lib/resource_framework.rb +211 -0
  197. data/modules/framework/lib/rest_api.rb +155 -0
  198. data/modules/framework/lib/semaphore.rb +79 -0
  199. data/modules/framework/lib/utilities.rb +317 -0
  200. data/modules/framework/lib/version_control/git.rb +192 -0
  201. data/modules/framework/lib/version_control/svn.rb +221 -0
  202. data/modules/framework/log.html +39 -0
  203. data/modules/framework/tests/all_params_spec.rb +116 -0
  204. data/modules/framework/tests/brpm_auto_spec.rb +84 -0
  205. data/modules/framework/tests/customer_include/config/customer_include.rb +10 -0
  206. data/modules/framework/tests/customer_include/config/server.yml +3 -0
  207. data/modules/framework/tests/customer_include_spec.rb +29 -0
  208. data/modules/framework/tests/local_jirb.rb +15 -0
  209. data/modules/framework/tests/params_spec.rb +172 -0
  210. data/modules/framework/tests/request_params_spec.rb +86 -0
  211. data/modules/framework/tests/server_yaml_spec.rb +19 -0
  212. data/modules/framework/tests/spec_helper.rb +42 -0
  213. data/modules/framework/transport/dispatch_baa.rb +355 -0
  214. data/modules/framework/transport/dispatch_base.rb +345 -0
  215. data/modules/framework/transport/dispatch_nsh.rb +248 -0
  216. data/modules/framework/transport/dispatch_ssh.rb +154 -0
  217. data/modules/framework/transport/transport_baa.rb +1095 -0
  218. data/modules/framework/transport/transport_nsh.rb +359 -0
  219. data/modules/framework/transport/transport_ssh.rb +220 -0
  220. data/modules/framework/write_to.rb +1 -0
  221. data/modules/jenkins/automations/create_release.rb +4 -0
  222. data/modules/jenkins/automations/create_release.txt +23 -0
  223. data/modules/jenkins/automations/f2_downloadJenkinsArtifact.rb +126 -0
  224. data/modules/jenkins/config.yml +7 -0
  225. data/modules/jenkins/lib/jenkins.rb +300 -0
  226. data/modules/jenkins/resource_automations/f2_rsc_jenkinsJobs.rb +58 -0
  227. data/modules/jira/automations/add_comment.rb +4 -0
  228. data/modules/jira/automations/add_comment.txt +23 -0
  229. data/modules/jira/automations/create_release.rb +4 -0
  230. data/modules/jira/automations/create_release.txt +23 -0
  231. data/modules/jira/automations/delete_release.rb +4 -0
  232. data/modules/jira/automations/delete_release.txt +23 -0
  233. data/modules/jira/automations/transition_issue.rb +4 -0
  234. data/modules/jira/automations/transition_issue.txt +23 -0
  235. data/modules/jira/automations/transition_issues_for_request.rb +29 -0
  236. data/modules/jira/automations/transition_issues_for_request.txt +20 -0
  237. data/modules/jira/automations/transition_issues_for_run.rb +26 -0
  238. data/modules/jira/automations/transition_issues_for_run.txt +20 -0
  239. data/modules/jira/automations/update_release.rb +4 -0
  240. data/modules/jira/automations/update_release.txt +26 -0
  241. data/modules/jira/config.yml +7 -0
  242. data/modules/jira/lib/jira_rest_client.rb +185 -0
  243. data/modules/jira/tests/create_read_update_delete_release_spec.rb +39 -0
  244. data/modules/jira/tests/spec_helper.rb +39 -0
  245. data/modules/jira/tests/transition_issue_spec.rb +32 -0
  246. data/modules/patch_process_management/automations/execute_job/script.rb +105 -0
  247. data/modules/patch_process_management/automations/execute_job/wrapper.txt +39 -0
  248. data/modules/patch_process_management/automations/patch_analysis/script.rb +107 -0
  249. data/modules/patch_process_management/automations/patch_analysis/wrapper.txt +33 -0
  250. data/modules/patch_process_management/automations/patch_readiness/script.rb +89 -0
  251. data/modules/patch_process_management/automations/patch_readiness/wrapper.txt +33 -0
  252. data/modules/patch_process_management/automations/patch_remediation/script.rb +217 -0
  253. data/modules/patch_process_management/automations/patch_remediation/wrapper.txt +40 -0
  254. data/modules/patch_process_management/config.yml +10 -0
  255. data/modules/teamcity/automations/trigger_build.rb +4 -0
  256. data/modules/teamcity/automations/trigger_build.txt +14 -0
  257. data/modules/teamcity/config.yml +7 -0
  258. data/modules/teamcity/lib/teamcity_rest_client.rb +17 -0
  259. data/modules/teamcity/tests/spec_helper.rb +34 -0
  260. data/modules/teamcity/tests/trigger_build_spec.rb +27 -0
  261. data/modules/windows/automations/deploy_directory_over_windows_shares/script.rb +87 -0
  262. data/modules/windows/automations/deploy_directory_over_windows_shares/wrapper.txt +29 -0
  263. data/modules/windows/automations/deploy_file_over_windows_shares/script.rb +31 -0
  264. data/modules/windows/automations/deploy_file_over_windows_shares/wrapper.txt +24 -0
  265. data/modules/windows/config.yml +6 -0
  266. data/modules/windows/lib/samba.rb +29 -0
  267. metadata +397 -0
@@ -0,0 +1,29 @@
1
+ load "brpm/lib/brpm_rest_client.rb"
2
+
3
+ def is_issue_valid(issue)
4
+ return true
5
+ end
6
+
7
+ def map_issue_to_ticket(issue, ticket)
8
+ ticket["foreign_id"] = issue["key"]
9
+ ticket["ticket_type"] = issue["fields"]["issuetype"]["name"]
10
+ ticket["name"] = issue["fields"]["summary"]
11
+ ticket["status"] = issue["fields"]["status"]["name"]
12
+ ticket["app_name"] = issue["fields"]["project"]["name"]
13
+
14
+ ticket["extended_attributes_attributes"] = Array.new
15
+ # ticket["extended_attributes_attributes"].push( { "name" => "blabla", "value_text" => "bloblo" } )
16
+ end
17
+
18
+ def map_stage_to_issue_status(stage)
19
+ case stage
20
+ when "Development"
21
+ return "Deployed to development"
22
+ when "Test"
23
+ return "Deployed to test"
24
+ else
25
+ return nil
26
+ end
27
+ end
28
+
29
+
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env jruby
2
+ require 'rubygems'
3
+ require 'torquebox'
4
+ require 'torquebox-messaging'
5
+ require 'xmlsimple'
6
+ require_relative "../../modules/framework/brpm_script_executor"
7
+
8
+ BrpmAuto.initialize_logger(ENV["EVENT_HANDLER_LOG_FILE"])
9
+
10
+ host = ENV["EVENT_HANDLER_BRPM_HOST"]
11
+ port = ENV["EVENT_HANDLER_MESSAGING_PORT"]
12
+ username = ENV["EVENT_HANDLER_MESSAGING_USERNAME"]
13
+ password = ENV["EVENT_HANDLER_MESSAGING_PASSWORD"]
14
+ process_event_script = ENV["EVENT_HANDLER_PROCESS_EVENT_SCRIPT"]
15
+
16
+ require_relative "../../#{process_event_script}"
17
+
18
+ class MessagingProcessor < TorqueBox::Messaging::MessageProcessor
19
+
20
+ MESSAGING_PATH = '/topics/messaging/brpm_event_queue'
21
+
22
+ def initialize(host, port, username, password)
23
+ BrpmAuto.log "Initializing the message processor..."
24
+ @destination = TorqueBox::Messaging::Topic.new(
25
+ MESSAGING_PATH,
26
+ :host => host,
27
+ :port => port,
28
+ :username => username,
29
+ :password => password
30
+ )
31
+ end
32
+
33
+ def run
34
+ begin
35
+ xml = "<root>#{@destination.receive}</root>"
36
+ BrpmAuto.log xml if ENV["EVENT_HANDLER_LOG_EVENT"]=="1"
37
+
38
+ event = XmlSimple.xml_in(xml)
39
+
40
+ BrpmAuto.log "Processing new event..."
41
+ process_event(event)
42
+
43
+ rescue Exception => e
44
+ BrpmAuto.log_error(e)
45
+ BrpmAuto.log e.backtrace.join("\n\t")
46
+ end
47
+ end
48
+ end
49
+
50
+ begin
51
+ consumer = MessagingProcessor.new(host, port, username, password)
52
+ BrpmAuto.log "Starting to listen for events ..."
53
+ loop do
54
+ consumer.run
55
+ end
56
+
57
+ rescue Exception => e
58
+ BrpmAuto.log_error(e)
59
+ BrpmAuto.log e.backtrace.join("\n\t")
60
+
61
+ raise e
62
+ end
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'json'
4
+ require 'rest-client'
5
+ require 'webrick'
6
+ require_relative "../../modules/framework/brpm_script_executor"
7
+
8
+ BrpmAuto.initialize_logger(ENV["WEBHOOK_RECEIVER_LOG_FILE"])
9
+
10
+ port = ENV["WEBHOOK_RECEIVER_PORT"]
11
+ mount_point = "/#{ENV["WEBHOOK_RECEIVER_MOUNT_POINT"]}"
12
+ process_event_script = ENV["WEBHOOK_RECEIVER_PROCESS_EVENT_SCRIPT"]
13
+
14
+ require_relative "../../#{process_event_script}"
15
+
16
+ class EventProcessor < WEBrick::HTTPServlet::AbstractServlet
17
+ def do_POST(request, response)
18
+ begin
19
+ event = JSON.parse(request.body)
20
+
21
+ BrpmAuto.log "Processing new event..."
22
+ process_event(event)
23
+
24
+ response.status = 200
25
+ response['Content-Type'] = "text/plain"
26
+ response.body = "OK"
27
+ rescue Exception => e
28
+ BrpmAuto.log_error(e)
29
+ BrpmAuto.log e.backtrace.join("\n\t")
30
+ end
31
+ end
32
+ end
33
+
34
+ begin
35
+ server = WEBrick::HTTPServer.new(:Port => port)
36
+ server.mount mount_point, EventProcessor
37
+
38
+ trap("INT") {
39
+ server.shutdown
40
+ }
41
+
42
+ BrpmAuto.log "Starting the server..."
43
+ server.start
44
+ rescue Exception => e
45
+ BrpmAuto.log_error(e)
46
+ BrpmAuto.log e.backtrace.join("\n\t")
47
+
48
+ raise e
49
+ end
@@ -0,0 +1,19 @@
1
+ #! /bin/bash
2
+
3
+ if [ -z "$BRPM_HOME" ]; then
4
+ echo "BRPM_HOME is not set (e.g. /opt/bmc/RLM). Aborting the backup."
5
+ exit 1
6
+ fi
7
+
8
+ BRPM_DB_NAME=bmc_rpm_db
9
+ BRPM_DB_USER=rlm_user
10
+
11
+ if [ ! -d "/root/database_backups" ]; then
12
+ mkdir -p /root/database_backups
13
+ fi
14
+
15
+ DATE=$(date +"%Y%m%d%H%M")
16
+ echo "Backing up database to /root/database_backups/brpm_database_dump_$DATE.sql..."
17
+ $BRPM_HOME/pgsql/bin/pg_dump -U $BRPM_DB_USER $BRPM_DB_NAME -f /root/database_backups/brpm_database_dump_$DATE.sql
18
+
19
+ echo "Done."
@@ -0,0 +1,34 @@
1
+ #!/bin/bash
2
+
3
+ # ASSUMPTION: this script should be executed from the root direcory of the framework
4
+
5
+ if [ -z "$BRPM_HOME" ]; then
6
+ echo "BRPM_HOME is not set (e.g. /opt/bmc/RLM). Aborting the installation."
7
+ exit 1
8
+ fi
9
+
10
+ . $BRPM_HOME/bin/setenv.sh
11
+
12
+ jruby <<-EORUBY
13
+ require "modules/framework/brpm_script_executor"
14
+
15
+ params = {}
16
+ params["application"] = "$APPLICATION"
17
+ params["component"] = "$COMPONENT"
18
+ params["component_version"] = "$COMPONENT_VERSION"
19
+
20
+ params["brpm_url"] = "http://$BRPM_HOST:$BRPM_PORT/brpm"
21
+ params["brpm_api_token"] = "$BRPM_TOKEN"
22
+
23
+ params["SS_integration_dns"] = "$SS_INTEGRATION_DNS"
24
+ params["SS_integration_username"] = "$SS_INTEGRATION_USERNAME"
25
+ params["SS_integration_password"] = "$SS_INTEGRATION_PASSWORD"
26
+ params["SS_integration_details"] = {}
27
+ params["SS_integration_details"]["role"] = "$SS_INTEGRATION_DETAILS_ROLE"
28
+
29
+ params["log_file"] = "$LOG_FILE"
30
+ params["also_log_to_console"] = "true"
31
+
32
+ BrpmScriptExecutor.execute_automation_script("bladelogic", "create_package", params)
33
+ EORUBY
34
+
@@ -0,0 +1,34 @@
1
+ #!/bin/bash
2
+
3
+ # ASSUMPTION: this script should be executed from the root direcory of the framework
4
+
5
+ if [ -z "$BRPM_HOME" ]; then
6
+ echo "BRPM_HOME is not set (e.g. /opt/bmc/RLM). Aborting the installation."
7
+ exit 1
8
+ fi
9
+
10
+ . $BRPM_HOME/bin/setenv.sh
11
+
12
+ jruby <<-EORUBY
13
+ require "modules/framework/brpm_script_executor"
14
+
15
+ params = {}
16
+ params["application_name"] = "$APPLICATION_NAME"
17
+ params["application_version"] = "$APPLICATION_VERSION"
18
+
19
+ params["ef_net_version"] = "$EF_NET_VERSION"
20
+ params["ef_java_version"] = "$EF_JAVA_VERSION"
21
+
22
+ params["release_request_template_name"] = "$RELEASE_REQUEST_TEMPLATE_NAME"
23
+ params["release_plan_template_name"] = "$RELEASE_PLAN_TEMPLATE_NAME" unless "$RELEASE_PLAN_TEMPLATE_NAME".empty?
24
+ params["release_plan_name"] = "$RELEASE_PLAN_NAME" unless "$RELEASE_PLAN_NAME".empty?
25
+
26
+ params["brpm_url"] = "http://$BRPM_HOST:$BRPM_PORT/brpm"
27
+ params["brpm_api_token"] = "$BRPM_TOKEN"
28
+
29
+ params["log_file"] = "$LOG_FILE"
30
+ params["also_log_to_console"] = "true"
31
+
32
+ BrpmScriptExecutor.execute_automation_script("brpm", "create_release_request", params)
33
+ EORUBY
34
+
@@ -0,0 +1,10 @@
1
+ #!/bin/bash
2
+ wget https://freedns.afraid.org/scripts/afraid.aws.sh.txt
3
+ read -p "Press [enter] to open afraid.aws.sh.txt -> modify GET to curl and insert the token for the new dns name (see http://freedns.afraid.org/dynamic/)..."
4
+ nano afraid.aws.sh.txt
5
+ mv afraid.aws.sh.txt /etc/cron.d/afraid.aws.sh
6
+ chmod 500 /etc/cron.d/afraid.aws.sh
7
+ sudo chown root.root /etc/cron.d/afraid.aws.sh
8
+ echo "*/2 * * * * root /etc/cron.d/afraid.aws.sh >/dev/null 2>&1" >> /etc/crontab
9
+ read -p "What is the dns name?" dnsname
10
+ sed -c -i "s/\(HOSTNAME *= *\).*/\1$dnsname/" /etc/sysconfig/network
@@ -0,0 +1,63 @@
1
+ #!/bin/bash
2
+ service iptables stop
3
+ chkconfig iptables off
4
+ yum update -y
5
+ yum install -y git wget nano curl unzip
6
+
7
+ read -p "What is the location of the RLM package? (either ftp link or local file system)" LOCATION
8
+
9
+ if [ -z "$LOCATION" ]; then
10
+ echo "The location was not specified. Aborting the installation."
11
+ exit 1
12
+ fi
13
+
14
+ if [[ "$LOCATION" == ftp://* ]]; then
15
+ wget -O ./RLM.zip $LOCATION
16
+ LOCATION=./RLM.zip
17
+ fi
18
+
19
+ if [ ! -f "$LOCATION" ]; then
20
+ echo "The specified location is not a patch file. Aborting the installation."
21
+ exit 1
22
+ fi
23
+
24
+ unzip $LOCATION
25
+ cd BRLM/Disk1/
26
+
27
+ read -p "What is the location of the silent install file?" SILENT_INSTALL_FILE_LOCATION
28
+
29
+ if [ ! -f "$SILENT_INSTALL_FILE_LOCATION" ]; then
30
+ echo "The silent install file was not found. Aborting the installation."
31
+ exit 1
32
+ fi
33
+
34
+ BRPM_HOME=$(eval "sed -n \"s/-P installLocation=\(.*\)/\1/p\" $SILENT_INSTALL_FILE_LOCATION")
35
+ if [ -z "$BRPM_HOME" ]; then
36
+ echo "The specified location is not a silent install file. Aborting the installation."
37
+ exit 1
38
+ fi
39
+
40
+ chmod +x setup.sh
41
+ ./setup.sh -i silent -DOPTIONS_FILE=$SILENT_INSTALL_FILE_LOCATION
42
+
43
+ read -p "What is the public hostname? [$(hostname)]" EXTERNAL_HOSTNAME
44
+ CURRENT_HOSTNAME=$(hostname)
45
+ BRPM_HOSTNAME=${EXTERNAL_HOSTNAME:-$CURRENT_HOSTNAME}
46
+
47
+ echo "Stopping BRPM..."
48
+ /etc/init.d/bmcrpm-4.6.00 stop
49
+
50
+ echo "Replacing the hostname to the public hostname in torquebox.yml ..."
51
+ CURRENT_VERSION=$(eval "sed -n \"s= root: $BRPM_HOME/releases/\(.*\)/RPM=\1=p\" $BRPM_HOME/server/jboss/standalone/deployments/RPM-knob.yml")
52
+ DEFAULT_HOSTNAME=$(eval "sed -n \"s= host: \(.*\)=\1=p\" $BRPM_HOME/releases/$CURRENT_VERSION/RPM/config/torquebox.yml")
53
+ sed -i -e s/$DEFAULT_HOSTNAME/$BRPM_HOSTNAME/g $BRPM_HOME/releases/$CURRENT_VERSION/RPM/config/torquebox.yml
54
+
55
+ echo "Restarting BRPM..."
56
+ /etc/init.d/bmcrpm-4.6.00 start
57
+
58
+ echo "Done."
59
+
60
+ echo "Make sure that the BRPM and stomp ports are open."
61
+
62
+
63
+
@@ -0,0 +1,66 @@
1
+ #!/bin/bash
2
+
3
+ if [ -z "$BRPM_HOME" ]; then
4
+ echo "BRPM_HOME is not set (e.g. /opt/bmc/RLM). Aborting the installation."
5
+ exit 1
6
+ fi
7
+
8
+ read -p "What is the location of the content module? You may specify either the location of a zip file on the local file system or the url of a github repo (e.g. https://github.com/BMC-RLM/brpm_module_mymodule.git)" LOCATION
9
+
10
+ if [ -z "$LOCATION" ]; then
11
+ echo "The location was not specified. Aborting the installation."
12
+ exit 1
13
+ fi
14
+
15
+ if [[ $LOCATION == *"github.com"* ]]; then
16
+ echo "The location refers to a github repo."
17
+ IS_GITHUB_LOCATION=true
18
+ else
19
+ IS_GITHUB_LOCATION=false
20
+ echo "The location refers to a file."
21
+ if [ ! -f "$LOCATION" ]; then
22
+ echo "The specified location is not a file. Aborting the installation."
23
+ exit 1
24
+ fi
25
+ fi
26
+
27
+ BASENAME=$(basename $LOCATION)
28
+ NAME=${BASENAME%.*}
29
+
30
+ CURRENT_VERSION=$(eval "sed -n \"s= root: $BRPM_HOME/releases/\(.*\)/RPM=\1=p\" $BRPM_HOME/server/jboss/standalone/deployments/RPM-knob.yml")
31
+ CONTENT_MODULES_PATH=$BRPM_HOME/releases/$CURRENT_VERSION/RPM/lib/script_support/git_repos/modules
32
+ CONTENT_MODULE_PATH=$BRPM_HOME/releases/$CURRENT_VERSION/RPM/lib/script_support/git_repos/modules/$NAME
33
+
34
+ if [ ! -d "$CONTENT_MODULES_PATH" ]; then
35
+ echo "Creating directory $CONTENT_MODULES_PATH..."
36
+ mkdir -p $CONTENT_MODULES_PATH
37
+ fi
38
+
39
+ if [ ! -d "${CONTENT_MODULES_PATH}_archive" ]; then
40
+ echo "Creating directory ${CONTENT_MODULES_PATH}_archive..."
41
+ mkdir -p ${CONTENT_MODULES_PATH}_archive
42
+ fi
43
+
44
+ if [ -d "$CONTENT_MODULE_PATH" ]; then
45
+ DATE=$(date +"%Y%m%d%H%M")
46
+ echo "Archiving current content module to ${CONTENT_MODULES_PATH}_archive/${NAME}_${DATE}..."
47
+ mv ${CONTENT_MODULE_PATH} ${CONTENT_MODULES_PATH}_archive/${NAME}_${DATE}
48
+ fi
49
+
50
+ if [ "$IS_GITHUB_LOCATION" = true ]; then
51
+ echo "Doing a 'git clone $LOCATION' on $CONTENT_MODULES_PATH..."
52
+ tmp_dir=$(pwd)
53
+ cd $CONTENT_MODULES_PATH
54
+ git clone $LOCATION
55
+ cd $tmp_dir
56
+ else
57
+ echo "Unzipping $LOCATION..."
58
+ unzip "$LOCATION" -d $CONTENT_MODULES_PATH
59
+
60
+ if [ -d $CONTENT_MODULES_PATH/$NAME-master ]; then
61
+ echo "Renaming the directory to $CONTENT_MODULE_PATH..."
62
+ mv $CONTENT_MODULES_PATH/$NAME-master $CONTENT_MODULE_PATH
63
+ fi
64
+ fi
65
+
66
+ echo "Done."
@@ -0,0 +1,60 @@
1
+ #!/bin/bash
2
+
3
+ if [ -z "$BRPM_HOME" ]; then
4
+ echo "BRPM_HOME is not set (e.g. /opt/bmc/RLM). Aborting the installation."
5
+ exit 1
6
+ fi
7
+
8
+ INSTALL=${INSTALL:-LOCAL}
9
+
10
+ if [ $INSTALL = "LOCAL" ]; then
11
+ read -p "What is the location of the content zip file? (leave empty to do a git clone from github)" LOCATION
12
+
13
+ if [ ! -z "$LOCATION" ]; then
14
+ if [ ! -f "$LOCATION" ]; then
15
+ echo "The specified location is not a file. Aborting the installation."
16
+ exit 1
17
+ fi
18
+ fi
19
+ fi
20
+
21
+ CURRENT_VERSION=$(eval "sed -n \"s= root: $BRPM_HOME/releases/\(.*\)/RPM=\1=p\" $BRPM_HOME/server/jboss/standalone/deployments/RPM-knob.yml")
22
+ CONTENT_REPOS_PATH=$BRPM_HOME/releases/$CURRENT_VERSION/RPM/lib/script_support/git_repos
23
+ CONTENT_REPO_PATH=$CONTENT_REPOS_PATH/brpm_content
24
+
25
+ if [ ! -d "$CONTENT_REPOS_PATH" ]; then
26
+ echo "Creating directory $CONTENT_REPOS_PATH..."
27
+ mkdir -p $CONTENT_REPOS_PATH
28
+ fi
29
+
30
+ if [ -d "$CONTENT_REPO_PATH" ]; then
31
+ DATE=$(date +"%Y%m%d%H%M")
32
+ echo "Archiving current content repo to ${CONTENT_REPO_PATH}_${DATE}..."
33
+ mv ${CONTENT_REPO_PATH} ${CONTENT_REPO_PATH}_${DATE}
34
+ fi
35
+
36
+ if [ -z "$LOCATION" ]; then
37
+ echo "Doing a 'git clone https://github.com/BMC-RLM/brpm_content.git' on $CONTENT_REPOS_PATH..."
38
+ tmp_dir=$(pwd)
39
+ cd $CONTENT_REPOS_PATH
40
+ git clone https://github.com/BMC-RLM/brpm_content.git
41
+ cd $tmp_dir
42
+ else
43
+ echo "Unzipping $LOCATION..."
44
+ unzip "$LOCATION" -d $CONTENT_REPOS_PATH
45
+
46
+ echo "Renaming the directory to $CONTENT_REPO_PATH..."
47
+ mv $CONTENT_REPOS_PATH/brpm_content-master $CONTENT_REPO_PATH
48
+ fi
49
+
50
+ cp $CONTENT_REPO_PATH/modules/framework/log.html $BRPM_HOME/automation_results
51
+
52
+ if [ ! -d "/root/shell_scripts" ]; then
53
+ mkdir -p /root/shell_scripts
54
+ fi
55
+
56
+ cp $CONTENT_REPO_PATH/infrastructure/shell_scripts/* /root/shell_scripts
57
+
58
+ echo "Done."
59
+
60
+ echo "Make sure that the following item is added to Metadata > Lists > AutomationErrors: '******** ERROR ********'"
@@ -0,0 +1,80 @@
1
+ #!/bin/bash
2
+
3
+ # This script is a wrapper around gem install and exists for the following reasons:
4
+ # 1) We want to keep the module gems and their dependencies in a separate location than the gems that are used by BRPM so we need to override the install dir
5
+ # 2) In case the module gem that needs to be installed comes with a gemfile.lock a "bundle install" should be executed to make sure the locked gem versions are installed
6
+ # 3) Make sure that brpm_content-latest always symlinks to the latest installed version
7
+
8
+ USAGE="install_module_from_gem.sh <module name> [<module version>]"
9
+
10
+ MODULE_NAME=$1
11
+ MODULE_VERSION=$2
12
+
13
+ if [ -z "$BRPM_HOME" ]; then
14
+ echo "BRPM_HOME is not set (e.g. /opt/bmc/RLM). Aborting the installation."
15
+ exit 1
16
+ fi
17
+
18
+ if [ -z "$MODULE_NAME" ]; then
19
+ echo "Module name is not specified. Aborting the patch installation."
20
+ echo "Usage: $USAGE"
21
+ exit 1
22
+ fi
23
+
24
+ . $BRPM_HOME/bin/setenv.sh
25
+
26
+ jruby <<EORUBY
27
+ require "rubygems"
28
+ require "bundler"
29
+
30
+ module_name = "$MODULE_NAME"
31
+ module_version = "$MODULE_VERSION"
32
+ puts "Installing module #{module_name} #{module_version == "" ? "" : module_version}..."
33
+
34
+ brpm_content_home = ENV["BRPM_CONTENT_HOME"] || "#{ENV["BRPM_HOME"]}/modules"
35
+
36
+ ENV["GEM_HOME"] = brpm_content_home
37
+ Gem.paths = ENV
38
+ puts "GEM_HOME=#{ENV["GEM_HOME"]}"
39
+
40
+ if module_version == ""
41
+ puts "Executing command 'gem install #{module_name}'..."
42
+ specs = Gem.install(module_name)
43
+ else
44
+ puts "Executing command 'gem install #{module_name} -v #{module_version}'..."
45
+ specs = Gem.install(module_name, module_version)
46
+ end
47
+ spec = specs.last
48
+
49
+ gemfile = File.join(spec.gem_dir, "Gemfile")
50
+ gemfile_lock = File.join(spec.gem_dir, "Gemfile.lock")
51
+
52
+ if File.exists?(gemfile) && File.exists?(gemfile_lock)
53
+ puts "Found a Gemfile.lock so executing command 'GEM_HOME=#{brpm_content_home} && bundle install --gemfile #{gemfile}'..."
54
+ %x(GEM_HOME=#{brpm_content_home} && bundle install --gemfile #{gemfile})
55
+ end
56
+
57
+ puts "Finding latest installed version of brpm_content..."
58
+ spec_of_latest_version = Gem::Specification.find_all_by_name("brpm_content").sort_by{ |g| [g.name.downcase, g.version] }.last
59
+ puts "The latest installed version is #{spec_of_latest_version.version}."
60
+
61
+ latest_version_path = "#{brpm_content_home}/gems/brpm_content-#{spec_of_latest_version.version}"
62
+ symlink_path = "#{brpm_content_home}/gems/brpm_content-latest"
63
+
64
+ if File.exists?(symlink_path)
65
+ if File.readlink(symlink_path) == latest_version_path
66
+ puts "The symlink #{symlink_path} is already pointing to #{latest_version_path}."
67
+ else
68
+ puts "Removing symlink #{symlink_path}..."
69
+ FileUtils.rm(symlink_path)
70
+ end
71
+ end
72
+
73
+ if ! File.exists?(symlink_path)
74
+ puts "Creating symlink #{symlink_path} to #{latest_version_path}..."
75
+ FileUtils.ln_s(latest_version_path, symlink_path)
76
+ end
77
+ EORUBY
78
+
79
+
80
+ echo "Done."