Hi René, sorry for my very late reply, and thanks to Oved for helping with this 
issue.

As Oved suggested, you should always check 'arguments' before accessing 
entities from it.

The reason why VirtualMachineSelectionChange event stopped working for your 
plugin after you switch away from VM tab and into VM tab again, is because when 
you switch again into VM tab, VM table selection is cleared and 
VirtualMachineSelectionChange is triggered with empty 'arguments'.

Since your plugin does 'arguments[0].name' regardless of 'arguments.length', 
this throws uncaught exception, and WebAdmin puts your plugin out of service as 
per the standard plugin lifecycle. In future, I'm planning to add new event 
handler function (e.g. 'Error') that will allow your plugin to detect such 
uncaught exceptions, but for now you have to ensure your plugin doesn't throw 
such exceptions. (Maybe you can use JavaScript console to detect such errors 
that happen within the plugin iframe.)

> Btw, do you know if I can get the name of a host instead the hostname/ip?

This is a bug, it's fixed by http://gerrit.ovirt.org/#/c/11420/ so that 
'vm.name' returns the value of name column, and 'vm.hostname' returns the 
hostname/IP.

Regards,
Vojtech


----- Original Message -----
From: "René Koch" <[email protected]>
To: "Oved Ourfalli" <[email protected]>
Cc: [email protected]
Sent: Tuesday, January 22, 2013 10:51:58 PM
Subject: Re: [Users] UI Plugin issue when switching main tabs


Thanks a lot for your input - it was really helpfu!

I added a check for argument.length and now it's working as expected.
The working code is:

    VirtualMachineSelectionChange: function() {
      if (arguments.length == 1) {
        var vmName = arguments[0].name;
alert(vmName);
        // Reload VM Sub Tab
        api.setTabContentUrl('vms-monitoring', conf.url + '?subtab=vms&name=' + 
encodeURIComponent(vmName));
      }
    }


Btw, do you know if I can get the name of a host instead the hostname/ip?
arguments[0].name; gives me the IP address (value of webadmin column 
"hostname/ip") but not the name (column "name") - (I always use ips instead of 
dns names for hypervisors)...
 

Thanks,
René


 
-----Original message-----
> From:Oved Ourfalli <[email protected]>
> Sent: Tuesday 22nd January 2013 19:34
> To: René Koch <[email protected]>
> Cc: [email protected]
> Subject: Re: [Users] UI Plugin issue when switching main tabs
> 
> Found your bug (I think):
> You don't check in your code whether there is a selection (if 
> (arguments.length == 1) for example, if you want to act only when one is 
> selected).
> 
> You'll probably want to do similar logic to the Foreman plugin, setting the 
> sub-tab content URL only in case one VM is selected, and setting the URL 
> properly.
> 
> The fact that your alert won't show is that you call arguments[0].name, and 
> it fails when nothing is selected... and I guess that's the case when you 
> switch tabs.
> Didn't check it out, but please check it out... and let me know what you 
> found :-)
> 
> Oved
> 
> ----- Original Message -----
> > From: "René Koch" <[email protected]>
> > To: "Oved Ourfalli" <[email protected]>
> > Cc: [email protected]
> > Sent: Monday, January 21, 2013 6:05:47 PM
> > Subject: Re: [Users] UI Plugin issue when switching main tabs
> > 
> > When switching back to vm main tab changing the selection doesn't
> > work.
> > 
> > No matter which VM I select the VirtualMachineSelectionChange
> > function isn't called again (as my debug alert window doesn't
> > appear), but the last vm I selected before switching to another main
> > tab is cached in variable vmName...
> > It works again after restarting engine-service.
> > 
> > I just tested your foreman plugin and it seems that this one is
> > working as expected.
> > 
> 
> > 
> > Regards,
> > René
> >  
> >  
> > -----Original message-----
> > > From:Oved Ourfalli <[email protected]>
> > > Sent: Monday 21st January 2013 14:56
> > > To: René Koch <[email protected]>
> > > Cc: [email protected]; Vojtech Szocs <[email protected]>
> > > Subject: Re: [Users] UI Plugin issue when switching main tabs
> > > 
> > > I'll let Vojtech (cc-ed) to give a more accurate answer, but,
> > > trying to narrow down the issue: when you switch to a different
> > > main tab and then back to the VM main tab, and change the
> > > selection in there, does it work?
> > > (Trying to understand if the problem is only when doing the switch,
> > > and it works afterwards, or not).
> > > 
> > > Thank you,
> > > Oved
> > > ----- Original Message -----
> > > > From: "René Koch" <[email protected]>
> > > > To: [email protected]
> > > > Sent: Sunday, January 20, 2013 11:07:13 PM
> > > > Subject: [Users] UI Plugin issue when switching main tabs
> > > > 
> > > > Hi,
> > > > 
> > > > I'm working on an UI plugin to integrate Nagios/Icinga into oVirt
> > > > Engine and made some progress, but have an issue when switching
> > > > the
> > > > main tabs.
> > > > 
> > > > I use VirtualMachineSelectionChange to create URL with name of vm
> > > > (and HostSelectionChange for hosts).
> > > > Name is used in my backend code (Perl) for fetching monitoring
> > > > status.
> > > > 
> > > > Here's the code of VirtualMachineSelectionChange:
> > > > 
> > > >     VirtualMachineSelectionChange: function() {
> > > >         var vmName = arguments[0].name;
> > > >         alert(vmName);
> > > >         // Reload VM Sub Tab
> > > >         api.setTabContentUrl('vms-monitoring', conf.url +
> > > >         '?subtab=vms&name=' + encodeURIComponent(vmName));
> > > >     }
> > > > 
> > > > Everything works fine as long as I stay in Virtual Machine main
> > > > tab.
> > > > When switching to e.g. Disks and back to Virtual Machines again
> > > > the
> > > > JavaScript code of start.html isn't processed anymore (or cached
> > > > (?)
> > > > as the my generated URL with last vm name will still be sent back
> > > > to
> > > > my Perl backend) - added alert() to test this.
> > > > 
> > > > oVirt Engine version:
> > > > ovirt-engine-3.2.0-1.20130118.gitd102d6f.fc18.noarch
> > > > 
> > > > Full code of start.hml: http://pastebin.com/iEY6dA6F
> > > > 
> > > > 
> > > > Thanks a lot for your help,
> > > > René
> > > > 
> > > > 
> > > > _______________________________________________
> > > > Users mailing list
> > > > [email protected]
> > > > http://lists.ovirt.org/mailman/listinfo/users
> > > > 
> > > 
> > _______________________________________________
> > Users mailing list
> > [email protected]
> > http://lists.ovirt.org/mailman/listinfo/users
> > 
> 
_______________________________________________
Users mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/users

Reply via email to