From a0d3c0d2aaaef187dba11faa29cabb812648c523 Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre Date: Fri, 15 Mar 2019 15:14:14 -0300 Subject: [PATCH 1/2] Reset the verification checksum after deployment refs are created --- app/services/update_deployment_service.rb | 2 ++ .../services/ee/update_deployment_service.rb | 14 ++++++++ .../ee/update_deployment_service_spec.rb | 36 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 ee/app/services/ee/update_deployment_service.rb create mode 100644 ee/spec/services/ee/update_deployment_service_spec.rb diff --git a/app/services/update_deployment_service.rb b/app/services/update_deployment_service.rb index aa7fcca1e2ab8a..78ff5f8654f698 100644 --- a/app/services/update_deployment_service.rb +++ b/app/services/update_deployment_service.rb @@ -51,3 +51,5 @@ def action environment_options[:action] || 'start' end end + +UpdateDeploymentService.prepend(EE::UpdateDeploymentService) diff --git a/ee/app/services/ee/update_deployment_service.rb b/ee/app/services/ee/update_deployment_service.rb new file mode 100644 index 00000000000000..562e4ada2e8b78 --- /dev/null +++ b/ee/app/services/ee/update_deployment_service.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module EE + module UpdateDeploymentService + extend ::Gitlab::Utils::Override + + override :execute + def execute + super.tap do |deployment| + deployment.project.repository.log_geo_updated_event + end + end + end +end diff --git a/ee/spec/services/ee/update_deployment_service_spec.rb b/ee/spec/services/ee/update_deployment_service_spec.rb new file mode 100644 index 00000000000000..6a9c9977cd6adf --- /dev/null +++ b/ee/spec/services/ee/update_deployment_service_spec.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe UpdateDeploymentService do + include ::EE::GeoHelpers + + let(:primary) { create(:geo_node, :primary) } + let(:project) { create(:project, :repository) } + let(:repository_state) { create(:repository_state, :repository_verified, project: project) } + let!(:deployment) { create(:deployment, :success, project: project) } + + before do + stub_current_geo_node(primary) + end + + subject { described_class.new(deployment) } + + describe '#execute' do + it 'triggers a Geo event about the new deployment ref' do + expect_next_instance_of(Geo::RepositoryUpdatedService) do |service| + expect(service).to receive(:execute) + end + + subject.execute + end + + it 'resets the repository verification checksum' do + expect { subject.execute }.to change { repository_state.reload.repository_verification_checksum }.to(nil) + end + + it 'returns the deployment' do + expect(subject.execute).to eq(deployment) + end + end +end -- GitLab From 818f049121291d89ec6886d7754ee8a240950dd7 Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre Date: Fri, 15 Mar 2019 15:19:03 -0300 Subject: [PATCH 2/2] Add CHANGELOG entry --- ...re-not-recalculated-after-deployment-refs-are-created.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ee/changelogs/unreleased/9227-geo-primary-checksums-are-not-recalculated-after-deployment-refs-are-created.yml diff --git a/ee/changelogs/unreleased/9227-geo-primary-checksums-are-not-recalculated-after-deployment-refs-are-created.yml b/ee/changelogs/unreleased/9227-geo-primary-checksums-are-not-recalculated-after-deployment-refs-are-created.yml new file mode 100644 index 00000000000000..bff9029829c863 --- /dev/null +++ b/ee/changelogs/unreleased/9227-geo-primary-checksums-are-not-recalculated-after-deployment-refs-are-created.yml @@ -0,0 +1,5 @@ +--- +title: Geo - Reset the verification checksum after deployment refs are created +merge_request: 10160 +author: +type: fixed -- GitLab