govuk-connect 0.5.1 → 0.7.0

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: 3b14cf8cbdd487cc57a5f1aad1cbb1a5164a6e7a5f5bc4ab986f0560dd092ab7
4
- data.tar.gz: '01769936fa3621d0dcc7e61ff9f1dc9c7a7f0852b2f587029c8ca73bcba78a15'
3
+ metadata.gz: 0cec686de41c55db9dbb4d680aa596cdb8ac039845011bb4aa435b94eb3f4e9f
4
+ data.tar.gz: bb8eb071164ade05f8dbbe1e2e3bc780ea883dc848b384de14f2ea795d5920f3
5
5
  SHA512:
6
- metadata.gz: 1f2705de184fc9b9f39dcc1705ff7c5508a456e9db23f217a2918f50a07032fce9bb3269cbdbd8ca7f15e56b8957aed2d6023015615db2d32fd2d7acfb69f378
7
- data.tar.gz: 2264b408122a922c12a90c9ca9843215e8e6fa52a5041dd1995fcee1b32183190f13dc12c41aee1e07988147abac97d5d197e7e491f0cfadeb8f8e503feb6e44
6
+ metadata.gz: 35f339438073571faee19d7da1a8d191d15a8cd389b3786f686c1ab59e3c3e0a23bddd5948135578b5cc87572d971c896c4c4feb0287e0c2b2acfa3e79c16da2
7
+ data.tar.gz: 7b50c8d20288f0206dc8d312f8f4c05b0f0763c1437726865af18c2cf7f0ceaebeb1a99135044a3cd1f49d4be548c7327a6d784b0b16031114cef6ad446f4102
@@ -227,7 +227,7 @@ class GovukConnect::CLI
227
227
  def ssh_username
228
228
  @ssh_username ||= begin
229
229
  if File.exist? config_file
230
- config_ssh_username = YAML.load_file(config_file)["ssh_username"]
230
+ config_ssh_username = load_yaml(config_file)["ssh_username"]
231
231
  end
232
232
 
233
233
  config_ssh_username || ENV["USER"]
@@ -235,9 +235,7 @@ class GovukConnect::CLI
235
235
  end
236
236
 
237
237
  def ssh_identity_file
238
- @ssh_identity_file ||= begin
239
- YAML.load_file(config_file)["ssh_identity_file"] if File.exist? config_file
240
- end
238
+ @ssh_identity_file ||= (load_yaml(config_file)["ssh_identity_file"] if File.exist? config_file)
241
239
  end
242
240
 
243
241
  def ssh_identity_arguments
@@ -254,7 +252,7 @@ class GovukConnect::CLI
254
252
 
255
253
  def govuk_node_list_classes(environment, hosting)
256
254
  log "debug: looking up classes in #{hosting}/#{environment}"
257
- classes = ssh_capture("govuk_node_list --classes").sort
255
+ classes = ssh_capture(environment, hosting, "govuk_node_list --classes").sort
258
256
 
259
257
  log "debug: classes:"
260
258
  classes.each { |c| log " - #{c}" }
@@ -315,12 +313,12 @@ class GovukConnect::CLI
315
313
  hieradata_file = File.join(local_hieradata_root, "#{environment}.yaml")
316
314
  log "debug: reading #{hieradata_file}"
317
315
 
318
- environment_specific_hieradata = YAML.load_file(hieradata_file)
316
+ environment_specific_hieradata = load_yaml(hieradata_file)
319
317
 
320
318
  if environment_specific_hieradata["node_class"]
321
319
  environment_specific_hieradata["node_class"]
322
320
  else
323
- common_hieradata = YAML.load_file(
321
+ common_hieradata = load_yaml(
324
322
  File.join(local_hieradata_root, "common.yaml"),
325
323
  )
326
324
 
@@ -328,6 +326,21 @@ class GovukConnect::CLI
328
326
  end
329
327
  end
330
328
 
329
+ def load_yaml(file_path)
330
+ # Psych (the gem that provides YAML parsing) introduced a new method,
331
+ # safe_load_file, in version 3.3 (which shipped with Ruby 3.0) and in
332
+ # version 4 (shipped with Ruby 3.1) the API for load_file changed and will
333
+ # error with GOV.UK hieradata.
334
+ #
335
+ # Once this gem no longer supports Ruby 2.x (or pins to a version of Psych)
336
+ # we can remove this conditional and use YAML.safe_load_file only
337
+ if YAML.respond_to?(:safe_load_file)
338
+ YAML.safe_load_file(file_path, aliases: true)
339
+ else
340
+ YAML.load_file(file_path)
341
+ end
342
+ end
343
+
331
344
  def node_classes_for_environment_and_hosting(environment, hosting)
332
345
  govuk_puppet_node_class_data(
333
346
  environment,
@@ -664,7 +677,7 @@ class GovukConnect::CLI
664
677
  info EXAMPLES
665
678
  print_empty_line
666
679
  info bold("CONNECTION TYPES")
667
- types.keys.each do |x|
680
+ types.each_key do |x|
668
681
  info " #{x}"
669
682
  description = CONNECTION_TYPE_DESCRIPTIONS[x]
670
683
  info " #{description}" if description
@@ -966,7 +979,7 @@ class GovukConnect::CLI
966
979
  warn @option_parser.help
967
980
 
968
981
  warn "\nValid connection types are:\n"
969
- types.keys.each do |x|
982
+ types.each_key do |x|
970
983
  warn " - #{x}"
971
984
  end
972
985
  print_empty_line
@@ -982,7 +995,7 @@ class GovukConnect::CLI
982
995
  error "error: unknown connection type: #{type}\n"
983
996
 
984
997
  warn "Valid connection types are:\n"
985
- types.keys.each do |x|
998
+ types.each_key do |x|
986
999
  warn " - #{x}"
987
1000
  end
988
1001
  print_empty_line
@@ -1004,7 +1017,7 @@ class GovukConnect::CLI
1004
1017
  error "error: unknown environment '#{environment}'"
1005
1018
  print_empty_line
1006
1019
  info "Valid environments are:"
1007
- JUMPBOXES.keys.each { |e| info " - #{e}" }
1020
+ JUMPBOXES.each_key { |e| info " - #{e}" }
1008
1021
  exit 1
1009
1022
  end
1010
1023
 
@@ -1,3 +1,3 @@
1
1
  module GovukConnect
2
- VERSION = "0.5.1".freeze
2
+ VERSION = "0.7.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk-connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Government Digital Service
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-28 00:00:00.000000000 Z
11
+ date: 2022-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: rubocop-govuk
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 3.17.0
61
+ version: 4.3.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 3.17.0
68
+ version: 4.3.0
69
69
  description: Command line tool to connect to GOV.UK infrastructure
70
70
  email:
71
71
  - govuk-dev@digital.cabinet-office.gov.uk
@@ -90,14 +90,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: '2.5'
93
+ version: '2.7'
94
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - ">="
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.0.3.1
100
+ rubygems_version: 3.3.19
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: govuk-connect command line tool