Commit Graph

128 Commits

Author SHA1 Message Date
Ghanshyam Mann 4c339c10e3 Drop lower-constraints.txt and its testing
As discussed in TC PTG[1] and TC resolution[2], we are
dropping the lower-constraints.txt file and its testing.
We will keep lower bounds in the requirements.txt file but
with a note that these are not tested lower bounds and we
try our best to keep them updated.

[1] https://etherpad.opendev.org/p/tc-zed-ptg#L326
[2] https://governance.openstack.org/tc/resolutions/20220414-drop-lower-constraints.html#proposal

Change-Id: Ifbc383f6d4c858189cee55e67b4d4274d9c3358a
2022-04-29 20:56:30 -05:00
Takashi Kajinami ca8e4dad7f Sync rootwrap.conf from oslo.rootwrap
The current rootwrap.conf file is outdated and doesn't include some
parameters. This change updates the content to make it consistent with
the latest example file in oslo.rootwrap.

Change-Id: I989b7da5ff6afae0c1a476e01c3df07870be5f74
2022-04-05 12:14:24 +01:00
John Garbutt 3b69f959a8 Add logic to enforce local api and db limits
Local API and DB limits are limits on resources that are counted either
as an API request parameter (example: server metadata items) or as
records in the database (example: server key pairs).

Future patches will make use of this logic, and actually enforce the
limits. This patch just adds the infrastructure to allow for the
enforcement of the limits.

We are moving all existing quotas to be managed via Keystone's
unified limits.

To stop confusion between injected_file_path_length and
injected_file_path_bytes, the unified limit in Keystone will use the
latter name to match the name used the API.

These local limits are all about preventing excessive load on the API
and database and have little to do with resource usage. These limits
are represented by keystone registered limits only, accordingly.

Local limits include things that just limit items in an API request:
* metadata_items
* injected_files
* injected_file_content_bytes
* injected_file_path_bytes

Local limits also include things that are stored in the database:
* key_pairs
* server_groups
* server_group_members

Some resource names have been changed to prepend a prefix of "server_"
in order to disambiguate them from other potential unified limits in
keystone:

* metadata_items => server_metadata_items
* injected_files => server_injected_files
* injected_file_content_bytes => server_injected_file_content_bytes
* injected_file_path_bytes => server_injected_file_path_bytes
* key_pairs => server_key_pairs

Note that each of the above are counted via a different scope. This new
code ensures that key_pairs are counted per user, server_groups are
counted per project and server_group_members are counted per
server_group.

Note: Previously server_group_member were counted per user inside each
server_group, which has proved very confusing, as adding more users into
a project increases the maximum size of allowed for a server_group.

blueprint unified-limits-nova

Change-Id: I0b6f4d29aaee1d71541a95cbecfd0708aac325d2
2022-02-24 16:21:02 +00:00
yuval brave b5e2128f38 Lightbits LightOS driver
This commit introduces the LightOS driver for nova. LightOS is a
software-defined disaggregated clustered storage solution running on
commodity servers with commodity SSDs. It it developed by Lightbits
Labs (https://www.lightbitslabs.com) and is actively developed and
maintained. LightOS is proprietary but the openstack drivers are
licensed under Apache v2.0.

The Cinder driver for LightOS currently supports the following
functionality:

Create volume
Delete volume
Attach volume
Detach volume
Create image from volume
create volume from image
Live migration
Volume replication
Thin provisioning
Multi-attach
Extend volume
Create snapshot
Delete snapshot
Create volume from snapshot
Create volume from volume (clone)

This driver has been developed and has been in use for a couple of
years by Lightbits and our clients. We have tested it extensively
internally with multiple openstack versions, including Queens, Rocky,
Stein, and Train. We have also tested it with master (19.1 xena) and we
are working to extend testing to cover additional openstack releases.

We are glad to join the openstack community and hope to get your
feedback and comments on this driver, and if it is acceptable, to see
it merged into the tree.

Note: the patch depends on os-brick 5.2.0. That version also increased
the lower constraints of several dependencies, thus needs nova to
increase those as well in requirements.txt, lower-constraints.txt and
setup.cfg.

Depends-On: I2e86fa84049053b7c75421d33ad1a1af459ef4e0
Signed-off-by: Yuval Brave  yuval@lightbitslabs.com
Change-Id: Ic314b26695d9681d31a18adcec0794c2ff41fe71
2022-02-22 16:17:29 +01:00
Zuul bacbf7a493 Merge "requirements: Bump minimum testtools to 2.5.0" 2022-02-09 21:09:12 +00:00
Dmitrii Shcherbakov 6294c144e7 Bump os-traits to 2.7.0
The new version contains changes needed by the multi-architecture
support and off-path SmartNIC DPU support code.

Needed-By: I168d3ccc914f25a3d4255c9b319ee6b91a2f66e2
Needed-By: Ia070a29186c6123cf51e1b17373c2dc69676ae7c
Change-Id: Ic1179f3e5e2c1aeb069972f21edffe5b003eb525
2022-02-09 01:23:27 +03:00
Stephen Finucane ff1dbb5eb4 requirements: Bump minimum testtools to 2.5.0
This release removed the use of unittest2 in favour of the stdlib
unittest module. unittest2 hasn't been maintained in years and has some
quirky behavior differences to stdlib unittest. By bumping to 2.5.0, we
avoid anyone having to use this.

Change-Id: Ic3b257c799fe1669933c13f9571208740cd1cd1a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-01-28 12:27:06 +00:00
Stephen Finucane 0396bba4cc requirements: Remove os-xenapi
We no longer have a Xen driver. This is an unnecessary dependency.

Change-Id: Ic298fa9ac4a8935ce4e0dc17d8842d399d4eb808
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-01-28 12:26:53 +00:00
Stephen Finucane eb728e877a db: Final cleanups
Some things that were missed in previous patches and are thrown together
here:

- Add alembic as an explicit dependency (we were getting it transitively
  from oslo.db). We also bump the sqlalchemy dependency to a 1.4.x
  release, which is the minimum supported by our chosen version of
  alembic (more on this below)
- Remove tooling related to the old migrations
- Fix the tox whitelisting of the flaky MySQL tests

On the SQLAlchemy front, we opt for 1.4.13. Technically alembic should
support anything from 1.4.0, however, with SQLAlchemy >= 1.4.0, < 1.4.13
we see errors like the following in some tests:

  sqlalchemy.exc.InvalidRequestError: Entity namespace for
  "count(instance_mappings.id)" has no property "queued_for_delete"

There's nothing specific about this in the release notes for 1.4.13 [1]
but it definitely fixes things.

[1] https://docs.sqlalchemy.org/en/14/changelog/changelog_14.html#change-1.4.13

Change-Id: I4c8eb13f11aa7471c26a5ba326319aef245c9836
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021-08-17 13:50:19 +01:00
Zuul b25fe0f900 Merge "Bump oslo.db to 10.0.0" 2021-08-07 15:05:21 +00:00
Balazs Gibizer a65ea33824 Bump oslo.db to 10.0.0
This makes it possible to partially revert
If48dd949ec4d69a09c87178f16d56a2517e21fd8 as one of the warning silenced
there now fixed in oslo.db.

Change-Id: I0051c0f8694699865bc16636953908d60ba456d2
2021-07-21 12:20:22 +02:00
Balazs Gibizer a22fe2da97 Bump os-resource-classes to 1.1.0
The 1.1.0 lib contains the new packet rate related resource classes

Change-Id: Id5a720d91ee9bb0e660823219ec5a6b55bf523a1
2021-07-16 15:41:37 +02:00
Stephen Finucane 982e2ee02d Use neutronclient's port binding APIs
Take advantage of the neutronclient bindings for the port binding APIs
added in neutronclient 7.1.0 to avoid having to vendor this stuff
ourselves.

Change-Id: Icc284203fb53658abe304f24a62705217f90b22b
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021-07-14 11:19:11 +01:00
Ghanshyam Mann dfda0c0482 Fix oslo policy DeprecatedRule warnings
Since 3.7.0, oslo policy started the DeprecationWarning[1] if
deprecated_reason and deprecated_since param are not passed
in DeprecatedRule or they are passed in RuleDefault object.

[1] https://github.com/openstack/oslo.policy/blob/3.7.0/oslo_policy/policy.py#L1538

Change-Id: Idbbc203c6ae65aee29f9463a4911bae2bb541f41
2021-07-04 16:00:55 -05:00
Stephen Finucane 5c02091647 requirements: Add types-paramiko
This is required to resolve the following warning:

  error: Library stubs not installed for "paramiko" (or incompatible with Python 3.9)
  note: Hint: "python3 -m pip install types-paramiko"
  note: (or run "mypy --install-types" to install all missing stub packages)
  note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports

Change-Id: I035d6dc752eaa83105cc12797765b304d843e1f7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Depends-On: https://review.opendev.org/c/openstack/requirements/+/795532/
2021-06-09 15:18:47 +01:00
Daniel Bengtsson 0d84833e96 Use the new type HostDomainOpt.
Use the new oslo.confg type HostDomainOpt to support underscore in the
name. You can see the bugzilla[1] to have more information.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1868940

Related-Bug: #1892044
Change-Id: Ib6c8fc1e3d90b79b10066c429670fcb957bddd23
2021-05-19 10:29:56 +02:00
Zuul 240edec143 Merge "libvirt: Delegate OVS plug to os-vif" 2021-05-01 04:06:48 +00:00
Stephen Finucane a62dd42c0d libvirt: Delegate OVS plug to os-vif
os-vif 1.15.0 added the ability to create an OVS port during plugging
by specifying the 'create_port' attribute in the 'port_profile' field.
By delegating port creation to os-vif, we can rely on it's 'isolate_vif'
config option [1] that will temporarily configure the VLAN to 4095
(0xfff), which is reserved for implementation use [2] and is used by
neutron to as a dead VLAN [3]. By doing this, we ensure VIFs are plugged
securely, preventing guests from accessing other tenants' networks
before the neutron OVS agent can wire up the port.

This change requires a little dance as part of the live migration flow.
Since we can't be certain the destination host has a version of os-vif
that supports this feature, we need to use a sentinel to indicate when
it does. Typically we would do so with a field in
'LibvirtLiveMigrateData', such as the 'src_supports_numa_live_migration'
and 'dst_supports_numa_live_migration' fields used to indicate support
for NUMA-aware live migration. However, doing this prevents us
backporting this important fix since o.vo changes are not backportable.
Instead, we (somewhat evilly) rely on the free-form nature of the
'VIFMigrateData.profile_json' string field, which stores JSON blobs and
is included in 'LibvirtLiveMigrateData' via the 'vifs' attribute, to
transport this sentinel. This is a hack but is necessary to work around
the lack of a free-form "capabilities" style dict that would allow us do
backportable fixes to live migration features.

Note that this change has the knock on effect of modifying the XML
generated for OVS ports: when hybrid plug is false will now be of type
'ethernet' rather than 'bridge' as before. This explains the larger than
expected test damage but should not affect users.

[1] https://opendev.org/openstack/os-vif/src/tag/2.4.0/vif_plug_ovs/ovs.py#L90-L93
[2] https://en.wikipedia.org/wiki/IEEE_802.1Q#Frame_format
[3] https://answers.launchpad.net/neutron/+question/231806

Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e
Depends-On: Id12486b3127ab4ac8ad9ef2b3641da1b79a25a50
Closes-Bug: #1734320
Closes-Bug: #1815989
2021-04-30 12:51:35 +01:00
Johannes Kulik 0997ad15fc vmware: Use oslo.vmware's get_moref_value()
With switching the SOAP library backing oslo.vmware [1], the internal
representation of ManagedObjectReference's attributes changes. To be able
to make the switch without interruption, we introduced helper functions
in oslo.vmware. This commit uses one of those - get_moref_value()
- to make the access to the "value" attribute compatible with both
backing libraries.

Bump oslo.vmware lower-constraint to a version containing the helper
function. We bump one version higher, because we already merged a patch
(I3c769d3499f906b33725171a57313c8ae35b6a1d) that uses the cookiejar
access contained in that version.

[1] https://specs.openstack.org/openstack/oslo-specs/specs/victoria/oslo-vmware-soap-library-switch.html

Change-Id: I48841a777aaa2e515c141857099c16483ab619e0
2021-04-19 11:35:54 +02:00
Balazs Gibizer e5b264bf7b Bumping min os-brick ver to 4.3.1
The os-brick 4.3.1 release fixes a critical data loss bug that can be
triggered by reconfiguring [libvirt]/volume_use_multipath while volumes
are attached.

The following requirements and lower-requirements are also bumped as
introduced into os-brick by Ie7dcc859e1291bd1d50b1ae516be38d8732de836:

    os-brick 4.3.1 depends on eventlet>=0.30.1
    os-brick 4.3.1 depends on oslo.concurrency>=4.4.0
    os-brick 4.3.1 depends on oslo.service>=2.5.0
    os-brick 4.3.1 depends on oslo.serialization>=4.1.0
    os-brick 4.3.1 depends on oslo.utils>=4.8.0
    os-brick 4.3.1 depends on pbr>=5.5.1
    os-brick 4.3.1 depends on requests>=2.25.1
    os-brick 4.3.1 depends on tenacity>=6.3.1

Co-Authored-By: Lee Yarwood <lyarwood@redhat.com>
Related-Bug: #1921381
Change-Id: I0d5df271dec1c6035229b02ec45e03abad6f27e7
2021-03-29 17:36:12 +01:00
Lucian Petrut f0eeba5c8c hyper-v rbd volume support
Ceph 16 (Pacific) will support attaching RBD images to Windows
hosts as well as Hyper-V VMs [1].

This patch updates the Hyper-V driver so that it may be able to
consume RBD volumes.

We're also updating the os-win requirement to 5.4.0. It should've
been bumped by [2], vms won't spawn without it. Note this introduces no
new or unmet direct or in-direct version dependencies and so is included
as part of this change.

[1] https://github.com/ceph/ceph/pull/33750
[2] Ibe6aff4edeb32208bc9865e9216a7432caddab2b

Implements: blueprint hyperv-rbd

Change-Id: I9ad90817648ca12f80a6b53f6ba728df15cbafab
2021-03-02 12:58:11 +00:00
Lee Yarwood 95fbbce8b2 requirements.txt: Bump os-brick to 4.2.0
This change simply bumps the version of os-brick required by Nova to
version 4.2.0. This is itself required by
I9ad90817648ca12f80a6b53f6ba728df15cbafab that introduces support for
rbd volumes within the HyperV driver.

After much back and fourth it was decided to bump the required version
of os-brick ahead of that change to allow the following requirements.txt
and lower-constraints.txt changes caused by direct and in-direct
dependency changes to be documented clearly:

os-brick 4.2.0 depends on oslo.log>=4.4.0
\_ oslo-log 4.4.0 depends on python-dateutil>=2.7.0
os-brick 4.2.0 depends on oslo.serialization>=4.0.1
os-brick 4.2.0 depends on pbr>=5.5.0
os-brick 4.2.0 depends on oslo.privsep>=2.4.0
\_ oslo.privsep 2.4.0 depends on msgpack>=0.6.0
os-brick 4.2.0 depends on oslo.service>=2.4.0
os-brick 4.2.0 depends on tenacity>=6.2.0
os-brick 4.2.0 depends on oslo.context>=3.1.1
os-brick 4.2.0 depends on oslo.concurrency>=4.3.0
os-brick 4.2.0 depends on oslo.i18n>=5.0.1
os-brick 4.2.0 depends on six>=1.15.0
os-brick 4.2.0 depends on os-win>=5.1.0

The above changes have been tested with pip 21.0.1 to ensure the new
resolver is happy and that nothing has been missed.

Change-Id: Ic83f3c7c955d0df89d75f700ee4fe2bd7f715794
Implements: blueprint hyperv-rbd
2021-03-02 12:56:04 +00:00
Artom Lifshitz db7517d5a8 scheduler: Add 'socket' PCI NUMA affinity policy trait
Since only Wallaby compute nodes will support the 'socket' PCI NUMA
affinity policy, this patch adds a ResourceRequest translator that adds
a required trait if the value of '(hw_|hw:)pci_numa_affinity_policy' is
'socket'.

The actual trait reporting by the libvirt driver will be added in a
future patch. Until then the 'socket' value remains a hidden no-op.

Implements: blueprint pci-socket-affinity
Change-Id: I908ff07e1107304ca5926cc04d2fdc8fe0da5ed9
2021-02-24 10:50:23 +00:00
Zuul 9dd0f563d4 Merge "use psycopg2 binary instead of source package" 2021-02-17 15:44:06 +00:00
Ghanshyam Mann a72ace1c6c Reuse code from oslo lib for JSON policy migration
In Victoria cycle, we migrated the JSON formatted policy file to YAML
- https://review.opendev.org/#/c/748059/

Which added the upgrade check and policy fallback logic to select
the default JSON file if exist.

In Wallaby cycle, this work is defined as community wide goal
- https://governance.openstack.org/tc/goals/selected/wallaby/migrate-policy-format-from-json-to-yaml.html

and common part of 1. upgrade check 2. policy fallback logic is moved
from nova to oslo.upgradechecks and oslo.policy respectively.

- oslo.upgradechecks(1.3.0): https://review.opendev.org/#/c/763484/
- oslo.policy(3.6.0): https://review.opendev.org/#/c/763261/

This commit make use these code form oslo lib.

Change-Id: I1a8bc19b77abdcb6867eb61fe6ea1945142b32d2
2021-01-14 22:41:33 +00:00
Sean Mooney 594df9aeb0 use psycopg2 binary instead of source package
this change replaces psycopg2 with psycopg2-binary
to avoid requiring the build depencyies for the postgres client.
instead the tests now use the prebuilt binary wheel.

Change-Id: Id6d920508b9ee9597a51616e66c47d4cb7f48ca0
2021-01-14 18:12:04 +00:00
Zuul c5b9380277 Merge "Bump the lowest eventlet version to 0.26.1" 2020-12-21 16:57:42 +00:00
Lee Yarwood 7a9d4df24b lower-constraints: Bump packaging to 20.4
This version of packaging is actually required by oslo.utils as of 4.5
by Ic9bda0783d3664e1f518d513d81b3271028335fd that was itself introduced
as a lower-constraints version within Nova as of
Ic4d3b998bb9701cb1e3ef12d9bb6f4d91cc19c18.

Change-Id: I67255fa1b919a27e92028da95d71ddd4bf53edc1
Closes-Bug: #1907117
2020-12-07 16:09:49 +00:00
Balazs Gibizer f2ebe107d1 Bump the lowest eventlet version to 0.26.1
The dnspython 2.0.0 incompatibility[1] is worked around in eventlet 0.26.1
by restricting the dnspython version to < 2.0.0. So the issue affects
nova-novncproxy as well we need to bump our lower constraint as well.

[1] https://github.com/eventlet/eventlet/issues/619

Related-Bug: #1888237

Change-Id: Ie9cc718e654cb37a4f31ccb4b052b23878d476a2
2020-11-05 15:09:39 +01:00
Ade Lee c82ce37635 Replace md5 with oslo version
md5 is not an approved algorithm in FIPS mode, and trying to
instantiate a hashlib.md5() will fail when the system is running in
FIPS mode.

md5 is allowed when in a non-security context.  There is a plan to
add a keyword parameter (usedforsecurity) to hashlib.md5() to annotate
whether or not the instance is being used in a security context.

In the case where it is not, the instantiation of md5 will be allowed.
See https://bugs.python.org/issue9216 for more details.

Some downstream python versions already support this parameter.  To
support these versions, a new encapsulation of md5() has been added to
oslo_utils.  See https://review.opendev.org/#/c/750031/

This patch is to replace the instances of hashlib.md5() with this new
encapsulation, adding an annotation indicating whether the usage is
a security context or not.

The instances being replaced here appear to be used to provide
representations for paths.  There is in fact already a sha256 version
of get_hash_str that is supposed to be used in security sensitive
usages.

With this change (and the related dependent changes), the unit and
functional tests pass when run on a FIPS enabled system.

Change-Id: If0ec11e7b7fcde4dacc57265c4dd77b0f536bfab
Depends-On: https://review.opendev.org/#/c/756432
Depends-On: https://review.opendev.org/#/c/756153
Depends-On: https://review.opendev.org/#/c/760160
2020-10-29 15:58:23 -04:00
Ghanshyam Mann fe545dbe5f Migrate default policy file from JSON to YAML
Default value of 'CONF.oslo_policy.policy_file' config option
has been changed from 'policy.json' to 'policy.yaml'. If new default
file 'policy.yaml' does not exist but old default 'policy.json' exist
then fallback to use old default file.

An upgrade checks is added to check the policy_file format and
fail upgrade checks if it is JSON formatted.

Added a warning in policy doc about JSON formatted file is deprecated,
also removed all the reference to policy.json file in doc as well as
in tests.

Related Blueprint: policy-json-to-yaml

Closes-Bug: #1875418

Change-Id: Ic4d3b998bb9701cb1e3ef12d9bb6f4d91cc19c18
2020-09-09 08:09:38 -05:00
Ghanshyam Mann e905400ca0 [goal] Prepare for job migration to Ubuntu Focal (20.04)
As per victoria cycle testing runtime and community goal[1]
we need to migrate upstream CI/CD to Ubuntu Focal(20.04).

Bump the lower constraints for required deps which added python3.8 support
in their later version.

Story: #2007865
Task: #40200

Closes-Bug: #1886298

[1] https://governance.openstack.org/tc/goals/selected/victoria/migrate-ci-cd-jobs-to-ubuntu-focal.html

Change-Id: I6d79fc80b85d398fe0168677318c9c34285189ae
2020-08-18 11:28:32 +00:00
Zuul f269bb98d8 Merge "Remove monotonic usage" 2020-08-17 15:29:46 +00:00
Sean McGinnis 274cc3d7f4
Fix lower-constraints conflicts
Several version specified in our lower-constraints files had conflicting
dependencies. This updates a few packages to avoid those conflicts. It
also removes the linters that are tracked in the global requirements
blocklist since we do not need to enforce lower-constraints for linters.

Change-Id: Iae93f0631d77794f093fd330e849d2fd805b238f
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-08-03 13:12:48 -05:00
Dustin Cowles 3667af6cd1 Provider Config File: YAML file loading and schema validation
This series implements the referenced blueprint to allow for specifying
custom resource provider traits and inventories via yaml config files.

This first commit includes schema version 1.0 and functions to load and
validate against that schema.

Since this patch, package ddt>=1.2.1 is required to run tests.

Co-Author: Tony Su <tao.su@intel.com>
Author: Dustin Cowles <dustin.cowles@intel.com>
Blueprint: provider-config-file
Change-Id: I58099726f799c427e9174a0dcce9889344d51e7c
2020-07-30 07:22:46 +00:00
Lin Yang 8fa83ff62a Add traits for new AVX512 CPU feature
To support new AVX512 cpu feature, this patch adds the mapping
between cpu features reported by libvirt [1] and corresponding
os-traits [2]. The traits include 'AVX512VBMI', 'AVX512IFMA',
'AVX512VBMI2', 'AVX512BITALG', 'AVX512VAES', 'AVX512GFNI',
'AVX512VPCLMULQDQ' and 'AVX512VPOPCNTDQ'.

[1] https://github.com/libvirt/libvirt/blob/master/src/cpu_map/x86_features.xml
[2] https://review.opendev.org/#/c/728576/

Depends-On: I58cba02f204d2e19a1a838852c628694edd47d73
Change-Id: I212a84e5cae15bc133aafd538d55f85149ab360f
2020-07-06 16:30:43 +00:00
Zuul f612fbf088 Merge "Cap jsonschema 3.2.0 as the minimal version" 2020-06-24 01:54:33 +00:00
Hervé Beraud 325e51f1b0 Cap jsonschema 3.2.0 as the minimal version
Previous versions of jsonschema (<3.2.0) doesn't support python 3.8 [1].
Python 3.8 is part of the victoria supported runtimes [2] so we now force
to use jsonschema version 3.2.0 to avoid issues, remove ambiguity and ensure
that everything works with python 3 in general.

[1] https://github.com/Julian/jsonschema/pull/627
[2] https://governance.openstack.org/tc/reference/runtimes/victoria.html#python-runtimes-for-victoria

Change-Id: Ic8246b83563444501fe6d31712ea64d39e88140d
2020-05-26 21:57:11 +02:00
Matthew Booth bcfa24a09b Remove eventlet hub workaround for monotonic clock
The fix landed in eventlet in 0.21.0

Change-Id: Icf7d671bc5d3f32831e6867c297e838f984d81b6
2020-05-22 16:46:37 +01:00
Stephen Finucane 34ecf5ab91 tox: Integrate mypy
mypy is an experimental optional static type checker for Python that
aims to combine the benefits of dynamic (or "duck") typing and static
typing. While still in development, most features are supported and it's
already being used by real world projects like Sphinx. Let's start small
by integrating it into some of the interfaces that nova exposes. We can
further build upon this if it works out.

This change sets up the boilerplate necessary to use mypy in nova. Type
annotations are not included for any module - these will be added
separately. We're calling mypy by way of a script, as this allows us to
store a list of files that we have converted while we're in the process
of adding type annotations where necessary.

Change-Id: I75ab46a6768c4ca2050fdde2b7f8eeb90724c8c6
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-05-15 15:59:53 +01:00
Sean McGinnis 5af9ad4e54
Remove monotonic usage
The monotonic package was needed for monotonic time operations when
running under Python runtimes older than 3.3. Since we now only support
versions higher than this, this third party package requirement can now
be removed.

Change-Id: I955117b838cdd8a1858cfccbc3caa33ba6ad59f7
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-05-04 17:34:00 -05:00
Zuul 47e19c18d2 Merge "Remove Babel requirement" 2020-04-28 18:11:11 +00:00
Zuul f1e448d672 Merge "Use oslo policy flag to disable default change warning instead of all" 2020-04-21 10:04:19 +00:00
Andreas Jaeger c59225cefd Remove Babel requirement
Babel is not needed as requirement, remove it.

See also
http://lists.openstack.org/pipermail/openstack-discuss/2020-April/014227.html

Change-Id: I953b12bc3237c96ae640808949068ec4a4f85181
2020-04-17 16:10:30 +02:00
Ghanshyam Mann a2d25f42c0 Use oslo policy flag to disable default change warning instead of all
oslo has new flag to disable the warning for default check_str
change and keep logging warning if policy name is changed or it is
marked for removal.

Policy defaults refresh BP work changed the defaults for all the
policy so logging their warning is dangerousa and fill up the log file.
Once we switch to new defaults then we can enable them if needed.

Logging warning for name change and marked for removal make sense
when old rules are override by operator so the new flag does not control
those. For policy defaults refresh BP work, we do not have many policies
in this category so logging their warning is ok.

This commits reset the testing flag 'suppress_deprecation_warnings'
default value back to False. Test policy fixture sets that to True to
avoid any warnig during tests run.

Bumping the oslo policy version where this new flag is present
- https://review.opendev.org/#/c/719547/

Partial implement blueprint policy-defaults-refresh

Change-Id: Iaa6baf6877890babb6205bdb3ee2e1a2b28ebd9c
2020-04-15 02:23:32 +00:00
Zuul 3a390a2b71 Merge "workarounds: Add option to locally attach RBD volumes on compute hosts" 2020-04-14 14:38:26 +00:00
Stephen Finucane 58784943f7 api: Add framework for extra spec validation
Add the validation framework necessary to verify extra specs along with
the definitions for every extra spec we currently recognize in-tree.
None of this is currently used since we don't have the API microversions
wired up, but that will come in a future patch.

Note that we must add the H238 hacking check to the ignore list here,
since this includes our first use of Python 3-type classes without the
explicit 'object' subclass. This can be removed when that check is
removed from hacking.

Part of blueprint flavor-extra-spec-validators

Change-Id: Ib64a1348cce1dca995746214616c4f33d9d664bd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-04-08 12:47:01 +00:00
Lee Yarwood 7c7a25aa1e workarounds: Add option to locally attach RBD volumes on compute hosts
Building on the ``[workarounds]/disable_native_luksv1``
configurable introduced in Ia500eb614cf575ab846f64f4b69c9068274c8c1f
this change introduces another workaround configurable that when enabled
will connect RBD volumes to the compute host as block devices using
os-brick.

When used togther both options allow operators to workaround recently
discovered performance issues in the libgcrypt library used by QEMU when
natively decrypting LUKSv1 encrypted disks.

For now the extend_volume method raises a NotImplemented error in-line
with the underlying method in os-brick. Future work will be required to
both support this in os-brick and wire up the required calls in the
volume driver.

This workaround is temporary and will be removed during the W release
once all impacted distributions have been able to update their versions
of the libgcrypt library.

Finally os-brick 3.0.1 is now required as it provides the
Id507109df80391699074773f4787f74507c4b882 fix when attempting to
diconnect locally attached RBD volumes.

Closes-Bug: #1869184
Change-Id: Ied3732042738a6194b635c55e0304d71a6fb66e3
2020-04-06 21:59:08 +01:00
Sundar Nadathur f002274c6a Enable and use COMPUTE_ACCELERATORS trait.
For description, see https://review.opendev.org/#/c/698961.

Change-Id: I324adf88e54ce09c13ca2dbe638905769806d81b
Blueprint: nova-cyborg-interaction
2020-03-27 22:42:37 -07:00
Zuul daae69990f Merge "libvirt: Use oslo.utils >= 4.1.0 to fetch format-specific image data" 2020-03-25 23:18:49 +00:00