diff options
Diffstat (limited to 'qa/qa/service')
-rw-r--r-- | qa/qa/service/docker_run/base.rb | 6 | ||||
-rw-r--r-- | qa/qa/service/docker_run/gitlab_runner.rb | 6 | ||||
-rw-r--r-- | qa/qa/service/praefect_manager.rb | 8 |
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) |