potluck-postgres 0.0.3 → 0.0.4

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/potluck/postgres.rb +19 -6
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 688b41913019f03f8c8fb392e0673cc28e21dfe29d601b13f0381528b066b3e4
4
- data.tar.gz: 3d27aef854e4bb01623e351091eda78fd904e2ff82021d1f3a4e43ef9688475c
3
+ metadata.gz: 2077db990cc6b953fe7034b0d0289a8442173a9734db26281cc37497a1887559
4
+ data.tar.gz: 33ea6d44e01545a3c4002e8743243aac70f72c0b642e45584ecc7aabcda29fd4
5
5
  SHA512:
6
- metadata.gz: 5b8e232cd239c438b0e1ce14a0a7a8adc1a8d814a77cf98ebd9b6bba7652d01edb67362233f8d2bdf7f7953cbe7a4992be4fbbc10f5c3e8b103a8114f0d5894a
7
- data.tar.gz: 461902a84e99659e223700e3fa70681014c78bd0879c0c7709905d70b0c0c8ece24ab881d86ad599767d7ea6ef3c45ac602e16289aeb5849691c06d1d417bedd
6
+ metadata.gz: 2a1ba7770728c55170bc6342ecc4b5f1a83e60524f0b434bcc2c7837dc43a7630ad30e24663fbda02ae73eef7e80ab40196b0e8585c95aeb60752cd660da84f1
7
+ data.tar.gz: c325a86a0c061e29ccd4430ffc57dc284817722dc410bfb07ae0ab5bf8fea3b679eda1494eb4c784e4c0acea262cdc572140d83f14f6b3bc6c0033cd5848261b
@@ -4,7 +4,16 @@ require('potluck')
4
4
  require('sequel')
5
5
 
6
6
  module Potluck
7
- class Postgres < Dish
7
+ class Postgres < Service
8
+ ROLE_NOT_FOUND_REGEX = /role .* does not exist/.freeze
9
+ DATABASE_NOT_FOUND_REGEX = /database .* does not exist/.freeze
10
+
11
+ STARTING_UP_STRING = 'the database system is starting up'
12
+ STARTING_UP_TIMEOUT = 30
13
+
14
+ CONNECTION_REFUSED_STRING = 'connection refused'
15
+ CONNECTION_REFUSED_TIMEOUT = 3
16
+
8
17
  attr_reader(:database)
9
18
 
10
19
  def initialize(config, **args)
@@ -22,18 +31,22 @@ module Potluck
22
31
  Sequel.synchronize { Sequel::DATABASES.delete(dud) }
23
32
  end
24
33
 
25
- if e.message =~ /role .* does not exist/ && tries == 1
34
+ message = e.message.downcase
35
+
36
+ if message =~ ROLE_NOT_FOUND_REGEX && tries == 1
26
37
  create_database_role
27
38
  create_database
28
39
  retry
29
- elsif e.message =~ /database .* does not exist/ && tries == 1
40
+ elsif message =~ DATABASE_NOT_FOUND_REGEX && tries == 1
30
41
  create_database
31
42
  retry
32
- elsif (manage? && tries < 3) && (e.message.include?('could not connect') ||
33
- e.message.include?('the database system is starting up'))
43
+ elsif message.include?(STARTING_UP_STRING) && tries < STARTING_UP_TIMEOUT
44
+ sleep(1)
45
+ retry
46
+ elsif message.include?(CONNECTION_REFUSED_STRING) && tries < CONNECTION_REFUSED_TIMEOUT && manage?
34
47
  sleep(1)
35
48
  retry
36
- elsif e.message.include?('could not connect')
49
+ elsif message.include?(CONNECTION_REFUSED_STRING)
37
50
  abort("#{e.class}: #{e.message.strip}")
38
51
  else
39
52
  abort("#{e.class}: #{e.message.strip}\n #{e.backtrace.join("\n ")}")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: potluck-postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nate Pickens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-16 00:00:00.000000000 Z
11
+ date: 2021-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: potluck
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.3
19
+ version: 0.0.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.3
26
+ version: 0.0.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pg
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  - !ruby/object:Gem::Version
120
120
  version: '0'
121
121
  requirements: []
122
- rubygems_version: 3.2.3
122
+ rubygems_version: 3.2.32
123
123
  signing_key:
124
124
  specification_version: 4
125
125
  summary: A Ruby manager for Postgres.