Commit 5e70f77b authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab-ce master

parents bc1ae3d0 f469bb8e
...@@ -151,7 +151,7 @@ class Milestone < ActiveRecord::Base ...@@ -151,7 +151,7 @@ class Milestone < ActiveRecord::Base
def self.upcoming_ids(projects, groups) def self.upcoming_ids(projects, groups)
rel = unscoped rel = unscoped
.for_projects_and_groups(projects, groups) .for_projects_and_groups(projects, groups)
.active.where('milestones.due_date > NOW()') .active.where('milestones.due_date > CURRENT_DATE')
if Gitlab::Database.postgresql? if Gitlab::Database.postgresql?
rel.order(:project_id, :group_id, :due_date).select('DISTINCT ON (project_id, group_id) id') rel.order(:project_id, :group_id, :due_date).select('DISTINCT ON (project_id, group_id) id')
...@@ -163,7 +163,7 @@ class Milestone < ActiveRecord::Base ...@@ -163,7 +163,7 @@ class Milestone < ActiveRecord::Base
ON milestones.project_id <=> earlier_milestones.project_id ON milestones.project_id <=> earlier_milestones.project_id
AND milestones.group_id <=> earlier_milestones.group_id AND milestones.group_id <=> earlier_milestones.group_id
AND milestones.due_date > earlier_milestones.due_date AND milestones.due_date > earlier_milestones.due_date
AND earlier_milestones.due_date > NOW() AND earlier_milestones.due_date > CURRENT_DATE
AND earlier_milestones.state = 'active' AND earlier_milestones.state = 'active'
HEREDOC HEREDOC
......
...@@ -24,7 +24,7 @@ module Projects ...@@ -24,7 +24,7 @@ module Projects
result = move_folder!(origin, target) result = move_folder!(origin, target)
if result if result
project.save! project.save!(validate: false)
yield if block_given? yield if block_given?
else else
......
...@@ -27,7 +27,7 @@ module Projects ...@@ -27,7 +27,7 @@ module Projects
end end
project.repository_read_only = false project.repository_read_only = false
project.save! project.save!(validate: false)
if result && block_given? if result && block_given?
yield yield
......
...@@ -19,7 +19,7 @@ module Projects ...@@ -19,7 +19,7 @@ module Projects
result = move_folder!(origin, target) result = move_folder!(origin, target)
if result if result
project.save! project.save!(validate: false)
yield if block_given? yield if block_given?
else else
......
...@@ -27,7 +27,7 @@ module Projects ...@@ -27,7 +27,7 @@ module Projects
end end
project.repository_read_only = false project.repository_read_only = false
project.save! project.save!(validate: false)
if result && block_given? if result && block_given?
yield yield
......
---
title: Skip Project validation during Hashed Storage migration or rollback
merge_request: 25753
author:
type: fixed
---
title: Fix upcoming milestone when there are milestones with far-future due dates
merge_request:
author:
type: fixed
...@@ -381,6 +381,21 @@ describe Milestone do ...@@ -381,6 +381,21 @@ describe Milestone do
expect(milestone_ids).to be_empty expect(milestone_ids).to be_empty
end end
end end
context 'when there is a milestone with a date after 294276 AD', :postgresql do
before do
past_milestone_project_1.update!(due_date: Date.new(294277, 1, 1))
end
it 'returns the next upcoming open milestone ID for each project and group' do
expect(milestone_ids).to contain_exactly(
current_milestone_project_1.id,
current_milestone_project_2.id,
current_milestone_group_1.id,
current_milestone_group_2.id
)
end
end
end end
describe '#to_reference' do describe '#to_reference' do
......
...@@ -76,6 +76,12 @@ describe Projects::HashedStorage::MigrateAttachmentsService do ...@@ -76,6 +76,12 @@ describe Projects::HashedStorage::MigrateAttachmentsService do
expect { service.execute }.to raise_error(Projects::HashedStorage::AttachmentCannotMoveError) expect { service.execute }.to raise_error(Projects::HashedStorage::AttachmentCannotMoveError)
end end
end end
it 'works even when project validation fails' do
allow(project).to receive(:valid?) { false }
expect { service.execute }.to change { project.hashed_storage?(:attachments) }.to(true)
end
end end
context '#old_disk_path' do context '#old_disk_path' do
......
...@@ -102,6 +102,12 @@ describe Projects::HashedStorage::MigrateRepositoryService do ...@@ -102,6 +102,12 @@ describe Projects::HashedStorage::MigrateRepositoryService do
end end
end end
it 'works even when project validation fails' do
allow(project).to receive(:valid?) { false }
expect { service.execute }.to change { project.hashed_storage?(:repository) }.to(true)
end
def expect_move_repository(from_name, to_name) def expect_move_repository(from_name, to_name)
expect(gitlab_shell).to receive(:mv_repository).with(project.repository_storage, from_name, to_name).and_call_original expect(gitlab_shell).to receive(:mv_repository).with(project.repository_storage, from_name, to_name).and_call_original
end end
......
...@@ -78,6 +78,12 @@ describe Projects::HashedStorage::RollbackAttachmentsService do ...@@ -78,6 +78,12 @@ describe Projects::HashedStorage::RollbackAttachmentsService do
expect { service.execute }.to raise_error(Projects::HashedStorage::AttachmentCannotMoveError) expect { service.execute }.to raise_error(Projects::HashedStorage::AttachmentCannotMoveError)
end end
end end
it 'works even when project validation fails' do
allow(project).to receive(:valid?) { false }
expect { service.execute }.to change { project.hashed_storage?(:attachments) }.to(false)
end
end end
context '#old_disk_path' do context '#old_disk_path' do
......
...@@ -104,6 +104,12 @@ describe Projects::HashedStorage::RollbackRepositoryService, :clean_gitlab_redis ...@@ -104,6 +104,12 @@ describe Projects::HashedStorage::RollbackRepositoryService, :clean_gitlab_redis
end end
end end
it 'works even when project validation fails' do
allow(project).to receive(:valid?) { false }
expect { service.execute }.to change { project.legacy_storage? }.to(true)
end
def expect_move_repository(from_name, to_name) def expect_move_repository(from_name, to_name)
expect(gitlab_shell).to receive(:mv_repository).with(project.repository_storage, from_name, to_name).and_call_original expect(gitlab_shell).to receive(:mv_repository).with(project.repository_storage, from_name, to_name).and_call_original
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment