brpm_content_framework 0.2.15 → 0.2.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTYzNTgyN2Y4MTk2YzU3OWRlMWIwZjk1Mjk5NDBjZjQyNmYyNjEwYw==
4
+ MTQxMzQ5YmYwOTQ2NDBiNWNkYTFlOTdlZTVjYWM1ODY0YzZlY2MxZA==
5
5
  data.tar.gz: !binary |-
6
- MzIwN2IzNDllMGQxYWI3ZDQ0YTIwZmMxZDMwZmUwYmZmZTdlODhlNA==
6
+ MjlmYmI0YjI5ZjAyZGU0NzUyZGY2MjAyNWM3ZmRkOTAzMzBmZGZmZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTM2NzdiYzRiOTg3NjZkNzNiMDdmYTU3Zjg2OWUyZDY2ODJkMDk2OTQ0YWZh
10
- YTg3NDNmYmRhMWNlZGU2MTNiOTdjNzAwMTljYjczMTBhZGM0ZjQ0ZTkwYWJk
11
- YmZlZWZkMzZmYjA1Yzg1NzAxNTE0NDE1YTc4M2NmODZiZDYwOGU=
9
+ NTEzMjE0Mjk1MjdmMGU5YzlhZDU4ZWFiNTFlNDc2MDJiNDU1NTVkZTcwZDU4
10
+ MzE5YTg1NmM5NWY2NTg0Y2E4OWZjOGRkMTMxYzIwYWE3ZjUyYjMwN2ViOGYz
11
+ N2UyMzI0OGE3Nzc1NjQ4ODEwZWM3NzMwYjZlNzE5OGNkOGJkMzM=
12
12
  data.tar.gz: !binary |-
13
- ZGQ2MTc4ZmUwNDIxODU3NTVjZDRmMTg5OGVhNTYyMDc1YTdjNDg2OTkwMDZh
14
- ZjQzMDBmODM3ZmZlOWU1ODI4YWNkMGQ3ODljMDYyZjJhYzNlMDZiMmE0YWMy
15
- OTk5MTlkYmU0MjJiM2EyNzJjYWYwMGI0NTZhNGU2ZTk0YjNjYmQ=
13
+ MDFkOWViMzY2ZWU2NzZlMGJlNmE1ODIzZWQyOTljMjA3ZGEzYjFhNjAxZmUx
14
+ ZjE2NDkxNzk1MzQxYjYxZDZlYzUyZWY4NGNkODBjODI4ZWM5MjgyNGNhNjk3
15
+ MThmMmFiMWJmNGVmM2RhZjZkMjAyMTViMTYyNGYwOWIyMDBmYzk=
data/config.yml CHANGED
@@ -1,4 +1,4 @@
1
- version: 0.2.15
1
+ version: 0.2.16
2
2
 
3
3
  author: Niek Bartholomeus
4
4
  email: niek.bartholomeus@gmail.com
@@ -1,4 +1,4 @@
1
1
  require 'bundler/setup'
2
2
  require 'brpm_script_executor'
3
3
  puts `bundle show`
4
- BrpmScriptExecutor.execute_automation_script_from_other_process('brpm_module_test', 'test_ruby', '/private/tmp/brpm_content/params_000.yml', "automation")
4
+ BrpmScriptExecutor.execute_automation_script_from_other_process('brpm_module_test', 'test_resource', '/private/tmp/brpm_content/params_000.yml', "resource_automation")
@@ -6,14 +6,6 @@ class BrpmScriptExecutor
6
6
  private_class_method :new
7
7
 
8
8
  class << self
9
- def execute_automation_script(modul, name, params)
10
- execute_automation_script_internal(modul, name, params, "automation")
11
- end
12
-
13
- def execute_resource_automation_script(modul, name, params, parent_id, offset, max_records)
14
- execute_automation_script_internal(modul, name, params, "resource_automation", parent_id, offset, max_records)
15
- end
16
-
17
9
  def execute_automation_script_in_separate_process(modul, name, params)
18
10
  execute_automation_script_in_separate_process_internal(modul, name, params, "automation")
19
11
  end
@@ -22,33 +14,12 @@ class BrpmScriptExecutor
22
14
  execute_automation_script_in_separate_process_internal(modul, name, params, "resource_automation", parent_id, offset, max_records)
23
15
  end
24
16
 
25
- def execute_automation_script_from_other_process(modul, name, params_file, automation_type, parent_id = nil, offset = nil, max_records = nil)
26
- raise "Params file #{params_file} doesn't exist." unless File.exists?(params_file)
27
-
28
- puts "Loading params file #{params_file}..."
29
- params = YAML.load_file(params_file)
30
-
31
- puts "Loading the BRPM Content framework..."
32
- BrpmAuto.setup(params)
33
- BrpmAuto.log "The BRPM Content framework is loaded now. (version: #{BrpmAuto.version})"
34
-
35
- BrpmAuto.log "Deleting params file #{params_file}..."
36
- FileUtils.rm(params_file)
37
-
38
- if BrpmAuto.params["SS_run_key"] and BrpmAuto.params["SS_script_support_path"]
39
- puts "Loading the BRPM core framework's libraries..."
40
- load File.expand_path("#{File.dirname(__FILE__)}/../infrastructure/create_output_file.rb")
41
- end
42
-
43
- execute_automation_script_internal(modul, name, params, automation_type, parent_id, offset, max_records)
44
- end
45
-
46
- private
47
-
48
17
  def execute_automation_script_in_separate_process_internal(modul, name, params, automation_type, parent_id = nil, offset = nil, max_records = nil)
49
18
  BrpmAuto.setup(params)
50
19
 
51
- params_file = "#{File.expand_path(params["SS_output_dir"] || params["output_dir"] || Dir.pwd)}/params_#{params["SS_run_key"] || params["run_key"] || "000"}.yml"
20
+ working_path = File.expand_path(params["SS_output_dir"] || params["output_dir"] || Dir.pwd)
21
+
22
+ params_file = "#{working_path}/params_#{params["SS_run_key"] || params["run_key"] || "000"}.yml"
52
23
 
53
24
  BrpmAuto.log "Creating params file #{params_file}..."
54
25
  File.open(params_file, "w") do |file|
@@ -75,7 +46,6 @@ class BrpmScriptExecutor
75
46
  raise Gem::GemNotFoundException, "Module #{modul} version #{module_version} is not installed. Expected it on path #{module_path}."
76
47
  end
77
48
 
78
- require_statements = ""
79
49
  gemfile_path = "#{module_path}/Gemfile"
80
50
  unless File.exists?(gemfile_path)
81
51
  BrpmAuto.log_error("This module doesn't have a Gemfile. Expected it at #{gemfile_path}.")
@@ -84,21 +54,65 @@ class BrpmScriptExecutor
84
54
 
85
55
  BrpmAuto.log "Using Gemfile #{gemfile_path}."
86
56
  env_vars["BUNDLE_GEMFILE"] = gemfile_path
87
- require_statements += "require 'bundler/setup'; "
88
57
 
89
58
  BrpmAuto.log "Executing automation script '#{name}' from module '#{modul}' in a separate process..."
90
- result = Bundler.clean_system(env_vars, RbConfig.ruby, "-e", "#{require_statements}; require 'brpm_script_executor'; BrpmScriptExecutor.execute_automation_script_from_other_process(\"#{modul}\", \"#{name}\", \"#{params_file}\", \"#{automation_type}\", \"#{parent_id}\", \"#{offset}\", \"#{max_records}\")")
91
- if result.nil?
59
+ return_value = Bundler.clean_system(env_vars, RbConfig.ruby, "-e", "require 'bundler/setup'; require 'brpm_script_executor'; BrpmScriptExecutor.execute_automation_script_from_other_process(\"#{modul}\", \"#{name}\", \"#{params_file}\", \"#{automation_type}\", \"#{parent_id}\", \"#{offset}\", \"#{max_records}\")")
60
+ FileUtils.rm(params_file) if File.exists?(params_file)
61
+ if return_value.nil?
92
62
  message = "The process that executed the automation script returned with 'Command execution failed'."
93
63
  BrpmAuto.log_error message
94
64
  raise message
95
- elsif result == false
65
+ elsif return_value == false
96
66
  message = "The process that executed the automation script returned with non-zero exit code: #{$?.exitstatus}"
97
67
  BrpmAuto.log_error message
98
68
  raise message
99
69
  end
100
70
 
101
- result
71
+ if automation_type == "resource_automation"
72
+ result_file = "#{working_path}/result_#{$?.pid}.yml"
73
+ BrpmAuto.log "Returning the results from #{result_file}..."
74
+ result = YAML.load_file(result_file)
75
+ FileUtils.rm result_file
76
+
77
+ result
78
+ else
79
+ return_value
80
+ end
81
+ end
82
+
83
+ def execute_automation_script_from_other_process(modul, name, params_file, automation_type, parent_id = nil, offset = nil, max_records = nil)
84
+ raise "Params file #{params_file} doesn't exist." unless File.exists?(params_file)
85
+
86
+ puts "Loading params file #{params_file}..."
87
+ params = YAML.load_file(params_file)
88
+
89
+ FileUtils.rm(params_file)
90
+
91
+ puts "Loading the BRPM Content framework..."
92
+ BrpmAuto.setup(params)
93
+
94
+ if BrpmAuto.params["SS_run_key"] and BrpmAuto.params["SS_script_support_path"]
95
+ puts "Loading the BRPM core framework's libraries..."
96
+ load File.expand_path("#{File.dirname(__FILE__)}/../infrastructure/create_output_file.rb")
97
+ end
98
+
99
+ result = execute_automation_script_internal(modul, name, params, automation_type, parent_id, offset, max_records)
100
+ if automation_type == "resource_automation"
101
+ result_file = "#{File.dirname(params_file)}/result_#{Process.pid}.yml"
102
+ BrpmAuto.log "Saving the results to #{result_file}..."
103
+ FileUtils.rm(result_file) if File.exists?(result_file)
104
+ File.open(result_file, "w") do |file|
105
+ file.puts(result.to_yaml)
106
+ end
107
+ end
108
+ end
109
+
110
+ def execute_automation_script(modul, name, params)
111
+ execute_automation_script_internal(modul, name, params, "automation")
112
+ end
113
+
114
+ def execute_resource_automation_script(modul, name, params, parent_id, offset, max_records)
115
+ execute_automation_script_internal(modul, name, params, "resource_automation", parent_id, offset, max_records)
102
116
  end
103
117
 
104
118
  def execute_automation_script_internal(modul, name, params, automation_type, parent_id = nil, offset = nil, max_records = nil)
@@ -36,14 +36,16 @@ describe 'BRPM Script Executor' do
36
36
  end
37
37
 
38
38
  it "should return false when executing an non-existing automation script in a separate process" do
39
- result = BrpmScriptExecutor.execute_automation_script_in_separate_process("brpm_module_test", "xxx", get_default_params)
40
-
41
- expect(result).to be_falsey
39
+ expect{BrpmScriptExecutor.execute_automation_script_in_separate_process("brpm_module_test", "xxx", get_default_params)}.to raise_exception
42
40
  end
43
41
 
44
42
  it "should return false when executing an erroneous automation script in a separate process" do
45
- result = BrpmScriptExecutor.execute_automation_script_in_separate_process("brpm_module_test", "test_ruby_raises_error", get_default_params)
43
+ expect{BrpmScriptExecutor.execute_automation_script_in_separate_process("brpm_module_test", "test_ruby_raises_error", get_default_params)}.to raise_exception
44
+ end
45
+
46
+ it "should execute a resource automation script in a separate process" do
47
+ result = BrpmScriptExecutor.execute_resource_automation_script_in_separate_process("brpm_module_test", "test_resource", get_default_params, nil, 0, 10)
46
48
 
47
- expect(result).to be_falsey
49
+ expect(result.count).to eql(3)
48
50
  end
49
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brpm_content_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.15
4
+ version: 0.2.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niek Bartholomeus