diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /qa/qa/runtime | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) | |
download | gitlab-ce-8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781.tar.gz |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'qa/qa/runtime')
-rw-r--r-- | qa/qa/runtime/api/repository_storage_moves.rb | 33 | ||||
-rw-r--r-- | qa/qa/runtime/env.rb | 12 | ||||
-rw-r--r-- | qa/qa/runtime/feature.rb | 37 |
3 files changed, 70 insertions, 12 deletions
diff --git a/qa/qa/runtime/api/repository_storage_moves.rb b/qa/qa/runtime/api/repository_storage_moves.rb new file mode 100644 index 00000000000..c94a693289f --- /dev/null +++ b/qa/qa/runtime/api/repository_storage_moves.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module QA + module Runtime + module API + module RepositoryStorageMoves + extend self + extend Support::Api + + RepositoryStorageMovesError = Class.new(RuntimeError) + + def has_status?(project, status, destination_storage = Env.additional_repository_storage) + all.any? do |move| + move[:project][:path_with_namespace] == project.path_with_namespace && + move[:state] == status && + move[:destination_storage_name] == destination_storage + end + end + + def all + Logger.debug('Getting repository storage moves') + parse_body(get(Request.new(api_client, '/project_repository_storage_moves').url)) + end + + private + + def api_client + @api_client ||= Client.as_admin + end + end + end + end +end diff --git a/qa/qa/runtime/env.rb b/qa/qa/runtime/env.rb index 5c23586fb3e..677fba7ced7 100644 --- a/qa/qa/runtime/env.rb +++ b/qa/qa/runtime/env.rb @@ -210,6 +210,18 @@ module QA ENV['GITLAB_QA_1P_GITHUB_UUID'] end + def jira_admin_username + ENV['JIRA_ADMIN_USERNAME'] + end + + def jira_admin_password + ENV['JIRA_ADMIN_PASSWORD'] + end + + def jira_hostname + ENV['JIRA_HOSTNAME'] + end + def knapsack? !!(ENV['KNAPSACK_GENERATE_REPORT'] || ENV['KNAPSACK_REPORT_PATH'] || ENV['KNAPSACK_TEST_FILE_PATTERN']) end diff --git a/qa/qa/runtime/feature.rb b/qa/qa/runtime/feature.rb index 5e948b5b850..579c2293c51 100644 --- a/qa/qa/runtime/feature.rb +++ b/qa/qa/runtime/feature.rb @@ -28,19 +28,11 @@ module QA end def enable_and_verify(key) - Support::Retrier.retry_on_exception(sleep_interval: 2) do - enable(key) - - is_enabled = false - - QA::Support::Waiter.wait_until(sleep_interval: 1) do - is_enabled = enabled?(key) - end - - raise SetFeatureError, "#{key} was not enabled!" unless is_enabled + set_and_verify(key, enable: true) + end - QA::Runtime::Logger.info("Successfully enabled and verified feature flag: #{key}") - end + def disable_and_verify(key) + set_and_verify(key, enable: false) end def enabled?(key) @@ -75,6 +67,27 @@ module QA end end + # Change a feature flag and verify that the change was successful + # Arguments: + # key: The feature flag to set (as a string) + # enable: `true` to enable the flag, `false` to disable it + def set_and_verify(key, enable:) + Support::Retrier.retry_on_exception(sleep_interval: 2) do + enable ? enable(key) : disable(key) + + is_enabled = nil + + QA::Support::Waiter.wait_until(sleep_interval: 1) do + is_enabled = enabled?(key) + is_enabled == enable + end + + raise SetFeatureError, "#{key} was not #{enable ? 'enabled' : 'disabled'}!" unless is_enabled == enable + + QA::Runtime::Logger.info("Successfully #{enable ? 'enabled' : 'disabled'} and verified feature flag: #{key}") + end + end + def set_feature(key, value) request = Runtime::API::Request.new(api_client, "/features/#{key}") response = post(request.url, { value: value }) |