packaging 0.99.35 → 0.99.36

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96cc35674bee0a3c3ca29176ad645ea76dfa493d34ebc555f2a167f60362f5ca
4
- data.tar.gz: 2c2868423e895361f84c81fa643f55e35acc08095c0396019758cd835bacbf57
3
+ metadata.gz: 90069d4b887fc7918e267ea61f847be27e82531e871d839681a802c148ab00d5
4
+ data.tar.gz: 41ced9146c0dc64652333d7b574c9ab527bf3e52b7953ce4bd87ccf38497de8d
5
5
  SHA512:
6
- metadata.gz: d7d96ecf671d935aa409bcb6be995bf60c14331727a30e4ab94ab3032a573383a5172ab2fbe55160a7c66fad58588cfca2885242004606988a7456b1e501c703
7
- data.tar.gz: 84522235b00d2d1e1ea66a26f0da5c14315e95407b5b97d1ea5a8f275960868452a059332c6953b51cf4aa6051a70a6f4b25dc53e9d7f16a183e2f8dd06d332d
6
+ metadata.gz: 809e163034d7e756a3d6ddb0e225d05d1fb23c741dad910621ccf90d5f96226653651fbeec0feb1155ffc8ab5204fc3875ccb9c2fb4dc749b0ed1e8291b12ad3
7
+ data.tar.gz: 303cb33f6f6191bf3c7da7e0c23e490609a86245c8631d81c16a557ce06ccc8a6a284d1ba99461e01043605adab4a9b8efa2cc3ae983aac7d090c9d15aba5742
@@ -159,27 +159,28 @@ Description: Apt repository for acceptance testing" >> conf/distributions ; )
159
159
  dists = Pkg::Util::File.directories("#{target}/apt")
160
160
  supported_codenames = Pkg::Platforms.codenames
161
161
 
162
- if dists
163
- dists.each do |dist|
164
- next unless supported_codenames.include?(dist)
165
- arches = Pkg::Platforms.arches_for_codename(dist)
166
- Dir.chdir("#{target}/apt/#{dist}") do
167
- File.open("conf/distributions", "w") do |f|
168
- f.puts "Origin: Puppet Labs
162
+ unless dists
163
+ warn "No repos found to sign. Maybe you didn't build any debs, or the repo creation failed?"
164
+ return
165
+ end
166
+
167
+ dists.each do |dist|
168
+ next unless supported_codenames.include?(dist)
169
+ arches = Pkg::Platforms.arches_for_codename(dist)
170
+ Dir.chdir("#{target}/apt/#{dist}") do
171
+ File.open("conf/distributions", "w") do |f|
172
+ f.puts "Origin: Puppet Labs
169
173
  Label: Puppet Labs
170
174
  Codename: #{dist}
171
175
  Architectures: #{(DEBIAN_PACKAGING_ARCHES + arches).uniq.join(' ')}
172
176
  Components: #{reprepro_repo_name}
173
177
  Description: #{message} for #{dist}
174
178
  SignWith: #{Pkg::Config.gpg_key}"
175
- end
176
-
177
- stdout, _, _ = Pkg::Util::Execution.capture3("#{reprepro} -vvv --confdir ./conf --dbdir ./db --basedir ./ export")
178
- stdout
179
179
  end
180
+
181
+ stdout, _, _ = Pkg::Util::Execution.capture3("#{reprepro} -vvv --confdir ./conf --dbdir ./db --basedir ./ export")
182
+ stdout
180
183
  end
181
- else
182
- warn "No repos found to sign. Maybe you didn't build any debs, or the repo creation failed?"
183
184
  end
184
185
  end
185
186
 
@@ -64,13 +64,18 @@ module Pkg::Util::Net
64
64
  return errs
65
65
  end
66
66
 
67
- def remote_ssh_cmd(target, command, capture_output = false, extra_options = '', fail_fast = true)
67
+ def remote_ssh_cmd(target, command, capture_output = false, extra_options = '', fail_fast = true, trace = false) # rubocop:disable Style/ParameterLists
68
+
68
69
  ssh = Pkg::Util::Tool.check_tool('ssh')
69
70
 
70
71
  # we pass some pretty complicated commands in via ssh. We need this to fail
71
72
  # if any part of the remote ssh command fails.
72
- command = "set -e; #{command}" if fail_fast
73
- cmd = "#{ssh} #{extra_options} -t #{target} '#{command.gsub("'", "'\\\\''")}'"
73
+ shell_flags = ''
74
+ shell_flags += 'set -e;' if fail_fast
75
+ shell_flags += 'set -x;' if trace
76
+ shell_commands = "#{shell_flags}#{command}"
77
+
78
+ cmd = "#{ssh} #{extra_options} -t #{target} '#{shell_commands.gsub("'", "'\\\\''")}'"
74
79
 
75
80
  # This is NOT a good way to support this functionality.
76
81
  # It needs to be refactored into a set of methods that
@@ -128,12 +128,21 @@ describe "Pkg::Deb::Repo" do
128
128
  end
129
129
 
130
130
  it "makes a repo for each dist" do
131
+ # stub out start_keychain to prevent actual keychain starts.
132
+ Pkg::Util::Gpg.stub(:start_keychain)
133
+
131
134
  dists = cows.reject { |cow| cow.empty? }
132
135
  distfiles = {}
133
- reprepro = "/bin/reprepro"
134
136
  Pkg::Util::File.should_receive(:directories).with("repos/apt").and_return(dists)
135
- Pkg::Util::Tool.should_receive(:check_tool).with("reprepro").and_return(reprepro)
136
- Pkg::Util::Execution.should_receive(:capture3).at_least(1).times.with("#{reprepro} -vvv --confdir ./conf --dbdir ./db --basedir ./ export")
137
+
138
+ # Let the keychain command happen if find_tool('keychain') finds it
139
+ keychain_command = "/usr/bin/keychain -k mine"
140
+ allow(Pkg::Util::Execution).to receive(:capture3) { keychain_command }
141
+
142
+ # Enforce reprepro
143
+ reprepro_command = "/bin/reprepro"
144
+ Pkg::Util::Tool.should_receive(:check_tool).with("reprepro").and_return(reprepro_command)
145
+ Pkg::Util::Execution.should_receive(:capture3).at_least(1).times.with("#{reprepro_command} -vvv --confdir ./conf --dbdir ./db --basedir ./ export")
137
146
 
138
147
  dists.each do |dist|
139
148
  distfiles[dist] = double
@@ -65,26 +65,33 @@ describe "Pkg::Util::Net" do
65
65
  Kernel.should_receive(:system).with("#{ssh} -t foo 'bar'")
66
66
  Pkg::Util::Execution.should_receive(:success?).and_return(true)
67
67
  Pkg::Util::Net.remote_ssh_cmd("foo", "bar", false, '', false)
68
- end
68
+ end
69
+
70
+ it "should be able to trace output" do
71
+ Pkg::Util::Tool.should_receive(:check_tool).with("ssh").and_return(ssh)
72
+ Kernel.should_receive(:system).with("#{ssh} -t foo 'set -x;bar'")
73
+ Pkg::Util::Execution.should_receive(:success?).and_return(true)
74
+ Pkg::Util::Net.remote_ssh_cmd("foo", "bar", false, '', false, true)
75
+ end
69
76
 
70
77
  context "without output captured" do
71
78
  it "should execute a command :foo on a host :bar using Kernel" do
72
79
  Pkg::Util::Tool.should_receive(:check_tool).with("ssh").and_return(ssh)
73
- Kernel.should_receive(:system).with("#{ssh} -t foo 'set -e; bar'")
80
+ Kernel.should_receive(:system).with("#{ssh} -t foo 'set -e;bar'")
74
81
  Pkg::Util::Execution.should_receive(:success?).and_return(true)
75
82
  Pkg::Util::Net.remote_ssh_cmd("foo", "bar")
76
83
  end
77
84
 
78
85
  it "should escape single quotes in the command" do
79
86
  Pkg::Util::Tool.should_receive(:check_tool).with("ssh").and_return(ssh)
80
- Kernel.should_receive(:system).with("#{ssh} -t foo 'set -e; b'\\''ar'")
87
+ Kernel.should_receive(:system).with("#{ssh} -t foo 'set -e;b'\\''ar'")
81
88
  Pkg::Util::Execution.should_receive(:success?).and_return(true)
82
89
  Pkg::Util::Net.remote_ssh_cmd("foo", "b'ar")
83
90
  end
84
91
 
85
92
  it "should raise an error if ssh fails" do
86
93
  Pkg::Util::Tool.should_receive(:check_tool).with("ssh").and_return(ssh)
87
- Kernel.should_receive(:system).with("#{ssh} -t foo 'set -e; bar'")
94
+ Kernel.should_receive(:system).with("#{ssh} -t foo 'set -e;bar'")
88
95
  Pkg::Util::Execution.should_receive(:success?).and_return(false)
89
96
  expect{ Pkg::Util::Net.remote_ssh_cmd("foo", "bar") }.to raise_error(RuntimeError, /Remote ssh command failed./)
90
97
  end
@@ -93,21 +100,21 @@ describe "Pkg::Util::Net" do
93
100
  context "with output captured" do
94
101
  it "should execute a command :foo on a host :bar using Pkg::Util::Execution.capture3" do
95
102
  Pkg::Util::Tool.should_receive(:check_tool).with("ssh").and_return(ssh)
96
- Pkg::Util::Execution.should_receive(:capture3).with("#{ssh} -t foo 'set -e; bar'")
103
+ Pkg::Util::Execution.should_receive(:capture3).with("#{ssh} -t foo 'set -e;bar'")
97
104
  Pkg::Util::Execution.should_receive(:success?).and_return(true)
98
105
  Pkg::Util::Net.remote_ssh_cmd("foo", "bar", true)
99
106
  end
100
107
 
101
108
  it "should escape single quotes in the command" do
102
109
  Pkg::Util::Tool.should_receive(:check_tool).with("ssh").and_return(ssh)
103
- Pkg::Util::Execution.should_receive(:capture3).with("#{ssh} -t foo 'set -e; b'\\''ar'")
110
+ Pkg::Util::Execution.should_receive(:capture3).with("#{ssh} -t foo 'set -e;b'\\''ar'")
104
111
  Pkg::Util::Execution.should_receive(:success?).and_return(true)
105
112
  Pkg::Util::Net.remote_ssh_cmd("foo", "b'ar", true)
106
113
  end
107
114
 
108
115
  it "should raise an error if ssh fails" do
109
116
  Pkg::Util::Tool.should_receive(:check_tool).with("ssh").and_return(ssh)
110
- Pkg::Util::Execution.should_receive(:capture3).with("#{ssh} -t foo 'set -e; bar'")
117
+ Pkg::Util::Execution.should_receive(:capture3).with("#{ssh} -t foo 'set -e;bar'")
111
118
  Pkg::Util::Execution.should_receive(:success?).and_return(false)
112
119
  expect{ Pkg::Util::Net.remote_ssh_cmd("foo", "bar", true) }.to raise_error(RuntimeError, /Remote ssh command failed./)
113
120
  end
data/tasks/pe_ship.rake CHANGED
@@ -145,11 +145,23 @@ if Pkg::Config.build_pe
145
145
  # single line. By breaking it into a series of concatenated strings, we can maintain
146
146
  # a semblance of formatting and structure (nevermind readability).
147
147
  command = %(for dir in #{repo_base_path}/{#{rpm_family_and_version.join(",")}}-*; do)
148
- command += %( sudo createrepo --checksum=sha --checkts --update --delta-workers=0 --quiet --database --update $dir; )
148
+
149
+ # For (RE-12463), make this less quiet than it has been.
150
+ # We're trying to find out why its aborting. Preserve the original
151
+ # so it can be restored.
152
+ command += %( sudo createrepo --checksum=sha --checkts --update --delta-workers=0 --database --update $dir; )
153
+
154
+ ## Original
155
+ # command += %( sudo createrepo --checksum=sha --checkts --update --delta-workers=0 --quiet --database --update $dir; )
156
+ ##
149
157
  command += %(done; )
150
158
  command += %(sync)
151
159
 
152
- Pkg::Util::Net.remote_ssh_cmd(Pkg::Config.yum_host, command)
160
+ # Again for (RE-12463). Make this more verbose temporarily
161
+ Pkg::Util::Net.remote_ssh_cmd(Pkg::Config.yum_host, command, false, '', true, true)
162
+
163
+ ## Original one below
164
+ # Pkg::Util::Net.remote_ssh_cmd(Pkg::Config.yum_host, command)
153
165
  end
154
166
 
155
167
  desc "Remotely add shipped packages to apt repo on #{Pkg::Config.apt_host}"
data/tasks/ship.rake CHANGED
@@ -324,7 +324,9 @@ namespace :pl do
324
324
  task :ship_gem_to_downloads => 'pl:fetch' do
325
325
  unless Pkg::Config.gem_host
326
326
  warn 'Value `Pkg::Config.gem_host` not defined; skipping shipping to public Download server'
327
+ exit
327
328
  end
329
+ fail 'Value `Pkg::Config.gem_path` not defined; skipping shipping to public Download server' unless Pkg::Config.gem_path
328
330
 
329
331
  Pkg::Util::Execution.retry_on_fail(times: 3) do
330
332
  Pkg::Util::Ship.ship_gem('pkg', Pkg::Config.gem_path, platform_independent: true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.99.35
4
+ version: 0.99.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-11 00:00:00.000000000 Z
11
+ date: 2019-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec