brpm_content_framework 0.2.31 → 0.2.32

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
- ZTEzY2UxYjA2ZWNhZGM2NTRkMzkyNTFkMDFlYjk3NjVkYzFmYmM4Mg==
4
+ YzQxZGE2NGI0ZGQ4YzgxZGY1YzQyYjBiZGIzOTE2YzQ2Y2RhZTdhYg==
5
5
  data.tar.gz: !binary |-
6
- YTI3MWZmZmIwZGVmYmJkMzYyMmZhMWFlMzQwOWY2NzdiMmFkM2NiYQ==
6
+ NDkxOWQ3ZTk0OTQ0ZDkyMTZlOWYxMTgzZWRjYjY2ZDQyMTJmZTMyMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MzAzMmNlMTAxZjhlMDU5ODg0ZmY3YzVhYjhjNzJjMjhmYThmNjM4OWE4ZWNl
10
- MjBhN2YwMDE4OWM1Njg1Y2FkM2QwYmJkNjUyYzA3NTM4MzE5Y2NjOWQwNTkz
11
- Y2IxZGM1NDFmMWYzY2ZjZDNhMjhiZDMyYmUzYWFlZGI2ODQ2YTQ=
9
+ ODEzYWRlZjg4YWQ3ZDkwZTk3ODJjNjIwOGY0YzAwOGFmOWZmYjdhYTdjOTg2
10
+ OWZjMzdkZjMyZDcyZWQ5MzI0M2RiYmFmZDM0YzFhMjVhNTNmNTU3YzE2NzM5
11
+ ZjBiNGM2YzM1OTUyNjA2Y2RkOGI5YTY0NTJmM2FmZGViODhjYWE=
12
12
  data.tar.gz: !binary |-
13
- MzY1NmE4YjdhYmE5MGI4MGVhMWI4NjAzNzUzNmM2MGVjZmY4MzFkOWQ0NmE3
14
- NjIyMjlkNGJkOWI0MTJjZjlkNDJmZGEyY2ZhYTQyYWJlZjcxYmZjNDRjYTk4
15
- ZGQ4MTE0ZmYyMjc4Njk5YmNlODg0MzI2NWZkY2NjMTE3NmFhZWM=
13
+ OTI2MWQ0N2U4NDgwMzM2OThhMGE2NGE0MDQ2ODRlMzdiZmI0NzJhMWEwYTFi
14
+ MzQxYjkzZDMyOTUwM2U5OGUxMmZjN2JjNTJjOTA1NWRjMTRkMjgzM2NlNzhk
15
+ YjEzZmExMTUzZGM4ZGZhY2VkMGRhYWZhZDRkODAzOGUzNjk2YmY=
data/config.yml CHANGED
@@ -1,4 +1,4 @@
1
- version: 0.2.31
1
+ version: 0.2.32
2
2
 
3
3
  author: Niek Bartholomeus
4
4
  email: niek.bartholomeus@gmail.com
File without changes
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bash
2
+ USAGE="publish_module_version.sh <module name>"
3
+
4
+ MODULE_NAME=$1
5
+ MODULE_VERSION=$2
6
+
7
+ if [ -z "$MODULE_NAME" ]; then
8
+ echo "Module name is not specified. Aborting."
9
+ echo "Usage: $USAGE"
10
+ exit 1
11
+ fi
12
+
13
+ cd $(dirname $0)/../../../$MODULE_NAME
14
+
15
+ echo ">>> Publishing the module as a gem to rubygems.org..."
16
+ rake release
17
+ if [ -f "Dockerfile" ]; then
18
+ MODULE_VERSION=$(eval "sed -n \"s=version: \(.*\)=\1=p\" config.yml")
19
+
20
+ OLD_MODULE_VERSION=$(eval "sed -n \"s=ENV VERSION \(.*\)=\1=p\" Dockerfile")
21
+ sed -i "" s/$OLD_MODULE_VERSION/$MODULE_VERSION/ Dockerfile
22
+
23
+ echo ">>> Building the docker image..."
24
+ docker build -t bmcrlm/$MODULE_NAME:$MODULE_VERSION .
25
+
26
+ echo ">>> Publishing the docker image to the docker hub..."
27
+ docker push bmcrlm/$MODULE_NAME:$MODULE_VERSION
28
+
29
+ echo ">>> Tagging the module version as 'latest'..."
30
+ docker tag -f bmcrlm/$MODULE_NAME:$MODULE_VERSION bmcrlm/$MODULE_NAME:latest
31
+ docker push bmcrlm/$MODULE_NAME:latest
32
+
33
+ sed -i "" s/$MODULE_VERSION/$OLD_MODULE_VERSION/ Dockerfile
34
+ fi
@@ -45,6 +45,7 @@ class BrpmScriptExecutor
45
45
  else
46
46
  use_docker = false
47
47
  end
48
+ BrpmAuto.log "The automation script will be executed in a docker container." if use_docker
48
49
 
49
50
  working_path = File.expand_path(BrpmAuto.params.output_dir)
50
51
  params_file = "params_#{params["SS_run_key"] || params["run_key"] || "000"}.yml"
@@ -53,9 +54,10 @@ class BrpmScriptExecutor
53
54
 
54
55
  if use_docker
55
56
  params["SS_output_dir"] = "/workdir"
56
- params["SS_output_file"].sub!(working_path, "/workdir")
57
-
57
+ params["SS_output_file"].sub!(working_path, "/workdir") if params["SS_output_file"]
58
58
  params["SS_automation_results_dir"] = "/automation_results"
59
+
60
+ params["log_file"].sub!(working_path, "/workdir") if params["log_file"]
59
61
  end
60
62
 
61
63
  BrpmAuto.log "Temporarily storing the params to #{params_path}..."
@@ -72,7 +74,7 @@ class BrpmScriptExecutor
72
74
  command += " \"#{max_records}\"" if max_records
73
75
  end
74
76
  BrpmAuto.log command
75
- exec(command)
77
+ return_value = system(command)
76
78
  else
77
79
  env_vars = {}
78
80
  env_vars["GEM_HOME"] = ENV["BRPM_CONTENT_HOME"] || "#{ENV["BRPM_HOME"]}/modules"
@@ -97,20 +99,21 @@ class BrpmScriptExecutor
97
99
 
98
100
  BrpmAuto.log "Executing the script in a separate process..."
99
101
  return_value = Bundler.clean_system(env_vars, "ruby", "-e", "#{require_bundler}require 'brpm_script_executor'; BrpmScriptExecutor.execute_automation_script_from_other_process(\"#{modul}\", \"#{name}\", \"#{params_path}\", \"#{automation_type}\", \"#{parent_id}\", \"#{offset}\", \"#{max_records}\")")
100
- FileUtils.rm(params_path) if File.exists?(params_path)
101
- if return_value.nil?
102
- message = "The process that executed the automation script returned with 'Command execution failed'."
103
- BrpmAuto.log_error message
104
- raise message
105
- elsif return_value == false
106
- message = "The process that executed the automation script returned with non-zero exit code: #{$?.exitstatus}"
107
- BrpmAuto.log_error message
108
- raise message
109
- end
102
+ end
103
+
104
+ FileUtils.rm(params_path) if File.exists?(params_path)
105
+ if return_value.nil?
106
+ message = "The process that executed the automation script returned with 'Command execution failed'."
107
+ BrpmAuto.log_error message
108
+ raise message
109
+ elsif return_value == false
110
+ message = "The process that executed the automation script returned with non-zero exit code: #{$?.exitstatus}"
111
+ BrpmAuto.log_error message
112
+ raise message
110
113
  end
111
114
 
112
115
  if automation_type == "resource_automation"
113
- result_file = "#{working_path}/result_#{$?.pid}.yml"
116
+ result_file = params_file.sub!("params", "result")
114
117
  BrpmAuto.log "Loading the result from #{result_file} and cleaning it up..."
115
118
  result = YAML.load_file(result_file)
116
119
  FileUtils.rm result_file
@@ -139,7 +142,7 @@ class BrpmScriptExecutor
139
142
 
140
143
  result = execute_automation_script_internal(modul, name, params, automation_type, parent_id, offset, max_records)
141
144
  if automation_type == "resource_automation"
142
- result_file = "#{File.dirname(params_file)}/result_#{Process.pid}.yml"
145
+ result_file = params_file.sub!("params", "result")
143
146
  BrpmAuto.log " Temporarily storing the result to #{result_file}..."
144
147
  FileUtils.rm(result_file) if File.exists?(result_file)
145
148
  File.open(result_file, "w") do |file|
@@ -11,7 +11,6 @@ class SimpleLogger < LoggerBase
11
11
  def log(message)
12
12
  message = message.to_s # in case booleans or whatever are passed
13
13
  timestamp = "#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}"
14
- log_message = ""
15
14
 
16
15
  prefix = "#{timestamp}|"
17
16
  message = message.gsub("\n", "\n" + (" " * prefix.length))
@@ -52,6 +52,16 @@ describe 'BRPM Script Executor' do
52
52
  expect(result).to be_truthy
53
53
  end
54
54
 
55
+ it "should execute an automation script in a docker container" do
56
+ params = get_default_params
57
+ params['output_dir'] = File.expand_path("~/tmp/brpm_content") # docker volume mappong only works from the current user's home directory on Mac OSX
58
+ params["execute_automation_scripts_in_docker"] = "always"
59
+
60
+ result = BrpmScriptExecutor.execute_automation_script_in_separate_process("brpm_module_test", "test_ruby", params)
61
+
62
+ expect(result).to be_truthy
63
+ end
64
+
55
65
  it "should return false when executing an non-existing automation script in a separate process" do
56
66
  expect{BrpmScriptExecutor.execute_automation_script_in_separate_process(@module_name, "xxx", get_default_params)}.to raise_exception
57
67
  end
@@ -65,4 +75,14 @@ describe 'BRPM Script Executor' do
65
75
 
66
76
  expect(result.count).to eql(3)
67
77
  end
78
+
79
+ it "should execute a resource automation script in a docker container" do
80
+ params = get_default_params
81
+ params['output_dir'] = File.expand_path("~/tmp/brpm_content") # docker volume mappong only works from the current user's home directory on Mac OSX
82
+ params["execute_automation_scripts_in_docker"] = "always"
83
+
84
+ result = BrpmScriptExecutor.execute_resource_automation_script_in_separate_process(@module_name, "test_resource", params, nil, 0, 10)
85
+
86
+ expect(result.count).to eql(3)
87
+ end
68
88
  end
@@ -1,3 +1,4 @@
1
1
  # This file should be located in BRPM_HOME/config
2
2
  # See the README for more information on how to use this file
3
- key2: "value2"
3
+ key2: "value2"
4
+ # a_commented_out_key: "comment"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brpm_content_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.31
4
+ version: 0.2.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niek Bartholomeus
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
11
+ date: 2015-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
@@ -205,6 +205,7 @@ files:
205
205
  - infrastructure/scripts/install_brpm.sh
206
206
  - infrastructure/scripts/maintenance.sh
207
207
  - infrastructure/scripts/patch_brpm.sh
208
+ - infrastructure/scripts/publish_module_version.sh
208
209
  - infrastructure/scripts/restore_database.sh
209
210
  - infrastructure/scripts/run_event_handler.cmd
210
211
  - infrastructure/scripts/run_event_handler.sh