Skip to content
Snippets Groups Projects
Commit 6a383ab7 authored by Robert Marshall's avatar Robert Marshall
Browse files

Proof of Concept


- proof of concept to show the working theory before doing clean up and
  refactoring

Signed-off-by: default avatarRobert Marshall <rmarshall@gitlab.com>
parent ad724066
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -30,6 +30,23 @@ class BasePgHelper < BaseHelper
end
end
 
def maximum_service_checks
# temporary hard code for proof of concept
20
end
def service_check_interval
5
end
def remaining_service_checks
maximum_service_checks - @total_service_checks
end
def service_checks_exhausted?
remaining_service_checks <= 0
end
def get_service_state
bin = "#{node['package']['install-dir']}/embedded/bin/pg_isready"
dbname = node['gitlab']['gitlab-rails']['db_database']
Loading
Loading
@@ -39,7 +56,22 @@ class BasePgHelper < BaseHelper
 
cmd = %W(#{bin} -d #{dbname} -h #{dbhost} -p #{port} -U #{pguser})
 
@service_state = do_shell_out(cmd).exitstatus
current_check_time = Time.now.to_i
should_check = if @previous_check_time.nil?
true
else
current_check_time - @previous_check_time > service_check_interval
end
@previous_check_time = current_check_time
@service_state = if should_check
@total_service_checks ||= 0
@total_service_checks += 1
do_shell_out(cmd).exitstatus
else
@service_state
end
end
 
def is_managed_and_offline?
Loading
Loading
Loading
Loading
@@ -5,6 +5,16 @@ property :helper, default: PgHelper.new(node)
 
action :create do
account_helper = AccountHelper.new(node)
pg_helper = PgHelper.new(node)
until pg_helper.accepting_connections? || pg_helper.service_checks_exhausted?
warning = if pg_helper.not_responding?
"PostgreSQL is not responding"
elsif pg_helper.invalid_connection_parameters?
"PostgreSQL is not receiving the correct connection parameters"
end
raise unless warning.nil?
end
 
query = %(CREATE USER \\"#{new_resource.username}\\")
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment