The dev_type represent the type of the host device.
Valid values are ethernet and generic.
Ethernet is <interface type='hostdev'>
Generic is <hostdev mode='subsystem' type='pci'>
The Generic type is usefully for device which is not
traditional ethernet NIC device e.g. InfiniBand
Change-Id: I3d1b782ba730ab74c627e6b8028150f9e8d15ecd
This patch fixes the PciAddress regex according to
lspci man http://linux.die.net/man/8/lspci
and adds a unit test for it. Eventually this should
be moved to oslo_versionedobjects
Change-Id: I0813601dc76274c88b1ab68c82e786bdea93be67
The subnet object fields are currently all just untyped
strings. These should all be formally defined objects
or fields with type checking
Change-Id: Id6ee8b1e89bf3e292406b2c7a4b6f8686e8e0da7
The current VIF object model is just a direct representation
of the ill-defined nova.network.model.VIF class. Many of the
attributes are only relevant for certain VIF types. Other
attributes are just indirectly representing different plugin
schemes (eg OVS hybrid vs direct should be done as two
plugins, not a boolean on the VIF object).
Some of the attributes are generic metadata related to the
network port that can be associated with multiple VIF types
regardless of how the port is connected to the guest.
This refactors the VIF class so that there is a base class
defining the common data, and then subclasses providing the
VIF type specific data. There are initially 5 core VIF backend
class defined, which are sufficient to cover all the current
usage in the libvirt driver and some usage in other drivers.
It is expected that a couple more VIF types may be added for
vmware/hyper, when those drivers are later converted. The
generic network port profile data is represented by the new
VIFPortProfileBase class and its subclasses.
The various property/methods which were defined are also
removed as most of this is logic that belongs in the
corresponding vif plugin implementation, not on the core
data model.
Change-Id: Id286f85cd5fe7ca80f02d95f6380979a0d920ef6