Improved search for your XenServer infrastructure

Here is some news about a nice improvement coming in the next version of Xen Orchestra: an improved search bar.

Our previous search system worked for filtering in live VM/host/SR/pool name, IP address, tags and whatever inside those objects.

But what about advanced requests? We wanted to answer those issues:

  • which VMs are currently running?
  • do I have any SR currently disconnected from a host?
  • which host is halted?
  • display all halted VM with "production" label
  • avoid lag on large infrastructure

It's now possible, and it's dead easy thank to search queries and the * special char. E.g *vm will display only VMs, *halted will only display objects in "Halted" state. The complete list of queries is accessible with the web interface (see below).

Assist for filter possibilities

Having a "format" for requests in not very hard to do. But helping the user to find them is really important. That's why we added a sub-bar in the search/flat view:

So far, it contains to menus: "Types" and "States"

By checking those boxes, it will fill the search field on the same time. Ticking "VM" and "Running" will do:

*running *vm 

Real examples

Find a disconnected SR:

Damn! My "iSCSI SSD" SR isn't connected to all its XenServer hosts! But which one? See below!

Find all disconnected objects:

You got your answer! "lab1" lost its connection to "iSCSI SSD".

Do I have any production VM halted? (step by step, using a "production" tag)

  1. All VMs: *vm
  2. All VMs which are "Halted": *vm *halted
  3. All VMs which are "Halted" with "Production": *vm *halted production

Result:

Damn! This VM shouldn't be halted!

Remove the lag

Because it filtered after every keystroke, people using XO on large infrastructure had some issues. Thus, we decided to add a 400 ms waiting time after each stroke before filtering. And it's far better now!

What's next?

This feature will be available in 4.11 (next week).

We'll probably improve the system by adding more menus (e.g tags to search only on tags, or something to target a attribute rather than the whole object).