Merge pull request #16311 from CartoDB/bug/ch165944/fix-race-condition-when-do-subscriptions

[ch165944] Fix race condition when DO subscriptions are created
pull/16313/head^2
Shylpx 3 years ago committed by GitHub
commit 4b9221f640
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -22,6 +22,7 @@ Development
- OauthApps restricted by default [#16304](https://github.com/CartoDB/cartodb/pull/16304)
- Support staging hostname in the catalog [#16258](https://github.com/CartoDB/cartodb/pull/16258)
- Fix user migration export/import logs [#16298](https://github.com/CartoDB/cartodb/pull/16298)
- Fix race condition when DO subscriptions are created [#16311](https://github.com/CartoDB/cartodb/pull/16311)
- Allow the usage of WMTS URLs with parameters to create custom basemaps [#16271](https://github.com/CartoDB/cartodb/pull/16271)
- Sync license_type in redis with the values coming from Central [#16270](https://github.com/CartoDB/cartodb/pull/16270)
- Add `do_bq_project` and `do_bq_dataset` to `api/v3/me` endpoint [#16276](https://github.com/CartoDB/cartodb/pull/16276)

@ -290,6 +290,7 @@ module Carto::UserCommons
license_srv.remove_from_redis(attributes[:do_dataset][:dataset_id])
elsif attributes[:action] == 'add'
license_srv.add_to_redis(attributes[:do_dataset])
create_do_sync!(attributes[:do_dataset][:dataset_id]) if attributes[:create_sync]
else
message = 'Error updating a DO subscription: unknown action'
log_error(message: message)
@ -297,6 +298,11 @@ module Carto::UserCommons
end
end
def create_do_sync!(subscription_id)
Carto::DoSyncServiceFactory.get_for_user(self)
.create_sync!(subscription_id, true)
end
def do_subscription(dataset_id)
subscriptions = Carto::DoLicensingService.new(username).subscriptions
subscriptions.find { |subscription| subscription['id'] == dataset_id }&.with_indifferent_access

@ -13,8 +13,11 @@ module Resque
subscription_info = get_subscription_info(data_import)
write_do_sync_status(subscription_info, data_import, licensing_service)
data_import.run_import!
write_do_sync_status(subscription_info, data_import, licensing_service)
begin
data_import.run_import!
ensure
write_do_sync_status(subscription_info, data_import, licensing_service)
end
})
end

Loading…
Cancel
Save