Guest User

Untitled

a guest
Jul 19th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. # Load in Connectivity and Transfer Gems
  2. require 'net/ssh'
  3. require 'net/scp'
  4. require 'net/ftp'
  5. require 'net/sftp'
  6. require 'aws/s3'
  7.  
  8. # Load in Adapters
  9. require 'backup/adapters/base'
  10. require 'backup/adapters/mysql'
  11. require 'backup/adapters/postgresql'
  12. require 'backup/adapters/archive'
  13. require 'backup/adapters/custom'
  14.  
  15. # Load in Connectors
  16. require 'backup/connection/s3'
  17.  
  18. # Load in Storage
  19. require 'backup/storage/s3'
  20. require 'backup/storage/scp'
  21. require 'backup/storage/ftp'
  22. require 'backup/storage/sftp'
  23.  
  24. # Load in Backup Recorders
  25. require 'backup/record/s3'
  26. require 'backup/record/scp'
  27. require 'backup/record/ftp'
  28. require 'backup/record/sftp'
  29.  
  30. # Load in Configuration
  31. require 'backup/configuration/base'
  32. require 'backup/configuration/adapter'
  33. require 'backup/configuration/adapter_options'
  34. require 'backup/configuration/storage'
  35. require 'backup/configuration/helpers'
  36.  
  37. # Load Backup Configuration Helpers
  38. include Backup::Configuration::Helpers
  39.  
  40. # Load in User Configured Backup Procedures if the file exists
  41. if File.exist?(File.join(RAILS_ROOT, 'config', 'backup.rb'))
  42. require File.join(RAILS_ROOT, 'config', 'backup.rb')
  43. end
  44.  
  45. # Backup Module
  46. module Backup
  47. class Setup
  48.  
  49. attr_accessor :trigger, :procedures, :procedure
  50.  
  51. # Sets the Trigger and All Available Procedures.
  52. # Will not find a specific procedure if the "trigger" argument is set to false.
  53. def initialize(trigger, procedures)
  54. self.trigger = trigger
  55. self.procedures = procedures
  56. self.procedure = find_triggered_procedure unless trigger.eql?(false)
  57. end
  58.  
  59. # Initializes one of the few adapters and start the backup process
  60. def initialize_adapter
  61. case procedure.adapter_name.to_sym
  62. when :mysql then Backup::Adapters::MySQL.new trigger, procedure
  63. when :postgresql then Backup::Adapters::PostgreSQL.new trigger, procedure
  64. when :archive then Backup::Adapters::Archive.new trigger, procedure
  65. when :custom then Backup::Adapters::Custom.new trigger, procedure
  66. else raise "Unknown Adapter: \"#{procedure.adapter_name}\"."
  67. end
  68. end
  69.  
  70. # Scans through all the backup settings and returns the backup setting
  71. # that was specified in the "trigger" argument.
  72. # If an non-existing trigger is specified, it will raise an error and display
  73. # all the available triggers.
  74. def find_triggered_procedure
  75. procedures.each do |procedure|
  76. if procedure.trigger.eql?(trigger)
  77. return procedure
  78. end
  79. end
  80. available_triggers = procedures.each.map {|procedure| "- #{procedure.trigger}\n" }
  81. raise "Could not find a backup procedure with the trigger \"#{trigger}\". \nHere's a list of available triggers:\n#{available_triggers}"
  82. end
  83.  
  84. end
  85. end
Add Comment
Please, Sign In to add comment