diff --git a/app/models/container_repository.rb b/app/models/container_repository.rb index ff10583239189b79c5193109682261dfc4105254..6330e46eb44870a88bb8f517f5dda630a0665c90 100644 --- a/app/models/container_repository.rb +++ b/app/models/container_repository.rb @@ -17,7 +17,6 @@ class ContainerRepository < ApplicationRecord ABORTABLE_MIGRATION_STATES = (ACTIVE_MIGRATION_STATES + %w[pre_import_done default]).freeze SKIPPABLE_MIGRATION_STATES = (ABORTABLE_MIGRATION_STATES + %w[import_aborted]).freeze - MIGRATION_PHASE_1_STARTED_AT = Date.new(2021, 11, 4).freeze MIGRATION_PHASE_1_ENDED_AT = Date.new(2022, 01, 23).freeze MAX_TAGS_PAGES = 2000 @@ -547,8 +546,6 @@ def start_expiration_policy! def size strong_memoize(:size) do - next unless Gitlab.com_except_jh? - next if self.created_at.before?(MIGRATION_PHASE_1_STARTED_AT) && self.migration_state != 'import_done' next unless gitlab_api_client.supports_gitlab_api? gitlab_api_client.repository_details(self.path, sizing: :self)['size_bytes'] diff --git a/lib/container_registry/gitlab_api_client.rb b/lib/container_registry/gitlab_api_client.rb index 276f9b492cb001740d6e5d314fc78b55ac416b8d..2c2878e542804c7c54fed6d7e27e2c1c32045ee7 100644 --- a/lib/container_registry/gitlab_api_client.rb +++ b/lib/container_registry/gitlab_api_client.rb @@ -114,6 +114,8 @@ def supports_gitlab_api? response.success? || response.status == 401 end end + rescue ::Faraday::Error + false end # Deprecated. Will be removed as part of https://gitlab.com/gitlab-org/gitlab/-/issues/409873. diff --git a/spec/lib/container_registry/gitlab_api_client_spec.rb b/spec/lib/container_registry/gitlab_api_client_spec.rb index e13f639f048f9125762005975f9eeaed7f2fe0ce..44155698095e45653f3dd182cf32b207d07e2a8c 100644 --- a/spec/lib/container_registry/gitlab_api_client_spec.rb +++ b/spec/lib/container_registry/gitlab_api_client_spec.rb @@ -54,6 +54,17 @@ it { is_expected.to be_truthy } end + + context "when the response is a Faraday::Error" do + before do + allow(::Gitlab).to receive(:com_except_jh?).and_return(false) + stub_application_setting(container_registry_features: []) + stub_request(:get, "#{registry_api_url}/gitlab/v1/") + .to_raise(::Faraday::Error) + end + + it { is_expected.to be_falsey } + end end describe '#pre_import_repository' do diff --git a/spec/models/container_repository_spec.rb b/spec/models/container_repository_spec.rb index ec9f4c787a4f155857eb4cda94834ef1e307089d..b617fae1ad21f1808bb2d29b59bccff2268ae647 100644 --- a/spec/models/container_repository_spec.rb +++ b/spec/models/container_repository_spec.rb @@ -999,17 +999,9 @@ def expected_tags_from(client_tags) end describe '#size' do - let(:on_com) { true } - let(:created_at) { described_class::MIGRATION_PHASE_1_STARTED_AT + 3.months } - subject { repository.size } - before do - allow(::Gitlab).to receive(:com_except_jh?).and_return(on_com) - allow(repository).to receive(:created_at).and_return(created_at) - end - - context 'supports gitlab api on .com with a recent repository' do + context 'supports gitlab api' do before do expect(repository.gitlab_api_client).to receive(:supports_gitlab_api?).and_return(true) expect(repository.gitlab_api_client).to receive(:repository_details).with(repository.path, sizing: :self).and_return(response) @@ -1036,37 +1028,6 @@ def expected_tags_from(client_tags) it { is_expected.to eq(nil) } end - - context 'not on .com' do - let(:on_com) { false } - - it { is_expected.to eq(nil) } - end - - context 'supports gitlab api on .com with an old repository' do - let(:on_com) { true } - let(:created_at) { described_class::MIGRATION_PHASE_1_STARTED_AT - 3.months } - - before do - allow(repository.gitlab_api_client).to receive(:supports_gitlab_api?).and_return(true) - allow(repository.gitlab_api_client).to receive(:repository_details).with(repository.path, sizing: :self).and_return(response) - expect(repository).to receive(:migration_state).and_return(migration_state) - end - - context 'with migration_state import_done' do - let(:response) { { 'size_bytes' => 12345 } } - let(:migration_state) { 'import_done' } - - it { is_expected.to eq(12345) } - end - - context 'with migration_state not import_done' do - let(:response) { { 'size_bytes' => 12345 } } - let(:migration_state) { 'default' } - - it { is_expected.to eq(nil) } - end - end end describe '#set_delete_ongoing_status', :freeze_time do diff --git a/spec/requests/api/container_repositories_spec.rb b/spec/requests/api/container_repositories_spec.rb index 82c6336216697d9e263fed2eb11c0db4a3c19fa4..34a800ba4a22dc748fc086577474a0f80a838b75 100644 --- a/spec/requests/api/container_repositories_spec.rb +++ b/spec/requests/api/container_repositories_spec.rb @@ -115,13 +115,6 @@ context 'with size param' do let(:url) { "/registry/repositories/#{repository.id}?size=true" } - let(:on_com) { true } - let(:created_at) { ::ContainerRepository::MIGRATION_PHASE_1_STARTED_AT + 3.months } - - before do - allow(::Gitlab).to receive(:com_except_jh?).and_return(on_com) - repository.update_column(:created_at, created_at) - end it 'returns a repository and its size' do stub_container_registry_gitlab_api_support(supported: true) do |client| @@ -153,26 +146,6 @@ expect(json_response['size']).to eq(nil) end end - - context 'not on .com' do - let(:on_com) { false } - - it 'returns nil' do - subject - - expect(json_response['size']).to eq(nil) - end - end - - context 'with an older container repository' do - let(:created_at) { ::ContainerRepository::MIGRATION_PHASE_1_STARTED_AT - 3.months } - - it 'returns nil' do - subject - - expect(json_response['size']).to eq(nil) - end - end end end diff --git a/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb b/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb index 46563aba992519ef403509323049e203a9c40f45..4bb92e9901987fb5be9bb45529b7f10b792b4bc7 100644 --- a/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb +++ b/spec/requests/api/graphql/container_repository/container_repository_details_spec.rb @@ -225,8 +225,6 @@ context 'size field' do let(:size_response) { container_repository_details_response.dig('size') } - let(:on_com) { true } - let(:created_at) { ::ContainerRepository::MIGRATION_PHASE_1_STARTED_AT + 3.months } let(:variables) do { id: container_repository_global_id } end @@ -241,11 +239,6 @@ GQL end - before do - allow(::Gitlab).to receive(:com_except_jh?).and_return(on_com) - container_repository.update_column(:created_at, created_at) - end - it 'returns the size' do stub_container_registry_gitlab_api_support(supported: true) do |client| stub_container_registry_gitlab_api_repository_details(client, path: container_repository.path, size_bytes: 12345) @@ -275,26 +268,6 @@ expect(size_response).to eq(nil) end end - - context 'not on .com' do - let(:on_com) { false } - - it 'returns nil' do - subject - - expect(size_response).to eq(nil) - end - end - - context 'with an older container repository' do - let(:created_at) { ::ContainerRepository::MIGRATION_PHASE_1_STARTED_AT - 3.months } - - it 'returns nil' do - subject - - expect(size_response).to eq(nil) - end - end end context 'with tags with a manifest containing nil fields' do