1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

Merge branch 'master' into feature-924

This commit is contained in:
Ruben S. Montero 2012-03-01 19:21:28 +01:00
commit e87b785212
18 changed files with 132 additions and 74 deletions

View File

@ -132,12 +132,19 @@ div#login input#login_btn:hover {
}
.error_message {
width: 400px;
margin-left: auto;
margin-right: auto;
display: none;
position: relative;
top: 80px;
font-family: Arial, Helvetica, sans-serif;
color:red;
font-size:1.6em;
font-size:1.0em;
}
#login_spinner {
left: 44px;
position: relative;
top: 2px;
}
#label_remember {

View File

@ -24,14 +24,20 @@ function auth_error(req, error){
switch (status){
case 401:
$("#one_error").hide();
$("#auth_error").fadeIn("slow");
$("#error_box").text("Invalid username or password");
break;
case 500:
$("#auth_error").hide();
$("#one_error").fadeIn("slow");
$("#error_box").text("OpenNebula is not running or there was a server exception. Please check the server logs.");
break;
case 0:
$("#error_box").text("No answer from server. Is it running?");
break;
default:
$("#error_box").text("Unexpected error. Status "+status+". Check the server logs.");
};
$("#error_box").fadeIn("slow");
$("#login_spinner").hide();
}
function authenticate(){
@ -40,6 +46,9 @@ function authenticate(){
password = Crypto.SHA1(password);
var remember = $("#check_remember").is(":checked");
$("#error_box").fadeOut("slow");
$("#login_spinner").show();
var obj = { data: {username: username,
password: password},
remember: remember,
@ -70,4 +79,5 @@ $(document).ready(function(){
};
$("input#username.box").focus();
$("#login_spinner").hide();
});

View File

@ -189,7 +189,7 @@ var OCCI = {
$.ajax({
url: resource.toLowerCase(),
type: "GET",
data: {timeout: timeout},
data: {timeout: timeout, verbose: true},
dataType: "xml ONEjson",
success: function(response){
var res = {};

View File

@ -153,13 +153,6 @@ var vm_actions = {
error: onError
},
"VM.showstate" : {
type: "single",
call: OCCI.VM.show,
callback: updateVMStateCB,
error: onError
},
"VM.refresh" : {
type: "custom",
call : function (){
@ -178,7 +171,7 @@ var vm_actions = {
"VM.suspend" : {
type: "multiple",
call: OCCI.VM.suspend,
callback: updateVMStateCB,
callback: updateVMachineElement,
elements: vmElements,
error: onError,
notify: true
@ -187,7 +180,7 @@ var vm_actions = {
"VM.resume" : {
type: "multiple",
call: OCCI.VM.resume,
callback: updateVMStateCB,
callback: updateVMachineElement,
elements: vmElements,
error: onError,
notify: true
@ -196,7 +189,7 @@ var vm_actions = {
"VM.stop" : {
type: "multiple",
call: OCCI.VM.stop,
callback: updateVMStateCB,
callback: updateVMachineElement,
elements: vmElements,
error: onError,
notify: true
@ -214,7 +207,7 @@ var vm_actions = {
"VM.shutdown" : {
type: "multiple",
call: OCCI.VM.shutdown,
callback: updateVMStateCB,
callback: updateVMachineElement,
elements: vmElements,
error: onError,
notify: true
@ -223,7 +216,7 @@ var vm_actions = {
"VM.cancel" : {
type: "multiple",
call: OCCI.VM.cancel,
callback: updateVMStateCB,
callback: updateVMachineElement,
elements: vmElements,
error: onError,
notify: true
@ -240,7 +233,7 @@ var vm_actions = {
"VM.saveas" : {
type: "single",
call: OCCI.VM.saveas,
callback: updateVMStateCB,
callback: updateVMachineElement,
error:onError
},
@ -259,7 +252,7 @@ var vm_actions = {
};
var options = "";
for (var i = 0; i<response.length; i++){
var type = response[i].INSTANCE_TYPE.NAME;
var type = response[i].INSTANCE_TYPE.name;
options += '<option value="'+type+'">'+type+'</option>';
};
$('#dialog select#instance_type').html(options);
@ -423,7 +416,7 @@ function vMachineElementArray(vm_json){
return [
'<input class="check_item" type="checkbox" id="vm_'+id+'" name="selected_items" value="'+id+'"/>',
id,
name
VMStateBulletStr(vm_json) + name
];
}
@ -473,16 +466,15 @@ function updateVMachinesView(request, vmachine_list){
$.each(vmachine_list,function(){
el_array = vMachineElementArray(this);
vmachine_list_array.push(el_array);
Sunstone.runAction("VM.showstate",el_array[1]);
});
updateView(vmachine_list_array,dataTable_vMachines);
updateDashboard("vms",vmachine_list);
};
function updateVMStateCB(request,vm){
function VMStateBulletStr(vm){
var vm_state = vm.COMPUTE.STATE;
var state_html = vm_state;
var state_html = "";
switch (vm_state) {
case "INIT":
case "PENDING":
@ -499,13 +491,8 @@ function updateVMStateCB(request,vm){
state_html = '<img style="display:inline-block;margin-right:5px;" src="images/red_bullet.png" alt="'+vm_state+'" title="'+vm_state+'"/>';
break;
};
var tag = 'input#vm_'+vm.COMPUTE.ID;
var array = vMachineElementArray(vm);
array[2] = state_html + array[2];
updateSingleElement(array,dataTable_vMachines,tag);
};
return state_html;
}
// Refreshes the information panel for a VM
function updateVMInfo(request,vm){

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>OpenNebula Self-Service Login</title>
<link rel="stylesheet" type="text/css" href="css/login.css" />
<link rel="stylesheet" type="text/css" href="vendor/jQueryUI/jquery-ui-1.8.16.custom.css" />
<!-- Vendor Libraries -->
<script type="text/javascript" src="vendor/jQuery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="vendor/crypto-js/2.3.0-crypto-sha1.js"></script>
@ -28,11 +28,7 @@
<div id="logo_selfservice">
</div>
<div id="auth_error" class="error_message">
Invalid username or password
</div>
<div id="one_error" class="error_message">
OpenNebula is not running
<div id="error_box" class="error_message ui-state-error ui-corner-all">
</div>
<form id="login_form">
@ -46,7 +42,7 @@
<input type="checkbox" id="check_remember" />
<label id="label_remember" for="check_remember">Remember me</label>
<input type="submit" id="login_btn" value="" />
<img src="images/ajax-loader.gif" alt="retrieving" id="login_spinner" />
</div>
</div>
</form>

View File

@ -106,7 +106,7 @@ conf = YAML::load(File.read(CONF_FILE))
rc, data = do_action("virsh -c #{@uri} --readonly nodeinfo")
if rc == false
exit info
exit data
end
data.split(/\n/).each{|line|

View File

@ -23,6 +23,7 @@
######################
:databasetype: sqlite
#:databaseserver: dbuser:dbpassword@localhost
#:htaccess: /var/www/.htaccess
:dbdebug: no

View File

@ -28,12 +28,20 @@ module OZones
zone.vdcs.all.each{|vdc|
htaccess << "RewriteRule ^#{vdc.NAME} " +
"#{zone.ENDPOINT} [P]\n"
if zone.SUNSENDPOINT != nil
htaccess << "RewriteRule ^sunstone_#{vdc.NAME}/(.+) " +
"#{zone.SUNSENDPOINT}/$1 [P]\n"
htaccess << "RewriteRule ^sunstone_#{vdc.NAME} " +
"#{zone.SUNSENDPOINT}/ [P]\n"
end
if zone.SELFENDPOINT != nil
htaccess << "RewriteRule ^self_#{vdc.NAME}/(.+) " +
"#{zone.SELFENDPOINT}/$1 [P]\n"
htaccess << "RewriteRule ^self_#{vdc.NAME} " +
"#{zone.SELFENDPOINT}/ [P]\n"
end
}
}

View File

@ -30,6 +30,7 @@ module OZones
property :ONEPASS, String, :required => true
property :ENDPOINT, String, :required => true
property :SUNSENDPOINT, String
property :SELFENDPOINT, String
has n, :vdcs

View File

@ -57,7 +57,20 @@ config=YAML::load(config_data)
db_type = config[:databasetype]
db_url = db_type + "://" + VAR_LOCATION + "/ozones.db"
case db_type
when "sqlite" then
db_url = db_type + "://" + VAR_LOCATION + "/ozones.db"
when "mysql","postgres" then
if config[:databaseserver].nil?
warn "DB server needed for this type of DB backend"
exit -1
end
db_url = db_type + "://" + config[:databaseserver] + "/ozones"
else
warn "DB type #{db_type} not recognized"
exit -1
end
##############################################################################
# DB bootstrapping

View File

@ -133,12 +133,19 @@ div#login input#login_btn:hover {
}
.error_message {
width: 400px;
margin-left: auto;
margin-right: auto;
display: none;
position: relative;
top: 80px;
font-family: Arial, Helvetica, sans-serif;
color:red;
font-size:1.6em;
font-size:1.0em;
}
#login_spinner {
left: 44px;
position: relative;
top: 2px;
}
#label_remember {

View File

@ -23,15 +23,21 @@ function auth_error(req, error){
var status = error.error.http_status;
switch (status){
case 401:
$("#one_error").hide();
$("#auth_error").fadeIn("slow");
break;
case 500:
$("#auth_error").hide();
$("#one_error").fadeIn("slow");
break;
}
case 401:
$("#error_box").text("Invalid username or password");
break;
case 500:
$("#error_box").text("OpenNebula is not running or there was a server exception. Please check the server logs.");
break;
case 0:
$("#error_box").text("No answer from server. Is it running?");
break;
default:
$("#error_box").text("Unexpected error. Status "+status+". Check the server logs.");
};
$("#error_box").fadeIn("slow");
$("#login_spinner").hide();
}
function authenticate(){
@ -39,6 +45,9 @@ function authenticate(){
var password = $("#password").val();
var remember = $("#check_remember").is(":checked");
$("#error_box").fadeOut("slow");
$("#login_spinner").show();
oZones.Auth.login({ data: {username: username
, password: password}
, remember: remember
@ -61,4 +70,5 @@ $(document).ready(function(){
};
$("input#username.box").focus();
$("#login_spinner").hide();
});

View File

@ -516,6 +516,10 @@ function setupCreateVDCDialog(){
function openCreateVDCDialog(){
var dialog = $('div#create_vdc_dialog')
if (!zones_select){
notifyError(tr("No zones defined: You need to create at least 1 zone before creating an VDC"));
return false;
};
$('select#zoneid',dialog).html(zones_select);
$('select#zoneid',dialog).trigger("change");
$('#vdc_available_hosts_list',dialog).empty();

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>OpenNebula oZones Login</title>
<link rel="stylesheet" type="text/css" href="css/login.css" />
<link rel="stylesheet" type="text/css" href="vendor/jQueryUI/jquery-ui-1.8.16.custom.css" />
<!-- Vendor Libraries -->
<script type="text/javascript" src="vendor/jQuery/jquery-1.7.1.min.js"></script>
<!-- End Vendor Libraries -->
@ -24,11 +24,7 @@
<div id="logo_sunstone">
</div>
<div id="auth_error" class="error_message">
Invalid username or password
</div>
<div id="one_error" class="error_message">
OpenNebula is not running
<div id="error_box" class="error_message ui-state-error ui-corner-all">
</div>
<form id="login_form">
@ -42,6 +38,7 @@
<input type="checkbox" id="check_remember">
<label id="label_remember" for="check_remember">Remember me</label>
<input type="submit" id="login_btn" value="" />
<img src="images/ajax-loader.gif" alt="retrieving" id="login_spinner" />
</div>
</div>
</form>

View File

@ -134,10 +134,17 @@ div#login input#login_btn:hover {
.error_message {
display: none;
position: relative;
width:400px;
margin-left: auto;
margin-right: auto;
top: 80px;
font-family: Arial, Helvetica, sans-serif;
color:red;
font-size:1.6em;
font-size:1.0em;
}
#login_spinner {
left: 44px;
position: relative;
top: 2px;
}
#label_remember {

View File

@ -24,14 +24,19 @@ function auth_error(req, error){
switch (status){
case 401:
$("#one_error").hide();
$("#auth_error").fadeIn("slow");
$("#error_box").text("Invalid username or password");
break;
case 500:
$("#auth_error").hide();
$("#one_error").fadeIn("slow");
$("#error_box").text("OpenNebula is not running or there was a server exception. Please check the server logs.");
break;
case 0:
$("#error_box").text("No answer from server. Is it running?");
break;
default:
$("#error_box").text("Unexpected error. Status "+status+". Check the server logs.");
};
$("#error_box").fadeIn("slow");
$("#login_spinner").hide();
}
function authenticate(){
@ -39,6 +44,9 @@ function authenticate(){
var password = $("#password").val();
var remember = $("#check_remember").is(":checked");
$("#error_box").fadeOut("slow");
$("#login_spinner").show();
OpenNebula.Auth.login({ data: {username: username
, password: password}
, remember: remember
@ -61,4 +69,5 @@ $(document).ready(function(){
};
$("input#username.box").focus();
$("#login_spinner").hide();
});

View File

@ -131,9 +131,11 @@ var user_actions = {
"User.passwd" : {
type: "multiple",
call: OpenNebula.User.passwd,
//nocallback
callback: function(req,res){
notifyMessage(tr("Change password successful"));
},
elements: userElements,
error: onError
error: onError,
},
"User.chgrp" : {
type: "multiple",
@ -492,6 +494,7 @@ function popUpCreateUserDialog(){
function popUpUpdatePasswordDialog(){
$('#new_password',$update_pw_dialog).val("");
$update_pw_dialog.dialog('open');
}

View File

@ -3,6 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>OpenNebula Sunstone Login</title>
<link rel="stylesheet" type="text/css" href="css/login.css" />
<link rel="stylesheet" type="text/css" href="vendor/jQueryUI/jquery-ui-1.8.16.custom.css" />
<!-- Vendor Libraries -->
<script type="text/javascript" src="vendor/jQuery/jquery-1.7.1.min.js"></script>
@ -25,11 +26,7 @@
<div id="logo_sunstone">
</div>
<div id="auth_error" class="error_message">
Invalid username or password
</div>
<div id="one_error" class="error_message">
OpenNebula is not running
<div id="error_box" class="error_message ui-state-error ui-corner-all">
</div>
<form id="login_form">
@ -43,6 +40,7 @@
<input type="checkbox" id="check_remember" />
<label id="label_remember" for="check_remember">Remember me</label>
<input type="submit" id="login_btn" value="" />
<img src="images/ajax-loader.gif" alt="retrieving" id="login_spinner" />
</div>
</div>