Class: ManageIQ::ApplianceConsole::InternalDatabaseConfiguration
Constant Summary
collapse
- DEDICATED_DB_SHARED_BUFFERS =
"'1GB'".freeze
- SHARED_DB_SHARED_BUFFERS =
"'128MB'".freeze
DatabaseConfiguration::CREATE_REGION_AGREE, DatabaseConfiguration::DB_YML, DatabaseConfiguration::DB_YML_TMPL, DatabaseConfiguration::DEFAULT_PORT, DatabaseConfiguration::FAILED_WITH_ERROR_HYPHEN, DatabaseConfiguration::REGION_RANGE
Instance Attribute Summary collapse
#adapter, #database, #host, #password, #port, #region, #username
Class Method Summary
collapse
Instance Method Summary
collapse
#ask_for_database_credentials, #create_new_region_questions, #create_or_join_region, #create_region, current, database_host, database_name, database_yml_configured?, decrypt_password, encrypt_password, #friendly_inspect, #join_region, #local?, #merged_settings, region, #reset_region, #run_interactive, #save, #settings_hash, #start_evm, #validate!, #validated
Methods included from Logging
#error_and_logging_from_command_result_error, #error_and_logging_from_standard_error, #interactive, #interactive=, interactive?, #interactive?, #log_and_feedback, #log_and_feedback_exception, #log_and_feedback_info, #log_error, #log_prefix, #logger, #logger=, #say_error, #say_info
Constructor Details
Returns a new instance of InternalDatabaseConfiguration.
22
23
24
25
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 22
def initialize(hash = {})
set_defaults
super
end
|
Instance Attribute Details
#disk ⇒ Object
Returns the value of attribute disk.
9
10
11
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 9
def disk
@disk
end
|
#run_as_evm_server ⇒ Object
Returns the value of attribute run_as_evm_server.
9
10
11
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 9
def run_as_evm_server
@run_as_evm_server
end
|
Class Method Details
.postgres_dir ⇒ Object
14
15
16
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 14
def self.postgres_dir
PostgresAdmin.data_directory.relative_path_from(Pathname.new("/"))
end
|
.postgresql_template ⇒ Object
18
19
20
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 18
def self.postgresql_template
PostgresAdmin.template_directory.join(postgres_dir)
end
|
Instance Method Details
#activate ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 34
def activate
if PostgresAdmin.initialized?
say(<<-EOF.gsub!(/^\s+/, ""))
An internal database already exists.
Choose "Reset Configured Database" to reset the existing installation
EOF
return false
end
initialize_postgresql_disk if disk
initialize_postgresql
run_as_evm_server ? (return super) : save
true
end
|
#ask_questions ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 48
def ask_questions
choose_disk
check_disk_is_mount_point
self.run_as_evm_server = !ask_yn?(<<-EOS.gsub!(/^ +/m, ""), "N")
Should this appliance run as a standalone database server?
NOTE:
* The #{I18n.t("product.name")} application will not be running.
* This is required when using highly available database deployments.
* CAUTION: This is not reversible.
EOS
create_new_region_questions(false) if run_as_evm_server
ask_for_database_credentials
end
|
#check_disk_is_mount_point ⇒ Object
71
72
73
74
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 71
def check_disk_is_mount_point
error_message = "Internal databases require a volume mounted at #{mount_point}. Please add an unpartitioned disk and try again."
raise error_message unless disk || pg_mount_point?
end
|
#choose_disk ⇒ Object
67
68
69
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 67
def choose_disk
@disk = ask_for_disk("database disk", false, true)
end
|
#configure_postgres ⇒ Object
107
108
109
110
111
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 107
def configure_postgres
copy_template "postgresql.conf"
copy_template "pg_hba.conf"
copy_template "pg_ident.conf"
end
|
#initialize_postgresql ⇒ Object
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 93
def initialize_postgresql
log_and_feedback(__method__) do
PostgresAdmin.prep_data_directory
run_initdb
configure_ssl
relabel_postgresql_dir
configure_postgres
start_postgres
create_postgres_root_user
create_postgres_database
apply_initial_configuration
end
end
|
#initialize_postgresql_disk ⇒ Object
#post_activation ⇒ Object
113
114
115
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 113
def post_activation
start_evm if run_as_evm_server
end
|
#set_defaults ⇒ Object
27
28
29
30
31
32
|
# File 'lib/manageiq/appliance_console/internal_database_configuration.rb', line 27
def set_defaults
self.host = 'localhost'
self.username = "root"
self.database = "vmdb_production"
self.run_as_evm_server = true
end
|