<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/nova.git/nova/objects/request_spec.py, branch 23.2.2</title>
<subtitle>opendev.org: openstack/nova.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/'/>
<entry>
<title>Migrate RequestSpec.numa_topology to use pcpuset</title>
<updated>2022-02-04T14:32:45+00:00</updated>
<author>
<name>Balazs Gibizer</name>
<email>balazs.gibizer@est.tech</email>
</author>
<published>2021-12-02T11:52:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=dad566614c92841aba65d3f0a69e0c580457cb46'/>
<id>dad566614c92841aba65d3f0a69e0c580457cb46</id>
<content type='text'>
When the InstanceNUMATopology OVO has changed in
I901fbd7df00e45196395ff4c69e7b8aa3359edf6 to separately track
pcpus from vcpus a data migration was added. This data migration is
triggered when the InstanceNUMATopology object is loaded from the
instance_extra table. However that patch is missed the fact that the
InstanceNUMATopology object can be loaded from the request_spec table as
well. So InstanceNUMATopology object in RequestSpec are not migrated.
This could lead to errors in the scheduler when such RequestSpec object
is used for scheduling (e.g. during a migration of a pre Victoria
instance with cpu pinning)

This patch adds the missing data migration.

Change-Id: I812d720555bdf008c83cae3d81541a37bd99e594
Closes-Bug: #1952941
(cherry picked from commit e853bb57181721725a89656b3cb3058636630a6e)
(cherry picked from commit 7f6ec8cf546cf8f437ee94bb2308447427f54ada)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the InstanceNUMATopology OVO has changed in
I901fbd7df00e45196395ff4c69e7b8aa3359edf6 to separately track
pcpus from vcpus a data migration was added. This data migration is
triggered when the InstanceNUMATopology object is loaded from the
instance_extra table. However that patch is missed the fact that the
InstanceNUMATopology object can be loaded from the request_spec table as
well. So InstanceNUMATopology object in RequestSpec are not migrated.
This could lead to errors in the scheduler when such RequestSpec object
is used for scheduling (e.g. during a migration of a pre Victoria
instance with cpu pinning)

This patch adds the missing data migration.

Change-Id: I812d720555bdf008c83cae3d81541a37bd99e594
Closes-Bug: #1952941
(cherry picked from commit e853bb57181721725a89656b3cb3058636630a6e)
(cherry picked from commit 7f6ec8cf546cf8f437ee94bb2308447427f54ada)
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename ensure_network_metadata to amend requested_networks</title>
<updated>2021-02-03T17:21:34+00:00</updated>
<author>
<name>Sylvain Bauza</name>
<email>sbauza@redhat.com</email>
</author>
<published>2021-02-03T14:19:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=9e96f64126d0098b26a16da549860db2d6ac8b34'/>
<id>9e96f64126d0098b26a16da549860db2d6ac8b34</id>
<content type='text'>
As we don't persist (fortunately) the requested networks when booting an
instance, we need a way to implement the value of the RequestSpec field
during any create or move operation so we would know in a later change
which port or network was asked.

Partially-Implements: blueprint routed-networks-scheduling

Change-Id: I0c7e32f6088a8fc1625a0655af824dee2df4a12c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As we don't persist (fortunately) the requested networks when booting an
instance, we need a way to implement the value of the RequestSpec field
during any create or move operation so we would know in a later change
which port or network was asked.

Partially-Implements: blueprint routed-networks-scheduling

Change-Id: I0c7e32f6088a8fc1625a0655af824dee2df4a12c
</pre>
</div>
</content>
</entry>
<entry>
<title>Add requested_networks field to RequestSpec object</title>
<updated>2021-02-03T14:14:18+00:00</updated>
<author>
<name>Sylvain Bauza</name>
<email>sbauza@redhat.com</email>
</author>
<published>2020-09-01T15:59:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=edaaac6aaf7aea3c5ff3c57fcac70b7a5ac76ff2'/>
<id>edaaac6aaf7aea3c5ff3c57fcac70b7a5ac76ff2</id>
<content type='text'>
Since we want to support routed networks in Nova, we need to provide
the needed networks to the scheduler, hence the new field which
won't be persisted.

Change-Id: I03fcf9d64a750e3e8a71c1862d3e2ceb84aaffd2
Related-Implements: blueprint routed-networks-scheduling
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since we want to support routed networks in Nova, we need to provide
the needed networks to the scheduler, hence the new field which
won't be persisted.

Change-Id: I03fcf9d64a750e3e8a71c1862d3e2ceb84aaffd2
Related-Implements: blueprint routed-networks-scheduling
</pre>
</div>
</content>
</entry>
<entry>
<title>Move query param generation to RequestGroup o.vo</title>
<updated>2021-01-18T14:40:41+00:00</updated>
<author>
<name>Balazs Gibizer</name>
<email>balazs.gibizer@est.tech</email>
</author>
<published>2020-10-08T13:54:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=160e229f85535493fbd4490003800ac2c3f3db80'/>
<id>160e229f85535493fbd4490003800ac2c3f3db80</id>
<content type='text'>
This patch moves the allocation candidate query generation code from the
scheduler utils to the RequestGroup o.vo as it clearly only depends on
that object. The original utils code was predated the patch that added
the RequestGroup o.vo

There is small change in logic. The mapping of the unnamed group, that
does not have a specific requester, to the empty query prefix is now
moved into the query param generation code.

Change-Id: I2fb5b6a8fdbb6c13554e0608b71a02843d12d484
blueprint: support-interface-attach-with-qos-ports
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch moves the allocation candidate query generation code from the
scheduler utils to the RequestGroup o.vo as it clearly only depends on
that object. The original utils code was predated the patch that added
the RequestGroup o.vo

There is small change in logic. The mapping of the unnamed group, that
does not have a specific requester, to the empty query prefix is now
moved into the query param generation code.

Change-Id: I2fb5b6a8fdbb6c13554e0608b71a02843d12d484
blueprint: support-interface-attach-with-qos-ports
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove six.binary_type/integer_types/string_types</title>
<updated>2020-12-13T11:25:14+00:00</updated>
<author>
<name>Takashi Natsume</name>
<email>takanattie@gmail.com</email>
</author>
<published>2020-05-14T12:04:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=07462dd0050fbfea89e517759b312b67a368e279'/>
<id>07462dd0050fbfea89e517759b312b67a368e279</id>
<content type='text'>
Replace the following items with Python 3 style code.

- six.binary_type
- six.integer_types
- six.string_types

Subsequent patches will replace other six usages.

Change-Id: Ide65686cf02463045f5c32771ca949802b19636f
Implements: blueprint six-removal
Signed-off-by: Takashi Natsume &lt;takanattie@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the following items with Python 3 style code.

- six.binary_type
- six.integer_types
- six.string_types

Subsequent patches will replace other six usages.

Change-Id: Ide65686cf02463045f5c32771ca949802b19636f
Implements: blueprint six-removal
Signed-off-by: Takashi Natsume &lt;takanattie@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Add NovaEphemeralObject class for non-persistent objects"</title>
<updated>2020-01-19T23:18:59+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.opendev.org</email>
</author>
<published>2020-01-19T23:18:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=9a2c6fc0244ba898e768a2f377534da968750d47'/>
<id>9a2c6fc0244ba898e768a2f377534da968750d47</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "nova-net: Add TODOs to remove security group-related objects"</title>
<updated>2020-01-15T02:12:18+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.opendev.org</email>
</author>
<published>2020-01-15T02:12:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=5ca95375c10070b7641b32b07e7e548e15068629'/>
<id>5ca95375c10070b7641b32b07e7e548e15068629</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add NovaEphemeralObject class for non-persistent objects</title>
<updated>2020-01-14T16:13:18+00:00</updated>
<author>
<name>Dan Smith</name>
<email>dansmith@redhat.com</email>
</author>
<published>2020-01-10T21:55:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=c2ba0ef21e60474d48733b4869b54327bcb413e3'/>
<id>c2ba0ef21e60474d48733b4869b54327bcb413e3</id>
<content type='text'>
This adds a NovaEphemeralObject class, which inherits from NovaObject
and also from EphemeralObject. The latter is proposed against o.vo,
and is copied here for expediency.

In the past, all of our objects were representations of rows of columns
in the database and thus it was very important to not default fields
in objects when working on a record remotely that may have values in
the database for those fields which we did not wish to overwrite. Lately,
we have a lot of objects that are used purely over RPC, or which are stored
in the database as a blob and for which the explicit defaulting nature
is annoying. This is an attempt to classify such objects in a single
hierarchy and allow them to behave differently.

We already have some objects in the tree which do their own defaulting
in __init__, against what should be our policy. Some of those can be
made to inherit from the new class and continue, while others need to
be fixed. This patch adds a test to ensure that things comply with the
policy henceforth. Objects that had to be changed in the same patch as
the test are fixed here.

Specific object changes are:

- Diagnostics: Not persisted, can be converted to ephemeral
- InstanceNUMACell: Stored as a blob, can be converted to ephemeral.
                    Removes a test that asserted no dirty fields left
                    after init, but for no reason and not compatible
                    with the base class.
- PCIDevice: Persited row-based, so cannot be ephemeral. Converts it
             to set default for the one field on lazy-load
- Quotas, QuotasNoOp: Stored row-based, so cannot be ephemeral.
                      Converts it to set default on lazy-load,
                      and persists the resetting of dirty fields for
                      compatibility with what is there (even though it
                      is probably not needed).
- RequestGroup: Not persisted, can be converted to ephemeral.
- Service: Does defaulting in init, but specifically because we *want*
           to always overwrite what is in the database on save. This is
           part of how service version works to always know the version of
           compute (et al) services once they start up.

For the objects that were converted to Ephemeral, some hashes changed but
only because defaults were added, so no need to bump the version, just update
the hash. The hash checker is trying to make sure we bump the version when
necessary, but in this case, a default does not affect RPC or object behavior
in an incompatible way, so no bump is needed.

Change-Id: Ica9f217d0318fc7c2db4bcdea12d00aad749c30c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a NovaEphemeralObject class, which inherits from NovaObject
and also from EphemeralObject. The latter is proposed against o.vo,
and is copied here for expediency.

In the past, all of our objects were representations of rows of columns
in the database and thus it was very important to not default fields
in objects when working on a record remotely that may have values in
the database for those fields which we did not wish to overwrite. Lately,
we have a lot of objects that are used purely over RPC, or which are stored
in the database as a blob and for which the explicit defaulting nature
is annoying. This is an attempt to classify such objects in a single
hierarchy and allow them to behave differently.

We already have some objects in the tree which do their own defaulting
in __init__, against what should be our policy. Some of those can be
made to inherit from the new class and continue, while others need to
be fixed. This patch adds a test to ensure that things comply with the
policy henceforth. Objects that had to be changed in the same patch as
the test are fixed here.

Specific object changes are:

- Diagnostics: Not persisted, can be converted to ephemeral
- InstanceNUMACell: Stored as a blob, can be converted to ephemeral.
                    Removes a test that asserted no dirty fields left
                    after init, but for no reason and not compatible
                    with the base class.
- PCIDevice: Persited row-based, so cannot be ephemeral. Converts it
             to set default for the one field on lazy-load
- Quotas, QuotasNoOp: Stored row-based, so cannot be ephemeral.
                      Converts it to set default on lazy-load,
                      and persists the resetting of dirty fields for
                      compatibility with what is there (even though it
                      is probably not needed).
- RequestGroup: Not persisted, can be converted to ephemeral.
- Service: Does defaulting in init, but specifically because we *want*
           to always overwrite what is in the database on save. This is
           part of how service version works to always know the version of
           compute (et al) services once they start up.

For the objects that were converted to Ephemeral, some hashes changed but
only because defaults were added, so no need to bump the version, just update
the hash. The hash checker is trying to make sure we bump the version when
necessary, but in this case, a default does not affect RPC or object behavior
in an incompatible way, so no bump is needed.

Change-Id: Ica9f217d0318fc7c2db4bcdea12d00aad749c30c
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Use Placement 1.35 (root_required)"</title>
<updated>2020-01-10T02:44:45+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.opendev.org</email>
</author>
<published>2020-01-10T02:44:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=3d3d6d52506cd4fc9f8daec7260edeb64c0bcff0'/>
<id>3d3d6d52506cd4fc9f8daec7260edeb64c0bcff0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nova-net: Add TODOs to remove security group-related objects</title>
<updated>2020-01-08T13:54:12+00:00</updated>
<author>
<name>Stephen Finucane</name>
<email>sfinucan@redhat.com</email>
</author>
<published>2019-11-26T17:35:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=5957ca666b4fd8e712d25c40c344a94e24c386a5'/>
<id>5957ca666b4fd8e712d25c40c344a94e24c386a5</id>
<content type='text'>
These only applied to nova-network and can be safely removed now.

Change-Id: I2bcc579ae047a65233855b8f976d5d2c99ff7bae
Signed-off-by: Stephen Finucane &lt;sfinucan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These only applied to nova-network and can be safely removed now.

Change-Id: I2bcc579ae047a65233855b8f976d5d2c99ff7bae
Signed-off-by: Stephen Finucane &lt;sfinucan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
