Sha256: 2b433ebd3a81c3c408918c87ddaa3bb1828ac5582727a6b3fd1b28f1f97ffc29

Contents?: true

Size: 1.71 KB

Versions: 5

Compression:

Stored size: 1.71 KB

Contents

module EY
  module Backup
    class Dumper < Base
      require 'shellwords'
      include Logging

      attr_reader :database

      def self.run(databases, split_size)
        exceptions = []
        completed = []
        databases.each do |database|
          begin
            backup_size = new(database).run(split_size)
            completed << "#{database.name} (#{backup_size})"
          rescue => e
            puts e
            exceptions << database.name
            next
          end
        end
        message = ''
        message = message + "Failures: #{exceptions}" if ! exceptions.empty?
        message = message + ", " if ! exceptions.empty? and ! completed.empty?
        message = message + "Completed successfully: #{completed}" if ! completed.empty?
        
        alert_level=exceptions.empty? ? 'OKAY' : 'FAILURE'
        
        message.gsub!("\n", '\n')
        full_txt= "Severity: #{alert_level}\n" \
                + "Time: #{Time.now.to_i}\n" \
                + "Type: process-dbbackup summary\n" \
                + "Plugin: exec\n" \
                + "raw_message: '#{message}'"
        full_txt = Shellwords.escape(full_txt)
        alert_command = %Q(echo #{full_txt} | /engineyard/bin/ey-alert.rb 2>&1)
        system(alert_command)
      end

      def initialize(database)
        @database  = database
      end

      def run(split_size)
        info("Doing database: #{@database.name}")

        backup_set = @database.dump
        backup_set.split!(split_size)
        backup_set.upload!

        okay("Successful backup: #{@database.name} (#{@database.backup_size})", @database.name)
        backup_set.cleanup
        backup_set.rm!
        @database.backup_size
      end
      
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ey_cloud_server-1.4.58 lib/ey_backup/dumper.rb
ey_cloud_server-1.4.54 lib/ey_backup/dumper.rb
ey_cloud_server-1.4.51 lib/ey_backup/dumper.rb
ey_cloud_server-1.4.50 lib/ey_backup/dumper.rb
ey_cloud_server-1.4.49 lib/ey_backup/dumper.rb