Module: DatadogBackup::LocalFilesystem
- Included in:
- Core
- Defined in:
- lib/datadog_backup/local_filesystem.rb
Instance Method Summary collapse
- #all_file_ids ⇒ Object
- #all_file_ids_for_selected_resources ⇒ Object
- #all_files ⇒ Object
- #class_from_id(id) ⇒ Object
- #dump(object) ⇒ Object
- #file_type(filepath) ⇒ Object
- #filename(id) ⇒ Object
- #find_file_by_id(id) ⇒ Object
- #load_from_file(string, output_format) ⇒ Object
- #load_from_file_by_id(id) ⇒ Object
- #mydir ⇒ Object
- #purge ⇒ Object
- #write_file(data, filename) ⇒ Object
Instance Method Details
#all_file_ids ⇒ Object
18 19 20 |
# File 'lib/datadog_backup/local_filesystem.rb', line 18 def all_file_ids all_files.map { |file| ::File.basename(file, '.*') } end |
#all_file_ids_for_selected_resources ⇒ Object
22 23 24 25 26 |
# File 'lib/datadog_backup/local_filesystem.rb', line 22 def all_file_ids_for_selected_resources all_file_ids.select do |id| resources.include? class_from_id(id) end end |
#all_files ⇒ Object
14 15 16 |
# File 'lib/datadog_backup/local_filesystem.rb', line 14 def all_files ::Dir.glob(::File.join(backup_dir, '**', '*')).select { |f| ::File.file?(f) } end |
#class_from_id(id) ⇒ Object
28 29 30 31 |
# File 'lib/datadog_backup/local_filesystem.rb', line 28 def class_from_id(id) class_string = ::File.dirname(find_file_by_id(id)).split('/').last.capitalize ::DatadogBackup.const_get(class_string) end |
#dump(object) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/datadog_backup/local_filesystem.rb', line 33 def dump(object) if output_format == :json JSON.pretty_generate(object.deep_sort) elsif output_format == :yaml YAML.dump(object.deep_sort) else raise 'invalid output_format specified or not specified' end end |
#file_type(filepath) ⇒ Object
47 48 49 |
# File 'lib/datadog_backup/local_filesystem.rb', line 47 def file_type(filepath) ::File.extname(filepath).strip.downcase[1..-1].to_sym end |
#filename(id) ⇒ Object
43 44 45 |
# File 'lib/datadog_backup/local_filesystem.rb', line 43 def filename(id) ::File.join(mydir, "#{id}.#{output_format}") end |
#find_file_by_id(id) ⇒ Object
51 52 53 |
# File 'lib/datadog_backup/local_filesystem.rb', line 51 def find_file_by_id(id) ::Dir.glob(::File.join(backup_dir, '**', "#{id}.*")).first end |
#load_from_file(string, output_format) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/datadog_backup/local_filesystem.rb', line 55 def load_from_file(string, output_format) if output_format == :json JSON.parse(string) elsif output_format == :yaml YAML.safe_load(string) else raise 'invalid output_format specified or not specified' end end |
#load_from_file_by_id(id) ⇒ Object
65 66 67 68 |
# File 'lib/datadog_backup/local_filesystem.rb', line 65 def load_from_file_by_id(id) filepath = find_file_by_id(id) load_from_file(::File.read(filepath), file_type(filepath)) end |
#mydir ⇒ Object
70 71 72 |
# File 'lib/datadog_backup/local_filesystem.rb', line 70 def mydir ::File.join(backup_dir, myclass) end |
#purge ⇒ Object
74 75 76 |
# File 'lib/datadog_backup/local_filesystem.rb', line 74 def purge ::FileUtils.rm(::Dir.glob(File.join(mydir, '*'))) end |
#write_file(data, filename) ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/datadog_backup/local_filesystem.rb', line 78 def write_file(data, filename) logger.info "Backing up #{filename}" file = ::File.open(filename, 'w') file.write(data) ensure file.close end |