manageiq-postgres_ha_admin 3.1.3 → 3.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: 8b4c03cda17ed0475dbc8fbe5bf68aa11704047da6067bf40e33fc41a1945a9f
4
- data.tar.gz: 63db9fd31ea8a59e9a8967afc36d75fe9419c79a7e8f3b75964e47fd0c3cb20c
3
+ metadata.gz: 56101e65dae001ffb46cd7694fbef68783b68e9a65acf249be6442de3bfe9946
4
+ data.tar.gz: 7168416de251ecc47a6f18b74ee670aff0e064f856f4977b9ba326251db6908e
5
5
  SHA512:
6
- metadata.gz: 9d3b92acf8ec4e2266543b610985a5bdd8c4d69d322f92c05dd3dc0d52cb14e536f1abb78c91b2fd0ca337fe045b5f5c3b0af2fb9aec8cfe26746e792e474679
7
- data.tar.gz: 03e0ccd79e54f83d6cec84c387aa3eeb547b4a6b8fe59fef03fa704f335447a47ec73da245aef2ad84bc6aacda3bfb0e8fea7e99b6db4834a87732f0b0fd863f
6
+ metadata.gz: ca051fa5381377b6252a323a3f77befb7f544d155d86a5b749409a58f7af68d6d2d8cb1c248d8bea6ebbeab8f45a57b43bf87deca082f43720642b7b47f505c8
7
+ data.tar.gz: 4d32d6edb84ff1cdf9d4448fbc1239962c7b24382d31e143b8169f00156947ea6160a5e63b54647c7c94dee0e4d838320f85f1a2434ac736d7dc8019b7187cc9
@@ -0,0 +1,49 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+ schedule:
7
+ - cron: '0 0 * * 0'
8
+
9
+ jobs:
10
+ ci:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby-version:
15
+ - '2.5'
16
+ - '2.6'
17
+ - '2.7'
18
+ - '3.0'
19
+ rails-version:
20
+ - '6.0'
21
+ - '6.1'
22
+ services:
23
+ postgres:
24
+ image: manageiq/postgresql:10
25
+ env:
26
+ POSTGRESQL_USER: root
27
+ POSTGRESQL_PASSWORD: smartvm
28
+ POSTGRESQL_DATABASE: vmdb_test
29
+ options: --health-cmd pg_isready --health-interval 2s --health-timeout 5s --health-retries 5
30
+ ports:
31
+ - 5432:5432
32
+ env:
33
+ PGHOST: localhost
34
+ TEST_RAILS_VERSION: ${{ matrix.rails-version }}
35
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
36
+ steps:
37
+ - uses: actions/checkout@v2
38
+ - name: Set up Ruby
39
+ uses: ruby/setup-ruby@v1
40
+ with:
41
+ ruby-version: ${{ matrix.ruby-version }}
42
+ bundler-cache: true
43
+ timeout-minutes: 30
44
+ - name: Run tests
45
+ run: bundle exec rake
46
+ - name: Report code coverage
47
+ if: ${{ github.ref == 'refs/heads/master' && matrix.ruby-version == '3.0' && matrix.rails-version == '6.1' }}
48
+ continue-on-error: true
49
+ uses: paambaati/codeclimate-action@v3.0.0
data/.rspec CHANGED
@@ -1,4 +1,3 @@
1
1
  --require spec_helper
2
2
  --color
3
3
  --order random
4
- --format documentation
data/.whitesource ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "settingsInheritedFrom": "ManageIQ/whitesource-config@master"
3
+ }
data/CHANGELOG.md CHANGED
@@ -3,31 +3,48 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
- ## [3.1.3] - 2021-09-27
6
+ ## [Unreleased]
7
+
8
+ ## [3.2.0] - 2022-09-26
9
+ ### Added
10
+ - Add simple prefix to all log lines [#38](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/38)
11
+
12
+ ### Changed
13
+ - 5 minute db checks is too long, use 2 minutes [#37](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/37)
14
+
15
+ ### Removed
16
+ - Remove unused pglogical_config_handler [#35](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/35)
17
+
18
+ ### Fixed
19
+ - Don't attempt a database failover without a known standby [#36](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/36)
20
+
21
+ ## [3.1.4] - 2022-04-30
22
+ ### Changed
23
+ - Loosen rails dependency to include rails 6.1 [#28](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/28)
7
24
 
25
+ ## [3.1.3] - 2021-09-27
8
26
  ### Changed
9
27
  - Loosen manageiq-password dependency to < 2 [#26](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/26)
10
- - Update ruby versions to 2.5.8 minimum [#25](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/25)
28
+ - Update ruby versions to 2.5.8 minimum and support Ruby 3.0 [#25](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/25)
11
29
  - Switch to manageiq-style [#24](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/24)
12
30
 
13
31
  ## [3.1.2] - 2020-12-21
32
+ ### Changed
14
33
  - Allow for Rails 6.0 [#23](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/23)
15
34
 
16
35
  ## [3.1.1] - 2019-12-12
36
+ ### Changed
17
37
  - Remove the dependency on linux_admin [#19](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/19)
18
38
 
19
39
  ## [3.1.0] - 2019-05-09
20
-
21
40
  ### Added
22
41
  - Add a logical replication config handler [#17](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/17)
23
42
 
24
43
  ## [3.0.1] - 2019-03-19
25
-
26
44
  ### Changed
27
45
  - Remove references to MiqPassword [#15](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/15)
28
46
 
29
47
  ## [3.0.0] - 2018-09-05
30
-
31
48
  ### Added
32
49
  - Allow users of the gem to specify a logger object [#7](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/7)
33
50
 
@@ -37,7 +54,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
37
54
  - Make failover monitor generic [#10](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/10)
38
55
 
39
56
  ## [2.0.0] - 2018-08-01
40
-
41
57
  ### Added
42
58
  - Add pg-dsn_parser to the gemspec [#5](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/5)
43
59
  - Add postgresql addon for travis [#6](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/6)
@@ -45,7 +61,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
45
61
  ### Changed
46
62
  - Make changes for upgrading repmgr to version 4 [#4](https://github.com/ManageIQ/manageiq-postgres_ha_admin/pull/4)
47
63
 
48
- [Unreleased]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.1.2...master
64
+ [Unreleased]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.2.0...master
65
+ [3.2.0]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.1.4...v3.2.0
66
+ [3.1.4]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.1.3...v3.1.4
67
+ [3.1.3]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.1.2...v3.1.3
49
68
  [3.1.2]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.1.1...v3.1.2
50
69
  [3.1.1]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.1.0...v3.1.1
51
70
  [3.1.0]: https://github.com/ManageIQ/manageiq-postgres_ha_admin/compare/v3.0.1...v3.1.0
data/CODEOWNERS CHANGED
@@ -1 +1 @@
1
- * @carbonin
1
+ * @Fryguy
data/Gemfile CHANGED
@@ -2,3 +2,10 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in manageiq-postgres_ha_admin.gemspec
4
4
  gemspec
5
+
6
+ case ENV['TEST_RAILS_VERSION']
7
+ when "6.0"
8
+ gem "activesupport", "~>6.0.4"
9
+ when "6.1"
10
+ gem "activesupport", "~>6.1.4"
11
+ end
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # ManageIQ::PostgresHaAdmin
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/manageiq-postgres_ha_admin.svg)](http://badge.fury.io/rb/manageiq-postgres_ha_admin)
4
- [![Build Status](https://travis-ci.org/ManageIQ/manageiq-postgres_ha_admin.svg)](https://travis-ci.org/ManageIQ/manageiq-postgres_ha_admin)
4
+ [![CI](https://github.com/ManageIQ/manageiq-postgres_ha_admin/actions/workflows/ci.yaml/badge.svg)](https://github.com/ManageIQ/manageiq-postgres_ha_admin/actions/workflows/ci.yaml)
5
5
  [![Code Climate](https://codeclimate.com/github/ManageIQ/manageiq-postgres_ha_admin.svg)](https://codeclimate.com/github/ManageIQ/manageiq-postgres_ha_admin)
6
6
  [![Test Coverage](https://codeclimate.com/github/ManageIQ/manageiq-postgres_ha_admin/badges/coverage.svg)](https://codeclimate.com/github/ManageIQ/manageiq-postgres_ha_admin/coverage)
7
- [![Security](https://hakiri.io/github/ManageIQ/manageiq-postgres_ha_admin/master.svg)](https://hakiri.io/github/ManageIQ/manageiq-postgres_ha_admin/master)
8
7
 
9
8
  [![Chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ManageIQ/manageiq-postgres_ha_admin?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
10
9
 
@@ -27,9 +27,12 @@ module PostgresHaAdmin
27
27
  @before_failover_cb&.call
28
28
  end
29
29
 
30
+ # Upon successful failover
30
31
  def do_after_failover(new_primary_conn_info)
31
32
  @after_failover_cb&.call(new_primary_conn_info)
32
33
  end
34
+
35
+ # If needed, we can add an unsuccessful failover hook
33
36
  end
34
37
  end
35
38
  end
@@ -7,7 +7,7 @@ module PostgresHaAdmin
7
7
  include Logging
8
8
 
9
9
  FAILOVER_ATTEMPTS = 10
10
- DB_CHECK_FREQUENCY = 300
10
+ DB_CHECK_FREQUENCY = 120
11
11
  FAILOVER_CHECK_FREQUENCY = 60
12
12
  attr_accessor :failover_attempts, :db_check_frequency, :failover_check_frequency
13
13
  attr_reader :config_handlers
@@ -31,17 +31,20 @@ module PostgresHaAdmin
31
31
  next
32
32
  end
33
33
 
34
- logger.error("Primary Database is not available for #{handler.name}. Starting to execute failover...")
34
+ logger.error("#{log_prefix(__callee__)} Primary Database is not available for #{handler.name}. Starting to execute failover...")
35
35
  handler.do_before_failover
36
36
 
37
37
  new_conn_info = execute_failover(handler, server_store)
38
+
38
39
  if new_conn_info
40
+ # Upon success, we pass a connection hash
39
41
  handler.do_after_failover(new_conn_info)
40
42
  else
41
- logger.error("Failover failed")
43
+ # Add failover_failed hook if we have a use case in the future
44
+ logger.error("#{log_prefix(__callee__)} Failover failed")
42
45
  end
43
46
  rescue => e
44
- logger.error("Received #{e.class} error while monitoring #{handler.name}: #{e.message}")
47
+ logger.error("#{log_prefix(__callee__)} Received #{e.class} error while monitoring #{handler.name}: #{e.message}")
45
48
  logger.error(e.backtrace)
46
49
  end
47
50
  end
@@ -52,7 +55,7 @@ module PostgresHaAdmin
52
55
  begin
53
56
  monitor
54
57
  rescue => err
55
- logger.error("#{err.class}: #{err}")
58
+ logger.error("#{log_prefix(__callee__)} #{err.class}: #{err}")
56
59
  logger.error(err.backtrace.join("\n"))
57
60
  end
58
61
  sleep(db_check_frequency)
@@ -72,21 +75,37 @@ module PostgresHaAdmin
72
75
  begin
73
76
  ha_admin_yml = YAML.load_file(ha_admin_yml_file) if File.exist?(ha_admin_yml_file)
74
77
  rescue SystemCallError, IOError => err
75
- logger.error("#{err.class}: #{err}")
76
- logger.info("File not loaded: #{ha_admin_yml_file}. Default settings for failover will be used.")
78
+ logger.error("#{log_prefix(__callee__)} #{err.class}: #{err}")
79
+ logger.info("#{log_prefix(__callee__)} File not loaded: #{ha_admin_yml_file}. Default settings for failover will be used.")
77
80
  end
78
81
  @failover_attempts = ha_admin_yml['failover_attempts'] || FAILOVER_ATTEMPTS
79
82
  @db_check_frequency = ha_admin_yml['db_check_frequency'] || DB_CHECK_FREQUENCY
80
83
  @failover_check_frequency = ha_admin_yml['failover_check_frequency'] || FAILOVER_CHECK_FREQUENCY
81
- logger.info("FAILOVER_ATTEMPTS=#{@failover_attempts} DB_CHECK_FREQUENCY=#{@db_check_frequency} FAILOVER_CHECK_FREQUENCY=#{@failover_check_frequency}")
84
+ logger.info("#{log_prefix(__callee__)} FAILOVER_ATTEMPTS=#{@failover_attempts} DB_CHECK_FREQUENCY=#{@db_check_frequency} FAILOVER_CHECK_FREQUENCY=#{@failover_check_frequency}")
85
+ end
86
+
87
+ def any_known_standby?(handler, server_store)
88
+ current_host = handler.read[:host]
89
+ server_store.servers.any? do |server|
90
+ server[:host] != current_host && server[:type] == "standby"
91
+ end
82
92
  end
83
93
 
84
94
  def execute_failover(handler, server_store)
95
+ # TODO: Instead of returning false, we should raise:
96
+ # "No active standby"
97
+ # "Standby in recovery"
98
+ # "Exhausted all failover retry attempts" exceptions
99
+ unless any_known_standby?(handler, server_store)
100
+ logger.error("#{log_prefix(__callee__)} Cannot attempt failover without a known active standby. Please verify the database.yml and ensure the database is started.")
101
+ return false
102
+ end
103
+
85
104
  failover_attempts.times do
86
105
  with_each_standby_connection(handler, server_store) do |connection, params|
87
106
  next if database_in_recovery?(connection)
88
107
  next unless server_store.host_is_primary?(params[:host], connection)
89
- logger.info("Failing over to server using conninfo: #{params.reject { |k, _v| k == :password }}")
108
+ logger.info("#{log_prefix(__callee__)} Failing over to server using conninfo: #{params.reject { |k, _v| k == :password }}")
90
109
  server_store.update_servers(connection)
91
110
  handler.write(params)
92
111
  return params
@@ -111,7 +130,7 @@ module PostgresHaAdmin
111
130
  def pg_connection(params)
112
131
  PG::Connection.open(params)
113
132
  rescue PG::Error => e
114
- logger.error("Failed to establish PG connection: #{e.message}")
133
+ logger.error("#{log_prefix(__callee__)} Failed to establish PG connection: #{e.message}")
115
134
  nil
116
135
  end
117
136
 
@@ -4,6 +4,10 @@ module PostgresHaAdmin
4
4
  def logger
5
5
  ManageIQ::PostgresHaAdmin.logger
6
6
  end
7
+
8
+ def log_prefix(method)
9
+ "(PostgresHaAdmin##{method})"
10
+ end
7
11
  end
8
12
  end
9
13
  end
@@ -25,11 +25,11 @@ module PostgresHaAdmin
25
25
  def update_servers(connection)
26
26
  new_servers = query_repmgr(connection)
27
27
  if servers_changed?(new_servers)
28
- logger.info("Updating servers cache to #{new_servers}")
28
+ logger.info("#{log_prefix(__callee__)} Updating servers cache to #{new_servers}")
29
29
  @servers = new_servers
30
30
  end
31
31
  rescue IOError => err
32
- logger.error("#{err.class}: #{err}")
32
+ logger.error("#{log_prefix(__callee__)} #{err.class}: #{err}")
33
33
  logger.error(err.backtrace.join("\n"))
34
34
  end
35
35
 
@@ -59,7 +59,7 @@ module PostgresHaAdmin
59
59
  db_result.clear
60
60
  result
61
61
  rescue PG::Error => err
62
- logger.error("#{err.class}: #{err}")
62
+ logger.error("#{log_prefix(__callee__)} #{err.class}: #{err}")
63
63
  logger.error(err.backtrace.join("\n"))
64
64
  result
65
65
  end
@@ -1,5 +1,5 @@
1
1
  module ManageIQ
2
2
  module PostgresHaAdmin
3
- VERSION = '3.1.3'.freeze
3
+ VERSION = '3.2.0'.freeze
4
4
  end
5
5
  end
@@ -8,7 +8,6 @@ require 'manageiq/postgres_ha_admin/failover_monitor'
8
8
 
9
9
  require 'manageiq/postgres_ha_admin/config_handler'
10
10
  require 'manageiq/postgres_ha_admin/config_handler/rails_config_handler'
11
- require 'manageiq/postgres_ha_admin/config_handler/pglogical_config_handler'
12
11
  require 'manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler'
13
12
 
14
13
  module ManageIQ
@@ -16,22 +16,26 @@ Gem::Specification.new do |spec|
16
16
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
17
  f.match(%r{^(test|spec|features)/})
18
18
  end
19
+ spec.metadata = {
20
+ "changelog_uri" => "https://github.com/ManageIQ/manageiq-postgres_ha_admin/blob/master/CHANGELOG.md",
21
+ "source_code_uri" => "https://github.com/ManageIQ/manageiq-postgres_ha_admin/",
22
+ "bug_tracker_uri" => "https://github.com/ManageIQ/manageiq-postgres_ha_admin/issues"
23
+ }
19
24
  spec.bindir = "bin"
20
25
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
26
  spec.require_paths = ["lib"]
22
27
 
23
28
  spec.required_ruby_version = ">= 2.5.8"
24
29
 
25
- spec.add_runtime_dependency "activesupport", ">=5.0", "< 6.1"
30
+ spec.add_runtime_dependency "activesupport", ">=5.0", "< 7.0"
26
31
  spec.add_runtime_dependency "awesome_spawn", "~> 1.4"
27
32
  spec.add_runtime_dependency "manageiq-password", "< 2"
28
33
  spec.add_runtime_dependency "pg"
29
34
  spec.add_runtime_dependency "pg-dsn_parser", "~> 0.1"
30
35
 
31
36
  spec.add_development_dependency "bundler"
32
- spec.add_development_dependency "codeclimate-test-reporter", "~> 1.0.0"
33
37
  spec.add_development_dependency "manageiq-style"
34
38
  spec.add_development_dependency "rake"
35
- spec.add_development_dependency "rspec", "~> 3.0"
36
- spec.add_development_dependency "simplecov"
39
+ spec.add_development_dependency "rspec", "~> 3.0"
40
+ spec.add_development_dependency "simplecov", ">= 0.21.2"
37
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manageiq-postgres_ha_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-27 00:00:00.000000000 Z
11
+ date: 2022-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '7.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: '7.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: awesome_spawn
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -100,20 +100,6 @@ dependencies:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: codeclimate-test-reporter
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: 1.0.0
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: 1.0.0
117
103
  - !ruby/object:Gem::Dependency
118
104
  name: manageiq-style
119
105
  requirement: !ruby/object:Gem::Requirement
@@ -162,14 +148,14 @@ dependencies:
162
148
  requirements:
163
149
  - - ">="
164
150
  - !ruby/object:Gem::Version
165
- version: '0'
151
+ version: 0.21.2
166
152
  type: :development
167
153
  prerelease: false
168
154
  version_requirements: !ruby/object:Gem::Requirement
169
155
  requirements:
170
156
  - - ">="
171
157
  - !ruby/object:Gem::Version
172
- version: '0'
158
+ version: 0.21.2
173
159
  description: ManageIQ Postgres H.A. Admin
174
160
  email:
175
161
  executables: []
@@ -177,13 +163,14 @@ extensions: []
177
163
  extra_rdoc_files: []
178
164
  files:
179
165
  - ".codeclimate.yml"
166
+ - ".github/workflows/ci.yaml"
180
167
  - ".gitignore"
181
168
  - ".rspec"
182
169
  - ".rspec_ci"
183
170
  - ".rubocop.yml"
184
171
  - ".rubocop_cc.yml"
185
172
  - ".rubocop_local.yml"
186
- - ".travis.yml"
173
+ - ".whitesource"
187
174
  - CHANGELOG.md
188
175
  - CODEOWNERS
189
176
  - Gemfile
@@ -193,7 +180,6 @@ files:
193
180
  - lib/manageiq-postgres_ha_admin.rb
194
181
  - lib/manageiq/postgres_ha_admin/config_handler.rb
195
182
  - lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
196
- - lib/manageiq/postgres_ha_admin/config_handler/pglogical_config_handler.rb
197
183
  - lib/manageiq/postgres_ha_admin/config_handler/rails_config_handler.rb
198
184
  - lib/manageiq/postgres_ha_admin/failover_monitor.rb
199
185
  - lib/manageiq/postgres_ha_admin/logging.rb
@@ -204,7 +190,10 @@ files:
204
190
  homepage: https://github.com/ManageIQ/manageiq-postgres_ha_admin
205
191
  licenses:
206
192
  - Apache-2.0
207
- metadata: {}
193
+ metadata:
194
+ changelog_uri: https://github.com/ManageIQ/manageiq-postgres_ha_admin/blob/master/CHANGELOG.md
195
+ source_code_uri: https://github.com/ManageIQ/manageiq-postgres_ha_admin/
196
+ bug_tracker_uri: https://github.com/ManageIQ/manageiq-postgres_ha_admin/issues
208
197
  post_install_message:
209
198
  rdoc_options: []
210
199
  require_paths:
@@ -220,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
209
  - !ruby/object:Gem::Version
221
210
  version: '0'
222
211
  requirements: []
223
- rubygems_version: 3.2.22
212
+ rubygems_version: 3.3.18
224
213
  signing_key:
225
214
  specification_version: 4
226
215
  summary: ManageIQ Postgres H.A. Admin
data/.travis.yml DELETED
@@ -1,15 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.5.8
4
- - 2.6.6
5
- - 2.7.2
6
- - 3.0.0
7
- cache: bundler
8
- env:
9
- global:
10
- - RUBY_GC_HEAP_GROWTH_MAX_SLOTS=300000
11
- - RUBY_GC_HEAP_INIT_SLOTS=600000
12
- - RUBY_GC_HEAP_GROWTH_FACTOR=1.25
13
- addons:
14
- postgresql: '10'
15
- after_script: bundle exec codeclimate-test-reporter
@@ -1,36 +0,0 @@
1
- require 'pg'
2
- require 'pg/dsn_parser'
3
-
4
- module ManageIQ
5
- module PostgresHaAdmin
6
- class PglogicalConfigHandler < ConfigHandler
7
- attr_reader :subscription, :conn_info
8
-
9
- def initialize(options = {})
10
- @subscription = options[:subscription]
11
- @conn_info = options[:conn_info]
12
- end
13
-
14
- def name
15
- "pglogical subscription #{subscription} Config Handler"
16
- end
17
-
18
- def read
19
- conn = PG::Connection.open(@conn_info)
20
- dsn = conn.exec_params(<<~SQL, [@subscription]).first["if_dsn"]
21
- SELECT if_dsn
22
- FROM pglogical.subscription s
23
- JOIN pglogical.node_interface i
24
- ON s.sub_origin_if = i.if_id
25
- WHERE s.sub_name = $1
26
- SQL
27
- PG::DSNParser.new.parse(dsn)
28
- end
29
-
30
- def write(_params)
31
- # Nothing to do here as the expectation is that the user will
32
- # remove and re-add the subscription in the after failover callback
33
- end
34
- end
35
- end
36
- end