Class: Groups

Inherits:
Object
  • Object
show all
Defined in:
lib/floatyhelper/groups.rb

Class Method Summary collapse

Class Method Details

.addhosts(hosts, tag) ⇒ Object



37
38
39
40
41
42
43
44
45
46
# 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_allObject



25
26
27
28
29
30
# 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) ⇒ Object



18
19
20
21
22
23
# 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) ⇒ Object



32
33
34
35
# File 'lib/floatyhelper/groups.rb', line 32

def self.get_hosts(tag)
  data = Config.load_data
  data['vms'][tag]
end

.get_tagsObject



8
9
10
11
# File 'lib/floatyhelper/groups.rb', line 8

def self.get_tags
  data = Config.load_data
  data['vms'].keys
end

.host_tag(host) ⇒ Object



70
71
72
73
74
75
# 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) ⇒ Boolean

Returns:

  • (Boolean)


65
66
67
68
# 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) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
# File 'lib/floatyhelper/groups.rb', line 13

def self.tag?(id)
  data = Config.load_data
  data['vms'].keys.include?(id)
end