Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-08-19 12:08:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-08-19 12:08:42 +0300
commitb76ae638462ab0f673e5915986070518dd3f9ad3 (patch)
treebdab0533383b52873be0ec0eb4d3c66598ff8b91 /app/workers/jira_connect
parent434373eabe7b4be9593d18a585fb763f1e5f1a6f (diff)
Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42
Diffstat (limited to 'app/workers/jira_connect')
-rw-r--r--app/workers/jira_connect/forward_event_worker.rb16
-rw-r--r--app/workers/jira_connect/retry_request_worker.rb22
-rw-r--r--app/workers/jira_connect/sync_branch_worker.rb2
-rw-r--r--app/workers/jira_connect/sync_builds_worker.rb2
-rw-r--r--app/workers/jira_connect/sync_deployments_worker.rb2
-rw-r--r--app/workers/jira_connect/sync_feature_flags_worker.rb2
-rw-r--r--app/workers/jira_connect/sync_merge_request_worker.rb2
-rw-r--r--app/workers/jira_connect/sync_project_worker.rb2
8 files changed, 38 insertions, 12 deletions
diff --git a/app/workers/jira_connect/forward_event_worker.rb b/app/workers/jira_connect/forward_event_worker.rb
index 877ab46cfe5..14922db5420 100644
--- a/app/workers/jira_connect/forward_event_worker.rb
+++ b/app/workers/jira_connect/forward_event_worker.rb
@@ -4,22 +4,26 @@ module JiraConnect
class ForwardEventWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
+ data_consistency :always
queue_namespace :jira_connect
feature_category :integrations
+ urgency :low
+
worker_has_external_dependencies!
def perform(installation_id, base_path, event_path)
installation = JiraConnectInstallation.find_by_id(installation_id)
+ instance_url = installation&.instance_url
+
+ installation.destroy if installation
- return if installation&.instance_url.nil?
+ return if instance_url.nil?
- proxy_url = installation.instance_url + event_path
- qsh = Atlassian::Jwt.create_query_string_hash(proxy_url, 'POST', installation.instance_url + base_path)
+ proxy_url = instance_url + event_path
+ qsh = Atlassian::Jwt.create_query_string_hash(proxy_url, 'POST', instance_url + base_path)
jwt = Atlassian::Jwt.encode({ iss: installation.client_key, qsh: qsh }, installation.shared_secret)
- Gitlab::HTTP.post(proxy_url, headers: { 'Authorization' => "JWT #{jwt}" })
- ensure
- installation.destroy if installation
+ JiraConnect::RetryRequestWorker.perform_async(proxy_url, jwt)
end
end
end
diff --git a/app/workers/jira_connect/retry_request_worker.rb b/app/workers/jira_connect/retry_request_worker.rb
new file mode 100644
index 00000000000..b0f6dada639
--- /dev/null
+++ b/app/workers/jira_connect/retry_request_worker.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+module JiraConnect
+ class RetryRequestWorker # rubocop:disable Scalability/IdempotentWorker
+ include ApplicationWorker
+
+ data_consistency :always
+ queue_namespace :jira_connect
+ feature_category :integrations
+ urgency :low
+
+ worker_has_external_dependencies!
+
+ def perform(proxy_url, jwt, attempts = 3)
+ r = Gitlab::HTTP.post(proxy_url, headers: { 'Authorization' => "JWT #{jwt}" })
+
+ self.class.perform_in(1.hour, proxy_url, jwt, attempts - 1) if r.code >= 400 && attempts > 0
+ rescue *Gitlab::HTTP::HTTP_ERRORS
+ self.class.perform_in(1.hour, proxy_url, jwt, attempts - 1) if attempts > 0
+ end
+ end
+end
diff --git a/app/workers/jira_connect/sync_branch_worker.rb b/app/workers/jira_connect/sync_branch_worker.rb
index 2723287b77b..1b0655e4510 100644
--- a/app/workers/jira_connect/sync_branch_worker.rb
+++ b/app/workers/jira_connect/sync_branch_worker.rb
@@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker
sidekiq_options retry: 3
-
queue_namespace :jira_connect
feature_category :integrations
data_consistency :delayed
loggable_arguments 1, 2
+ urgency :low
worker_has_external_dependencies!
diff --git a/app/workers/jira_connect/sync_builds_worker.rb b/app/workers/jira_connect/sync_builds_worker.rb
index 4c4daba3314..379f087bc1b 100644
--- a/app/workers/jira_connect/sync_builds_worker.rb
+++ b/app/workers/jira_connect/sync_builds_worker.rb
@@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker
sidekiq_options retry: 3
-
queue_namespace :jira_connect
feature_category :integrations
data_consistency :delayed
tags :exclude_from_kubernetes
+ urgency :low
worker_has_external_dependencies!
diff --git a/app/workers/jira_connect/sync_deployments_worker.rb b/app/workers/jira_connect/sync_deployments_worker.rb
index 0dc34b5999f..3138230ced5 100644
--- a/app/workers/jira_connect/sync_deployments_worker.rb
+++ b/app/workers/jira_connect/sync_deployments_worker.rb
@@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker
sidekiq_options retry: 3
-
queue_namespace :jira_connect
feature_category :integrations
data_consistency :delayed
tags :exclude_from_kubernetes
+ urgency :low
worker_has_external_dependencies!
diff --git a/app/workers/jira_connect/sync_feature_flags_worker.rb b/app/workers/jira_connect/sync_feature_flags_worker.rb
index c484cabbe6b..4de27c1b551 100644
--- a/app/workers/jira_connect/sync_feature_flags_worker.rb
+++ b/app/workers/jira_connect/sync_feature_flags_worker.rb
@@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker
sidekiq_options retry: 3
-
queue_namespace :jira_connect
feature_category :integrations
data_consistency :delayed
tags :exclude_from_kubernetes
+ urgency :low
worker_has_external_dependencies!
diff --git a/app/workers/jira_connect/sync_merge_request_worker.rb b/app/workers/jira_connect/sync_merge_request_worker.rb
index bb0d24667e9..6576aa9fdf4 100644
--- a/app/workers/jira_connect/sync_merge_request_worker.rb
+++ b/app/workers/jira_connect/sync_merge_request_worker.rb
@@ -5,10 +5,10 @@ module JiraConnect
include ApplicationWorker
sidekiq_options retry: 3
-
queue_namespace :jira_connect
feature_category :integrations
data_consistency :delayed
+ urgency :low
worker_has_external_dependencies!
diff --git a/app/workers/jira_connect/sync_project_worker.rb b/app/workers/jira_connect/sync_project_worker.rb
index 317bace89b4..a83444e58e7 100644
--- a/app/workers/jira_connect/sync_project_worker.rb
+++ b/app/workers/jira_connect/sync_project_worker.rb
@@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker
sidekiq_options retry: 3
-
queue_namespace :jira_connect
feature_category :integrations
data_consistency :delayed
tags :exclude_from_kubernetes
+ urgency :low
worker_has_external_dependencies!