From c1a44853afa35a57845800581079c6b20b9d23f6 Mon Sep 17 00:00:00 2001 From: kyg516 Date: Mon, 12 Sep 2016 17:33:08 +0900 Subject: [PATCH] Change all command on Volume controller --- app/controllers/application_controller.rb | 2 +- app/controllers/volume_controller.rb | 121 ++++++++++++++-------- app/views/volume/index.html.erb | 7 +- 3 files changed, 81 insertions(+), 49 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 02d8264..db49794 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -16,7 +16,7 @@ class ApplicationController < ActionController::Base elsif t.include? "host_ip=" @config["host_ip"] = t.split("host_ip=")[1] elsif t.include? "host_port=" and !t.split("host_port=")[1].nil? - @config["host_port"] = "-p " + t.split("host_port=")[1] + " " + @config["host_port"] = t.split("host_port=")[1] + " " elsif t.include? "host_password=" @config["host_password"] = t.split("host_password=")[1] end diff --git a/app/controllers/volume_controller.rb b/app/controllers/volume_controller.rb index dc18b16..edfdcdc 100644 --- a/app/controllers/volume_controller.rb +++ b/app/controllers/volume_controller.rb @@ -22,7 +22,7 @@ class VolumeController < ApplicationController temp = t.split(":") volume[temp[0]] = temp[1] else - String state = (df.include? volume['Volume Name'].delete(' ')) ? "Mounted" : "UnMounted" + String state = (df.include? volume['Volume Name'].delete(' ')) ? "mounted" : "unmounted" volume['Mount State'] = state @volumes << volume volume = Hash.new @@ -35,8 +35,16 @@ class VolumeController < ApplicationController end def get_volume_info - return `sshpass -p#{@config["host_password"]} ssh #{@config["host_port"]} #{@config["host_user"]}@#{@config["host_ip"]} \ - gluster volume info` + command = String.new + command << "sshpass -p" + @config["host_password"].to_s + command << " ssh " + if !@config["host_port"].nil? + command << "-p " + @config["host_port"].to_s + " " + end + command << @config["host_user"].to_s + "@" + @config["host_ip"].to_s + command << " gluster volume info" + puts command + return `#{command}` end def file_upload @@ -47,78 +55,103 @@ class VolumeController < ApplicationController end def volume_mount - @config = get_conf + get_conf volume_name = params[:volume_name] mount_point = params[:mount_point] - puts "mount -t glusterfs " + @config["host_ip"] + ":/" + volume_name + " " + mount_point - `mount -t glusterfs #{@config["host_ip"]}:/#{volume_name} #{mount_point}` + # make command string + command = String.new + command << "mount -t glusterfs " + @config["host_ip"].to_s + ":/" + volume_name + " " + mount_point + puts command + `#{command}` redirect_to '/volume/index' end def volume_unmount - @config = get_conf + get_conf volume_name = params[:volume_name] - puts "umount " + @config["host_ip"] + ":/" + volume_name - `umount #{@config["host_ip"]}:/#{volume_name}` + # make command string + command = String.new + command << "umount " + @config["host_ip"].to_s + ":/" + volume_name + puts command + `#{command}` redirect_to '/volume/index' end def volume_create - @config = get_conf + get_conf volume_name = params[:volume_name] - volume_type = params[:volume_type] - num_of_brick = params[:num_of_brick] + volume_type = params[:volume_type] + num_of_brick = params[:num_of_brick] bricks = params[:bricks] - command = String.new - command << "sshpass" - command << " -p" - command << @config["host_password"].to_s - command << " ssh " - command << @config["host_port"].to_s - command << " " - command << @config["host_user"].to_s - command << "@" - command << @config["host_ip"].to_s - command << " gluster volume create " - command << volume_name + " " - if !volume_type.include? "Distribute" - command << volume_type + " " + num_of_brick + " " - end - bricks.each do |t| - command << t - command << " " + # make command string + command = String.new + command << "sshpass -p" + @config["host_password"].to_s + command << " ssh " + if !@config["host_port"].nil? + command << "-p " + @config["host_port"].to_s + " " end - command << "force" + command << @config["host_user"].to_s + "@" + @config["host_ip"].to_s + command << " gluster volume create " + volume_name + " " + if !volume_type.equal? "Distribute" + command << volume_type.downcase + " " + num_of_brick + " " + end + bricks.each do |t| + command << t + " " + end + command << "force" puts command `#{command}` redirect_to '/volume/index' end def volume_stop - @config = get_conf + get_conf volume_name = params[:volume_name] - puts "gluster volume stop " + volume_name - `yes | sshpass -p#{@config["host_password"]} ssh #{@config["host_port"]} #{@config["host_user"]}@#{@config["host_ip"]} \ - gluster volume stop #{volume_name}` + # make command string + command = String.new + command << "yes | sshpass -p" + @config["host_password"].to_s + command << " ssh " + if !@config["host_port"].nil? + command << "-p " + @config["host_port"].to_s + " " + end + command << @config["host_user"].to_s + "@" + @config["host_ip"].to_s + command << " gluster volume stop " + volume_name + puts command + `#{command}` redirect_to '/volume/index' end def volume_start - @config = get_conf + get_conf volume_name = params[:volume_name] - puts "gluster volume start " + volume_name - `sshpass -p#{@config["host_password"]} ssh #{@config["host_port"]} #{@config["host_user"]}@#{@config["host_ip"]} \ - gluster volume start #{volume_name}` + # make command string + command = String.new + command << "sshpass -p" + @config["host_password"].to_s + command << " ssh " + if !@config["host_port"].nil? + command << "-p " + @config["host_port"].to_s + " " + end + command << @config["host_user"].to_s + "@" + @config["host_ip"].to_s + command << " gluster volume start " + volume_name + puts command + `#{command}` redirect_to '/volume/index' end - def volume_delete - @config = get_conf + get_conf volume_name = params[:volume_name] - puts "gluster volume delete " + volume_name - `yes | sshpass -p#{@config["host_password"]} ssh #{@config["host_port"]} #{@config["host_user"]}@#{@config["host_ip"]} \ - gluster volume delete #{volume_name}` + # make command string + command = String.new + command << "yes | sshpass -p" + @config["host_password"].to_s + command << " ssh " + if !@config["host_port"].nil? + command << "-p " + @config["host_port"].to_s + " " + end + command << @config["host_user"].to_s + "@" + @config["host_ip"].to_s + command << " gluster volume delete " + volume_name + puts command + `#{command}` redirect_to '/volume/index' end end diff --git a/app/views/volume/index.html.erb b/app/views/volume/index.html.erb index 7f53060..87be662 100644 --- a/app/views/volume/index.html.erb +++ b/app/views/volume/index.html.erb @@ -167,14 +167,13 @@ - <% if t["Mount State"] == "Mounted" %> + <% if t["Mount State"] == "mounted" %> Unmount <% elsif t["Status"] == " Started" %> - +

Stop

- Mount <% else %> @@ -297,7 +296,7 @@ new_body += "
"; new_body += ""; new_body += "
"; new_body += "