This patch changes the ``log.setup()`` signature to allow a kwarg
that makes the eventlet logging fix conditional.
Some libraries that import oslo.log, replace the logging locking
handling with its own implementation. For example oslo.privsep
replaces the logging handler with its own one [1], that allows the
communication between the privileged daemon process and the service
importing the library. This local handler clashes with the
evenlet logging fix implemented in [2].
[1]1020c6fbf5/oslo_privsep/daemon.py (L579)
[2]https://review.opendev.org/c/openstack/oslo.log/+/852443
Partial-Bug: #1995514
Related-Bug: #1995091
Change-Id: I4bbcfe7db6d75188e61b9084cb02b2dd2aaa0c76
There is a bug in eventlet where logging within a native thread can lead
to a deadlock situation: https://github.com/eventlet/eventlet/issues/432
When encountered with this issue some projects in OpenStack using
oslo.log, eg. Cinder, resolve them by removing any logging withing
native threads.
There is actually a better approach. The Swift team came up with a
solution a long time ago [1], and in this patch that fix is included as
part of the setup method, but will only be run if the eventlet library
has already been loaded.
This patch adds the eventlet library as a testing dependency for the
PipeMutext unit tests.
[1]: 69c715c505
Closes-Bug: #1983863
Change-Id: Iac1b0891ae584ce4b95964e6cdc0ff2483a4e57d
Initialize by default the `global_request_id` if not passed
in the given context to avoid error with logging.
Change-Id: I6bd63c1d6a1331a4e47b923ccf6df50c930c8162
Closes-Bug: #1972974
In Zed cycle testing runtime, we are targetting to drop the
python 3.6/3.7 support, project started adding python 3.8 as minimum,
example nova:
- 56b5aed08c/setup.cfg (L13)
Change-Id: I46e2456b9931d215c97b15ac97b47a6977282584
Global Request IDs were introduced a while ago[1] so that operators can
trace processing of resources across multiple services more easily.
Some services like Nova or Neutron have implemented this feature and
a request made by these services have additional global request id in
its context. However current default format doesn't include that new id
and users need to update the log format parameter in each service to
get this information recorded.
This change updates the default log format so that the Global Request
IDs can be more widely and easily used.
[1] https://specs.openstack.org/openstack/oslo-specs/specs/pike/global-req-id.html
Change-Id: I1adc9b29bb356ce56704c066b375b49374200d3c
As part of Secure RBAC work, support for system users(eg. system admin)
is being added. However current default format does not include
the system scope information so we can't determine whether the context
is non-scoped or system-scoped.
This change updates the default logging_user_identity_format so that
system scope is logged by default.
Change-Id: I7982cdb280599fb38362eb837cb527592267b91f
This patch updates the project template to use the Yoga project template
to ensure unit testing is in place for all of the tested runtimes
for yoga. For more please refer to [1].
[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html
Change-Id: Idda4215001b245322983d59507a38d19d1d322bd
The logging_user_identity_format option's default value is changed
to reference the project instead of the tenant. This is necessary
because I2fded6f3476df1fb8c4e042ef28ed8ccb7ab0737 removed the tenant
argument from request contexts.
Related-Bug: #1505827
Change-Id: Id6d4b6eaa2b96ba5bd53e8b2dae5d9eea13b25d9
The following arguments of the RequestContext class are deprecated
since oslo.context 2.18[1].
user : renamed to user_id
tenant : renamed to project_id
domain : renamed to domain_id
user_domain : renamed to user_domain_id
project_domain: renamed to project_domain_id
This change updates arguments used accordingly.
[1] d78cf592e1e3e7aa0fc99bfdd655e82f5c44dfe3
Change-Id: I815790106e42ca3cb5b8b3cf98b065a27b9a520e
Setuptools v54.1.0 introduces a warning that the use of dash-separated
options in 'setup.cfg' will not be supported in a future version [1].
Get ahead of the issue by replacing the dashes with underscores. Without
this, we see 'UserWarning' messages like the following on new enough
versions of setuptools:
UserWarning: Usage of dash-separated 'description-file' will not be
supported in future versions. Please use the underscore name
'description_file' instead
[1] https://github.com/pypa/setuptools/commit/a2e9ae4cb
Change-Id: I19543673ddf80d93e28f5503b7672f64a6cecf2a
We facing errors related to the new pip resolver, this
topic was discussed on the ML and QA team proposed to
to test lower-constraints [1].
I propose to drop this test because the complexity and recurring pain needed
to maintain that now exceeds the benefits provided by this mechanismes.
[1] http://lists.openstack.org/pipermail/openstack-discuss/2020-December/019390.html
Change-Id: I339b18e533c75283c58409a2cdce001e4b5fbb18
Add file to the reno documentation build to show release notes for
stable/victoria.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/victoria.
Change-Id: I59c55e7511840efe49cf08138b5837e3f1dfeeb3
Sem-Ver: feature
Introduced changes:
- pre-commit config and rules.
- Add pre-commit to pep8 gate, Flake8 is covered in the pre-commit hooks.
- Applying fixes for pre-commit compliance in all code.
Also commit hash will be used instead of version tags in pre-commit to
prevend arbitrary code from running in developer's machines.
pre-commit will be used to:
- trailing whitespace;
- Replaces or checks mixed line ending (mixed-line-ending);
- Forbid files which have a UTF-8 byte-order marker
(check-byte-order-marker);
- Checks that non-binary executables have a proper
shebang (check-executables-have-shebangs);
- Check for files that contain merge conflict strings
(check-merge-conflict);
- Check for debugger imports and py37+ breakpoint()
calls in python source (debug-statements);
- Attempts to load all yaml files to verify syntax (check-yaml);
- Run flake8 checks (flake8) (local)
For further details about tests please refer to:
https://github.com/pre-commit/pre-commit-hooks
Change-Id: I6663d5e0866e03f8eb8c0543d3e3e0bbfb2399ac
Signed-off-by: Moisés Guimarães de Medeiros <moguimar@redhat.com>
Make it a native Zuul v3 job.
It is a simple variant of the base 'grenade' job where oslo.log
is installed from source instead of pip.
Also use a slightly more common name by dropping the "-devstack"
suffix (all grenade jobs are also devstack jobs).
Change-Id: I2f335358dd467f57a2178df66414bdc634eb6400
This patch bumps bandit allowed version to >=1.6.0,<1.7.0 in order to
avoid the errors detailed here https://github.com/PyCQA/bandit/pull/393
Change-Id: Idca2a092bdfe762d23632e44e55be9290d692de8
Signed-off-by: Moisés Guimarães de Medeiros <moguimar@redhat.com>
When running under uwsgi a new key "uwsgi_name" is added to log
events when using FluentFormatter that could be used for further
analysis. It's value is taken from uwsgi configuration upon
formatter initialization.
Change-Id: I158409677523978246c26bf1168f323974d817a5
Closes-Bug: 1887232
with these once could use versionutils.deprecated.VICTORIA
and versionutils.deprecated.WALLABY in config annotations
and logs.
Change-Id: I784dfe70c451958bf686f7d0e5ea9f5540bae08c