Add 'gem thin': WebBrick is deprecated

This commit is contained in:
kyg516 2016-09-14 16:23:13 +09:00
parent e6774a071f
commit b97c484ff8
5 changed files with 41 additions and 59 deletions

View File

@ -35,6 +35,7 @@ gem 'sdoc', '~> 0.4.0', group: :doc
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
gem 'thin'
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
@ -48,4 +49,3 @@ group :development do
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end

View File

@ -61,6 +61,7 @@ GEM
execjs
coffee-script-source (1.10.0)
concurrent-ruby (1.0.1)
daemons (1.2.4)
debug_inspector (0.0.2)
devise (4.2.0)
bcrypt (~> 3.0)
@ -69,6 +70,7 @@ GEM
responders
warden (~> 1.2.3)
erubis (2.7.0)
eventmachine (1.2.0.1)
execjs (2.6.0)
font-awesome-rails (4.6.3.1)
railties (>= 3.2, < 5.1)
@ -148,6 +150,10 @@ GEM
activesupport (>= 4.0)
sprockets (>= 3.0.0)
sqlite3 (1.3.11)
thin (1.7.0)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (0.19.1)
thread_safe (0.3.5)
tilt (2.0.2)
@ -182,9 +188,10 @@ DEPENDENCIES
sdoc (~> 0.4.0)
spring
sqlite3
thin
turbolinks
uglifier (>= 1.3.0)
web-console (~> 2.0)
BUNDLED WITH
1.12.5
1.13.0

View File

@ -2,6 +2,7 @@ class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
# protect_from_forgery with: :exception
helper_method :volume_mount, :volume_unmount, :volume_create, :volume_delete, :volume_start, :volume_stop
def get_conf
@config = Hash.new

View File

@ -101,7 +101,7 @@ class VolumeController < ApplicationController
command << "force"
puts command
`#{command}`
# redirect_to '/volume/index'
redirect_to '/volume/index'
end
def volume_stop
@ -132,7 +132,7 @@ class VolumeController < ApplicationController
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
command << " gluster volume start " + volume_name.to_s
puts command
`#{command}`
redirect_to '/volume/index'

View File

@ -3,9 +3,7 @@
<div class="popup">
<h2> Choose mount point </h2>
<a class="close" href="#">&times;</a>
<form id="form_volume_create" data-parsley-validate class="form-horizontal form-label-left">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="volume-name">Volume Name <span class="required">*</span>
</label>
@ -13,7 +11,6 @@
<input type="text" required="required" class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Volume Type <span class="required">*</span>
</label>
@ -25,7 +22,6 @@
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Number of brick <span class="required">*</span>
</label>
@ -37,7 +33,6 @@
</select>
</div>
</div>
<div class="form-group">
<div class="row" style="margin:0 0 10px 0">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Bricks <span class="required">*</span>
@ -56,9 +51,7 @@
</div>
</div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<a href="#" class="btn btn-primary">Cancel</a>
@ -66,7 +59,6 @@
</div>
</div>
</form>
</div>
</div>
@ -97,7 +89,10 @@
</td>
<td><%=t["auth"]%></td>
<td>
<button class="btn btn-primary pull-right" onclick="volume_mount('<%=@current_dir + "/" + t["name"]%>')">select</botton>
<form data-parsley-validate>
<input type="hidden" value='<%=@current_dir + "/" + t["name"]%>'>
<button type="submit" class="btn btn-primary pull-right">select</botton>
</form>
</td>
</tr>
<%end%>
@ -153,7 +148,7 @@
<div class="col-md-6 col-sm-6 col-xs-12">
<div style="margin: 10px">
<p class="text-muted font-13 m-b-30"><code>Volume Info</code></p>
<p class="text-muted font-13 m-b-30"><span class="badge bg-blue">Volume Info</span></p>
Type : <%=t["Type"]%> <br>
Volume ID : <%=t["Volume ID"]%> <br>
Status : <%=t["Status"]%> <br>
@ -189,12 +184,15 @@
<!-- right content -->
<div class="col-md-6 col-sm-6 col-xs-12">
<% if t["Mount State"] == "mounted" %>
<p>Drag multiple files to the box below for multi upload or click to select files.</p>
<p class="text-muted font-13 m-b-30"><span class="badge bg-green">Uploader</span> Activated</p>
<form action="/file_upload" method="post" enctype="multipart/form-data" class="dropzone" style="border: 1px solid #e5e5e5; height: 300px; overflow:auto;">
</form>
<br/>
<% elsif t["Status"] == " Started" %>
<% else %>
<p class="text-muted font-13 m-b-30"><span class="badge bg-red">Uploader</span> Inactivated</p>
<form style="border: 1px solid #e5e5e5; height: 300px; overflow:auto;">
</form>
<br/>
<% end %>
</div>
</div>
@ -205,33 +203,7 @@
</div>
<!-- /page content -->
<!-- volume functions -->
<script>
function volume_mount(mnt_point) {
var url = window.location + '';
var vol_name = url.match(/volume_name=([^#]+)/)[1];
$.ajax({
type: 'post',
url: '/volume/mount',
data: {mount_point: mnt_point, volume_name: vol_name},
success: function(data){
console.log("mount success");
window.location.replace(url.split("?")[0]);
}
});
}
</script>
<!-- data table handler -->
<script type="text/javascript">
$(document).ready(function() {
$('#datatable').dataTable();
});
</script>
<!-- file manager functions -->
<!-- File manager functions -->
<script>
function change_upper(directory){
if(directory == "/") return;
@ -248,7 +220,7 @@
$("#datatable_body").empty();
var new_tr = "";
new_tr += "<tr role='row' class='odd'> <td><i class='fa fa-reply'></i>";
nrailew_tr += "<a style='cursor: pointer' onclick='change_upper(" + '"' + directory + '"' +")'> ..</a>";
new_tr += "<a style='cursor: pointer' onclick='change_upper(" + '"' + directory + '"' +")'> ..</a>";
new_tr += "</td><td> </td><td> </td><td> </td></tr>";
for( var i = 0; i < result.file.length; i++){
if(result.file[i].auth[0] != "d") continue;
@ -262,12 +234,26 @@
new_tr += "</tr>";
}
$("#datatable_body").append(new_tr);
$('#datatable').dataTable();
}
})
}
</script>
<!-- Mount overlay functions -->
<script>
$("#popup_mount #datatable_body form").submit(function(){
var mnt_point = $(this).find("input").val();
var url = window.location + '';
var vol_name = url.match(/volume_name=([^#]+)/)[1];
$.ajax({
type: 'post',
url: '/volume/mount',
data: {mount_point: mnt_point, volume_name: vol_name},
success: function(result){
}
});
})
</script>
<!-- Create overlay functions -->
<script>
// Volume type changed
$("#form_volume_create .form-group").eq(1).change(function (){
@ -276,7 +262,6 @@
case "Distribute":
case "Stripe":
case "Replica":
case "Arbiter":
case "Disperse":
case "Disperse-data":
case "Redundancy":
@ -287,7 +272,6 @@
break;
}
})
// Number of bricks changed
$("#form_volume_create .form-group").eq(2).change(function (){
var $num_of_brick = $(this).find("option:selected").val();
@ -316,14 +300,12 @@
}
$body.append(new_body);
})
// Volume create
$("#form_volume_create").submit(function(){
var volume_name = $(this).find(".form-group:eq(0) input").val();
var volume_type = $(this).find(".form-group:eq(1) option:selected").val();
var num_of_brick = $(this).find(".form-group:eq(2) option:selected").val() * 1; // convert to Number type
var bricks = [];
// error check
if(volume_name.indexOf(' ') >= 0){
alert("Volume name can't contains white spaces");
return;
@ -334,11 +316,9 @@
return;
}
<% end %>
for(var i = 0; i < num_of_brick; i++){
var server_name = $(this).find(".form-group .row").eq(i).find("option:selected").val();
var brick_name = $(this).find(".form-group .row").eq(i).find("input").val();
if(brick_name.indexOf(' ') >= 0) {
alert("Brick name can't contain white spaces");
return;
@ -347,7 +327,6 @@
alert("Brick name can't start with slash");
return;
}
var brick = "";
if(server_name == "<%=@config['server_name']%>"){
brick += "<%=@config['host_ip']%>";
@ -361,17 +340,12 @@
return;
}
}
console.log("Create volume..");
$.ajax({
method: "POST",
url: "/volume/create",
data: { volume_name : volume_name, volume_type : volume_type, num_of_brick : num_of_brick, bricks : bricks },
success : function(result){
console.log("volume create success");
}
})
});
</script>