summaryrefslogtreecommitdiff
path: root/qa/qa/service
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/service')
-rw-r--r--qa/qa/service/docker_run/base.rb6
-rw-r--r--qa/qa/service/docker_run/gitlab_runner.rb6
-rw-r--r--qa/qa/service/praefect_manager.rb8
3 files changed, 20 insertions, 0 deletions
diff --git a/qa/qa/service/docker_run/base.rb b/qa/qa/service/docker_run/base.rb
index 512960e8232..85c06e6c307 100644
--- a/qa/qa/service/docker_run/base.rb
+++ b/qa/qa/service/docker_run/base.rb
@@ -11,6 +11,12 @@ module QA
@runner_network = Runtime::Scenario.attributes[:runner_network] || @network
end
+ def logs
+ shell "docker logs #{@name}" do |line|
+ yield " #{line.chomp}"
+ end
+ end
+
def network
shell "docker network inspect #{@network}"
rescue CommandError
diff --git a/qa/qa/service/docker_run/gitlab_runner.rb b/qa/qa/service/docker_run/gitlab_runner.rb
index 595d47bf162..0a8ac39dabd 100644
--- a/qa/qa/service/docker_run/gitlab_runner.rb
+++ b/qa/qa/service/docker_run/gitlab_runner.rb
@@ -43,6 +43,8 @@ module QA
#{@image} #{add_gitlab_tls_cert if @address.include? "https"} && docker exec --detach #{@name} sh -c "#{register_command}"
CMD
+ wait_until_running_and_configured
+
# Prove airgappedness
if runner_network == 'airgapped'
shell("docker exec #{@name} sh -c '#{prove_airgap}'")
@@ -111,6 +113,10 @@ module QA
&& docker cp #{gitlab_tls_certificate.path} #{@name}:/etc/gitlab-runner/certs/gitlab.test.crt
CMD
end
+
+ def wait_until_running_and_configured
+ wait_until_shell_command_matches("docker logs #{@name}", /Configuration loaded/)
+ end
end
end
end
diff --git a/qa/qa/service/praefect_manager.rb b/qa/qa/service/praefect_manager.rb
index c364b00629c..1215268919c 100644
--- a/qa/qa/service/praefect_manager.rb
+++ b/qa/qa/service/praefect_manager.rb
@@ -530,9 +530,17 @@ module QA
storage_repositories[2..-3]
end
+ def modify_repo_access_time(node, repo_path, update_time)
+ repo = "/var/opt/gitlab/git-data/repositories/#{repo_path}"
+ shell(%{
+ docker exec --user git #{node} bash -c 'find #{repo} -exec touch -d "#{update_time}" {} \\;'
+ })
+ end
+
def add_repo_to_disk(node, repo_path)
cmd = "GIT_DIR=. git init --initial-branch=main /var/opt/gitlab/git-data/repositories/#{repo_path}"
shell "docker exec --user git #{node} bash -c '#{cmd}'"
+ modify_repo_access_time(node, repo_path, "24 hours ago")
end
def remove_repo_from_disk(repo_path)