Class: Container::Backup::Chronograf

Inherits:
Step
  • Object
show all
Defined in:
lib/container/steps/databases.rb

Instance Method Summary collapse

Methods inherited from Step

#backup_path, #container, #image, #initialize, #params, #perform

Constructor Details

This class inherits a constructor from Container::Backup::Step

Instance Method Details

#backupObject



71
72
73
74
75
# File 'lib/container/steps/databases.rb', line 71

def backup
  get_dashboard_ids(false).each do |i|
    sh "docker exec #{container} sh -c 'curl -i -X GET http://127.0.0.1:8888/chronograf/v1/dashboards/#{i} > /#{backup_path}/i.json'"
  end
end

#get_dashboard_ids(save = true) ⇒ Object

www.influxdata.com/blog/chronograf-dashboard-definitions/

- "backup={volumes: [chronograf_data],databases: [chronograf]}"


66
67
68
69
# File 'lib/container/steps/databases.rb', line 66

def get_dashboard_ids(save=true)
  sh "docker exec  #{container} sh -c 'curl -i X GET http://127.0.0.1:8888/chronograf/v1/dashboards > /#{backup_path}/dashboards.json'" if save
  JSON.parse(File.open("/#{backup_path}/dashboards.json"))['dashboards'].map{|d| d['id']}
end

#restoreObject



77
78
79
80
81
# File 'lib/container/steps/databases.rb', line 77

def restore
  get_dashboard_ids.each do |i|
    sh "docker exec #{container} sh -c 'curl -i -X POST -H \"Content-Type: application/json\" http://127.0.0.1:8888/chronograf/v1/dashboards -d @/#{i}.json'"
  end
end