[Kimchi-devel] [PATCH 3/4] support ticket in UI.
shaohef at linux.vnet.ibm.com
shaohef at linux.vnet.ibm.com
Tue May 20 15:27:18 UTC 2014
From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
Add a set ticket API in UI.
set a ticket for a VM before connect it.
also set a cookie to store this ticket.
Signed-off-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
Signed-off-by: Zhou Zheng Sheng <zhshzhou at linux.vnet.ibm.com>
---
ui/js/src/kimchi.api.js | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/ui/js/src/kimchi.api.js b/ui/js/src/kimchi.api.js
index 7d85fdf..1a34b3b 100644
--- a/ui/js/src/kimchi.api.js
+++ b/ui/js/src/kimchi.api.js
@@ -311,6 +311,19 @@ var kimchi = {
});
},
+ setTicketVM: function(vm, data, suc, err, sync) {
+ kimchi.requestJSON({
+ url : kimchi.url + 'vms/' + encodeURIComponent(vm) + '/setticket',
+ type : 'POST',
+ contentType : 'application/json',
+ dataType : 'json',
+ async : !sync,
+ data : JSON.stringify(data || {}),
+ success : suc,
+ error : err
+ });
+ },
+
vncToVM : function(vm) {
kimchi.requestJSON({
url : '/config',
@@ -318,16 +331,25 @@ var kimchi = {
dataType : 'json'
}).done(function(data, textStatus, xhr) {
proxy_port = data['display_proxy_port'];
+ var ticket;
+ kimchi.setTicketVM(vm, function(data) {
+ }, function(){
+ kimchi.message.error.code('KCHAPI6002E');
+ }, true);
kimchi.requestJSON({
url : "/vms/" + encodeURIComponent(vm) + "/connect",
type : "POST",
dataType : "json"
- }).done(function() {
+ }).done(function(data, textStatus, xhr) {
+ ticket = data['ticket'];
+ alert(ticket)
url = 'https://' + location.hostname + ':' + proxy_port;
url += "/console.html?url=vnc_auto.html&port=" + proxy_port;
url += "&path=?token=" + encodeURIComponent(vm);
url += "&kimchi=" + location.port;
url += '&encrypt=1';
+ kimchi.cookie.remove("ticketVM");
+ ticket != null && kimchi.cookie.set("ticketVM", ticket, 100);
window.open(url);
});
}).error(function() {
@@ -342,17 +364,26 @@ var kimchi = {
dataType : 'json'
}).done(function(data, textStatus, xhr) {
proxy_port = data['display_proxy_port'];
+ var ticket;
+ kimchi.setTicketVM(vm, function(data) {
+ }, function(){
+ kimchi.message.error.code('KCHAPI6002E');
+ }, true);
kimchi.requestJSON({
url : "/vms/" + encodeURIComponent(vm) + "/connect",
type : "POST",
dataType : "json"
}).done(function(data, textStatus, xhr) {
+ ticket = data['ticket'];
+ alert(ticket)
url = 'https://' + location.hostname + ':' + proxy_port;
url += "/console.html?url=spice.html&port=" + proxy_port;
url += "&listen=" + location.hostname;
url += "&token=" + encodeURIComponent(vm);
url += "&kimchi=" + location.port;
url += '&encrypt=1';
+ kimchi.cookie.remove("ticketVM");
+ ticket != null && kimchi.cookie.set("ticketVM", ticket, 100);
window.open(url);
});
}).error(function() {
--
1.9.0
More information about the Kimchi-devel
mailing list