Thankfully the bulk of this is neatly organized in a single directory
and can be removed, now that the bulk of the references to it have been
removed. The only complicated area is the tests, though effort has been
taken to minimise the diff here wherever possible.
Part of blueprint remove-cells-v1
Change-Id: Ib0e0b708c46e4330e51f8f8fdfbb02d45aaf0f44
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This patch adds two new fields to the RequestGroup ovo, requester_id and
provider_uuids. These two fields are needed to be able to hold and
communicate the mapping between the requester of the RequestGroup (e.g.
Neutron port) and the resource providers that are fulfilling the request
(e.g. network device RPs). If the RequestGroup represents the un-numbered
group then more than one RP can fulfill the request hence provider_uuids
is a list.
These new fields later in the series will be populated based on some
logic in the nova-conductor. However in the long run we expect that
these fields will be populated from the Placement allocation
candidates response.
blueprint bandwidth-resource-provider
Change-Id: Ic4735f92542e5e0ca36b459874dc486f6b360317
Transform the scheduler.select_destinations.start and
scheduler.select_destinations.end notifications to the
versioned notification framework.
Change-Id: I019e88fabd1d386c0d6395a7b1969315873485fd
Implements: bp versioned-notification-transformation-stein
The following notifications have been transformed to
the versioned notification framework.
* compute_task.build_instances
* compute_task.migrate_server
* compute_task.rebuild_server
Co-Authored-By: Takashi Natsume <natsume.takashi@lab.ntt.co.jp>
Change-Id: Ibfb0a6db5920d921c4fc7cabf3f4d2838ea7f421
Implements: bp versioned-notification-transformation-stein
Later patches will introduce a field in RequestSpec using this type as
the field type to store the resource requests coming from outside of
Nova like the bandwidth request coming from the Neutron ports.
This patch refactors the usage of placement.lib.RequestGroup. Until now
this class was used both by placement and nova services and they used
it only as a util class. However after this series the nova services
would like to use such a class via RPC which requires an OVO. This
patch makes sure that the new OVO is used by nova and the old plain
object is used by placement. This way placement is not forced to use
an OVO where no OVO functionality is required.
The minimum required version of oslo.versionedobjects is updated to
1.33.3 to include the fix for bug 1771804.
Change-Id: I46c97d2641d9685ef59771314665a17a5236097d
blueprint: bandwidth-resource-provider
The volume.usage notification has been transformed to
the versioned notification framework.
Change-Id: Ica45a95d26b602f9a149d42516baf4b84fc01cec
Implements: bp versioned-notification-transformation-stein
The libvirt.error notification has been transformed to
the versioned notification framework.
Co-Authored-By: Takashi Natsume <natsume.takashi@lab.ntt.co.jp>
Change-Id: I7d2287ce06d77c0afdef0ea8bdfb70f6c52d3c50
Implements: bp versioned-notification-transformation-stein
- This change adds a new VIFMigrateData object.
- This change adds a new vifs field to the
base LiveMigrateData object.
Later patches will populate this information during
live migration where nova uses the neutron port
binding extended API to bind the port on the destination
host, and store the destination host binding details
in this object to be leveraged on the source host for
things like defining vif details in the guest before
starting the live migration in the hypervisor.
Note that vif_details and profile must be stored as
serialized dicts similar to
LibvirtLiveMigrateBDMInfo.connection_info_json.
Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>
Part of blueprint neutron-new-port-binding-api
Change-Id: I174ae21f143016bb23b8043fa22465dac6c71314
The instance.live_migration_force_complete.start and
instance.live_migration_force_complete.end notifications have been
transformed to the versioned notification framework.
Co-Authored-By: Takashi Natsume <natsume.takashi@lab.ntt.co.jp>
Change-Id: I2e9a474457a7597a9febc111b13a67ddcf45f29e
Implements: bp versioned-notification-transformation-rocky
The aggregate.update_prop.start and aggregate.update_prop.end
notifications has been transformed to the versioned notification
framework.
Co-Authored-By: Takashi Natsume <natsume.takashi@lab.ntt.co.jp>
Change-Id: I37b19573b6d0e1131c446fcec361f01fa2560f82
Implements: bp versioned-notification-transformation-rocky
The instance.rebuild_scheduled notification has been transformed
to the versioned notification framework.
Co-Authored-By: Takashi Natsume <natsume.takashi@lab.ntt.co.jp>
Change-Id: I640562b8dd049ff5b6fea9286dc3082b9d837ed3
Implements: bp versioned-notification-transformation-rocky
We're going to need to consume information about the physnet and tunnel
status of networks. While we don't currently retrieve the latter, we do
retrieve the former but only for SR-IOV ports. Modify this so physnet
information is retrieved for any non-auto and non-null network requests.
This is stored in a new object, 'NetworkMetadata', which defines fields
for both physnets and tunneled networks. The latter attribute of this
object is unset for now, but this is not an issue as the value returned
from this function is not yet used.
Part of blueprint numa-aware-vswitches
Change-Id: I3dde6074d69e299f2844675ef968c8f949722395
The instance.unlock versioned notification is introduced in this
patch.
The unlock operation just changes the instance.locked to False in
API, we send the notification after db operation.
Change-Id: Ic750c33b4f88ba9c62ea8cba86915c6010f2cd6f
blueprint: trigger-notifications-when-lock-unlock-instances
The instance.lock versioned notification is introduced in this
patch.
The lock operation just changes the instance.locked to True in
API, we send the notification after db operation.
Change-Id: I03a13afa91c29f4fee25336cb82ea5c887eae2f8
blueprint: trigger-notifications-when-lock-unlock-instances
When using ImagePropertiesFilter with multiple architectures inside the
same deployment, it is possible that images can be uploaded without the
hw_architecture property defined.
This results in behaviour where the instance could be scheduled on any
type of hypervisor, resulting in an instance that will successfully
transition to ACTIVE but never properly run because of the difference
in architecture.
This makes the ImagePropertiesFilter problematic as most images are
generally uploaded without the architecture property set because
most documentation does not encourage doing that.
The addition of this flag allows to make using the filter possible
because it allows the deployer to assume a default architecture if
the user did not supply one (assuming it would be the most common
architecture in their deployment, such as x86_64) yet if the user
wants a more specific architecture, they can do it in their image
properties.
In order to avoid a circular import loop, the references to the
architecture field have been moved to a seperate module so that
they can be properly and cleaned imported inside configuration.
Change-Id: Ib52deb095028e93619b93ef9e5f70775df2a403a
Closes-Bug: #1769283
The aggregate.update_metadata.start and aggregate.update_metadata.end
notifications has been transformed to the versioned notification framework.
Co-Authored-By: Takashi Natsume <natsume.takashi@lab.ntt.co.jp>
Change-Id: Iab73b1351a50869620334f692aaefb566ba4ddf8
Implements: bp versioned-notification-transformation-rocky
Move the ResourceClass field to its own package, and move that package
to the top of the nova hierarchy since it is used by both nova tooling
and placement tooling but we don't want the placement version to have to
incorporate the nova code. Eventually we'd like to see an
os-resource-classes library, similar to os-traits, which will serve this
functionality. This is a step in that direction.
Changes in this patch are quite widespread, but are mostly only changes
of imports.
Change-Id: Iea182341f9419cb514a044f76864d6bec60a3683
The servergroup.addmember notification has been transformed
to the versioned notification framework.
Change-Id: I5291e453ba06f0f26c4928e4f7482c40e725a781
Implements: bp versioned-notification-transformation-rocky
Add the requisite policy field to 'InstacePCIRequests' for the
aforementioned feature. We also add a missing 'super' call for the
'obj_make_compatible' function of this object and add the missing unit
tests for same.
bp share-pci-between-numa-nodes
Change-Id: I9360fe299083045a4baf4a703d2b53b3eb30a558
This adds two things from the review of change
I955d98f9fd4b121f98e172e5ab30eb668a24006d:
1. A utility method to convert a service binary to a valid
notification source.
2. Adds a comment in the functional test reminding us that
we're using the latest microversion which is how we get
the service uuid from the REST API.
Change-Id: If67b4e07d608f323c1154f7f379d4eb849e46fbf
New notifications service.create and service.delete are introduced
with INFO priority and the payload of the notification is the serialized
form of the already existing Service versioned object. Service.create
notification will be emitted after the service is created (so the uuid
is available) and also send the service.delete notification after the
service is deleted.
Implement blueprint: service-create-destroy-notification
Change-Id: I955d98f9fd4b121f98e172e5ab30eb668a24006d
The keypair.import.start and keypair.import.end notifications
has been transformed to the versioned notification framework.
Change-Id: Icadc53d84fa021aae0f9ec2e18e9125de98e00f6
Implements: bp versioned-notification-transformation-queens
This patch is to add definition of resource class for VGPU and
VGPU_DISPLAY_HEAD, and there will be a series of patches to implement
the whole vgpu feature.
Partially Implements: blueprint add-support-for-vgpu
Change-Id: Ie363453eb9856b39e4ededc5e76807b3d165a1c5
Based on the following discussion:
http://lists.openstack.org/pipermail/openstack-dev/2017-September/121978.html
removeFixedIp action is deprecated, so instead of transforming its
notification, the instance.interface_detach versioned notification is
introduced.
Change-Id: Id4fa9eba59ef958ce514d9eb43346adf095b8b6e
Implements: blueprint versioned-notification-transformation-queens
Unregister the ResourceClass object because we do not need RPC
and versioning for the objects in nova.objects.resource_provider.
There are three primary changes here:
* unregistering the ResourceClass class
* where objects.ResourceClass is used, point directly to the
nova.objects.resource_provider package instead
* move the CUSTOM_NAMESPACE for resource class names to the the fields
object. This avoids an import loop and also makes more sense as
the field represents the name.
Partially-Implements: bp placement-deregister-objects
Change-Id: If537c786ea1a61383d82bad9a1de86c25c6cdbd2
The note explaining not to use the Nova versions of object field types
mentions that they will be removed, implying that the types listed
there, such as Dict and List should not be used. This update clarifies
that it is only the Nova versions of these fields that will be removed,
and that it is perfectly fine to use the o.vo field types.
Change-Id: I4ae2392e97f5cbe59e5c9c94c06c48a5d9c9d7d3
In the nova notification code path the nova service / binary names
are hardcoded. There is a possible confusion as the REST API uses
'nova-osapi_compute' while the notifications use 'nova-api'
as the name of the nova compute service binary.
To avoid possible mixing of the names a new enum is introduced
in the notification code path with the valid values form
notification perspective.
Change-Id: Ia85a8b6c34a3efaf3ef509aab316294b9c0c2fd1
Closes-Bug: #1696152
Following objects were added:
* CpuDiagnostics
* NicDiagnostics
* DiskDiagnostics
* MemoryDiagnostics
* Diagnostics
These objects will be used to transmit data via RPC.
They are based on same objects from nova.virt.diagnostics.
But old objects were used only for storing data.
During RPC transmission they are transform into dictionaries.
It is not right approach. We will have some problems
in case of adding new diagnostics fields.
New nova objects will allow us to have a good control of objects
versioning. It will force contributors to dump objects
version in case of any changes.
Also some new fields were added/modified to be in accordance with
updated diagnostic spec Ibcc2b98ae5b3731a9e5a1a3f28fc7ce4655c8ea6
blueprint: restore-vm-diagnostics
Change-Id: I6b15001e6f4e649df983071464ec8642bfc89b61
Add auto_disk_config field to InstancePayload based on
instance.auto_disk_config boolean value. If true, set it to
AUTO else MANUAL.
Implements: bp additional-notification-fields-for-searchlight
Change-Id: I18af99479562e2fe5e74e6e1252b804b074fee58
This change moves the ImageMetaProp's SignatureKeyType
tuple from a dynamically loaded object to a static tuple,
removing the dependency on the OpenSSL backend, which
can vary from OS to OS.
Depends-On: Idbda49587f3b62a0870d10817291205bde0e821e
Change-Id: Id5191e575191d3beaa24435e98a3852dddcfe3bf
Closes-Bug: #1681946
This change removes the signature_utils module
from Nova and uses the cursive library, which
contains an identical module.
Change-Id: I8179282a9d19f829aca0b5bd2775d855b3364c86
Depends-On: I7e5797661fee258bc0270b5f109704b591633519
Implements: blueprint signature-code-cleanup
Partial-Bug: #1528349
This patch implements the new get_inventory() virt driver API method for
the Ironic driver. Included is a new functional test of the interaction
between the placement API, the resource tracker, and the scheduler
reporting client with respect to the change in the Ironic resource
reporting behaviour that corresponds to this change.
Change-Id: I59be1cbedc99dcbb0ccde089a9f4737305176324
blueprint: custom-resource-classes-pike
Replace 'ListOfIntegersField' defined in nova
with 'ListOfIntegersField' defined in oslo.versionedobjects.
TrivialFix
Change-Id: Ia19e72503804c7e15599206105082826b8bc4ff2
The ADD_HOST and REMOVE_HOST enum value is added to the
NotificationAction enum in a single commit to avoid unnecessary
version bumps. Subsequent patches will use these enum values.
Implements: bp versioned-notification-transformation-ocata
Change-Id: I6bf92da1ce0ade8054a0cda8aa20b7c4aec9fe5f
Image property hw_watchdog_action can have a 'disabled'
value which is actually defined in the glance metadefs so
someone using Horizon might pick that. Also, it's the default
behavior in the libvirt driver. However, if you try to create
a server with that set the create fails in nova-api because
the enum field didn't have 'disabled' as a valid value.
This adds it, bumps the ImageMetaProps version and adds tests.
Change-Id: I4cec3e8b8527b909cc60893db26732a19263220d
Closes-Bug: #1633200