Class: Corosync::Cluster

Inherits:
Object
  • Object
show all
Defined in:
lib/corosync-ruby/cluster.rb

Constant Summary collapse

COMMAND =
"sudo crm"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCluster

Returns a new instance of Cluster.



8
9
10
# File 'lib/corosync-ruby/cluster.rb', line 8

def initialize
  parse
end

Instance Attribute Details

#failed_actionsObject (readonly)

Returns the value of attribute failed_actions.



6
7
8
# File 'lib/corosync-ruby/cluster.rb', line 6

def failed_actions
  @failed_actions
end

#nodes_configuredObject (readonly)

Returns the value of attribute nodes_configured.



5
6
7
# File 'lib/corosync-ruby/cluster.rb', line 5

def nodes_configured
  @nodes_configured
end

#offlineObject (readonly)

Returns the value of attribute offline.



5
6
7
# File 'lib/corosync-ruby/cluster.rb', line 5

def offline
  @offline
end

#onlineObject (readonly)

Returns the value of attribute online.



5
6
7
# File 'lib/corosync-ruby/cluster.rb', line 5

def online
  @online
end

#resources_configuredObject (readonly)

Returns the value of attribute resources_configured.



5
6
7
# File 'lib/corosync-ruby/cluster.rb', line 5

def resources_configured
  @resources_configured
end

#resources_startedObject (readonly)

Returns the value of attribute resources_started.



6
7
8
# File 'lib/corosync-ruby/cluster.rb', line 6

def resources_started
  @resources_started
end

#resources_stoppedObject (readonly)

Returns the value of attribute resources_stopped.



6
7
8
# File 'lib/corosync-ruby/cluster.rb', line 6

def resources_stopped
  @resources_stopped
end

Instance Method Details

#current_node_active?Boolean

Returns:

  • (Boolean)


53
54
55
56
# File 'lib/corosync-ruby/cluster.rb', line 53

def current_node_active?
  current_node = `hostname`.strip
  @online.include?(current_node)
end

#health_descriptionObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/corosync-ruby/cluster.rb', line 24

def health_description
  description = ""
  ok = healthy
  
  if ok
    description += "OK"
  else
    description += "ERROR"
  end
  description += ", #{@nodes_configured} nodes configured"
  if @online.size != 0
    description += ", #{@online.size} nodes online #{@online.inspect}"
  end
  if !ok && @offline.size != 0
    description += ", #{@offline.size} nodes offline #{@offline.inspect}"
  end   
  description += ", #{@resources_configured} resources configured"
  if @resources_started.size != 0
    description += ", #{@resources_started.size} resources started #{@resources_started.inspect}"
  end
  if !ok && @resources_stopped.size != 0
    description += ", #{@resources_stopped.size} resources stopped #{@resources_stopped.inspect}"
  end
  if !ok && @failed_actions.size != 0
    description += ", Failed actions #{@failed_actions.inspect}"
  end
  description.gsub("\"", "")
end

#healthyObject



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/corosync-ruby/cluster.rb', line 12

def healthy
  if @online.size < @nodes_configured
    false
  elsif @resources_started.size < @resources_configured
    false
  elsif @failed_actions.size != 0
    false
  else
    true
  end  
end