CA-137238: Revert "CA-90424: Does not migrate VDI if it is already migrating."

The added assert meant that we couldn't make use of the queuing
functionality of VM.with_vm_operation. After the change which this
commit reverts, if one of a VM's disks was undergoing a VDI.pool_migrate
then attempting to VDI.pool_migrate another of the VM's disks would fail
immediately with OTHER_OPERATION_IN_PROGRESS.

After reverting this commit, the second VDI.pool_migrate gets queued up
behind the first.

This reverts commit 8598ea5b2dcda479a0c01ee081a3f7f999091087.

Signed-off-by: John Else <john.else@citrix.com>
Merge pull request #1785 from johnelse/ca-137238-xs64bit

CA-137238: Revert "CA-90424: Does not migrate VDI if it is already migrating."
Don't filter out quotes before parsing lspci output

Instead take them into account when doing the sscanf.

Signed-off-by: John Else <john.else@citrix.com>
Rename field pci.id to pci.pci_id

Signed-off-by: John Else <john.else@citrix.com>
Decompose Xapi_pci_helpers.pci into a collection of int64/string pairs

Signed-off-by: John Else <john.else@citrix.com>
Add subsystem IDs to PCI objects

PCI objects now have four new fields:

* subsystem_vendor_id
* subsystem_vendor_name
* subsystem_device_id
* subsystem_device_name

If a device doesn't implement these IDs then the fields will be left as
empty strings in the database.

If a device implements the IDs but the IDs are not present in pci.ids,
then the names will be set to "Unknown (xxxx)" where xxxx is the
corresponding ID.

Signed-off-by: John Else <john.else@citrix.com>
Log the new pci fields after test failures

Signed-off-by: John Else <john.else@citrix.com>
Add more tests of lspci subsystem ID parsing

Signed-off-by: John Else <john.else@citrix.com>
Typo fix in comment

Signed-off-by: John Else <john.else@citrix.com>
Read physical subsystem device from vgpu config files

If the value of plugin0.pdev_id in the config file is of the form

"0x1234"

then store None as the physical subsystem device ID.

If the value is of the form

"0x1234:0x5678"

then store (Some 0x5678) as the physical subsystem device ID.

In both cases 0x1234 will be stored as the physical device ID.

Signed-off-by: John Else <john.else@citrix.com>
Refactor print_vgpu_conf into two functions

Signed-off-by: John Else <john.else@citrix.com>
Print the new psubdev_id on test failure

Signed-off-by: John Else <john.else@citrix.com>
Add tests of the vgpu config parser

Includes a couple of example config files.

Signed-off-by: John Else <john.else@citrix.com>
Log physical subsystem device ID of relevant VGPU types

Signed-off-by: John Else <john.else@citrix.com>