brpm_content_framework 0.2.40 → 0.2.41

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
- MmNhY2ZkODI3N2M1MDk4OTk3YTFlN2EzNzFlMGE3OGU1NjRmMDNiNw==
4
+ ZjRlMWMyZWNkZDMwMTQwNjE5MDUwMTExOTgzNGM0ODA0ODE3OWUxYQ==
5
5
  data.tar.gz: !binary |-
6
- MTJlZGFhODljMTQyYjdiNzQxMjNlZjk0YzU4ODQ2MTM3NTcwMDRkOQ==
6
+ MTdhNTdmZGFmN2Q1OGY1NmZkM2RlNmJmYTQ3Yzg4Y2E0ODJkNWE4Yw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODdhYjYwNDA2NzM5N2FkODUzMTQzODE5ZmFkMzA1YWMxZDdmNzllMTU3YTA4
10
- ZjU2ZjVlNmJjNDg5YzU4YjM2YTc0NDkyODIyOTBiMWRmN2ZlNTQ4N2JjMDc2
11
- OGEyMjliNTZiYTRkNjczNDY0NDY2ZmZiMDY3N2RhNGJkMDcwODk=
9
+ YmNhNmFiZjczMzRhNmUxNTRiNTU5M2FlYWQyOGE4YzIxYWRkNzA2N2QzMDUx
10
+ ZDU2NTZhMGYyNGIxMGNlNzM2NmMxNmI4YWU0MjA0Y2EyMzIwMjhhNGE3OGYw
11
+ ZTU4MGMxODQ1ZjZhYjhkNjE0YjUzY2VlZjdkZDRkODBmMzE2NDE=
12
12
  data.tar.gz: !binary |-
13
- MzU2OTZjMjMxMDNjMjI3NmRmYWY4MzU3ZTlhYzg2MDU3MTg0OTFjMWM5NDRl
14
- MjNkMTdlN2FhYWI5YWQ3NWQzNjkzYzhkMmFlYTEwYTM1MTliMjIzNDkzMTQz
15
- ZWViZTM4MzA0ZmY3OGI4YzBhMmJmY2RlYWZlMTI1ZWFjMDAyZTM=
13
+ NjljM2U0MjA0MWMzMmRjMTUwNDBlMzIxOWMzOTE3OTI4ODhkMDlmNjY4MTk3
14
+ MmI5OTQ0ZDhmZjc0NWFlNTYzYzY5MDA1Y2E4ZGM0MmVmNjFhOWQ1NjRmNDA0
15
+ MWY5MjljN2IxZmJiYzUwM2U5MzgxMTJlZjJhYjI2MzgyYjQxYWY=
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env ruby
2
+ require "brpm_auto"
3
+
4
+ if ARGV.size < 1
5
+ puts "Missing arguments."
6
+ puts "Usage: \n build_docker_image <path to module>"
7
+ exit
8
+ end
9
+
10
+ begin
11
+ BrpmAuto.setup({ "log_file" => "/tmp/brpm_install.log", "also_log_to_console" => "true" })
12
+
13
+ module_path = File.expand_path(ARGV[0])
14
+
15
+ module_name = File.basename(module_path)
16
+ module_config = YAML.load_file("#{module_path}/config.yml")
17
+ module_version = module_config["version"]
18
+
19
+ BrpmAuto.log "Module #{module_name} #{module_version}"
20
+
21
+ if module_name == "brpm_content_framework"
22
+ dockerfile_path = File.expand_path("#{File.dirname(__FILE__)}/../docker/framework/Dockerfile")
23
+ else
24
+ dockerfile_path = File.expand_path("#{File.dirname(__FILE__)}/../docker/modules/Dockerfile")
25
+ end
26
+
27
+ dockerfile_content = File.read(dockerfile_path)
28
+ dockerfile_original_content = File.read(dockerfile_path)
29
+
30
+ unless module_name == "brpm_content_framework"
31
+ dockerfile_content.sub!(/(?<=ENV MODULE )(.*)/, module_name)
32
+ end
33
+ dockerfile_content.sub!(/(?<=ENV VERSION )(.*)/, module_version)
34
+
35
+ File.open(dockerfile_path, "w") do |file|
36
+ file << dockerfile_content
37
+ end
38
+
39
+ BrpmAuto.log ""
40
+ BrpmAuto.log ">>> Building docker image bmcrlm/#{module_name}:#{module_version}..."
41
+ _, stderr, _, status = BrpmAuto.execute_command("docker build -t bmcrlm/#{module_name}:#{module_version} #{File.dirname(dockerfile_path)}") do |stdout_err|
42
+ BrpmAuto.log " #{stdout_err.chomp}"
43
+ end
44
+ raise "The process failed with status #{status.exitstatus}.\n#{stderr}" unless status.success?
45
+
46
+ File.open(dockerfile_path, "w") do |file|
47
+ file << dockerfile_original_content
48
+ end
49
+
50
+ rescue Exception => e
51
+ BrpmAuto.log_error "#{e}"
52
+ BrpmAuto.log "\n\t" + e.backtrace.join("\n\t")
53
+
54
+ raise e
55
+ end
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env ruby
2
+ require "brpm_auto"
3
+
4
+ if ARGV.size < 1
5
+ puts "Missing arguments."
6
+ puts "Usage: \n publish_docker_image <path to module>"
7
+ exit
8
+ end
9
+
10
+ begin
11
+ BrpmAuto.setup({ "log_file" => "/tmp/brpm_install.log", "also_log_to_console" => "true" })
12
+
13
+ module_path = File.expand_path(ARGV[0])
14
+
15
+ module_name = File.basename(module_path)
16
+ module_config = YAML.load_file("#{module_path}/config.yml")
17
+ module_version = module_config["version"]
18
+
19
+ BrpmAuto.log "Module #{module_name} #{module_version}"
20
+
21
+ if module_name == "brpm_content_framework"
22
+ dockerfile_path = File.expand_path("#{File.dirname(__FILE__)}/../docker/framework/Dockerfile")
23
+ else
24
+ dockerfile_path = File.expand_path("#{File.dirname(__FILE__)}/../docker/modules/Dockerfile")
25
+ end
26
+
27
+ dockerfile_content = File.read(dockerfile_path)
28
+ dockerfile_original_content = File.read(dockerfile_path)
29
+
30
+ unless module_name == "brpm_content_framework"
31
+ dockerfile_content.sub!(/(?<=ENV MODULE )(.*)/, module_name)
32
+ end
33
+ dockerfile_content.sub!(/(?<=ENV VERSION )(.*)/, module_version)
34
+
35
+ File.open(dockerfile_path, "w") do |file|
36
+ file << dockerfile_content
37
+ end
38
+
39
+ BrpmAuto.log ""
40
+ BrpmAuto.log ">>> Building docker image bmcrlm/#{module_name}:#{module_version}..."
41
+ _, stderr, _, status = BrpmAuto.execute_command("docker build -t bmcrlm/#{module_name}:#{module_version} #{File.dirname(dockerfile_path)}") do |stdout_err|
42
+ BrpmAuto.log " #{stdout_err.chomp}"
43
+ end
44
+ raise "The process failed with status #{status.exitstatus}.\n#{stderr}" unless status.success?
45
+
46
+ File.open(dockerfile_path, "w") do |file|
47
+ file << dockerfile_original_content
48
+ end
49
+
50
+ BrpmAuto.log ""
51
+ BrpmAuto.log ">>> Publishing docker image bmcrlm/#{module_name}:#{module_version} to the docker hub..."
52
+ _, stderr, _, status = BrpmAuto.execute_command("docker push bmcrlm/#{module_name}:#{module_version}") do |stdout_err|
53
+ BrpmAuto.log " #{stdout_err.chomp}"
54
+ end
55
+ raise "The process failed with status #{status.exitstatus}.\n#{stderr}" unless status.success?
56
+
57
+ if module_name == "brpm_content_framework"
58
+ BrpmAuto.log ""
59
+ BrpmAuto.log ">>> Tagging docker image bmcrlm/#{module_name}:#{module_version} as bmcrlm/#{module_name}:latest..."
60
+ _, stderr, _, status = BrpmAuto.execute_command("docker tag -f bmcrlm/#{module_name}:#{module_version} bmcrlm/#{module_name}:latest") do |stdout_err|
61
+ BrpmAuto.log " #{stdout_err.chomp}"
62
+ end
63
+ raise "The process failed with status #{status.exitstatus}.\n#{stderr}" unless status.success?
64
+ _, stderr, _, status = BrpmAuto.execute_command("docker push bmcrlm/#{module_name}:latest") do |stdout_err|
65
+ BrpmAuto.log " #{stdout_err.chomp}"
66
+ end
67
+ raise "The process failed with status #{status.exitstatus}.\n#{stderr}" unless status.success?
68
+ end
69
+
70
+ rescue Exception => e
71
+ BrpmAuto.log_error "#{e}"
72
+ BrpmAuto.log "\n\t" + e.backtrace.join("\n\t")
73
+
74
+ raise e
75
+ end
data/config.yml CHANGED
@@ -1,4 +1,4 @@
1
- version: 0.2.40
1
+ version: 0.2.41
2
2
  author: Niek Bartholomeus
3
3
  email: niek.bartholomeus@gmail.com
4
4
  homepage: https://github.com/BMC-RLM/brpm_content_framework
@@ -1,11 +1,11 @@
1
1
  FROM atlashealth/ruby:1.9.3
2
2
  MAINTAINER Niek Bartholomeus <niek.bartholomeus@gmail.com>
3
3
 
4
- ENV BRPM_CONTENT_FRAMEWORK_VERSION 1.0.0
5
4
  ENV GEM_HOME /usr/lib/ruby/gems/1.9.1
5
+ ENV VERSION 1.0.0
6
6
 
7
- RUN gem install brpm_content_framework -v $BRPM_CONTENT_FRAMEWORK_VERSION && \
8
- cd $GEM_HOME/gems/brpm_content_framework-$BRPM_CONTENT_FRAMEWORK_VERSION && \
7
+ RUN gem install brpm_content_framework -v $VERSION && \
8
+ cd $GEM_HOME/gems/brpm_content_framework-$VERSION && \
9
9
  bundle install && \
10
10
  rm -rf $GEM_HOME/cache
11
11
 
@@ -0,0 +1,10 @@
1
+ FROM bmcrlm/brpm_content_framework
2
+ MAINTAINER Niek Bartholomeus <niek.bartholomeus@gmail.com>
3
+
4
+ ENV MODULE module
5
+ ENV VERSION 1.0.0
6
+
7
+ RUN gem install $MODULE -v $VERSION && \
8
+ cd $GEM_HOME/gems/$MODULE-$VERSION && \
9
+ bundle install && \
10
+ rm -rf $GEM_HOME/cache
@@ -73,13 +73,8 @@ class BrpmScriptExecutor
73
73
  command += " \"#{max_records}\"" if max_records
74
74
  end
75
75
 
76
- _, stderr, _, status = BrpmAuto.execute_command(command) do |stdout_err|
77
- BrpmAuto.log " stdout:#{stdout_err.chomp}"
78
- end
79
-
80
76
  else
81
- env_vars = {}
82
- env_vars["GEM_HOME"] = ENV["BRPM_CONTENT_HOME"] || "#{ENV["BRPM_HOME"]}/modules"
77
+ env_var_gem_home = "export GEM_HOME=#{ENV["BRPM_CONTENT_HOME"] || "#{ENV["BRPM_HOME"]}/modules"} && "
83
78
 
84
79
  module_path = get_module_gem_path(modul, module_version)
85
80
 
@@ -92,24 +87,33 @@ class BrpmScriptExecutor
92
87
  gemfile_path = "#{module_path}/Gemfile"
93
88
  if File.exists?(gemfile_path)
94
89
  BrpmAuto.log "Using Gemfile #{gemfile_path}."
95
- env_vars["BUNDLE_GEMFILE"] = gemfile_path
90
+ env_var_bundler = "export BUNDLE_GEMFILE=#{gemfile_path} && "
96
91
  require_bundler = "require 'bundler/setup';"
97
92
  else
98
93
  BrpmAuto.log("This module doesn't have a Gemfile.")
94
+ env_var_bundler = ""
99
95
  require_bundler = ""
100
96
  end
101
97
 
102
98
  BrpmAuto.log "Executing the script in a separate process..."
103
- _, stderr, _, status = Bundler.with_clean_env do
104
- BrpmAuto.execute_command(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}\")") do |stdout_err|
105
- BrpmAuto.log " stdout:#{stdout_err.chomp}"
106
- end
107
- end
99
+ ruby_command = <<EOR
100
+ #{require_bundler}
101
+ require \\"brpm_script_executor\\"
102
+ BrpmScriptExecutor.execute_automation_script_from_other_process(\\"#{modul}\\", \\"#{name}\\", \\"#{params_path}\\", \\"#{automation_type}\\", \\"#{parent_id}\\", \\"#{offset}\\", \\"#{max_records}\\")
103
+ EOR
104
+ command = "#{env_var_gem_home}#{env_var_bundler}ruby -e \"#{ruby_command}\""
105
+ end
106
+
107
+ result = Bundler.with_clean_env do
108
+ BrpmAuto.execute_shell(command)
108
109
  end
109
110
 
110
111
  FileUtils.rm(params_path) if File.exists?(params_path)
111
112
 
112
- raise "The process failed with status #{status.exitstatus}.\n#{stderr}" unless status.success?
113
+ unless result["status"] == 0
114
+ BrpmAuto.log "stdout:#{result["stdout"]}"
115
+ raise "The process failed with status #{result["status"]}.\n#{result["stderr"]}"
116
+ end
113
117
 
114
118
  BrpmAuto.log "The process finished succesfully."
115
119
 
data/lib/utilities.rb CHANGED
@@ -318,6 +318,14 @@ module Utilities
318
318
  end
319
319
  end
320
320
 
321
+ def replace_in_file(file_path, pattern, replacement)
322
+ file_content = File.read(file_path)
323
+
324
+ File.open(file_path, "w") do |file|
325
+ file << file_content.gsub(pattern, replacement)
326
+ end
327
+ end
328
+
321
329
  private
322
330
 
323
331
  #TODO: still needed? the framework's error handling should take care of this already
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.40
4
+ version: 0.2.41
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-10-01 00:00:00.000000000 Z
11
+ date: 2015-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
@@ -157,7 +157,9 @@ email: niek.bartholomeus@gmail.com
157
157
  executables:
158
158
  - brpm_install
159
159
  - brpm_uninstall
160
+ - build_docker_image
160
161
  - event_handler
162
+ - publish_docker_image
161
163
  - webhook_receiver
162
164
  extensions: []
163
165
  extra_rdoc_files: []
@@ -176,11 +178,14 @@ files:
176
178
  - automations/install_module.rb
177
179
  - bin/brpm_install
178
180
  - bin/brpm_uninstall
181
+ - bin/build_docker_image
179
182
  - bin/event_handler
183
+ - bin/publish_docker_image
180
184
  - bin/webhook_receiver
181
185
  - config.yml
182
- - docker/Dockerfile
183
- - docker/docker_execute_automation
186
+ - docker/framework/Dockerfile
187
+ - docker/framework/docker_execute_automation
188
+ - docker/modules/Dockerfile
184
189
  - infrastructure/.bashrc
185
190
  - infrastructure/.brpm
186
191
  - infrastructure/config/customer_include.rb
@@ -204,7 +209,6 @@ files:
204
209
  - infrastructure/scripts/install_brpm.sh
205
210
  - infrastructure/scripts/maintenance.sh
206
211
  - infrastructure/scripts/patch_brpm.sh
207
- - infrastructure/scripts/publish_module_version.sh
208
212
  - infrastructure/scripts/restore_database.sh
209
213
  - infrastructure/scripts/run_event_handler.cmd
210
214
  - infrastructure/scripts/run_event_handler.sh
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env bash
2
- USAGE="publish_module_version.sh <module name>"
3
-
4
- MODULE_NAME=$1
5
-
6
- if [ -z "$MODULE_NAME" ]; then
7
- echo "Module name is not specified. Aborting."
8
- echo "Usage: $USAGE"
9
- exit 1
10
- fi
11
-
12
- cd $(dirname $0)/../../../$MODULE_NAME
13
-
14
- echo ""
15
- echo ">>> Publishing module $MODULE_NAME as a gem to rubygems.org..."
16
- rake release
17
- if [ -f "docker/Dockerfile" ]; then
18
- MODULE_VERSION=$(eval "sed -n \"s=version: \(.*\)=\1=p\" config.yml")
19
-
20
- cd docker
21
-
22
- if [[ "$MODULE_NAME" == brpm_content_framework ]]; then
23
- OLD_MODULE_VERSION=$(eval "sed -n \"s=ENV BRPM_CONTENT_FRAMEWORK_VERSION \(.*\)=\1=p\" Dockerfile")
24
- else
25
- OLD_MODULE_VERSION=$(eval "sed -n \"s=ENV VERSION \(.*\)=\1=p\" Dockerfile")
26
- fi
27
- sed -i "" s/$OLD_MODULE_VERSION/$MODULE_VERSION/ Dockerfile
28
-
29
- echo ""
30
- echo ">>> Building docker image bmcrlm/$MODULE_NAME:$MODULE_VERSION..."
31
- docker build -t bmcrlm/$MODULE_NAME:$MODULE_VERSION . || { echo 'Aborting' ; exit 1; }
32
-
33
- sed -i "" s/$MODULE_VERSION/$OLD_MODULE_VERSION/ Dockerfile
34
-
35
- echo ""
36
- echo ">>> Publishing docker image bmcrlm/$MODULE_NAME:$MODULE_VERSION to the docker hub..."
37
- docker push bmcrlm/$MODULE_NAME:$MODULE_VERSION || { echo 'Aborting' ; exit 1; }
38
-
39
- if [[ "$MODULE_NAME" == brpm_content_framework ]]; then
40
- echo ""
41
- echo ">>> Tagging bmcrlm/$MODULE_NAME:$MODULE_VERSION as bmcrlm/$MODULE_NAME:latest..."
42
- docker tag -f bmcrlm/$MODULE_NAME:$MODULE_VERSION bmcrlm/$MODULE_NAME:latest || { echo 'Aborting' ; exit 1; }
43
- docker push bmcrlm/$MODULE_NAME:latest || { echo 'Aborting' ; exit 1; }
44
- fi
45
- fi