diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/application_setting.rb | 3 | ||||
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | app/models/remote_mirror.rb | 7 | ||||
-rw-r--r-- | app/models/repository.rb | 2 |
4 files changed, 9 insertions, 5 deletions
diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index a734cc7a26b..451e512aef7 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -334,7 +334,8 @@ class ApplicationSetting < ActiveRecord::Base gitaly_timeout_fast: 10, gitaly_timeout_medium: 30, gitaly_timeout_default: 55, - allow_local_requests_from_hooks_and_services: false + allow_local_requests_from_hooks_and_services: false, + mirror_available: true } end diff --git a/app/models/project.rb b/app/models/project.rb index 4021e4e85bf..3ad0d4f0c4c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -65,7 +65,7 @@ class Project < ActiveRecord::Base add_authentication_token_field :runners_token - before_validation :mark_remote_mirrors_for_removal + before_validation :mark_remote_mirrors_for_removal, if: -> { ActiveRecord::Base.connection.table_exists?(:remote_mirrors) } before_save :ensure_runners_token diff --git a/app/models/remote_mirror.rb b/app/models/remote_mirror.rb index b7e45875830..3b9fd6d710f 100644 --- a/app/models/remote_mirror.rb +++ b/app/models/remote_mirror.rb @@ -86,9 +86,12 @@ class RemoteMirror < ActiveRecord::Base raw.update(options) end + def sync? + !enabled? + end + def sync - return unless enabled? - return if Gitlab::Geo.secondary? + return if sync? if recently_scheduled? RepositoryUpdateRemoteMirrorWorker.perform_in(backoff_delay, self.id, Time.now) diff --git a/app/models/repository.rb b/app/models/repository.rb index 2a0802482f5..b75c4aca982 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -854,7 +854,7 @@ class Repository add_remote(remote_name, url, mirror_refmap: refmap) fetch_remote(remote_name, forced: forced, prune: prune) ensure - remove_remote(remote_name) if tmp_remote_name + async_remove_remote(remote_name) if tmp_remote_name end def fetch_remote(remote, forced: false, ssh_auth: nil, no_tags: false, prune: true) |