On 07/28/2016 03:54 PM, Socorro wrote:

JFYI....in testing the UI PCI patch from before, I had also encountered the Unknown Parameter error when clicking on the Filter dropdown.


Yeah, as I've said, one of the errors was already there. My point is that we
can't add a new one :)


On 07/28/2016 11:41 AM, Daniel Henrique Barboza wrote:
I'll send my feedback here but consider that it belongs to all
the 3 passthrough related patches you've sent.

Testing in my TP, with your patches, I had one extra error
when switching to the 'To Add' filter. In current master I have
the following error:



With your patch:



There's an extra error 'Node device undefined not found'.

Ideally you could get rid of all the errors in this window but at the
very least we can't increase them.


On 07/27/2016 11:00 PM, Jose Ricardo Ziviani wrote:
 - In order to validade if a given PCI is ok to be attached, a heavy
   verification has to be done. This commit add such verification
   in the task. This will give a faster response to the UI,
   improving the user experience.

Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com>
---
 model/vmhostdevs.py                 | 22 ++++++++++++++++-
 ui/js/src/kimchi.guest_edit_main.js | 47 ++++++++++++++++++++-----------------
 2 files changed, 47 insertions(+), 22 deletions(-)

diff --git a/model/vmhostdevs.py b/model/vmhostdevs.py
index 15b5bec..ef39de3 100644
--- a/model/vmhostdevs.py
+++ b/model/vmhostdevs.py
@@ -89,7 +89,6 @@ class VMHostDevsModel(object):

     def create(self, vmid, params):
         dev_name = params['name']
-        self._passthrough_device_validate(dev_name)
         dev_info = self.dev_model.lookup(dev_name)

         if dev_info['device_type'] == 'pci':
@@ -216,6 +215,13 @@ class VMHostDevsModel(object):
         dev_info = params['dev_info']
         lock = params['lock']

+        try:
+            self._passthrough_device_validate(dev_info['name'])
+
+        except InvalidParameter as e:
+            cb(e.message, False)
+            raise
+
         with lock:
             try:
                 self._validate_pci_passthrough_env()
@@ -455,6 +461,13 @@ class VMHostDevsModel(object):
         dev_info = params['dev_info']
         lock = params['lock']

+        try:
+            self._passthrough_device_validate(dev_info['name'])
+
+        except InvalidParameter as e:
+            cb(e.message, False)
+            raise
+
         with lock:
             dom = VMModel.get_vm(vmid, self.conn)

@@ -501,6 +514,13 @@ class VMHostDevsModel(object):
         dom = VMModel.get_vm(vmid, self.conn)
         lock = params['lock']

+        try:
+            self._passthrough_device_validate(dev_info['name'])
+
+        except InvalidParameter as e:
+            cb(e.message, False)
+            raise
+
         with lock:
             with RollbackContext() as rollback:
                 xmlstr = self._get_usb_device_xml(dev_info)
diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
index 507ae75..5d91b14 100644
--- a/ui/js/src/kimchi.guest_edit_main.js
+++ b/ui/js/src/kimchi.guest_edit_main.js
@@ -546,9 +546,11 @@ kimchi.guest_edit_main = function() {
                     wok.message.error(err.responseJSON.reason, '#alert-modal-container');
                 });
             } else {
+                $('html').addClass('in-progress');
+                $('#form-guest-edit-pci > .wok-mask').show();
+                var haveCompanions = false;
+                var pciTitle = i18n['KCHVMED6007M'] + '\n';
                 kimchi.getPCIDeviceCompanions(id, function(infoData) {
-                    var pciTitle = i18n['KCHVMED6007M'] + '\n';
-                    var haveCompanions = false;
                     for (var p = 0; p < infoData.length; p++) {
                         if (infoData[p].device_type === 'net') {
                             haveCompanions = true;
@@ -564,24 +566,19 @@ kimchi.guest_edit_main = function() {
                             pciTitle += ', ' + i18n['KCHVMED6006M'] + ' ' + infoData[p].model + '\n';
                         }
                     }
-                    var settings = {
-                        title: i18n['KCHVMED6012M'],
-                        content: pciTitle,
-                        confirm: i18n['KCHAPI6002M'],
-                        cancel: i18n['KCHAPI6003M']
-                    };
+                });
+                $('#form-guest-edit-pci > .wok-mask').fadeOut(300, function() {});
+                $('html').removeClass('in-progress');

-                    if (haveCompanions) {
-                        wok.confirm(settings, function() {
-                            kimchi.addVMPCIDevice(kimchi.selectedGuest, {
-                                name: id
-                            }, function(task) {
-                                getOngoingAttachingDevices(task);
-                            }, function(err) {
-                                wok.message.error(err.responseJSON.reason, '#alert-modal-container');
-                            });
-                        });
-                    } else {
+                var settings = {
+                    title: i18n['KCHVMED6012M'],
+                    content: pciTitle,
+                    confirm: i18n['KCHAPI6002M'],
+                    cancel: i18n['KCHAPI6003M']
+                };
+
+                if (haveCompanions) {
+                    wok.confirm(settings, function() {
                         kimchi.addVMPCIDevice(kimchi.selectedGuest, {
                             name: id
                         }, function(task) {
@@ -589,8 +586,16 @@ kimchi.guest_edit_main = function() {
                         }, function(err) {
                             wok.message.error(err.responseJSON.reason, '#alert-modal-container');
                         });
-                    }
-                });
+                    });
+                } else {
+                    kimchi.addVMPCIDevice(kimchi.selectedGuest, {
+                        name: id
+                    }, function(task) {
+                        getOngoingAttachingDevices(task);
+                    }, function(err) {
+                        wok.message.error(err.responseJSON.reason, '#alert-modal-container');
+                    });
+                }
             }
         });
     };



_______________________________________________
Kimchi-devel mailing list
Kimchi-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel



_______________________________________________
Kimchi-devel mailing list
Kimchi-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel