Compare commits

..

11 Commits
4.3.0 ... 4.7.0

Author SHA1 Message Date
Zuul
d801e89157 Merge "Drop unused tempest from test requirements" 2024-12-21 01:35:09 +00:00
Zuul
2af23e860d Merge "Make watcherclient/shell.py reproducible" 2024-12-06 14:15:22 +00:00
Zuul
4317c283cc Merge "Get rid of distutils" 2024-12-06 13:28:17 +00:00
Takashi Kajinami
a2e4e22ce8 Drop unused tempest from test requirements
None of the tests implemented in this repository depend on tempest.

Change-Id: Ie06e1f3e3990ba5d167f5331cb12b845ab809e6b
2024-10-12 00:07:02 +09:00
Takashi Kajinami
be7ee7347a Get rid of distutils
... because it was already removed from Python 3.12 .

Change-Id: Ie809a48ce49d3fd6139c55109c9ed92b852ad41e
2024-10-02 23:24:03 +09:00
Takashi Kajinami
cd49282297 Bump hacking
hacking 3.0.x is quite old. Bump it to the current latest version.

Change-Id: I546d263ff091c47e5e97066499bc3711f4f760c6
2024-09-23 11:56:16 +09:00
Zuul
56e47c38e2 Merge "Remove untested lower-constraints.txt" 2024-03-02 08:33:27 +00:00
Zuul
04b6cc9a04 Merge "Update python classifier in setup.cfg" 2024-03-02 08:33:26 +00:00
Ghanshyam Mann
9aace80a9b Update python classifier in setup.cfg
As per the current release tested runtime, we test
python version from 3.8 to 3.11 so updating the
same in python classifier in setup.cfg

Change-Id: I3a938c4d27f987f4fa1a60d41baf9da74b32a78f
2024-01-09 19:22:07 -08:00
Takashi Kajinami
63d305ca25 Remove untested lower-constraints.txt
The lower constraints job was already removed[1] and the file content
is no longer tested.

[1] 52a3fd062d

Change-Id: Ife61e9de574bc0fd78bd733a33e41ac6cb48d12d
2024-01-08 23:45:26 +09:00
Thomas Goirand
834ab29878 Make watcherclient/shell.py reproducible
Hi,

Whilst working on the Reproducible Builds effort [0] we noticed that
python-watcherclient could not be built reproducibly.

This is because the documentation generates automatic documentation for
the "main()" entrypoint method's arguments, one of which is "sys.argv".
During document generation this results in documentation examples like:

   def main(argv=['-b', 'html', 'doc/source',
      '«ABSOLUTE_BUILD_DIR»/debian/python-watcherclient-doc/usr/.../html']):

… etc. Patch attached that sets "None" instead but retains the existing
fallback logic.

 [0] https://reproducible-builds.org/

Please note that this was reported in the Debian tracker:
https://bugs.debian.org/960607

and that the fix was applied to the Debian package.

Change-Id: I502bb2d11d90ce4c46c14904a8c048ea824f11d5
2021-12-28 19:33:55 +01:00
6 changed files with 15 additions and 92 deletions

View File

@@ -1,82 +0,0 @@
alabaster==0.7.10
appdirs==1.4.3
asn1crypto==0.23.0
certifi==2018.1.18
cffi==1.14.0
chardet==3.0.4
cliff==2.11.0
cmd2==0.8.2
coverage==4.0
cryptography==2.7
debtcollector==1.19.0
decorator==4.2.1
deprecation==2.0
docutils==0.11
dogpile.cache==0.6.5
dulwich==0.15.0
extras==1.0.0
fasteners==0.7.0
fixtures==3.0.0
flake8==2.5.5
hacking==0.12.0
idna==2.6
imagesize==0.7.1
iso8601==0.1.12
Jinja2==2.10
jmespath==0.9.3
jsonpatch==1.21
jsonpointer==2.0
jsonschema==2.6.0
keystoneauth1==3.4.0
linecache2==1.0.0
MarkupSafe==1.0
mccabe==0.2.1
monotonic==1.4
msgpack-python==0.4.0
munch==2.2.0
netaddr==0.7.19
netifaces==0.10.6
openstacksdk==0.12.0
os-client-config==1.29.0
os-service-types==1.2.0
os-testr==1.0.0
osc-lib==1.10.0
oslo.concurrency==3.25.0
oslo.config==5.2.0
oslo.context==2.19.2
oslo.i18n==3.20.0
oslo.log==3.36.0
oslo.serialization==2.18.0
oslo.utils==3.36.0
oslotest==3.2.0
packaging==17.1
paramiko==2.0.0
pbr==3.1.1
pep8==1.5.7
pyasn1==0.1.8
pycparser==2.18
pyflakes==0.8.1
Pygments==2.2.0
pyinotify==0.9.6
pyparsing==2.2.0
pyperclip==1.6.0
python-dateutil==2.5.3
python-mimeparse==1.6.0
python-subunit==1.0.0
pytz==2018.3
PyYAML==3.13
requests==2.18.4
requestsexceptions==1.4.0
rfc3986==0.3.1
simplejson==3.13.2
six==1.11.0
snowballstemmer==1.2.1
stestr==2.0.0
stevedore==1.28.0
tempest==17.1.0
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
urllib3==1.22
wrapt==1.10.11

View File

@@ -17,6 +17,8 @@ classifier =
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
[files]
packages =

View File

@@ -1,9 +1,8 @@
coverage!=4.4,>=4.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
hacking>=3.0.1,<3.1.0 # Apache-2.0
hacking>=7.0.0,<7.1.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
python-subunit>=1.0.0 # Apache-2.0/BSD
stestr>=2.0.0 # Apache-2.0
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
tempest>=17.1.0 # Apache-2.0

View File

@@ -14,7 +14,6 @@
# under the License.
import copy
from distutils import version
import functools
import hashlib
import http.client
@@ -123,16 +122,19 @@ class VersionNegotiationMixin(object):
% {'req': self.os_infra_optim_api_version,
'min': min_ver, 'max': max_ver}))
negotiated_ver = str(
min(version.StrictVersion(self.os_infra_optim_api_version),
version.StrictVersion(max_ver)))
negotiated_ver = api_versioning.APIVersion(
self.os_infra_optim_api_version)
min_ver = api_versioning.APIVersion(min_ver)
max_ver = api_versioning.APIVersion(max_ver)
if negotiated_ver > max_ver:
negotiated_ver = max_ver
if negotiated_ver < min_ver:
negotiated_ver = min_ver
# server handles microversions, but doesn't support
# the requested version, so try a negotiated version
self.api_version_select_state = 'negotiated'
self.os_infra_optim_api_version = negotiated_ver
LOG.debug('Negotiated API version is %s', negotiated_ver)
self.os_infra_optim_api_version = negotiated_ver.get_string()
LOG.debug('Negotiated API version is %s', negotiated_ver.get_string())
return negotiated_ver

View File

@@ -203,7 +203,9 @@ class WatcherShell(app.App):
LOG.info("END return value: %s", ret_val)
def main(argv=sys.argv[1:]):
def main(argv=None):
if argv is None:
argv = sys.argv[1:]
watcher_app = WatcherShell()
return watcher_app.run(argv)

View File

@@ -71,7 +71,7 @@ class StateStrategy(command.Lister):
def _format_spec(self, requirements):
for req in requirements:
if type(req.state) == list:
if isinstance(req.state, list):
req.state = jsonutils.dumps(req.state, indent=2)
return requirements