gluster-web-interface/app/helpers/application_helper.rb
2016-09-24 18:00:27 +09:00

93 lines
2.5 KiB
Ruby

module ApplicationHelper
def get_conf
conf = Hash.new
node = Node.take
if !node.nil?
conf["host_name"] = node.host_name
conf["host_ip"] = node.host_ip
conf["user_name"] = node.user_name
conf["user_password"] = node.user_password
end
return conf
end
def get_conf_all
conf_all = Array.new
conf = Hash.new
nodes = Node.all
nodes.each do |node|
conf["host_name"] = node.host_name
conf["host_ip"] = node.host_ip
conf["user_name"] = node.user_name
conf["user_password"] = node.user_password
conf_all << conf
conf = Hash.new
end
return conf_all
end
def get_df
df = Array.new
df_each = Hash.new
command = String.new
command << "df -hP"
puts command
output = `#{command}`.split("\n")
output.each do |t|
next if t.equal? output.first
s = t.split(' ')
df_each['Filesystem'] = s[0]
df_each['Size'] = s[1]
df_each['Used'] = s[2]
df_each['Avail'] = s[3]
df_each['Use%'] = s[4]
df_each['Mounted on'] = s[5]
df << df_each
df_each = Hash.new
end
return df
end
def users
users = User.all
return users
end
def nodes
nodes = Node.all
return nodes
end
def volumes
volumes = Array.new
volume = Hash.new
conf = get_conf
df = get_df
command = String.new
command << "sshpass -p#{conf['user_password']} "
command << "ssh #{conf['user_name']}@#{conf['host_ip']} "
command << "gluster volume info"
puts command
output = `#{command}`.split("\n")
output << "\n"
output.each do |t|
next if t.equal? output.first
if t.include? ":"
temp = t.split(":")
volume[temp[0]] = temp[1]
else
volume['Mount State'] = "unmounted"
df.each do |u|
next if !u['Filesystem'].include? volume['Volume Name'].delete(' ')
volume['Mount State'] = "mounted"
volume['Mount Point'] = u['Mounted on']
end
volumes << volume
volume = Hash.new
end
end
return volumes
end
end