socotra-build 0.3.35 → 0.3.36

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/socotra-build.rb +32 -1
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be67ac49ba0733ae8f70437bdaea69bcbf0b2a44
4
- data.tar.gz: b1466768369c9413bcf24727befebdf3c9dfbd00
3
+ metadata.gz: 86b20ae3dc174f8bfffc93d5a0878f29794d91dd
4
+ data.tar.gz: 3fe73948b117a21a2e85c65d2bb94a925001e5e1
5
5
  SHA512:
6
- metadata.gz: 8fb1f7bae37e04563f75bb6aa7209f99275f34f5bfbbea7e016b9d42a7bf81d80a5fc6057ef1d2376da108660467003a251776af27de0522c3402468b1933dcc
7
- data.tar.gz: e80fc3ef592c9c4b9991b953f25d7248ed78caafdfc037ba8efe7b7201283879eb9b6ea23f91401b9c47b6e049dff071c3f5ebdb8848008000f2b01bc30181da
6
+ metadata.gz: bc042eb3e01967b57071319c94b67ab22751b73a23f0f01030ff60d3e3224ad73776c572e5b34c218b7bf5e65f64b2a1ea723bd3ba96258b15f6215e88f10edc
7
+ data.tar.gz: 77b465c33888a6f32465f3d82a2896f8aa1f26c615156cead66bc4dec93173f371975a189215541885e1901f885df6a2a410a094bd66b39e281da5d3229d5ba7
data/lib/socotra-build.rb CHANGED
@@ -50,6 +50,30 @@ def self.get_sanitized_cmd(cmd)
50
50
  cmd = cmd.join(' ')
51
51
  end
52
52
 
53
+ def self.pid_exists(pid)
54
+ begin
55
+ Process.getpgid(pid)
56
+ rescue Errno::ESRCH
57
+ return false
58
+ end
59
+
60
+ return true
61
+ end
62
+
63
+ def self.kill_pid(pid)
64
+ puts "killing #{pid}"
65
+
66
+ killpid = fork { Process.kill('INT', pid) }
67
+ Process.detach(killpid)
68
+ begin
69
+ Process.waitpid(killpid)
70
+ rescue Errno::ECHILD
71
+ return true
72
+ end
73
+
74
+ return false
75
+ end
76
+
53
77
  def self.system_safe(cmd=cmd, cmd_description=cmd_description, error_message=error_message, raise_on_fail=true, log_level="ERROR", log=true, print_command=true, retry_exec=false, timeout=0)
54
78
  success = true
55
79
  start = Time.now.to_i
@@ -65,12 +89,17 @@ def self.system_safe(cmd=cmd, cmd_description=cmd_description, error_message=err
65
89
  log_err = "logs/#{cmd_description}_err.log"
66
90
 
67
91
  pid = spawn(cmd, :out=>log_out, :err=>log_err)
92
+ puts "pid of spawned process: #{pid}"
68
93
  begin
69
94
  Timeout::timeout(timeout) do
70
95
  Process.wait(pid)
71
96
  end
72
97
  rescue Timeout::Error
73
- Process.kill('INT', pid)
98
+ while pid_exists(pid)
99
+ if kill_pid(pid)
100
+ break
101
+ end
102
+ end
74
103
  success = false
75
104
  end
76
105
 
@@ -110,6 +139,8 @@ def self.get_secret(key, subkey, log_identifier)
110
139
  cmd = "vault read -field=#{subkey} #{key}"
111
140
  status, secret = system_safe(cmd, log_identifier, "Get secret failed", true, "ERROR", false)
112
141
  secret = secret.strip
142
+
143
+ return secret
113
144
  end
114
145
 
115
146
  def self.put_secret(key, subkey_value_map, log_identifier)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socotra-build
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.35
4
+ version: 0.3.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Antenesse