0009-Feature-785-Add-lease-remove-lease-support-in-Sunsto.patch
src/sunstone/models/OpenNebulaJSON/VirtualNetworkJSON.rb | ||
---|---|---|
42 | 42 |
end |
43 | 43 | |
44 | 44 |
rc = case action_hash['perform'] |
45 |
when "addleases" then self.addleases(action_hash['params']) |
|
46 |
when "rmleases" then self.rmleases(action_hash['params']) |
|
45 | 47 |
when "publish" then self.publish |
46 | 48 |
when "unpublish" then self.unpublish |
47 | 49 |
when "chown" then self.chown(action_hash['params']) |
... | ... | |
52 | 54 |
end |
53 | 55 |
end |
54 | 56 | |
57 |
def addleases(params=Hash.new) |
|
58 |
super(params['ip'],params['mac']) |
|
59 |
end |
|
60 | ||
61 |
def rmleases(params=Hash.new) |
|
62 |
super(params['ip']) |
|
63 |
end |
|
64 | ||
55 | 65 |
def chown(params=Hash.new) |
56 | 66 |
super(params['owner_id'].to_i,params['group_id'].to_i) |
57 | 67 |
end |
src/sunstone/public/js/opennebula.js | ||
---|---|---|
834 | 834 |
}); |
835 | 835 |
}, |
836 | 836 | |
837 |
"addleases" : function(params){ |
|
838 |
var callback = params.success; |
|
839 |
var callback_error = params.error; |
|
840 |
var id = params.data.id; |
|
841 |
var obj = params.data.extra_param; |
|
842 | ||
843 |
var method = "addleases"; |
|
844 |
var action = OpenNebula.Helper.action(method,obj); |
|
845 |
var resource = OpenNebula.Network.resource; |
|
846 |
var request = OpenNebula.Helper.request(resource,method, [id,obj]); |
|
847 | ||
848 |
$.ajax({ |
|
849 |
url: "vnet/" + id + "/action", |
|
850 |
type: "POST", |
|
851 |
data: JSON.stringify(action), |
|
852 |
success: function() |
|
853 |
{ |
|
854 |
if (callback) |
|
855 |
{ |
|
856 |
callback(request); |
|
857 |
} |
|
858 |
}, |
|
859 |
error: function(response) |
|
860 |
{ |
|
861 |
if(callback_error) |
|
862 |
{ |
|
863 |
callback_error(request, OpenNebula.Error(response)); |
|
864 |
} |
|
865 |
} |
|
866 |
}); |
|
867 |
}, |
|
868 | ||
869 |
"rmleases" : function(params){ |
|
870 |
var callback = params.success; |
|
871 |
var callback_error = params.error; |
|
872 |
var id = params.data.id; |
|
873 |
var obj = params.data.extra_param; |
|
874 | ||
875 |
var method = "rmleases"; |
|
876 |
var action = OpenNebula.Helper.action(method,obj); |
|
877 |
var resource = OpenNebula.Network.resource; |
|
878 |
var request = OpenNebula.Helper.request(resource,method, [id,obj]); |
|
879 | ||
880 |
$.ajax({ |
|
881 |
url: "vnet/" + id + "/action", |
|
882 |
type: "POST", |
|
883 |
data: JSON.stringify(action), |
|
884 |
success: function() |
|
885 |
{ |
|
886 |
if (callback) |
|
887 |
{ |
|
888 |
callback(request); |
|
889 |
} |
|
890 |
}, |
|
891 |
error: function(response) |
|
892 |
{ |
|
893 |
if(callback_error) |
|
894 |
{ |
|
895 |
callback_error(request, OpenNebula.Error(response)); |
|
896 |
} |
|
897 |
} |
|
898 |
}); |
|
899 |
}, |
|
900 | ||
837 | 901 |
"chown" : function(params){ |
838 | 902 |
OpenNebula.Helper.chown(params,OpenNebula.Network.resource,"vnet"); |
839 | 903 |
}, |
src/sunstone/public/js/plugins/vnets-tab.js | ||
---|---|---|
124 | 124 |
var vnetworks_select=""; |
125 | 125 |
var dataTable_vNetworks; |
126 | 126 |
var $create_vn_dialog; |
127 |
var $lease_vn_dialog; |
|
127 | 128 | |
128 | 129 |
//Setup actions |
129 | 130 | |
... | ... | |
205 | 206 |
notify: true |
206 | 207 |
}, |
207 | 208 | |
209 |
"Network.addleases" : { |
|
210 |
type: "single", |
|
211 |
call: OpenNebula.Network.addleases, |
|
212 |
callback: vnShow, |
|
213 |
error: onError, |
|
214 |
notify: true |
|
215 |
}, |
|
216 | ||
217 |
"Network.rmleases" : { |
|
218 |
type: "single", |
|
219 |
call: OpenNebula.Network.rmleases, |
|
220 |
callback: vnShow, |
|
221 |
error: onError, |
|
222 |
notify: true |
|
223 |
}, |
|
224 | ||
225 |
"Network.modifyleases" : { |
|
226 |
type: "custom", |
|
227 |
call: function(action,obj){ |
|
228 |
nodes = getSelectedNodes(dataTable_vNetworks); |
|
229 |
$.each(nodes,function(){ |
|
230 |
Sunstone.runAction(action,this,obj); |
|
231 |
}); |
|
232 |
} |
|
233 |
}, |
|
234 | ||
235 |
"Network.addleases_dialog" : { |
|
236 |
type: "custom", |
|
237 |
call: popUpAddLeaseDialog |
|
238 |
}, |
|
239 | ||
240 |
"Network.rmleases_dialog" : { |
|
241 |
type: "custom", |
|
242 |
call: popUpRemoveLeaseDialog |
|
243 |
}, |
|
244 | ||
208 | 245 |
"Network.chown" : { |
209 | 246 |
type: "multiple", |
210 | 247 |
call: OpenNebula.Network.chown, |
... | ... | |
263 | 300 |
condition: mustBeAdmin, |
264 | 301 |
}, |
265 | 302 | |
303 |
"action_list" : { |
|
304 |
type: "select", |
|
305 |
actions: { |
|
306 |
"Network.addleases_dialog" : { |
|
307 |
type: "action", |
|
308 |
text: "Add lease" |
|
309 |
}, |
|
310 |
"Network.rmleases_dialog" : { |
|
311 |
type: "action", |
|
312 |
text: "Remove lease" |
|
313 |
} |
|
314 |
} |
|
315 |
}, |
|
316 | ||
266 | 317 |
"Network.delete" : { |
267 | 318 |
type: "action", |
268 | 319 |
text: "Delete" |
... | ... | |
585 | 636 |
$create_vn_dialog.dialog('open'); |
586 | 637 |
} |
587 | 638 | |
639 |
function setupAddRemoveLeaseDialog() { |
|
640 |
dialogs_context.append('<div title="Lease management" id="lease_vn_dialog"></div>'); |
|
641 |
$lease_vn_dialog = $('#lease_vn_dialog',dialogs_context) |
|
642 | ||
643 |
var dialog = $lease_vn_dialog; |
|
644 | ||
645 |
dialog.html( |
|
646 |
'<form id="lease_vn_form" action="javascript:alert(\'js error!\');">\ |
|
647 |
<fieldset>\ |
|
648 |
<div>Please specify:</div>\ |
|
649 |
<label for="add_lease_ip">Lease IP:</label>\ |
|
650 |
<input type="text" name="add_lease_ip" id="add_lease_ip" /><br />\ |
|
651 |
<label id="add_lease_mac_label" for="add_lease_mac">Lease MAC:</label>\ |
|
652 |
<input type="text" name="add_lease_mac" id="add_lease_mac" />\ |
|
653 |
</select>\ |
|
654 |
</fieldset>\ |
|
655 |
<fieldset>\ |
|
656 |
<div class="form_buttons">\ |
|
657 |
<button id="lease_vn_proceed" class="" value="">OK</button>\ |
|
658 |
<button class="confirm_cancel" value="">Cancel</button>\ |
|
659 |
</div>\ |
|
660 |
</fieldset>\ |
|
661 |
</form>' |
|
662 |
); |
|
663 | ||
664 |
//Prepare the jquery-ui dialog. Set style options here. |
|
665 |
dialog.dialog({ |
|
666 |
autoOpen: false, |
|
667 |
modal: true, |
|
668 |
width: 410, |
|
669 |
height: 220 |
|
670 |
}); |
|
671 | ||
672 |
$('button',dialog).button(); |
|
673 | ||
674 |
$('#lease_vn_form',dialog).submit(function(){ |
|
675 |
var ip = $('#add_lease_ip',this).val(); |
|
676 |
var mac = $('#add_lease_mac',this).val(); |
|
677 | ||
678 |
var obj = {ip: ip, mac: mac}; |
|
679 | ||
680 |
if (!mac.length) { delete obj.mac; }; |
|
681 | ||
682 |
Sunstone.runAction("Network.modifyleases", |
|
683 |
$('#lease_vn_proceed',this).val(), |
|
684 |
obj); |
|
685 |
$lease_vn_dialog.dialog('close'); |
|
686 |
return false; |
|
687 |
}); |
|
688 |
} |
|
689 | ||
690 |
function popUpAddLeaseDialog() { |
|
691 |
$lease_vn_dialog.dialog("option","title","Add lease"); |
|
692 |
$('#add_lease_mac',$lease_vn_dialog).show(); |
|
693 |
$('#add_lease_mac_label',$lease_vn_dialog).show(); |
|
694 |
$('#lease_vn_proceed',$lease_vn_dialog).val("Network.addleases"); |
|
695 |
$lease_vn_dialog.dialog("open"); |
|
696 |
} |
|
697 | ||
698 |
function popUpRemoveLeaseDialog() { |
|
699 |
$lease_vn_dialog.dialog("option","title","Remove lease"); |
|
700 |
$('#add_lease_mac',$lease_vn_dialog).hide(); |
|
701 |
$('#add_lease_mac_label',$lease_vn_dialog).hide(); |
|
702 |
$('#lease_vn_proceed',$lease_vn_dialog).val("Network.rmleases"); |
|
703 |
$lease_vn_dialog.dialog("open"); |
|
704 |
} |
|
705 | ||
588 | 706 |
function setVNetAutorefresh() { |
589 | 707 |
setInterval(function(){ |
590 | 708 |
var checked = $('input:checked',dataTable_vNetworks.fnGetNodes()); |
... | ... | |
620 | 738 |
Sunstone.runAction("Network.list"); |
621 | 739 | |
622 | 740 |
setupCreateVNetDialog(); |
741 |
setupAddRemoveLeaseDialog(); |
|
623 | 742 |
setVNetAutorefresh(); |
624 | 743 | |
625 | 744 |
initCheckAllBoxes(dataTable_vNetworks); |
src/sunstone/public/js/sunstone-util.js | ||
---|---|---|
184 | 184 |
} else { |
185 | 185 |
msg += action_text + ": " + args; |
186 | 186 |
}; |
187 |
if (extra_param) { |
|
187 |
if (extra_param && extra_param.constructor != Object) {
|
|
188 | 188 |
msg += " >> " + extra_param; |
189 | 189 |
}; |
190 | 190 | |
191 |
- |