class Groups

Public Class Methods

addhosts(hosts, tag) click to toggle source
# File lib/floatyhelper/groups.rb, line 37
def self.addhosts(hosts, tag)
  data = Config.load_data
  data['vms'] ||= {}
  tag ||= 'Blank Tag' # Removed the ability to do this
  hosts.each do |host|
    data['vms'][tag] ||= []
    data['vms'][tag] << host unless data['vms'][tag].include?(host)
  end
  Config.write_data(data)
end
delete_all() click to toggle source
# File lib/floatyhelper/groups.rb, line 25
def self.delete_all
  data = Config.load_data
  data['vms'] = {}
  data['snapshots'] = {}
  Config.write_data(data)
end
delete_tag(tag, data: nil) click to toggle source
# File lib/floatyhelper/groups.rb, line 18
def self.delete_tag(tag, data: nil)
  data ||= Config.load_data
  data['vms'].delete(tag)
  data['snapshots'].delete(tag) if data['snapshots'].keys.include?(tag)
  Config.write_data(data)
end
get_hosts(tag) click to toggle source
# File lib/floatyhelper/groups.rb, line 32
def self.get_hosts(tag)
  data = Config.load_data
  data['vms'][tag]
end
get_tags() click to toggle source
# File lib/floatyhelper/groups.rb, line 8
def self.get_tags
  data = Config.load_data
  data['vms'].keys
end
host_tag(host) click to toggle source
# File lib/floatyhelper/groups.rb, line 70
def self.host_tag(host)
  data = Config.load_data
  raise 'Host not found' unless managed_host?(host)
  tags = data['vms'].select { |_tag, hosts| hosts.include?(host) }.keys
  tags[0]
end
managed_host?(host) click to toggle source
# File lib/floatyhelper/groups.rb, line 65
def self.managed_host?(host)
  data = Config.load_data
  data['vms'].any? { |_tag, hosts| hosts.include?(host) }
end
removehosts(hosts, tag) click to toggle source
# File lib/floatyhelper/groups.rb, line 48
def self.removehosts(hosts, tag)
  data = Config.load_data
  return if data['vms'][tag].nil?

  hosts.each do |host|
    data['vms'][tag] ||= []
    data['vms'][tag].delete(host)
    if data['snapshots'][tag]
      data['snapshots'][tag].each do |snaptag, _vals|
        data['snapshots'][tag][snaptag].delete(host)
      end
    end
    delete_tag(tag, data: data) if data['vms'][tag].empty?
  end
  Config.write_data(data)
end
tag?(id) click to toggle source
# File lib/floatyhelper/groups.rb, line 13
def self.tag?(id)
  data = Config.load_data
  data['vms'].keys.include?(id)
end