summaryrefslogtreecommitdiff
path: root/qa/qa/runtime
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-06-18 11:18:50 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-06-18 11:18:50 +0000
commit8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch)
treea77e7fe7a93de11213032ed4ab1f33a3db51b738 /qa/qa/runtime
parent00b35af3db1abfe813a778f643dad221aad51fca (diff)
downloadgitlab-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.rb33
-rw-r--r--qa/qa/runtime/env.rb12
-rw-r--r--qa/qa/runtime/feature.rb37
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 })