From cc3b92f5ff3ab56e799b992397acd17a4a9e40b0 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 7 Jun 2024 17:25:58 -0300 Subject: [PATCH] feat: poder agregar un nodo nuevo en segundo plano #16462 --- app/jobs/add_full_rsync_job.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/jobs/add_full_rsync_job.rb diff --git a/app/jobs/add_full_rsync_job.rb b/app/jobs/add_full_rsync_job.rb new file mode 100644 index 00000000..c7cda679 --- /dev/null +++ b/app/jobs/add_full_rsync_job.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +# Agrega un nodo nuevo en segundo plano y sincroniza todos los sitios +class AddFullRsyncJob < ApplicationJob + + # Obtiene todos los sitios que estén sincronizando con un nodo de + # Sutty, agrega el nodo nuevo y empieza la sincronización. + # + # @param :hostname [String] El nombre del servidor remoto + # @param :destination [String] La ubicación de rsync + def perform(hostname:, destination:) + site_ids = DeployFullRsync.all.distinct.pluck(:site_id) + + Site.where(id: site_ids).find_each do |site| + site + .deploys + .create( + type: 'DeployFullRsync', + destination: destination, + hostname: hostname + ).deploy + end + end +end