You need to sign in or sign up before continuing.
Please include cross links to any resources that are relevant to this MR. This will give reviewers and future readers helpful context to give an efficient review of the changes introduced.
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Numbered steps to set up and validate the change are strongly suggested.
cr = ComplianceManagement::ComplianceFramework::ComplianceRequirement.last
cr.compliance_requirements_controls.create!(control_type: 'external', name: "external_control", namespace_id: cr.namespace_id, external_url: "https://huzaifaiftikhar.requestcatcher.com", secret_token: "SECRET")
project = Project.find(20) # or any other existing project ID
framework = ComplianceManagement::Framework.last
cr = framework.compliance_requirements.last
control = cr.compliance_requirements_controls.last
ComplianceManagement::ComplianceFramework::ComplianceRequirements::TriggerExternalControlService.new(project, control).execute
ProjectControlComplianceStatus
is marked as pending
.ComplianceManagement::ComplianceFramework::ProjectControlComplianceStatus.for_project_and_control(project.id, control.id)
fail
.diff --git a/ee/app/services/compliance_management/compliance_framework/compliance_requirements/trigger_external_control_service.rb b/ee/app/services/compliance_management/compliance_framework/compliance_requirements/trigger_external_control_service.rb
index 23cbca83fdd9..b2910e334066 100644
--- a/ee/app/services/compliance_management/compliance_framework/compliance_requirements/trigger_external_control_service.rb
+++ b/ee/app/services/compliance_management/compliance_framework/compliance_requirements/trigger_external_control_service.rb
@@ -69,7 +69,7 @@ def handle_response(response)
if response.success?
audit_success(response.code)
- ComplianceManagement::TimeoutPendingExternalControlsWorker.perform_in(31.minutes,
+ ComplianceManagement::TimeoutPendingExternalControlsWorker.perform_in(1.minute,
{ 'control_id' => control.id, 'project_id' => project.id })
ServiceResponse.success(payload: { control: control })
diff --git a/ee/app/workers/compliance_management/timeout_pending_external_controls_worker.rb b/ee/app/workers/compliance_management/timeout_pending_external_controls_worker.rb
index 97e06dbdb574..8d0d6844b9b6 100644
--- a/ee/app/workers/compliance_management/timeout_pending_external_controls_worker.rb
+++ b/ee/app/workers/compliance_management/timeout_pending_external_controls_worker.rb
@@ -21,7 +21,7 @@ def perform(args = {})
.for_project_and_control(project_id, control_id).last
unless project_control_compliance_status&.pending? &&
- project_control_compliance_status.updated_at < 30.minutes.ago
+ project_control_compliance_status.updated_at < 50.seconds.ago
return
end
Closes #513423 (closed)