govuk-connect 0.1.0 → 0.2.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: 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: []