Maintaining support for older not supported in Zed Python versions
would take too much effort with a lot of libraries dropping
compatibility with 3.6 and 3.7
Change-Id: I58a810d8cf4247153623c247de71f774928653aa
We have updated the yoga testing runtime to keep the
py36 testing.
- https://review.opendev.org/c/openstack/governance/+/820195
Unit tests job template is also updated to keep python
3.6 as a voting job. So with the py3.6 and py3.9 testing as voting
job template, we are keeping python 3.6, 3.7, 3.8, and 3.9 as
tested versions in the Yoga cycle.
- https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/820286
This commit re-add the python 3.6/3.7 versions in setup.cfg classifier.
Change-Id: I0b1fd265bfed80b76e5eced456d80b65310b4368
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: I2781f250f8db9907987b75b0c66ad8bfb041ccee
Make a few cleanups:
- Remove python 2.7 stanza from setup.py
- Add requires on python >= 3.6 to setup.cfg so that pypi and pip
know about the requirement
- Remove obsolete sections from setup.cfg
- Update classifiers
- Update requirements, no need for python_version anymore
- Use sphinx-build everywhere
Change-Id: I737d176d35d3bc55848645af05f0362ab3853844
Original design of the VirtualBMC tool was that user manages
config files for individual VirtualBMC (via a cli tool), then
requests the tool to start the instances representing
individual VirtualBMC instances (via the cli tool). Then
the instances become independent processes. The only way
to know their whereabouts is through the pidfiles
they maintain.
There were certain practical inconveniences with the
original design, namely:
* Cumbersome to start/stop/monitor free-standing
vBMC instances processes
* No two-way communication between the parent process
and the VirtualBMC instances what makes child state check
or modification unnecessary difficult
This commit turns server part of the tool into a single
process spawning multiple children processes and herding
them via ZMQ client/server.
The parent process runs server part of the control
interface, maintains persistent VirtualBMC instances
configuration and ensures all its children are alive
and kicking. Each VirtualBMC instance is still a separate
parent fork.
If child dies, parent respawns it right away. If parent
is about to die, it tries its best to kill all the
prospective orphans.
This new implementation tries to stay compatible with
the original one in part of `vbmc` tool CLI interface
and behaviour. Whenever it can't connect to the `vbmcd`
it tries to fork and spawn the daemon behind the scenes.
While the threading design for this tool might look better,
the underlying pyghmi library is apparently rather
complicated to use its concurrency capabilities reliably.
The other minor consideration is that running multiple
processes leverages CPU-based concurrency.
Other changes:
* The `start` command now accepts more than one domains
to be started
Change-Id: Ie10f4598c7039a7afa9b45d01df3b3c3db252c1d
Story: 1751570
Task: 12057
This patch replaces the use of argparse module
by the cliff package. The rationale is that
cliff infrastructure is easier to use and more
functional. Some other OpenStack projects seem
to migrate to cliff already.
Change-Id: Ib2185dad50e64de354222669d2e65f411ddc96a4
Closes-Bug: #1752911
This patch is restructuring the VirtualBMC repository according to the
OpenStack template for projects (Cookiecutter).
This patch also removes the dependency on the python-daemon library
since it is not present in the OpenStack global-requirements, now a new
class called "detach_process" has been added to the virtualbmc/utils.py
module that will take care of detaching the process context from its
parent and session.
Change-Id: Id4ae1db5b73a18abc54276fe1dfbf3ceff7adc06