Class: DatadogBackup::Monitors

Inherits:
Core
  • Object
show all
Defined in:
lib/datadog_backup/monitors.rb

Instance Method Summary collapse

Methods inherited from Core

#api_service, #api_url, #body_with_2xx, #create, #diff, #except, #get, #get_all, #get_and_write_file, #myclass, #restore, #update

Methods included from Options

#action, #backup_dir, #concurrency_limit, #diff_format, #force_restore, #output_format, #resources

Methods included from LocalFilesystem

#all_file_ids, #all_file_ids_for_selected_resources, #all_files, #class_from_id, #dump, #file_type, #filename, #find_file_by_id, #load_from_file, #load_from_file_by_id, #mydir, #purge, #write_file

Constructor Details

#initialize(options) ⇒ Monitors

Returns a new instance of Monitors.



29
30
31
32
# File 'lib/datadog_backup/monitors.rb', line 29

def initialize(options)
  super(options)
  @banlist = %w[overall_state overall_state_modified matching_downtimes modified].freeze
end

Instance Method Details

#all_monitorsObject



5
6
7
# File 'lib/datadog_backup/monitors.rb', line 5

def all_monitors
  @all_monitors ||= get_all
end

#api_resource_nameObject



13
14
15
# File 'lib/datadog_backup/monitors.rb', line 13

def api_resource_name
  'monitor'
end

#api_versionObject



9
10
11
# File 'lib/datadog_backup/monitors.rb', line 9

def api_version
  'v1'
end

#backupObject



17
18
19
20
21
22
# File 'lib/datadog_backup/monitors.rb', line 17

def backup
  all_monitors.map do |monitor|
    id = monitor['id']
    write_file(dump(get_by_id(id)), filename(id))
  end
end

#get_by_id(id) ⇒ Object



24
25
26
27
# File 'lib/datadog_backup/monitors.rb', line 24

def get_by_id(id)
  monitor = all_monitors.select { |monitor| monitor['id'].to_s == id.to_s }.first
  monitor.nil? ? {} : except(monitor)
end