class SwarmClusterCliOpe::SyncConfigs::Rsync
Public Instance Methods
local_folder()
click to toggle source
@return [String]
# File lib/swarm_cluster_cli_ope/sync_configs/rsync.rb, line 7 def local_folder @configs[:configs][:local] end
pull()
click to toggle source
@return [SwarmClusterCliOpe::ShellCommandResponse]
# File lib/swarm_cluster_cli_ope/sync_configs/rsync.rb, line 23 def pull execute(direction: :down) end
push()
click to toggle source
@return [SwarmClusterCliOpe::ShellCommandResponse]
# File lib/swarm_cluster_cli_ope/sync_configs/rsync.rb, line 18 def push execute(direction: :up) end
remote_folder()
click to toggle source
@return [String]
# File lib/swarm_cluster_cli_ope/sync_configs/rsync.rb, line 12 def remote_folder @configs[:configs][:remote] end
Private Instance Methods
execute(direction: :down)
click to toggle source
# File lib/swarm_cluster_cli_ope/sync_configs/rsync.rb, line 29 def execute(direction: :down) if container.nil? say "Container non trovato con #{stack_name}@##{service}" exit 0 end # trovo la cartella bindata e la relativa cartella sul nodo volume = container.mapped_volumes.find { |v| v.destination == remote_folder and v.is_binded? } if volume.nil? say "Non ho trovato il volume bindato con questa destinazione all'interno del container #{remote_folder}" exit 0 end #costruisco il comando rsync fra cartella del nodo e cartella sul pc cmd = ["rsync", "-zr", "--delete"] if direction == :down cmd << "#{volume.ssh_connection_path}/." # creo la cartella in locale se non esiste FileUtils.mkdir_p(local_folder) cmd << local_folder end if direction == :up cmd << "#{local_folder}/." cmd << volume.ssh_connection_path end cmd = ShellCommandExecution.new(cmd) say "Comando da eseguire:" say " #{cmd.string_command}" if yes?("Confermare il comando?[y,yes]") cmd.execute end end