Moshe Levi [Tue, 13 Sep 2016 06:30:59 +0000 (09:30 +0300)]
pci: remove pci device from claims and allocations when freeing it
In drop_move_claim we call free pci device when we need to drop a
specific device from the src/dest node. This is done by calling
pci manager free_device. The current code just update the device
status to available in database but doesn't remove it from the
pci manager claims and allocations lists. This patch adds the
removal as well.
Ludovic Beliveau [Wed, 31 Aug 2016 18:27:43 +0000 (14:27 -0400)]
PCI: Fix PCI with fully qualified address
Specifying a PF passthrough device in the pci_passthrough_whitelist using its
fully qualified PCI address (no wildcard) causes the device to not be
properly loaded. The PCI device is then not available to be assigned to any
guest.
In this case, the hypervisor reports the PF device without a 'parent_addr'.
But in the PciAddress, match() is using it when doing the comparison to its
own address.
This commit changes the logic of the address matching method in PciDevSpec to
only try to match the address with a physical function device when a
'parent_addr' is reported by the hypervisor.
libvirt: fix incorrect host cpus giving to emulator threads when RT
Realtime guarantees in certain operating systems require that the
thread that is running the QEMU emulator is pinned to a physical CPU
that is *not* the same as any physical CPU that the vCPUs for a
realtime guest are pinned to. This patch ensures that the value of the
hw:cpu_realtime_mask flavor extraspec property is respected when
creating the libvirt configuration XML and sets emulatorpin values to
a physical CPU matching the hw:cpu_realtime_mask value.
Matt Riedemann [Tue, 1 Nov 2016 21:39:17 +0000 (17:39 -0400)]
api-ref: document the power_state enum values
The OS-EXT-STS:power_state attribute in a server GET response
is enum values which are meaningless unless you look at the
nova/compute/power_states.py code. This change adds a mapping
to the description on that field in the api-ref.
Note there are gaps in the sequence, those are for unused values
as seen in the nova.objects.fields.InstancePowerState class.
Matthew Booth [Tue, 1 Nov 2016 16:25:01 +0000 (16:25 +0000)]
libvirt: Pass Host instead of Driver to volume drivers
We were initialising libvirt volume drivers by passing the
LibvirtDriver object. However, this is only ever used to fetch the
Host. We update the interface to pass the Host instead. This is
cleaner, but also better represents the intent of the interface. They
should not be able to access arbitrary attributes of the LibvirtDriver
object.
dineshbhor [Tue, 1 Nov 2016 11:37:50 +0000 (17:07 +0530)]
Remove unreachable code
If the host list from database is empty compute_node_get_all_by_host()
db api itself raises ComputeHostNotFound exception. There is no need to
check for empty list and raise ComputeHostNotFound exception explicitly.
Matt Riedemann [Wed, 26 Oct 2016 10:23:42 +0000 (06:23 -0400)]
Make build_requests.instance MediumText
The build_requests.instance column is a serialized
instance object, and the instances.user_data column
is MediumText, so the build_requests.instance column
itself needs to be at least MediumText in size for MySQL.
The instance.resume.start and instance.resume.end notifications
are transformed to the versioned framework using the generic
InstanceActionNotification and InstanceActionPayload class.
Implements: bp versioned-notification-transformation-ocata
Diana Clarke [Mon, 24 Oct 2016 17:23:14 +0000 (13:23 -0400)]
Fix exception raised in exception wrapper
In some cases the exception wrapper can't find the module name for a
traceback (like lxml c extensions), resulting in an exception from
inspect.getmodule(). Just set the module name to 'unknown' in these
cases.
Dan Smith [Sun, 23 Oct 2016 06:20:49 +0000 (23:20 -0700)]
Add missing compat routine for Usage object
We added a v1.1 to Usage without a compat routine to go with it. It's not really
a big deal as we're not sending this over RPC anywhere yet that I know of, but
we should have this for the sake of completeness.
Balazs Gibizer [Fri, 14 Oct 2016 14:52:17 +0000 (16:52 +0200)]
Pre-add instance actions to avoid merge conflicts
NotificationAction enum values for instance actions are added in a
single commit to avoid merge conflicts when it is added one by one
during the notification transformation.
Also the notification samples added as comments for the same reason.
Change-Id: Idfe41af8718bf5e81ea1608f4c6d00d7cf60cd13
Implements: bp versioned-notification-transformation-ocata
tests: Adding functional tests to cover VM creation with sriov
Adding HostPciSRIOVDevicesInfo class to fakelibvirt module
in order to dynamically generate host's SR-IOV devices info.
Adding functional tests to cover the creation of instances with
attached sriov devices (virtual and physical).
Verifying that VFs cannot be allocated when it's parent PF is allocated
and vice-versa, when a child VF is allocated, the parent PF should not
be available.
Moshe Levi [Tue, 26 Jul 2016 21:07:44 +0000 (00:07 +0300)]
pci: in free_device(), compare by device id and not reference
The resource tracker might have a reference to a PCI device and fails
to free it because some of its attributes doesn't match any devices in the
PciDevTracker (for example the status of the device changed).
For this reason only match on device id when freeing a PCI device.
Matt Riedemann [Tue, 18 Oct 2016 12:47:20 +0000 (08:47 -0400)]
Update docs for serial console support
There are two changes here:
1. The serial_console config option group help text is
updated to point out that hyper-v also supports serial
console access. This is based on virt drivers that
implement the 'get_serial_console' method.
2. The hypervisor feature matrix is updated to point out
that the vmware driver does not support getting serial
console output. This is based on virt drivers that
implement the 'get_console_output' method.
Hans Lindgren [Tue, 18 Oct 2016 09:41:59 +0000 (11:41 +0200)]
Cleanup before removal of conductor local apis
Some old cruft from the when conductor proxying was being used to
make db calls are left in various places in unit tests. None of this
is of use anymore and needs to be removed before the conductor local
apis and related 'use_local' flag can be removed.
Fixes volume related unit tests.
Fixes non-sortable None items.
Fixes __getattr__ infinite recursion.
Fixes is_dict_like method. Dicts in python 3.4 do not
have the 'has_key' method.