cem_acpt 0.8.5 → 0.8.6

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,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3835ee97ead5dca9e1b7445b4705efef12c7de1ff7f2574bca70d55f06091b47
4
- data.tar.gz: 5482b561206e95a2ee465116c829fff6b9bb953330dbdc77427221e954ccf8ac
3
+ metadata.gz: 8b20898f83c35c92ab9276fe4753a82aca2da25da72169d35600b6dba3c27435
4
+ data.tar.gz: 4ef575b47bfee5102cf5c8effb6a50183cfc927da524ab319b135f2654211726
5
5
  SHA512:
6
- metadata.gz: 597ae4e7b86e3559f40113fe9681ced0cce7152722430e17f0502d9d83aecf80526a1b8d1f3deb2586fcc8a0bf90489191d9898f52767081a2da45384e9de4e6
7
- data.tar.gz: b0587d2487fcb010eea86eb196fd948d23e6e05ed602e920765c0d3e21551f3e4bb173bb971001eb9de2a8617b148cbb42e2cac6645932129e8ac3d7235e7365
6
+ metadata.gz: 19414bc367fdb4a101b9969ebb3a76276712238455947648f0434c1df748b959013fcfe0206491cee841709554d3738021e1524dee646e4e40c1f967ccf73729
7
+ data.tar.gz: 3366d39bedcb059f2f8d848aae6f872677e62c9593b59021286e1a4bfaa1eb2939f0574dc83aab643cd180e04909c948c5d2a0b27ef05c63f7db0808dd8239b6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cem_acpt (0.8.5)
4
+ cem_acpt (0.8.6)
5
5
  async-http (>= 0.60, < 0.70)
6
6
  bcrypt_pbkdf (>= 1.0, < 2.0)
7
7
  deep_merge (>= 1.2, < 2.0)
@@ -143,4 +143,4 @@ DEPENDENCIES
143
143
  rubocop-rspec
144
144
 
145
145
  BUNDLED WITH
146
- 2.4.18
146
+ 2.4.19
@@ -81,6 +81,7 @@ module CemAcpt
81
81
  'rhel' => 'EnterpriseLinuxFamily',
82
82
  'alma' => 'EnterpriseLinuxFamily',
83
83
  'oel' => 'EnterpriseLinuxFamily',
84
+ 'rocky' => 'EnterpriseLinuxFamily',
84
85
  'windows' => 'WindowsFamily',
85
86
  }.freeze
86
87
 
@@ -144,7 +144,11 @@ module CemAcpt
144
144
  end
145
145
 
146
146
  def terraform
147
- @terraform ||= CemAcpt::Provision::TerraformCmd.new(@image_terraform_dir, @environment)
147
+ # Instead of passing in @image_terraform_dir, we pass in @working_dir. The reason being
148
+ # @image_terraform_dir is the parent directory that has path like ~/.cem_acpt/terraform/image/gcp (gcp being the platform)
149
+ # We want to pass the working directory that has the linux and windows directories in it
150
+ # which we can then further manipulate to get the correct path.
151
+ @terraform ||= CemAcpt::Provision::TerraformCmd.new(@working_dir, @environment)
148
152
  end
149
153
 
150
154
  def new_environment(config)
@@ -7,7 +7,7 @@ module CemAcpt
7
7
  # Class provides methods for gathering provision data for Linux nodes
8
8
  class Linux < OsData
9
9
  def self.valid_names
10
- %w[centos rhel oel alma]
10
+ %w[centos rhel oel alma rocky]
11
11
  end
12
12
 
13
13
  def self.valid_versions
@@ -89,11 +89,17 @@ module CemAcpt
89
89
  end
90
90
 
91
91
  def chdir(opts = {})
92
- [extract_arg!(opts, :chdir), working_dir, Dir.pwd].each do |d|
92
+ [Dir.pwd, working_dir, extract_arg!(opts, :chdir)].each do |d|
93
93
  next if d.nil? || d.empty?
94
94
 
95
95
  d = File.expand_path(d)
96
- return "-chdir=#{d}" if File.directory?(d)
96
+
97
+ # Added a check for main.tf to make sure we're in the right directory and have necessary file whhen running terraform
98
+ # There are three possible path that we can be in:
99
+ # 1. The working directory that was passed in, which is usually the created temporary directory
100
+ # 2. The current directory that this code is being executed from (usually in a linux or windows directory of working directory)
101
+ # 3. The working directory that was passed in, but with a linux or windows directory appended to it
102
+ return "-chdir=#{d}" if File.directory?(d) && File.exist?(File.join(d, 'main.tf'))
97
103
 
98
104
  logger.warn('CemAcpt::Provision::TerraformCmd') { "Directory #{d} does not exist, using next..." }
99
105
  end
@@ -121,7 +127,9 @@ module CemAcpt
121
127
  k = k.to_s
122
128
  k.tr!('_', '-')
123
129
  if k == 'vars'
124
- v.map { |vk, vv| "-var '#{vk}=#{vv}'" }.join(' ')
130
+ # Included a check for Hash so that we can generate JSON to pass to terraform.
131
+ # If not a Hash, then we just pass the value as is, which is a string.
132
+ v.map { |vk, vv| "-var='#{vk}=#{vv.is_a?(Hash) ? JSON.generate(vv) : vv}'" }.join(' ')
125
133
  elsif %w[input lock refresh].include?(k) # These are boolean flags with values
126
134
  "-#{k}=#{v}"
127
135
  elsif v.nil? || (v.respond_to?(:empty) && v.empty?) || v.is_a?(TrueClass)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CemAcpt
4
- VERSION = '0.8.5'
4
+ VERSION = '0.8.6'
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.8.5
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - puppetlabs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-05 00:00:00.000000000 Z
11
+ date: 2023-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http
@@ -277,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
277
277
  - !ruby/object:Gem::Version
278
278
  version: '0'
279
279
  requirements: []
280
- rubygems_version: 3.4.18
280
+ rubygems_version: 3.4.19
281
281
  signing_key:
282
282
  specification_version: 4
283
283
  summary: CEM Acceptance Tests