From dd2f52a7d1fa2ba7235df630cb726efb27911bca Mon Sep 17 00:00:00 2001 From: kyg516 Date: Sat, 24 Sep 2016 19:31:27 +0900 Subject: [PATCH] Add top tiles to dashboard --- app/controllers/application_controller.rb | 30 +--------------- app/controllers/volume_controller.rb | 40 ++++++++++----------- app/helpers/application_helper.rb | 44 ++--------------------- app/helpers/node_helper.rb | 2 ++ app/helpers/peer_helper.rb | 2 -- app/views/home/index.html.erb | 31 +++++++++------- app/views/volume/index.html.erb | 12 +++---- 7 files changed, 51 insertions(+), 110 deletions(-) create mode 100644 app/helpers/node_helper.rb delete mode 100644 app/helpers/peer_helper.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 86acea4..ecdb1ec 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -3,40 +3,12 @@ class ApplicationController < ActionController::Base # For APIs, you may want to use :null_session instead. # protect_from_forgery with: :exception - def require_login unless user_signed_in? flash[:error] = "Please, Login required to use the service." redirect_to "/users/sign_in" # halts request cycle end end - - def get_conf - config = Hash.new - one_node = Node.take - if !one_node.nil? - config["host_name"] = one_node.host_name - config["host_ip"] = one_node.host_ip - config["user_name"] = one_node.user_name - config["user_password"] = one_node.user_password - end - return config - end - - def get_conf_all - config = Array.new - config_each = Hash.new - all_node = Node.all - all_node.each do |one_node| - config_each["host_name"] = one_node.host_name - config_each["host_ip"] = one_node.host_ip - config_each["user_name"] = one_node.user_name - config_each["user_password"] = one_node.user_password - config << config_each - config_each = Hash.new - end - return config - end def get_df df = Array.new @@ -66,7 +38,7 @@ class ApplicationController < ActionController::Base parsing_list = dir_list.split("\n") @files = Array.new file = Hash.new - + @total_list = parsing_list[0] for t in 1..(parsing_list.length-1) parsing_file = parsing_list[t].split(" ") diff --git a/app/controllers/volume_controller.rb b/app/controllers/volume_controller.rb index 272835a..7aeb605 100644 --- a/app/controllers/volume_controller.rb +++ b/app/controllers/volume_controller.rb @@ -1,5 +1,5 @@ class VolumeController < ApplicationController - before_action :require_login + before_action :require_login def index file_directory("/mnt") @@ -28,49 +28,49 @@ class VolumeController < ApplicationController end def volume_mount - conf = get_conf + node = Node.take volume_name = params[:volume_name] mount_point = params[:mount_point] # make command string command = String.new - command << "sudo mount -t glusterfs #{conf['host_ip']}:/#{volume_name} #{mount_point}" + command << "sudo mount -t glusterfs #{node.host_ip}:/#{volume_name} #{mount_point}" puts command `#{command}` redirect_to '/volume/index' end def volume_unmount - conf = get_conf + node = Node.take volume_name = params[:volume_name] # make command string command = String.new - command << "sudo umount #{conf['host_ip']}:/#{volume_name}" + command << "sudo umount #{node.host_ip}:/#{volume_name}" puts command `#{command}` redirect_to '/volume/index' end def volume_create - conf = get_conf + node = Node.take volume_name = params[:volume_name] volume_type = params[:volume_type] num_of_brick = params[:num_of_brick] bricks = params[:bricks] # make command string command = String.new - command << "sshpass -p#{conf['user_password']} " - command << "ssh #{conf['user_name']}@#{conf['host_ip']} " + command << "sshpass -p#{node.user_password} " + command << "ssh #{node.host_name}@#{node.host_ip} " command << "gluster volume create #{volume_name} " if !volume_type.include? "Distribute" command << "#{volume_type.downcase} #{num_of_brick}" end - conf_all = get_conf_all + nodes = Node.all bricks.each do |t| host_name = t.split(":/")[0] brick_name = t.split(":/")[1] host_ip = "" - conf_all.each do |u| - next if !u['host_name'].eql? host_name + nodes.each do |u| + next if !u.host_name.eql? host_name host_ip = u['host_ip'] end brick = "#{host_ip}:/#{brick_name}" @@ -83,12 +83,12 @@ class VolumeController < ApplicationController end def volume_stop - conf = get_conf + node = Node.take volume_name = params[:volume_name] # make command string command = String.new - command << "yes | sshpass -p#{conf['user_password']} " - command << "ssh #{conf['user_name']}@#{conf['host_ip']} " + command << "yes | sshpass -p#{node.user_password} " + command << "ssh #{node.host_name}@#{node.host_ip} " command << "gluster volume stop #{volume_name}" puts command `#{command}` @@ -96,12 +96,12 @@ class VolumeController < ApplicationController end def volume_start - conf = get_conf + node = Node.take volume_name = params[:volume_name] # make command string command = String.new - command << "sshpass -p#{conf['user_password']} " - command << "ssh #{conf['user_name']}@#{conf['host_ip']} " + command << "sshpass -p#{node.user_password} " + command << "ssh #{node.host_name}@#{node.host_ip} " command << " gluster volume start #{volume_name}" puts command `#{command}` @@ -109,12 +109,12 @@ class VolumeController < ApplicationController end def volume_delete - conf = get_conf + node = Node.take volume_name = params[:volume_name] # make command string command = String.new - command << "yes | sshpass -p#{conf['user_password']} " - command << "ssh #{conf['user_name']}@#{conf['host_ip']} " + command << "yes | sshpass -p#{node.user_password} " + command << "ssh #{node.host_name}@#{node.host_ip} " command << " gluster volume delete #{volume_name}" puts command `#{command}` diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 283fbaf..2da8832 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,32 +1,5 @@ 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 @@ -49,25 +22,13 @@ module ApplicationHelper 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 + node = Node.take df = get_df command = String.new - command << "sshpass -p#{conf['user_password']} " - command << "ssh #{conf['user_name']}@#{conf['host_ip']} " - command << "gluster volume info" + command << "sshpass -p#{node.user_password} ssh #{node.user_name}@#{node.host_ip} gluster volume info" puts command output = `#{command}`.split("\n") output << "\n" @@ -89,4 +50,5 @@ module ApplicationHelper end return volumes end + end diff --git a/app/helpers/node_helper.rb b/app/helpers/node_helper.rb new file mode 100644 index 0000000..ff049b0 --- /dev/null +++ b/app/helpers/node_helper.rb @@ -0,0 +1,2 @@ +module NodeHelper +end diff --git a/app/helpers/peer_helper.rb b/app/helpers/peer_helper.rb deleted file mode 100644 index a94fc53..0000000 --- a/app/helpers/peer_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module PeerHelper -end diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 9c012ff..c11cbe4 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -37,15 +37,15 @@
-
+
Current signed in
<%= current_user.current_sign_in_at.strftime("%a, %H:%M") %>
- From <%= current_user.current_sign_in_ip %> + From <%= current_user.current_sign_in_ip %>
-
+
Last signed in @@ -53,33 +53,40 @@ From <%= current_user.last_sign_in_ip %>
-
+
Members -
<%= users.length %>
+
<%= User.all.length %>
+ <%= User.where(:last_sign_in_at => Date.today..Date.tomorrow).length %> user signed Today
-
+
Total Nodes -
<%= nodes.length %>
+
<%= Node.all.length %>
+ <%= Node.where(:created_at => Date.today..Date.tomorrow).length %> Node added Today
-
+
Total volumes -
<%= volumes.length %>
+ <% v = volumes %> +
<%= v.length %>
+ + <%= v.count{|x| x['Status'].eql? " Started"} %> started / + <%= v.count{|x| x['Mount State'].eql? "mounted"} %> mounted +
-
+
Total Connections -
7,325
- 34% From last Week +
<%= User.sum("sign_in_count") %>
+ <%= User.where(:last_sign_in_at => Date.today..Date.tomorrow).sum("sign_in_count") %> connected today
diff --git a/app/views/volume/index.html.erb b/app/views/volume/index.html.erb index 1386e88..f66f393 100644 --- a/app/views/volume/index.html.erb +++ b/app/views/volume/index.html.erb @@ -17,7 +17,7 @@
@@ -28,7 +28,7 @@
@@ -39,8 +39,8 @@
@@ -354,8 +354,8 @@ new_body += ""; new_body += "
"; new_body += ""; new_body += "
";