Class: DatadogBackup::Monitors

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

Constant Summary collapse

API_SERVICE_NAME =
:@monitor_svc
BANLIST =
%w[overall_state overall_state_modified matching_downtimes modified]

Instance Method Summary collapse

Methods inherited from Core

#client_with_200, #except, #get_and_write_file, #initialize, #myclass, #restore, #update, #update_with_200

Methods included from Options

#action, #backup_dir, #client, #concurrency_limit, #datadog_api_key, #datadog_app_key, #diff_format, #logger, #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

This class inherits a constructor from DatadogBackup::Core

Instance Method Details

#all_monitorsObject



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

def all_monitors
  @all_monitors ||= client_with_200(:get_all_monitors)
end

#api_resource_nameObject



21
22
23
# File 'lib/datadog_backup/monitors.rb', line 21

def api_resource_name
  'monitor'
end

#api_serviceObject



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

def api_service
  # The underlying class from Dogapi that talks to datadog
  client.instance_variable_get(:@monitor_svc)
end

#api_versionObject



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

def api_version
  'v1'
end

#backupObject



25
26
27
28
29
30
# File 'lib/datadog_backup/monitors.rb', line 25

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

#diff(id) ⇒ Object



32
33
34
# File 'lib/datadog_backup/monitors.rb', line 32

def diff(id)
  super(id, BANLIST)
end

#get_by_id(id) ⇒ Object



36
37
38
# File 'lib/datadog_backup/monitors.rb', line 36

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

#restore!Object



40
# File 'lib/datadog_backup/monitors.rb', line 40

def restore!; end