From: Wen Wang <wenwang(a)linux.vnet.ibm.com>
V1 -> V2:
1) Changed the API name to "getPCIDeviceCompanion".
2) Changed for a more specific way of detecting the related devices.
3) Added the "Affected devices" to the tip with aligned format.
4) tip will when the pointer hang over any section of the affected line.
This patch provide the way that shows more specific PCI device
information by hanging the mouse on top of device name.
Signed-off-by: Wen Wang <wenwang(a)linux.vnet.ibm.com>
---
ui/js/src/kimchi.api.js | 14 ++++++++++++++
ui/js/src/kimchi.guest_edit_main.js | 25 +++++++++++++++++++++++++
2 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/ui/js/src/kimchi.api.js b/ui/js/src/kimchi.api.js
index 8a6e416..ebf826b 100644
--- a/ui/js/src/kimchi.api.js
+++ b/ui/js/src/kimchi.api.js
@@ -1129,6 +1129,20 @@ var kimchi = {
});
},
+ getPCIDeviceCompanions : function(pcidev, suc, err) {
+ kimchi.requestJSON({
+ url : kimchi.url + 'host/devices?_passthrough_affected_by=' +
pcidev,
+ type : 'GET',
+ contentType : 'application/json',
+ dataType : 'json',
+ resend : true,
+ success : suc,
+ error : err ? err : function(data) {
+ kimchi.message.error(data.responseJSON.reason);
+ }
+ });
+ },
+
getISCSITargets : function(server, port, suc, err) {
server = encodeURIComponent(server);
port = port ? '&_server_port='+encodeURIComponent(port) :
'';
diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
index 030e112..2a9c1ab 100644
--- a/ui/js/src/kimchi.guest_edit_main.js
+++ b/ui/js/src/kimchi.guest_edit_main.js
@@ -407,6 +407,31 @@ kimchi.guest_edit_main = function() {
});
}
});
+ kimchi.getPCIDeviceCompanions(hostPCIs[i].name,
function(infoData) {
+ var pciTitle = "";
+ if(infoData.length>0) {
+ for(var p=0; p<infoData.length; p++) {
+ if(infoData[p].device_type === "net") {
+ pciTitle += "Affected devices:\n";
+ pciTitle += infoData[p].name + "\n";
+ pciTitle += " " + "interface:
" + infoData[p].interface;
+ pciTitle += ", address: " +
infoData[p].address;
+ pciTitle += ", link_type: " +
infoData[p].link_type + "\n";
+ } else if(infoData[p].device_type ===
"storage") {
+ pciTitle += "Affected devices:\n";
+ pciTitle += infoData[p].name + "\n";
+ pciTitle += " " + "block:
" + infoData[p].block;
+ pciTitle += ", drive_type: " +
infoData[p].drive_type;
+ pciTitle += ", model: " +
infoData[p].model + "\n";
+ }
+ }
+ for(var q=0; q<infoData.length; q++) {
+ pciTitle === "" || $(".name",
"#" + infoData[q].parent).attr("title", pciTitle);
+ pciTitle === "" || $(".product",
"#" + infoData[q].parent).attr("title", pciTitle);
+ pciTitle === "" || $(".vendor",
"#" + infoData[q].parent).attr("title", pciTitle);
+ }
+ }
+ });
}
});
});
--
1.7.1