ManageIQ/manageiq-appliance_console

View on GitHub
lib/manageiq/appliance_console/database_replication_primary.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
91%
module ManageIQ
module ApplianceConsole
  class DatabaseReplicationPrimary < DatabaseReplication
    include ManageIQ::ApplianceConsole::Logging

    REGISTER_CMD = 'repmgr primary register'.freeze

    def initialize
      self.node_number       = nil
      self.database_name     = "vmdb_production"
      self.database_user     = "root"
      self.database_password = nil
      self.primary_host      = LinuxAdmin::NetworkInterface.new(NETWORK_INTERFACE).address
    end

    def ask_questions
      clear_screen
      say("Establish Primary Replication Server\n")
      ask_for_unique_cluster_node_number
      ask_for_database_credentials
      return false if repmgr_configured? && !confirm_reconfiguration
      confirm
    end

    def confirm
      super
      agree("Apply this Replication Server Configuration? (Y/N): ")
    end

    def activate
      say("Configuring Primary Replication Server...")
      create_config_file(primary_host) &&
        run_repmgr_command(REGISTER_CMD) &&
        write_pgpass_file
    end
  end # class DatabaseReplicationPrimary < DatabaseReplication
end # module ApplianceConsole
end