cem_acpt 0.2.0 → 0.2.3

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: a7ce3a10380b032387479fc85590e5a9ca59c2dc5cec33d71cb9d79eaf6938a7
4
- data.tar.gz: d3d12c621ee070af7cab276e6887c45343519c51e9260a1c6e6fd0fc4ca64e80
3
+ metadata.gz: a727f17ebb1ca0b67caa2380338d4e0f4c51b97f30833d0ff2def0b0d6679688
4
+ data.tar.gz: 6395e670075384a22f2935882ba999ad950065933d94d30f6b9cf5095f9a07dd
5
5
  SHA512:
6
- metadata.gz: d394053e259fb6d502a44d219b8dd056e1777d61a67a1a3da34360288ee6b623eadb842381900fe1d56d4944f0b9823c10c59f136f6ac486a8c0c47722dbfddf
7
- data.tar.gz: c73ede8616dc75ab9da65573f5ad3a77c4ec604089183ede90e2a97a9fa2f5699ae012ba157935c0f7bdec9e2744f996d154958b40fde9271c545900f884de77
6
+ metadata.gz: 3ad2d225b4d57f3d0e8b60c4539c8f3a0680fb390a4a56d04ce4f4f694a1f377832782c2e20ddf7d99e8814a029eb61713c6c64d6dd35f9628ac21cde3c1efb8
7
+ data.tar.gz: 704d7fac67463d27db15e9d32999de5166e9c4769e8b8c28f3fb26a28e61a8e7e94aca5ba0ef42b1e9095766bd5b39f4edc4ec96786ff508038f51d03f0f20ff
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cem_acpt (0.2.0)
4
+ cem_acpt (0.2.3)
5
5
  concurrent-ruby (~> 1.1.9)
6
6
  deep_merge (~> 1.2.2)
7
7
  net-ssh (~> 7.0.0.beta1)
data/cem_acpt.gemspec CHANGED
@@ -5,14 +5,14 @@ require_relative 'lib/cem_acpt/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'cem_acpt'
7
7
  spec.version = CemAcpt::VERSION
8
- spec.authors = ['Heston Snodgrass']
9
- spec.email = ['hsnodgrass3@gmail.com']
8
+ spec.authors = ['puppetlabs']
9
+ spec.email = ['abide-team@puppet.com']
10
10
 
11
11
  spec.summary = 'CEM Acceptance Tests'
12
12
  spec.description = 'Litmus-like library focusing on CEM Acceptance Tests'
13
13
  spec.homepage = 'https://github.com/puppetlabs/cem_acpt'
14
14
  spec.license = 'proprietary'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
18
  spec.metadata['source_code_uri'] = 'https://github.com/puppetlabs/cem_acpt'
@@ -94,17 +94,10 @@ module CemAcpt::Platform::Gcp
94
94
  begin
95
95
  ::JSON.parse(stdout)
96
96
  rescue ::JSON::ParserError
97
- <<<<<<< HEAD
98
- stdout
99
- end
100
- else
101
- stdout
102
- =======
103
97
  stdout.chomp
104
98
  end
105
99
  else
106
100
  stdout.chomp
107
- >>>>>>> 489757f (Fixes for race conditions)
108
101
  end
109
102
  end
110
103
 
@@ -239,20 +232,12 @@ module CemAcpt::Platform::Gcp
239
232
  end
240
233
 
241
234
  def apply_manifest(instance_name, manifest, opts = {})
242
- <<<<<<< HEAD
243
- keep_manifest_file = opts[:apply][:keep_manifest_file] || false
244
- with_temp_manifest_file(manifest, keep_manifest_file: keep_manifest_file) do |tf|
245
- upload_temp_manifest(instance_name, tf.path, opts: opts)
246
- end
247
- apply_cmd = ["#{opts[:puppet_path]} apply /tmp/acpt_manifest.pp"]
248
- =======
249
235
  unless opts[:apply][:no_upload]
250
236
  with_temp_manifest_file(manifest) do |tf|
251
237
  upload_temp_manifest(instance_name, tf.path, remote_path: '/tmp/acpt_manifest.pp', opts: opts)
252
238
  end
253
239
  end
254
240
  apply_cmd = [opts[:puppet_path], 'apply', '/tmp/acpt_manifest.pp']
255
- >>>>>>> 489757f (Fixes for race conditions)
256
241
  apply_cmd << '--trace' if opts[:apply][:trace]
257
242
  apply_cmd << "--hiera_config=#{opts[:apply][:hiera_config]}" if opts[:apply][:hiera_config]
258
243
  apply_cmd << '--debug' if opts[:apply][:debug]
@@ -276,11 +261,7 @@ module CemAcpt::Platform::Gcp
276
261
  cmd_parts.join(' ')
277
262
  end
278
263
 
279
- <<<<<<< HEAD
280
- def with_temp_manifest_file(manifest, file_name: 'acpt_manifest', keep_manifest_file: false)
281
- =======
282
264
  def with_temp_manifest_file(manifest, file_name: 'acpt_manifest')
283
- >>>>>>> 489757f (Fixes for race conditions)
284
265
  require 'tempfile'
285
266
  tf = Tempfile.new(file_name)
286
267
  tf.write(manifest)
@@ -288,25 +269,12 @@ module CemAcpt::Platform::Gcp
288
269
  begin
289
270
  yield tf
290
271
  ensure
291
- <<<<<<< HEAD
292
- if keep_manifest_file
293
- @manifest_file_exists = true
294
- else
295
- tf.unlink
296
- @manifest_file_exists = false
297
- end
298
- =======
299
272
  tf.unlink
300
- >>>>>>> 489757f (Fixes for race conditions)
301
273
  end
302
274
  end
303
275
 
304
276
  def upload_temp_manifest(instance_name, local_path, remote_path: '/tmp/acpt_manifest.pp', opts: {})
305
- <<<<<<< HEAD
306
- scp_upload(instance_name, local_path, remote_path, opts: opts[:ssh_opts]) unless @manifest_file_exists
307
- =======
308
277
  scp_upload(instance_name, local_path, remote_path, opts: opts[:ssh_opts]) unless opts[:apply][:no_upload]
309
- >>>>>>> 489757f (Fixes for race conditions)
310
278
  end
311
279
 
312
280
  def gcloud_ssh(instance_name, command, ignore_command_errors: false)
@@ -322,15 +290,7 @@ module CemAcpt::Platform::Gcp
322
290
  # Default options for Net::SSH
323
291
  def default_ssh_opts
324
292
  {
325
- <<<<<<< HEAD
326
- verify_host_key: :never,
327
- keys: [ssh_key],
328
- kex: ['diffie-hellman-group-exchange-sha256'], # ecdh algos cause jruby to shit the bed
329
- keys_only: true,
330
- config: false,
331
- =======
332
293
  auth_methods: ['publickey'],
333
- >>>>>>> 489757f (Fixes for race conditions)
334
294
  check_host_ip: false,
335
295
  compression: true,
336
296
  config: false,
@@ -341,10 +301,7 @@ module CemAcpt::Platform::Gcp
341
301
  port: 22,
342
302
  user: user_name,
343
303
  user_known_hosts_file: File.join(ENV['HOME'], '.ssh', 'acpt_test_known_hosts'),
344
- <<<<<<< HEAD
345
- =======
346
304
  verify_host_key: :never,
347
- >>>>>>> 489757f (Fixes for race conditions)
348
305
  }
349
306
  end
350
307
 
@@ -42,11 +42,6 @@ module CemAcpt
42
42
  @module_pkg_path = @context.module_package_path
43
43
  @node_exists = false
44
44
  @run_result = CemAcpt::TestRunner::RunnerResult.new(@node, debug: @debug_mode)
45
- <<<<<<< HEAD
46
- validate!
47
- end
48
-
49
- =======
50
45
  @completed_steps = []
51
46
  validate!
52
47
  end
@@ -61,7 +56,6 @@ module CemAcpt
61
56
  destroy unless step_sym == :destroy
62
57
  end
63
58
 
64
- >>>>>>> 489757f (Fixes for race conditions)
65
59
  # Executes test suite steps
66
60
  def start
67
61
  async_info("Starting test suite for #{@node.node_name}", log_prefix('RUNNER'))
@@ -85,23 +79,11 @@ module CemAcpt
85
79
 
86
80
  private
87
81
 
88
- <<<<<<< HEAD
89
- def run_step(step_sym)
90
- send(step_sym)
91
- rescue StandardError => e
92
- raise CemAcpt::TestRunner::RunnerStepError.new(step_sym, e)
93
- end
94
-
95
- =======
96
- >>>>>>> 489757f (Fixes for race conditions)
97
82
  def step_error_logging(err)
98
83
  prefix = err.respond_to?(:step) ? log_prefix(err.step.capitalize) : log_prefix('RUNNER')
99
84
  fatal_msg = ["runner failed: #{err.message}"]
100
85
  async_fatal(fatal_msg, prefix)
101
- <<<<<<< HEAD
102
- =======
103
86
  async_debug("Completed steps: #{@completed_steps}", prefix)
104
- >>>>>>> 489757f (Fixes for race conditions)
105
87
  async_debug("Failed runner backtrace:\n#{err.backtrace.join("\n")}", prefix)
106
88
  async_debug("Failed runner test data: #{@node.test_data}", prefix)
107
89
  end
@@ -18,7 +18,7 @@ module CemAcpt
18
18
  # File-related utilities
19
19
  module File
20
20
  def self.set_permissions(permission, *file_paths)
21
- file_paths.map { |p| File.chmod(permission, p) }
21
+ file_paths.map { |p| ::File.chmod(permission, p) }
22
22
  end
23
23
  end
24
24
 
@@ -32,7 +32,7 @@ module CemAcpt
32
32
  # Finds and returns the Puppet executable
33
33
  def self.puppet_executable
34
34
  this_os = CemAcpt::Utils.os
35
- if File.file?(DEFAULT_PUPPET_PATH[this_os]) && File.executable?(DEFAULT_PUPPET_PATH[this_os])
35
+ if ::File.file?(DEFAULT_PUPPET_PATH[this_os]) && ::File.executable?(DEFAULT_PUPPET_PATH[this_os])
36
36
  return DEFAULT_PUPPET_PATH[this_os]
37
37
  end
38
38
 
@@ -41,9 +41,9 @@ module CemAcpt
41
41
  exts = ENV['PATHEXT'] ? ".{#{ENV['PATHEXT'].tr(';', ',').tr('.', '').downcase}}" : '.{exe,com,bat}'
42
42
  file_name = "#{file_name}#{exts}"
43
43
  end
44
- ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
45
- if File.file?(File.join(path, file_name)) && File.executable?(File.join(path, file_name))
46
- return File.join(path, file_name)
44
+ ENV['PATH'].split(::File::PATH_SEPARATOR).each do |path|
45
+ if ::File.file?(::File.join(path, file_name)) && ::File.executable?(::File.join(path, file_name))
46
+ return ::File.join(path, file_name)
47
47
  end
48
48
  end
49
49
  raise 'Could not find Puppet executable! Is Puppet installed?'
@@ -75,30 +75,32 @@ module CemAcpt
75
75
  module Node
76
76
  def self.random_instance_name(prefix: 'cem-acpt-', length: 24)
77
77
  rand_length = length - prefix.length
78
- "#{prefix}#{SecureRandom.hex(rand_length)}"
78
+ "#{prefix}#{::SecureRandom.hex(rand_length)}"
79
79
  end
80
80
  end
81
81
 
82
82
  # SSH-related utilities
83
83
  module SSH
84
- def self.keygen
85
- bin_path = `command -v ssh-keygen`.chomp
84
+ def self.ssh_keygen
85
+ bin_path = `#{ENV['SHELL']} -c 'command -v ssh-keygen'`.chomp
86
86
  raise 'Cannot find ssh-keygen! Install it and verify PATH' unless bin_path
87
87
 
88
88
  bin_path
89
+ rescue StandardError => e
90
+ raise "Cannot find ssh-keygen! Install it and verify PATH. Orignal error: #{e}"
89
91
  end
90
92
 
91
93
  def self.default_keydir
92
- ssh_dir = File.join(ENV['HOME'], '.ssh')
93
- raise "SSH directory at #{ssh_dir} does not exist" unless File.directory?(ssh_dir)
94
+ ssh_dir = ::File.join(ENV['HOME'], '.ssh')
95
+ raise "SSH directory at #{ssh_dir} does not exist" unless ::File.directory?(ssh_dir)
94
96
 
95
97
  ssh_dir
96
98
  end
97
99
 
98
100
  def self.ephemeral_ssh_key(type: 'rsa', bits: '4096', comment: nil, keydir: default_keydir)
99
- raise ArgumentError, 'keydir does not exist' unless File.directory?(keydir)
101
+ raise ArgumentError, 'keydir does not exist' unless ::File.directory?(keydir)
100
102
 
101
- keyfile = File.join(keydir, SecureRandom.hex(16))
103
+ keyfile = ::File.join(keydir, SecureRandom.hex(16))
102
104
  keygen_cmd = [ssh_keygen, "-t #{type}", "-b #{bits}", "-f #{keyfile}", '-N ""']
103
105
  keygen_cmd << "-C \"#{comment}\"" if comment
104
106
  _, stderr, status = Open3.capture3(keygen_cmd.join(' '))
@@ -108,8 +110,8 @@ module CemAcpt
108
110
  end
109
111
 
110
112
  def self.acpt_known_hosts(keydir: default_keydir, file_name: 'acpt_known_hosts', overwrite: true)
111
- kh_file = File.join(keydir, file_name)
112
- File.open(kh_file, 'w') { |f| f.write("\n") } unless File.exist?(kh_file) && !overwrite
113
+ kh_file = ::File.join(keydir, file_name)
114
+ ::File.open(kh_file, 'w') { |f| f.write("\n") } unless ::File.exist?(kh_file) && !overwrite
113
115
  kh_file
114
116
  end
115
117
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CemAcpt
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cem_acpt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
- - Heston Snodgrass
7
+ - puppetlabs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-15 00:00:00.000000000 Z
11
+ date: 2022-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -124,7 +124,7 @@ dependencies:
124
124
  version: '0'
125
125
  description: Litmus-like library focusing on CEM Acceptance Tests
126
126
  email:
127
- - hsnodgrass3@gmail.com
127
+ - abide-team@puppet.com
128
128
  executables:
129
129
  - cem_acpt
130
130
  extensions: []
@@ -184,7 +184,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: 2.5.0
187
+ version: 2.6.0
188
188
  required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  requirements:
190
190
  - - ">="