Commit e84bb5fb authored by Gabriel Mazetto's avatar Gabriel Mazetto

Refactor Geo Backfill Repository's code

parent 5ff87dc8
class Admin::GeoNodesController < Admin::ApplicationController
before_action :check_license
before_action :load_node, except: [:index, :create]
def index
@nodes = GeoNode.all
......@@ -18,15 +19,12 @@ class Admin::GeoNodesController < Admin::ApplicationController
end
def destroy
@node = GeoNode.find(params[:id])
@node.destroy
redirect_to admin_geo_nodes_path, notice: 'Node was successfully removed.'
end
def repair
@node = GeoNode.find(params[:id])
if @node.primary? || !@node.missing_oauth_application?
flash[:notice] = "This node doesn't need to be repaired."
elsif @node.save
......@@ -39,7 +37,6 @@ class Admin::GeoNodesController < Admin::ApplicationController
end
def backfill_repositories
@node = GeoNode.find(params[:id])
if @node.primary?
redirect_to admin_geo_nodes_path, notice: 'This is the primary node. Please run this action with a secondary node.'
else
......@@ -61,4 +58,8 @@ class Admin::GeoNodesController < Admin::ApplicationController
redirect_to admin_license_path
end
end
def load_node
@node = GeoNode.find(params[:id])
end
end
......@@ -66,8 +66,8 @@ class GeoNode < ActiveRecord::Base
end
def backfill_repositories
if Gitlab::Geo.enabled?
GeoScheduleBackfillWorker.perform_async(id) unless primary?
if Gitlab::Geo.enabled? && !primary?
GeoScheduleBackfillWorker.perform_async(id)
end
end
......
......@@ -10,7 +10,7 @@ module Geo
return if geo_node_id.nil?
Project.find_each(batch_size: 100) do |project|
GeoBackfillWorker.perform_async(geo_node_id, project.id) if project.valid_repo?
GeoRepositoryBackfillWorker.perform_async(geo_node_id, project.id) if project.valid_repo?
end
end
end
......
class GeoBackfillWorker
class GeoRepositoryBackfillWorker
include Sidekiq::Worker
include ::GeoDynamicBackoff
include GeoQueue
......
......@@ -245,7 +245,7 @@ describe GeoNode, type: :model do
node.backfill_repositories
expect { GeoScheduleBackfillWorker.drain }.to change(GeoBackfillWorker.jobs, :size).by(2)
expect { GeoScheduleBackfillWorker.drain }.to change(GeoRepositoryBackfillWorker.jobs, :size).by(2)
end
end
end
......
......@@ -13,7 +13,7 @@ describe Geo::ScheduleBackfillService, services: true do
create(:project)
end
expect{ subject.execute }.to change(GeoBackfillWorker.jobs, :size).by(2)
expect{ subject.execute }.to change(GeoRepositoryBackfillWorker.jobs, :size).by(2)
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment