Initial commit
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
namespace :cartodb do
|
||||
desc "Adapt max_import_file_size according to disk quota"
|
||||
task :setup_max_import_file_size_based_on_disk_quota => :environment do
|
||||
mid_size = 500*1024*1024
|
||||
big_size = 1000*1024*1024
|
||||
|
||||
::User.all.each do |user|
|
||||
quota_in_mb = user.quota_in_bytes/1024/1024
|
||||
if quota_in_mb >= 450 && quota_in_mb < 1500
|
||||
user.max_import_file_size = mid_size
|
||||
user.save
|
||||
print "M"
|
||||
elsif quota_in_mb >= 1500
|
||||
user.max_import_file_size = big_size
|
||||
user.save
|
||||
print "B"
|
||||
else
|
||||
print "."
|
||||
end
|
||||
end
|
||||
puts "\n"
|
||||
end
|
||||
|
||||
desc "Adapt max_import_table_row_count according to disk quota"
|
||||
task :setup_max_import_table_row_count_based_on_disk_quota => :environment do
|
||||
mid_count = 1000000
|
||||
big_count = 5000000
|
||||
|
||||
::User.all.each do |user|
|
||||
quota_in_mb = user.quota_in_bytes/1024/1024
|
||||
if quota_in_mb >= 50 && quota_in_mb < 1000
|
||||
user.max_import_table_row_count = mid_count
|
||||
user.save
|
||||
print "M"
|
||||
elsif quota_in_mb >= 1000
|
||||
user.max_import_table_row_count = big_count
|
||||
user.save
|
||||
print "B"
|
||||
else
|
||||
print "."
|
||||
end
|
||||
end
|
||||
puts "\n"
|
||||
end
|
||||
|
||||
desc "Increase limits for twitter import users"
|
||||
task :increase_limits_for_twitter_import_users => :environment do
|
||||
file_size_quota = 1500*1024*1024
|
||||
row_count_quota = 5000000
|
||||
|
||||
::User.where(twitter_datasource_enabled: true).each do |user|
|
||||
# Only increase, don't decrease
|
||||
user.max_import_file_size = file_size_quota if file_size_quota > user.max_import_file_size
|
||||
user.max_import_table_row_count = row_count_quota if row_count_quota > user.max_import_table_row_count
|
||||
user.save
|
||||
puts "#{user.username}"
|
||||
end
|
||||
end
|
||||
|
||||
desc "Set custom platform limits for a user"
|
||||
task :set_custom_limits_for_user, [:username, :import_file_size, :table_row_count, :concurrent_imports] => :environment do |task_name, args|
|
||||
|
||||
raise "Invalid username supplied" if args[:username].nil?
|
||||
raise "Invalid import size" if args[:import_file_size].nil? || args[:import_file_size].to_i <= 0
|
||||
raise "Invalid tabel row count" if args[:table_row_count].nil? || args[:table_row_count].to_i <= 0
|
||||
raise "Invalid concurrent imports" if args[:concurrent_imports].nil? || args[:concurrent_imports].to_i <= 0
|
||||
|
||||
user = ::User.where(username: args[:username]).first
|
||||
|
||||
raise "User not found" if user.nil?
|
||||
|
||||
user.max_import_file_size = args[:import_file_size].to_i
|
||||
user.max_import_table_row_count = args[:table_row_count].to_i
|
||||
user.max_concurrent_import_count = args[:concurrent_imports].to_i
|
||||
user.save
|
||||
end
|
||||
|
||||
desc 'Set max_import_file_size, max_import_table_row_count'
|
||||
task :set_import_limits, [:username, :max_import_file_size, :max_import_table_row_count] => :environment do |_task, args|
|
||||
username = args[:username]
|
||||
raise 'username needed' unless username
|
||||
user = ::User.where(username: username).first
|
||||
raise "user #{username} not found" unless user
|
||||
|
||||
|
||||
user.max_import_file_size = args[:max_import_file_size] if args[:max_import_file_size].present?
|
||||
user.max_import_table_row_count = args[:max_import_table_row_count] if args[:max_import_table_row_count].present?
|
||||
|
||||
user.save
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user