Sha256: a3b54253f02a0902f5a33f49651d2e74d47a50792e54ecd4c79efa51db029fde

Contents?: true

Size: 857 Bytes

Versions: 8

Compression:

Stored size: 857 Bytes

Contents

require 'pg'
require 'pg/dsn_parser'

module ManageIQ
module PostgresHaAdmin
  class LogicalReplicationConfigHandler < ConfigHandler
    attr_reader :subscription, :conn_info

    def initialize(options = {})
      @subscription = options[:subscription]
      @conn_info    = options[:conn_info]
    end

    def name
      "Logical Replication subscription #{subscription} Config Handler"
    end

    def read
      conn = PG::Connection.open(@conn_info)
      dsn = conn.exec_params(<<~SQL, [@subscription]).first["subconninfo"]
        SELECT subconninfo
        FROM pg_subscription
        WHERE subname = $1
      SQL
      PG::DSNParser.new.parse(dsn)
    end

    def write(_params)
      # Nothing to do here as the expectation is that the user will 
      # remove and re-add the subscription in the after failover callback
    end
  end
end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
manageiq-postgres_ha_admin-3.4.0 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
manageiq-postgres_ha_admin-3.2.1 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
manageiq-postgres_ha_admin-3.2.0 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
manageiq-postgres_ha_admin-3.1.4 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
manageiq-postgres_ha_admin-3.1.3 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
manageiq-postgres_ha_admin-3.1.2 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
manageiq-postgres_ha_admin-3.1.1 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb
manageiq-postgres_ha_admin-3.1.0 lib/manageiq/postgres_ha_admin/config_handler/logical_replication_config_handler.rb