govuk-connect 0.1.0 → 0.2.0

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: 4b8646130db048f402534738fffea6fca312d926909b4bfaf96a99a0d87a6625
4
- data.tar.gz: d4011ee86eddef1e2f0ac7e643bfaaf757baf713612cd808822c84eef715ac5d
3
+ metadata.gz: caebe6cb74e7454207be9c5415c147d5afc710bc2767b3784a0a314cba233762
4
+ data.tar.gz: 11cddb0747edba0ccb1a96ba45cbc454a4a19f37ef46395bc057a9eb7814ec52
5
5
  SHA512:
6
- metadata.gz: 0cf8916a2150a946b616cfed84feae2b9333116cec946bb77179ea3074e64758552dde756872857178596a3163a5dce898daf11ca2c363223d714aef845abf94
7
- data.tar.gz: 809217f4589312c5fad4fa008f9eba535c622f87d0fe2222d944528b25c7772bb3d5d029be8d4c3f97a6e637c0e9c444afefe59cdc35532c5b3c9d4f6513f264
6
+ metadata.gz: bec29749ec1eb4024f91bffd6147594796b165556f98b5bfcb9c2be4a0b983cd01681ae9e3938e54c75a0d344661a8dc3bf198d4d7a59040fc4108cd2e4af19f
7
+ data.tar.gz: 2cb2274d0ef354af3639b76d4b0464f5b9fe2c663805e21177f9fa8a82e41b7b932aad46ce020418f136da1149154617ebfd6a34c00a70a8d0ab2e06fe4768ca
@@ -75,10 +75,13 @@ class GovukConnect::CLI
75
75
  "sidekiq-monitoring" => "Setup port forwarding to the Sidekiq Monitoring application.",
76
76
  }.freeze
77
77
 
78
- RABBITMQ_PORT = 15672
78
+ RABBITMQ_PORT = 15_672
79
79
  SIDEKIQ_MONITORING_PORT = 3211
80
80
 
81
81
  JUMPBOXES = {
82
+ test: {
83
+ aws: "jumpbox.pink.test.govuk.digital",
84
+ },
82
85
  ci: {
83
86
  carrenza: "ci-jumpbox.integration.publishing.service.gov.uk",
84
87
  },
@@ -96,7 +99,7 @@ class GovukConnect::CLI
96
99
  }.freeze
97
100
 
98
101
  def log(message)
99
- warn message if $verbose
102
+ warn message if @verbose
100
103
  end
101
104
 
102
105
  def print_empty_line
@@ -125,10 +128,12 @@ class GovukConnect::CLI
125
128
  costs[0] = i
126
129
  nw = i - 1 # j == 0; nw is lev(i-1, j)
127
130
  (1..string2.length).each do |j|
128
- costs[j], nw = [
129
- costs[j] + 1, costs[j - 1] + 1,
130
- string1[i - 1] == string2[j - 1] ? nw : nw + 1
131
- ].min, costs[j]
131
+ costs[j] = [
132
+ costs[j] + 1,
133
+ costs[j - 1] + 1,
134
+ string1[i - 1] == string2[j - 1] ? nw : nw + 1,
135
+ ].min
136
+ nw = costs[j]
132
137
  end
133
138
  end
134
139
  costs[string2.length]
@@ -176,7 +181,7 @@ class GovukConnect::CLI
176
181
  tries = 0
177
182
 
178
183
  while tries <= 10
179
- port = rand(32768...61000)
184
+ port = rand(32_768...61_000)
180
185
 
181
186
  return port if port_free? port
182
187
 
@@ -228,7 +233,7 @@ class GovukConnect::CLI
228
233
  def ssh_username
229
234
  @ssh_username ||= begin
230
235
  if File.exist? config_file
231
- config_ssh_username = YAML::load_file(config_file)["ssh_username"]
236
+ config_ssh_username = YAML.load_file(config_file)["ssh_username"]
232
237
  end
233
238
 
234
239
  config_ssh_username || ENV["USER"]
@@ -237,7 +242,7 @@ class GovukConnect::CLI
237
242
 
238
243
  def ssh_identity_file
239
244
  @ssh_identity_file ||= begin
240
- YAML::load_file(config_file)["ssh_identity_file"] if File.exist? config_file
245
+ YAML.load_file(config_file)["ssh_identity_file"] if File.exist? config_file
241
246
  end
242
247
  end
243
248
 
@@ -257,13 +262,14 @@ class GovukConnect::CLI
257
262
  log "debug: looking up classes in #{hosting}/#{environment}"
258
263
  command = [
259
264
  "ssh",
260
- "-o", "ConnectTimeout=2", # Show a failure quickly
265
+ "-o",
266
+ "ConnectTimeout=2", # Show a failure quickly
261
267
  *ssh_identity_arguments,
262
268
  user_at_host(
263
269
  ssh_username,
264
270
  jumpbox_for_environment_and_hosting(environment, hosting),
265
271
  ),
266
- "govuk_node_list --classes"
272
+ "govuk_node_list --classes",
267
273
  ].join(" ")
268
274
 
269
275
  log "debug: running command: #{command}"
@@ -287,13 +293,14 @@ class GovukConnect::CLI
287
293
  def get_domains_for_node_class(target, environment, hosting, ssh_username)
288
294
  command = [
289
295
  "ssh",
290
- "-o", "ConnectTimeout=2", # Show a failure quickly
296
+ "-o",
297
+ "ConnectTimeout=2", # Show a failure quickly
291
298
  *ssh_identity_arguments,
292
299
  user_at_host(
293
300
  ssh_username,
294
301
  jumpbox_for_environment_and_hosting(environment, hosting),
295
302
  ),
296
- "govuk_node_list -c #{target}"
303
+ "govuk_node_list -c #{target}",
297
304
  ].join(" ")
298
305
 
299
306
  output, status = Open3.capture2(command)
@@ -327,12 +334,12 @@ class GovukConnect::CLI
327
334
  hieradata_file = File.join(local_hieradata_root, "#{environment}.yaml")
328
335
  log "debug: reading #{hieradata_file}"
329
336
 
330
- environment_specific_hieradata = YAML::load_file(hieradata_file)
337
+ environment_specific_hieradata = YAML.load_file(hieradata_file)
331
338
 
332
339
  if environment_specific_hieradata["node_class"]
333
340
  environment_specific_hieradata["node_class"]
334
341
  else
335
- common_hieradata = YAML::load_file(
342
+ common_hieradata = YAML.load_file(
336
343
  File.join(local_hieradata_root, "common.yaml"),
337
344
  )
338
345
 
@@ -511,7 +518,7 @@ class GovukConnect::CLI
511
518
  app_name,
512
519
  environment,
513
520
  hosting,
514
- )
521
+ )
515
522
 
516
523
  unless node_class
517
524
  error "error: application '#{app_name}' not found."
@@ -551,11 +558,11 @@ class GovukConnect::CLI
551
558
 
552
559
  def ssh(
553
560
  target,
554
- environment,
555
- command: false,
556
- port_forward: false,
557
- additional_arguments: []
558
- )
561
+ environment,
562
+ command: false,
563
+ port_forward: false,
564
+ additional_arguments: []
565
+ )
559
566
  log "debug: ssh to #{target} in #{environment}"
560
567
 
561
568
  # Split something like aws/backend:2 in to :aws, 'backend', 2
@@ -627,14 +634,15 @@ class GovukConnect::CLI
627
634
  ssh_command = [
628
635
  "ssh",
629
636
  *ssh_identity_arguments,
630
- "-J", user_at_host(
637
+ "-J",
638
+ user_at_host(
631
639
  ssh_username,
632
640
  jumpbox_for_environment_and_hosting(environment, hosting),
633
641
  ),
634
642
  user_at_host(
635
643
  ssh_username,
636
644
  ssh_target,
637
- )
645
+ ),
638
646
  ]
639
647
 
640
648
  if command
@@ -647,7 +655,8 @@ class GovukConnect::CLI
647
655
 
648
656
  ssh_command += [
649
657
  "-N",
650
- "-L", "#{localhost_port}:127.0.0.1:#{port_forward}"
658
+ "-L",
659
+ "#{localhost_port}:127.0.0.1:#{port_forward}",
651
660
  ]
652
661
 
653
662
  info "Port forwarding setup, access:\n\n http://127.0.0.1:#{localhost_port}/\n\n"
@@ -679,14 +688,14 @@ class GovukConnect::CLI
679
688
  uri = URI(url)
680
689
 
681
690
  host_to_hosting_and_environment = {
682
- "ci-alert.integration.publishing.service.gov.uk" => %i[carrenza ci],
683
- "alert.integration.publishing.service.gov.uk" => %i[aws integration],
684
- "alert.staging.govuk.digital" => %i[aws staging],
685
- "alert.blue.staging.govuk.digital" => %i[aws staging],
686
- "alert.staging.publishing.service.gov.uk" => %i[carrenza staging],
687
- "alert.production.govuk.digital" => %i[aws production],
688
- "alert.blue.production.govuk.digital" => %i[aws production],
689
- "alert.publishing.service.gov.uk" => %i[carrenza production],
691
+ "ci-alert.integration.publishing.service.gov.uk" => %i[carrenza ci],
692
+ "alert.integration.publishing.service.gov.uk" => %i[aws integration],
693
+ "alert.staging.govuk.digital" => %i[aws staging],
694
+ "alert.blue.staging.govuk.digital" => %i[aws staging],
695
+ "alert.staging.publishing.service.gov.uk" => %i[carrenza staging],
696
+ "alert.production.govuk.digital" => %i[aws production],
697
+ "alert.blue.production.govuk.digital" => %i[aws production],
698
+ "alert.publishing.service.gov.uk" => %i[carrenza production],
690
699
  }
691
700
 
692
701
  unless host_to_hosting_and_environment.key? uri.host
@@ -699,8 +708,6 @@ class GovukConnect::CLI
699
708
 
700
709
  def parse_options(argv)
701
710
  options = {}
702
-
703
- # rubocop:disable Metrics/BlockLength
704
711
  @option_parser = OptionParser.new do |opts|
705
712
  opts.banner = USAGE_BANNER
706
713
 
@@ -723,7 +730,7 @@ class GovukConnect::CLI
723
730
  options[:port_forward] = o
724
731
  end
725
732
  opts.on("-v", "--verbose", "Enable more detailed logging") do
726
- $verbose = true
733
+ @verbose = true
727
734
  end
728
735
 
729
736
  opts.on("-h", "--help", "Prints usage information and examples") do
@@ -751,7 +758,6 @@ class GovukConnect::CLI
751
758
  exit
752
759
  end
753
760
  end
754
- # rubocop:enable Metrics/BlockLength
755
761
 
756
762
  @option_parser.parse!(argv)
757
763
 
@@ -842,19 +848,19 @@ class GovukConnect::CLI
842
848
 
843
849
  def types
844
850
  @types ||= {
845
- "app-console" => Proc.new do |target, environment, args, _options|
851
+ "app-console" => proc do |target, environment, args, _options|
846
852
  check_for_target(target)
847
853
  check_for_additional_arguments("app-console", args)
848
854
  govuk_app_command(target, environment, "console")
849
855
  end,
850
856
 
851
- "app-dbconsole" => Proc.new do |target, environment, args, _options|
857
+ "app-dbconsole" => proc do |target, environment, args, _options|
852
858
  check_for_target(target)
853
859
  check_for_additional_arguments("app-dbconsole", args)
854
860
  govuk_app_command(target, environment, "dbconsole")
855
861
  end,
856
862
 
857
- "rabbitmq" => Proc.new do |target, environment, args, _options|
863
+ "rabbitmq" => proc do |target, environment, args, _options|
858
864
  check_for_additional_arguments("rabbitmq", args)
859
865
 
860
866
  target ||= "rabbitmq"
@@ -876,7 +882,7 @@ class GovukConnect::CLI
876
882
  )
877
883
  end,
878
884
 
879
- "sidekiq-monitoring" => Proc.new do |target, environment, args, _options|
885
+ "sidekiq-monitoring" => proc do |target, environment, args, _options|
880
886
  check_for_additional_arguments("sidekiq-monitoring", args)
881
887
  ssh(
882
888
  target || "backend",
@@ -885,7 +891,7 @@ class GovukConnect::CLI
885
891
  )
886
892
  end,
887
893
 
888
- "ssh" => Proc.new do |target, environment, args, options|
894
+ "ssh" => proc do |target, environment, args, options|
889
895
  check_for_target(target)
890
896
 
891
897
  if options.key? :hosting
@@ -1,3 +1,3 @@
1
1
  module GovukConnect
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.2.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.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Government Digital Service
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-30 00:00:00.000000000 Z
11
+ date: 2020-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 3.5.0
61
+ version: 3.16.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.5.0
68
+ version: 3.16.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
@@ -82,7 +82,7 @@ homepage: https://github.com/alphagov/govuk-connect
82
82
  licenses:
83
83
  - MIT
84
84
  metadata: {}
85
- post_install_message:
85
+ post_install_message:
86
86
  rdoc_options: []
87
87
  require_paths:
88
88
  - lib
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  requirements: []
100
100
  rubygems_version: 3.0.3
101
- signing_key:
101
+ signing_key:
102
102
  specification_version: 4
103
103
  summary: govuk-connect command line tool
104
104
  test_files: []