From 2f6d0b5a4bd016ada04ec20429bcd3d49e7f2381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Miedes=20Garc=C3=A9s?= Date: Tue, 20 Jul 2021 09:02:38 +0200 Subject: [PATCH] Don't check map quotas during dataset imports --- NEWS.md | 1 + app/connectors/importer.rb | 17 ----------------- spec/connectors/importer_spec.rb | 22 ---------------------- 3 files changed, 1 insertion(+), 39 deletions(-) diff --git a/NEWS.md b/NEWS.md index 9db63abb3c..aa2d596e79 100644 --- a/NEWS.md +++ b/NEWS.md @@ -41,6 +41,7 @@ Development - Fix broken links on the public footer [#16308](https://github.com/CartoDB/cartodb/pull/16308) - Fix search in _Filter by Column Value_ analysis [#16310](https://github.com/CartoDB/cartodb/pull/16310) - Use Google Maps provider if the base layer is Google [#16314](https://github.com/CartoDB/cartodb/pull/16314) +- Allow importing datasets with exhausted map quota [#16320](https://github.com/CartoDB/cartodb/pull/16320) 4.45.0 (2021-04-14) ------------------- diff --git a/app/connectors/importer.rb b/app/connectors/importer.rb index b48f347039..3a0d8adfd2 100644 --- a/app/connectors/importer.rb +++ b/app/connectors/importer.rb @@ -60,7 +60,6 @@ module CartoDB @aborted = true results.each { |result| drop(result.table_name) } else - check_map_quotas(runner.visualizations) check_dataset_quotas(runner.visualizations) log('Proceeding to register') register_results(results) @@ -69,22 +68,6 @@ module CartoDB self end - def check_map_quotas(visualizations) - log('Checking public and private map quota') - public_maps = visualizations.select do |v| - v.type == Carto::Visualization::TYPE_DERIVED && v.privacy != Carto::Visualization::PRIVACY_PRIVATE - end - private_maps = visualizations.select do |v| - v.type == Carto::Visualization::TYPE_DERIVED && v.privacy == Carto::Visualization::PRIVACY_PRIVATE - end - quota_checker = CartoDB::QuotaChecker.new(data_import.user) - return unless quota_checker.will_be_over_public_map_quota?(public_maps.count) || - quota_checker.will_be_over_private_map_quota?(private_maps.count) - - log('Results would set map overquota') - raise CartoDB::Importer2::MapQuotaExceededError.new - end - def check_dataset_quotas(visualizations) log('Checking public datasets quota') public_datasets = visualizations.select do |v| diff --git a/spec/connectors/importer_spec.rb b/spec/connectors/importer_spec.rb index eb907fe5e5..72dd40b61b 100644 --- a/spec/connectors/importer_spec.rb +++ b/spec/connectors/importer_spec.rb @@ -735,27 +735,5 @@ describe CartoDB::Connector::Importer do @user.public_dataset_quota = nil @user.save end - - it 'fails to import a visualization export if private map quota is exceeded' do - filepath = "#{Rails.root}/services/importer/spec/fixtures/visualization_export_with_csv_table.carto" - @user.private_map_quota = 0 - @user.save - @data_import = DataImport.create( - user_id: @user.id, - data_source: filepath, - updated_at: Time.now.utc, - append: false, - create_visualization: true - ) - @data_import.values[:data_source] = filepath - - expect { @data_import.run_import! }.to raise_error('Map quota exceeded') - @data_import.success.should eq false - @data_import.error_code.should eq 8007 - Carto::User.any_instance.unstub(:public_map_quota) - - @user.private_map_quota = nil - @user.save - end end end