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

feature #1712: Add SCHED_DS_REQUIREMENTS and SCHED_DS_RANK to Sunstone

This commit is contained in:
Daniel Molina 2013-09-30 18:56:37 +02:00
parent a1ff8bf9d7
commit a44190b16e

View File

@ -3397,8 +3397,10 @@ function setupCreateTemplateDialog(){
'<dd class="active"><a href="#placement">'+tr("Placement")+'</a></dd>'+
'<dd><a href="#policy">'+tr("Policy")+'</a></dd>'+
'</dl>'+
'<ul class="tabs-content">'+
'<ul class="tabs-content row">'+
'<li class="requirements wizard_internal_tab active" id="placementTab">'+
'<fieldset>'+
'<legend>'+tr("Host Requirements")+'</legend>'+
'<div class="row">'+
'<div class="three columns push-three">'+
'<input type="radio" id="hosts_req" name="req_select" value="host_select" checked> '+tr("Select Hosts ")+
@ -3408,7 +3410,7 @@ function setupCreateTemplateDialog(){
'</div>'+
'</div>'+
'<hr>'+
'<div id="req_type" class="host_select row">'+
'<div id="req_type" class="host_select ">'+
'<div class="row collapse ">'+
'<div class="seven columns">' +
'<button id="refresh_hosts_placement" type="button" class="refresh button small radius secondary"><i class="icon-refresh" /></button>' +
@ -3445,7 +3447,7 @@ function setupCreateTemplateDialog(){
'</div>'+
'<br>'+
'</div>'+
'<div id="req_type" class="cluster_select hidden row">'+
'<div id="req_type" class="cluster_select hidden">'+
'<div class="row collapse ">'+
'<div class="seven columns">' +
'<button id="refresh_clusters_placement" type="button" class="refresh button small radius secondary"><i class="icon-refresh" /></button>' +
@ -3475,10 +3477,10 @@ function setupCreateTemplateDialog(){
'</div>'+
'<br>'+
'</div>'+
'<hr>'+
'<br>'+
'<div class="row vm_param">'+
'<div class="two columns">'+
'<label class="inline right" for="SCHED_REQUIREMENTS">'+tr("Requirements")+':</label>'+
'<label class="inline right" for="SCHED_REQUIREMENTS">'+tr("Expression")+':</label>'+
'</div>'+
'<div class="nine columns">'+
'<input type="text" id="SCHED_REQUIREMENTS" name="requirements" />'+
@ -3487,8 +3489,26 @@ function setupCreateTemplateDialog(){
'<div class="tip">'+tr("Boolean expression that rules out provisioning hosts from list of machines suitable to run this VM")+'.</div>'+
'</div>'+
'</div>'+
'</fieldset>'+
'<br>'+
'<fieldset>'+
'<legend>'+tr("Datastore Requirements")+'</legend>'+
'<div class="row vm_param">'+
'<div class="two columns">'+
'<label class="inline right" for="SCHED_DS_REQUIREMENTS">'+tr("Expression")+':</label>'+
'</div>'+
'<div class="nine columns">'+
'<input type="text" id="SCHED_DS_REQUIREMENTS" name="requirements" />'+
'</div>'+
'<div class="one columns">'+
'<div class="tip">'+tr("")+'.</div>'+
'</div>'+
'</div>'+
'</fieldset>'+
'</li>'+
'<li id="policyTab" class="wizard_internal_tab">'+
'<fieldset class="host_rank">'+
'<legend>'+tr("Host Rank")+'</legend>'+
'<div class="row">'+
'<div class="two columns push-two">'+
'<input type="radio" id="packingRadio" name="rank_select" value="RUNNING_VMS"> '+tr("Packing")+
@ -3512,7 +3532,7 @@ function setupCreateTemplateDialog(){
'<hr>'+
'<div class="row vm_param">'+
'<div class="two columns">'+
'<label class="inline right" for="SCHED_RANK">'+tr("Rank")+':</label>'+
'<label class="inline right" for="SCHED_RANK">'+tr("Expression")+':</label>'+
'</div>'+
'<div class="nine columns">'+
'<input type="text" id="SCHED_RANK" name="RANK" />'+
@ -3521,6 +3541,37 @@ function setupCreateTemplateDialog(){
'<div class="tip">'+tr("This field sets which attribute will be used to sort the suitable hosts for this VM")+'.</div>'+
'</div>'+
'</div>'+
'</fieldset>'+
'<br>'+
'<fieldset class="ds_rank">'+
'<legend>'+tr("Datastore Rank")+'</legend>'+
'<div class="row">'+
'<div class="four columns push-two">'+
'<input type="radio" id="packingRadio" name="ds_rank_select" value="-FREE_MB"> '+tr("Packing")+
'</div>'+
'<div class="two columns">'+
'<div class="tip">'+tr("Tries to optimize storage usage by selecting the DS with less free space")+'</div>'+
'</div>'+
'<div class="four columns push-two">'+
'<input type="radio" id="stripingRadio" name="ds_rank_select" value="FREE_MB"> '+tr("Stripping")+
'</div>'+
'<div class="two columns">'+
'<div class="tip">'+tr("Striping. Tries to optimize I/O by distributing the VMs across datastores.")+'</div>'+
'</div>'+
'</div>'+
'<hr>'+
'<div class="row vm_param">'+
'<div class="two columns">'+
'<label class="inline right" for="SCHED_DS_RANK">'+tr("Expression")+':</label>'+
'</div>'+
'<div class="nine columns">'+
'<input type="text" id="SCHED_DS_RANK" name="RANK" />'+
'</div>'+
'<div class="one columns">'+
'<div class="tip">'+tr("This field sets which attribute will be used to sort the suitable datastores for this VM")+'.</div>'+
'</div>'+
'</div>'+
'</fieldset>'+
'</li>'+
'</ul>'+
'</form>'+
@ -3705,10 +3756,14 @@ function setupCreateTemplateDialog(){
}
});
$("input[name='rank_select']").change(function(){
$("input[name='rank_select']", $(".host_rank")).change(function(){
$("#SCHED_RANK", dialog).val(this.value);
});
$("input[name='ds_rank_select']", $(".ds_rank")).change(function(){
$("#SCHED_DS_RANK", dialog).val(this.value);
});
var generate_requirements = function() {
var req_string=[];
@ -4773,21 +4828,31 @@ function fillTemplatePopUp(request, response){
delete template.SCHED_REQUIREMENTS;
}
var ds_req = template.SCHED_DS_REQUIREMENTS;
var ds_req_section = $('li#schedulingTab', $create_template_dialog);
if (ds_req) {
ds_req = escapeDoubleQuotes(ds_req);
$('input#SCHED_DS_REQUIREMENTS', req_section).val(ds_req);
delete template.SCHED_DS_REQUIREMENTS;
}
var rank = template.SCHED_RANK;
if (rank) {
var striping_regexp = /-RUNNING_VMS/;
var packing_regexp = /RUNNING_VMS/;
var loadaware_regexp = /FREECPU/;
var striping_regexp = /^-RUNNING_VMS$/;
var packing_regexp = /^RUNNING_VMS$/;
var loadaware_regexp = /^FREECPU$/;
if (striping_regexp.test(rank)) {
$('input#stripingRadio', req_section).click()
$('input[name="rank_select"]#stripingRadio', req_section).click()
}
else if (packing_regexp.test(rank)) {
$('input#packingRadio', req_section).click()
$('input[name="rank_select"]#packingRadio', req_section).click()
}
else if (loadaware_regexp.test(rank)) {
$('input#loadawareRadio', req_section).click()
$('input[name="rank_select"]#loadawareRadio', req_section).click()
}
$('input#SCHED_RANK', req_section).val(rank);
@ -4795,6 +4860,24 @@ function fillTemplatePopUp(request, response){
delete template.SCHED_RANK;
}
var ds_rank = template.SCHED_DS_RANK;
if (ds_rank) {
var striping_regexp = /^FREE_MB$/;
var packing_regexp = /^-FREE_MB$/;
if (striping_regexp.test(ds_rank)) {
$('input[name="ds_rank_select"]#stripingRadio', req_section).click()
}
else if (packing_regexp.test(ds_rank)) {
$('input[name="ds_rank_select"]#packingRadio', req_section).click()
}
$('input#SCHED_DS_RANK', req_section).val(ds_rank);
delete template.SCHED_DS_RANK;
}
//
// RAW
//