Commit 8126303e authored by Gabriel Mazetto's avatar Gabriel Mazetto

Notify key changes to secondary Geo

parent eb84a5b0
...@@ -57,6 +57,7 @@ class Key < ActiveRecord::Base ...@@ -57,6 +57,7 @@ class Key < ActiveRecord::Base
end end
def add_to_shell def add_to_shell
Gitlab::Geo.notify_ssh_key_change(id, :create) if Gitlab::Geo.primary?
GitlabShellWorker.perform_async( GitlabShellWorker.perform_async(
:add_key, :add_key,
shell_id, shell_id,
...@@ -73,6 +74,7 @@ class Key < ActiveRecord::Base ...@@ -73,6 +74,7 @@ class Key < ActiveRecord::Base
end end
def remove_from_shell def remove_from_shell
Gitlab::Geo.notify_ssh_key_change(id, :delete) if Gitlab::Geo.primary?
GitlabShellWorker.perform_async( GitlabShellWorker.perform_async(
:remove_key, :remove_key,
shell_id, shell_id,
......
...@@ -2,9 +2,9 @@ module Geo ...@@ -2,9 +2,9 @@ module Geo
class ScheduleKeyChangeService class ScheduleKeyChangeService
attr_reader :id, :action attr_reader :id, :action
def initialize(key_change) def initialize(key_id, change)
@id = key_change['id'] @id = key_id
@action = key_change['action'] @action = change
end end
def execute def execute
......
...@@ -42,6 +42,10 @@ module Gitlab ...@@ -42,6 +42,10 @@ module Gitlab
::Geo::EnqueueWikiUpdateService.new(project).execute ::Geo::EnqueueWikiUpdateService.new(project).execute
end end
def self.notify_ssh_key_change(key_id, change)
::Geo::ScheduleKeyChangeService(key_id, change.to_sym)
end
def self.bulk_notify_job def self.bulk_notify_job
Sidekiq::Cron::Job.find('geo_bulk_notify_worker') Sidekiq::Cron::Job.find('geo_bulk_notify_worker')
end end
......
require 'spec_helper' require 'spec_helper'
describe Geo::ScheduleKeyChangeService, service: true do describe Geo::ScheduleKeyChangeService, service: true do
subject(:key_create) { Geo::ScheduleKeyChangeService.new({ 'id' => 1, 'action' => 'create' }) } subject(:key_create) { Geo::ScheduleKeyChangeService.new(1, :create) }
subject(:key_delete) { Geo::ScheduleKeyChangeService.new({ 'id' => 1, 'action' => 'delete' }) } subject(:key_delete) { Geo::ScheduleKeyChangeService.new(1, :delete) }
before(:each) { allow_any_instance_of(GeoKeyRefreshWorker).to receive(:perform) } before(:each) { allow_any_instance_of(GeoKeyRefreshWorker).to receive(:perform) }
......
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