[release-announce] python-watcher 3.0.0 (train)

no-reply at openstack.org no-reply at openstack.org
Wed Oct 16 12:54:51 UTC 2019


We are gleeful to announce the release of:

python-watcher 3.0.0: OpenStack Watcher provides a flexible and
scalable resource optimization service for multi-tenant OpenStack-
based clouds.

This release is part of the train release series.

The source is available from:

    https://opendev.org/openstack/python-watcher

Download the package from:

    https://tarballs.openstack.org/watcher/

For more details, please see below.

Changes in python-watcher 2.0.0..3.0.0
--------------------------------------

c02ddd58 Imported Translations from Zanata
7abb57dc Update TOX/UPPER_CONSTRAINTS_FILE for stable/train
963d026d Update .gitreview for stable/train
2b63a35e Fix damodel list return None error When has a compute node
48694492 Fix misspelling
42c1babf skip deleted instance when creating datamodel
519ca2c9 Fix unit test failed
a88e0766 Watcher planner slector releasenote
0559cd7a Set strategy planner
0c191a2d Get planner from solution
ffd8e27b Build pdf docs
31460ac4 update test about cinderclient v1
86af6ab8 correct watcher project for oslo_config
605d7f22 Add node resource consolidation planner
aa2a084d Watcher Planner Selector
03a6216d Add releasenote about bp show-datamodel-api
f1fe4b6c node resource consolidation
944fda33 Fix misspell word
020a99f0 Remove redundant word 'strategy'
10d8a5fb Add node_resource_consolidation doc
3c0ee0ca Add watcher-specs link to readme.rst
7eb10eee Add get node used and free resources
d0a20fb0 Implement watcher datamodel list in watcher-api
49fba60e Implement watcher datamodel list in watcher-decision-engine
5aa4637f Add api-ref doc for data model api
b4a02a6d add audit parameter to do_execute
8ca5d655 improve strategies tempest
6ac6ab24 add placement min_microversion
d6fbc797 set compute min_microversion
26cce968 [train][goal] Define new 'watcher-tempest-functional-ipv6-only' job
99cd0098 Remove unused disk_capacity field
c522e881 Don't revert Migrate action
5a26ceb1 update workload_balance strategy
33d7de12 update node resource capacity for basic_consolidation
3bcd2572 update host_maintenance strategy
60ef8776 update noisy_neighbor strategy
93b40e92 update outlet_temp_control strategy
4b2238f9 add releasenote for bp improve-compute-data-model
74209152 update vm_workload_consolidation strategy
4e4cfc95 Remove resource used fields from ComputeNode
cbc2b9eb Fix var src_extra_specs error
251ad35c Remove stale comment in method execute()
0b25c884 Add resource capacity property
86d9cf17 Getting data from placement when updating datamodel
86ea9c8e replace disk_capacity by disk
6cc9ea7c set disk field to disk capacity
0986168f Check resource class before using
4b83bf33 remove id field from CDM
54344208 Update api-ref location
3d741d05 Improve Compute Data Model
cadc000f Add call_retry for ModelBuilder for error recovery
361f2263 Remove useless gconfig process in watcher/api/scheduling.py
458ad086 Optimize method list_opts() in watcher/conf/opts.py
d5126174 Fix watcher/conf/applier.py default worker value
904720b0 Remove useless _opts.py
933bc59b Baseclass for ModelBuilder with audit scope
433eabb8 Move datasources folder into decision_engine
0727c0e3 Add reource_name for save_energy in action input parameter field
3009716d Add get_compute_node_by_uuid
80e8d000 Resolve aggregate error in workload_stabilization
6dd35a00 Remove redundant human_id fields when creating and updating datamodel
8cb71587 Replace human_id with name in grafana doc
502ed741 Add marker option for get_instance_list()
256104a3 remove baremetal nodes when building CDM
612fc12a Add reource_name for zone_migration in action input parameter field
0541d8c2 Grafana proxy datasource to retrieve metrics
dc2c361d Add reource_name in action input parameter field
a3c49cf8 Add get_node_by_name
1e8b17ac Reduce the query time of the instances when call get_instance_list()
ac53dbf0 remove baremetal nodes from hypversior list
8bddafbd Remove notifier_driver option in Watcher devstack
052fae4b Improve logging in building of nova data model
a45f5abe Releasenote for grafana datasource
cebee2c4 improve OptGroup consistency across configuration
dd1800fb Blacklist sphinx 2.1.0 (autodoc bug)
148ae368 Add Python 3 Train unit tests
8fc4a9cb Fix invalid assert states
0a435f0b Add name field for test data
c1a5e443 Add uWSGI support
b62965c2 Add name for instance in Watcher datamodel
fa1642e3 Documentation configuring grafana datasource
9c9f336f Configure nova notification_format for grenade
5f521471 Fix placement_client group help docs generation
d08d7c39 Improve the configuration parameters for grafana
966a4dfa Configure nova notification format in non-grenade CI jobs
dd321e9f improve the process of instance_created.end
9b8d1445 remove tail_log
90291923 Update strategy doc
06f8aa71 Implement the configuration for Grafana datasource
37b11fa4 Fix missing print format
e4fc5a08 typo ceilometer url
15754a14 Replace removed exceptions and prevent regression
a4d978b8 Define a new InstanceNotMapped exception
584eeefd Move datasource query_retry into baseclass.
28df60e2 Fix base enable_plugin branch for grenade run
7281f618 Remove dead code
79a57f67 Map instance to its node
731d4bfd update contraints url
dd119ca1 Backwards compatibility for node parameter
00f20ab1 Fix property access in test_global_preference* tests
b57feba5 Add Placement helper
251264b1 Cleanup ConfFixture
2d4bc095 Fix string formatting
f9e267fa check instance state for instance.update
c3e0e41f add strategy tempest job
7f37f7b9 Remove apidoc
374fd279 Optimize NovaHelper.get_compute_node_by_hostname
3f76f9cf Optimize hypervisor API calls
9c1b83e6 Add missing ws separator between words
a00daf9f Group instance methods together in nova_helper
2afd0dfc Audit API supports new force option
fdea38fb Optimize NovaClusterDataModelCollector.add_instance_node
5c492ea8 Fix test_metric_file_override metric from backend
62d181d9 Add force field to Audit
a09cb3fa Remove 2.56 version compatibility check
7489126d Require nova_client.api_version >= 2.56
e76c20d1 Improve exceptions and logging in ds manager
5a35b307 Improve DevStack documentation to support metrics
84cb589a formal datasource interface implementation
dea32c5e Improve Gnocchi and Monasca datasource tests
b6200817 Allow using file to override metric map
f1318256 support-keystoneclient-option
f92f77f6 Fix typo in ceilometer datasource
8a206a6a Handle no nova CDM in notification code
76367afd Remove unused utilities file
6d965121 Update migration notification
86a537fe Remove bandit from lower-constraints
15c842fb Update Sphinx requirement
3edafc9b Fix Stein version in watcher-status docs
efb4aaa0 Add doc/requirements.txt to venv tox target
4cd8a2f4 Remove dead code from NovaClusterDataModelCollector
aa7442d7 Enhance the collector_plugins option help text
0df6c0d9 Use base_strategy's add_action_migrate method
d9eb9253 Fix_inappropriate_name
a40892c3 update api version history
241df0d5 allow building docs without ceilometer client
dce23d7e pass default_config_dirs variable for config initialization.
14d4cb54 docs: fix link to install guide from user guide
5c2939f2 Remove watcher.openstack.common=WARN from _DEFAULT_LOG_LEVELS
76f0ce1d Add force field to api-ref
606f20b6 Fix API version header
567e0798 Remove unused exceptions
838768c7 Fix bandit runs with 1.6.0
bd8636f3 Allow for global datasources preference from config
173bf11a Use the common logging setup function in devstack runs
af0f02d1 Fix reraising of exceptions
e2285777 Using node replace resource_id in method add_action_disable_node()
4d480d5c Put the method add_migration() in base.py
8fa89344 update wsme types
c99e051a Add tempest voting
d84f8c50 Resolve problems with audit scope and add tests
d2e1d69d Replace git.openstack.org with opendev.org
4db39c52 Add hardware.cpu_util in workload_stabilization
647b5e94 Drop use of git.openstack.org
62da2984 OpenDev Migration Patch
0def7b4d separate launching audit scheduler
f36c25b5 Replace HOST_IP to SERVICE_HOST
f52716fc remove py35
8cb4c8e4 Uncap jsonschema
2df5ab92 Fix docs gate failed
6dfeeb73 Adapt Watcher to Python3.7
ac3aa945 Move eventlet monkey patch code
68a90b2c Fix lower-constraint deps handling
7f495e8e Fix openstack-tox-lower-constraint TIMED_OUT Error
3b80b352 Update meeting schedule to new bi-weekly format
c8e4efcd Make datasource methods match names of metrics
b023c907 Replace openstack.org git:// URLs with https://
ab03bf9b Imported Translations from Zanata
871a01f5 Update master for stable/stein
a4865b64 Migrate legacy jobs to Ubuntu Bionic


Diffstat (except docs and test files)
-------------------------------------

.gitreview                                         |   3 +-
.zuul.yaml                                         |  56 +-
README.rst                                         |   3 +-
api-ref/source/index.rst                           |   1 +
api-ref/source/parameters.yaml                     | 119 +++-
api-ref/source/samples/audit-cancel-response.json  |   1 +
.../samples/audit-create-request-continuous.json   |   1 +
.../samples/audit-create-request-oneshot.json      |   3 +-
api-ref/source/samples/audit-create-response.json  |   1 +
.../samples/audit-list-detailed-response.json      |   1 +
api-ref/source/samples/audit-show-response.json    |   1 +
api-ref/source/samples/audit-update-response.json  |   1 +
.../source/samples/datamodel-list-response.json    |  38 ++
api-ref/source/watcher-api-v1-audits.inc           |   6 +
api-ref/source/watcher-api-v1-datamodel.inc        |  55 ++
devstack/lib/watcher                               |  88 +--
devstack/local.conf.compute                        |  11 +-
devstack/local.conf.controller                     |  13 +-
devstack/override-defaults                         |   9 +
devstack/upgrade/settings                          |  11 +-
devstack/upgrade/upgrade.sh                        |  13 +
.../strategies/basic-server-consolidation.rst      |  14 +-
.../strategies/node_resource_consolidation.rst     |  95 +++
.../strategies/vm_workload_consolidation.rst       |   9 +-
etc/apache2/watcher                                |   2 +-
lower-constraints.txt                              |  16 +-
playbooks/legacy/grenade-devstack-watcher/run.yaml |  10 +-
.../add-force-field-to-audit-4bcaeedfe27233ad.yaml |   7 +
.../notes/api-call-retry-fef741ac684c58dd.yaml     |   9 +
.../datasource-query-retry-00cba5f7e68aec39.yaml   |  17 +
.../file-based-metric-map-c2af62b5067895df.yaml    |  11 +
...-interface-implementation-222769d55a127d33.yaml |  17 +
...bal-datasource-preference-3ab47b4be09ff3a5.yaml |  11 +
.../notes/grafana-datasource-b672367c23ffa0c6.yaml |  10 +
...mprove-compute-data-model-b427c85e4ed2b6fb.yaml |  23 +
.../min-required-nova-train-71f124192d88ae52.yaml  |   8 +
...de-resource-consolidation-73bc0c0abfeb0b03.yaml |   7 +
.../notes/show-datamodel-api-6945b744fd5d25d5.yaml |  12 +
...ort-keystoneclient-option-b30d1ff45f86a2e7.yaml |   5 +
.../support-placement-api-58ce6bef1bbbe98a.yaml    |   8 +
.../notes/uwsgi-support-8dcea6961e56dad0.yaml      |  12 +
.../watcher-planner-selector-84d77549d46f362a.yaml |   5 +
releasenotes/source/index.rst                      |   1 +
.../locale/en_GB/LC_MESSAGES/releasenotes.po       | 651 ---------------------
releasenotes/source/stein.rst                      |   6 +
requirements.txt                                   |  20 +-
setup.cfg                                          |   8 +-
test-requirements.txt                              |   2 +-
tox.ini                                            |  34 +-
watcher/api/app.wsgi                               |  23 +-
.../api/controllers/rest_api_version_history.rst   |   5 +
watcher/api/controllers/v1/__init__.py             |  12 +
watcher/api/controllers/v1/action.py               |   8 +-
watcher/api/controllers/v1/action_plan.py          |  17 +-
watcher/api/controllers/v1/audit.py                |  51 +-
watcher/api/controllers/v1/audit_template.py       |  14 +-
watcher/api/controllers/v1/data_model.py           |  68 +++
watcher/api/controllers/v1/goal.py                 |   3 +-
watcher/api/controllers/v1/scoring_engine.py       |   3 +-
watcher/api/controllers/v1/service.py              |  11 +-
watcher/api/controllers/v1/strategy.py             |  11 +-
watcher/api/controllers/v1/utils.py                |   9 +
watcher/api/controllers/v1/versions.py             |   4 +-
watcher/api/scheduling.py                          |   3 +-
watcher/api/wsgi.py                                |  41 ++
watcher/applier/actions/base.py                    |   7 +-
.../applier/actions/change_nova_service_state.py   |   7 +-
watcher/applier/actions/migration.py               |   6 +-
watcher/applier/actions/volume_migration.py        |  11 +-
watcher/applier/messaging/trigger.py               |   4 +-
watcher/applier/workflow_engine/default.py         |   4 +-
watcher/cmd/__init__.py                            |  20 +
watcher/cmd/status.py                              |  21 +-
watcher/common/clients.py                          |  69 ++-
watcher/common/config.py                           |   7 +-
watcher/common/exception.py                        |  53 +-
watcher/common/nova_helper.py                      | 133 +++--
watcher/common/placement_helper.py                 | 179 ++++++
watcher/common/policies/__init__.py                |   2 +
watcher/common/policies/data_model.py              |  37 ++
watcher/common/scheduling.py                       |  27 +
watcher/common/service.py                          |   9 +-
watcher/common/utils.py                            |   5 +-
watcher/conf/__init__.py                           |  10 +
watcher/conf/_opts.py                              |  58 --
watcher/conf/api.py                                |   2 +-
watcher/conf/applier.py                            |   4 +-
watcher/conf/ceilometer_client.py                  |   2 +-
watcher/conf/cinder_client.py                      |   2 +-
watcher/conf/clients_auth.py                       |   2 +-
watcher/conf/collector.py                          |  22 +-
watcher/conf/datasources.py                        |  59 ++
watcher/conf/db.py                                 |   2 +-
watcher/conf/decision_engine.py                    |  25 +-
watcher/conf/glance_client.py                      |   2 +-
watcher/conf/gnocchi_client.py                     |  13 +-
watcher/conf/grafana_client.py                     | 146 +++++
watcher/conf/grafana_translators.py                |  44 ++
watcher/conf/ironic_client.py                      |   2 +-
watcher/conf/keystone_client.py                    |  38 ++
watcher/conf/monasca_client.py                     |   2 +-
watcher/conf/neutron_client.py                     |   2 +-
watcher/conf/nova_client.py                        |  15 +-
watcher/conf/opts.py                               |  31 +-
watcher/conf/placement_client.py                   |  41 ++
watcher/conf/planner.py                            |   2 +-
watcher/datasource/base.py                         | 100 ----
watcher/datasource/ceilometer.py                   | 289 ---------
watcher/datasource/gnocchi.py                      | 197 -------
watcher/datasource/manager.py                      |  77 ---
watcher/datasource/monasca.py                      | 221 -------
.../versions/609bec748f2a_add_force_field.py       |  22 +
watcher/db/sqlalchemy/models.py                    |   1 +
watcher/decision_engine/audit/base.py              |  36 +-
watcher/decision_engine/audit/continuous.py        |  33 +-
.../datasources}/__init__.py                       |   0
watcher/decision_engine/datasources/base.py        | 227 +++++++
watcher/decision_engine/datasources/ceilometer.py  | 273 +++++++++
watcher/decision_engine/datasources/gnocchi.py     | 200 +++++++
watcher/decision_engine/datasources/grafana.py     | 251 ++++++++
.../datasources/grafana_translator}/__init__.py    |   0
.../datasources/grafana_translator/base.py         | 125 ++++
.../datasources/grafana_translator/influxdb.py     |  88 +++
watcher/decision_engine/datasources/manager.py     | 156 +++++
watcher/decision_engine/datasources/monasca.py     | 171 ++++++
.../decision_engine/goal/efficacy/indicators.py    |   2 +-
watcher/decision_engine/manager.py                 |   7 +-
.../decision_engine/messaging/audit_endpoint.py    |   4 +-
.../messaging/data_model_endpoint.py               |  60 ++
watcher/decision_engine/model/collector/base.py    |  52 +-
watcher/decision_engine/model/collector/cinder.py  |  30 +-
watcher/decision_engine/model/collector/ironic.py  |  22 +-
watcher/decision_engine/model/collector/nova.py    | 342 ++++-------
.../model/element/compute_resource.py              |   1 -
watcher/decision_engine/model/element/instance.py  |   5 +-
watcher/decision_engine/model/element/node.py      |  22 +-
watcher/decision_engine/model/element/volume.py    |   2 +-
watcher/decision_engine/model/model_root.py        |  58 +-
watcher/decision_engine/model/notification/nova.py | 172 ++++--
watcher/decision_engine/planner/manager.py         |  10 +-
.../planner/node_resource_consolidation.py         | 163 ++++++
watcher/decision_engine/rpcapi.py                  |   5 +
watcher/decision_engine/scope/compute.py           |  21 +-
watcher/decision_engine/solution/base.py           |   6 +-
.../decision_engine/strategy/context/default.py    |  10 +-
.../strategy/strategies/__init__.py                |   6 +-
.../strategy/strategies/actuation.py               |   8 +-
.../decision_engine/strategy/strategies/base.py    |  92 ++-
.../strategy/strategies/basic_consolidation.py     | 115 ++--
.../strategy/strategies/dummy_strategy.py          |   2 +-
.../strategy/strategies/dummy_with_resize.py       |   2 +-
.../strategy/strategies/dummy_with_scorer.py       |   2 +-
.../strategy/strategies/host_maintenance.py        |  21 +-
.../strategies/node_resource_consolidation.py      | 291 +++++++++
.../strategy/strategies/noisy_neighbor.py          |  33 +-
.../strategy/strategies/outlet_temp_control.py     |  51 +-
.../strategy/strategies/saving_energy.py           |  37 +-
.../strategies/storage_capacity_balance.py         |   3 +-
.../strategy/strategies/uniform_airflow.py         |  81 +--
.../strategies/vm_workload_consolidation.py        |  93 +--
.../strategy/strategies/workload_balance.py        |  68 +--
.../strategy/strategies/workload_stabilization.py  | 133 +++--
.../strategy/strategies/zone_migration.py          |  47 +-
watcher/hacking/checks.py                          |   1 +
watcher/locale/de/LC_MESSAGES/watcher.po           |  51 +-
watcher/locale/en_GB/LC_MESSAGES/watcher.po        |  45 +-
watcher/objects/audit.py                           |   9 +-
watcher/objects/utils.py                           | 151 -----
.../actions/test_change_nova_service_state.py      |   2 +-
.../test_taskflow_action_container.py              |  12 +-
.../decision_engine/audit/test_audit_handlers.py   |  11 +-
.../decision_engine/cluster/test_cinder_cdmc.py    |   2 +
.../decision_engine/cluster/test_nova_cdmc.py      | 339 ++++++++++-
.../datasources/grafana_translators/__init__.py    |   0
.../datasources/grafana_translators/test_base.py   | 106 ++++
.../grafana_translators/test_influxdb.py           | 176 ++++++
.../datasources/test_ceilometer_helper.py          | 171 ++++++
.../datasources/test_gnocchi_helper.py             | 178 ++++++
.../datasources/test_grafana_helper.py             | 305 ++++++++++
.../decision_engine/datasources/test_manager.py    | 158 +++++
.../datasources/test_monasca_helper.py             | 116 ++++
.../messaging/test_data_model_endpoint.py          |  54 ++
.../decision_engine/model/ceilometer_metrics.py    | 211 ++++---
.../decision_engine/model/data/scenario_1.xml      |  80 +--
.../decision_engine/model/data/scenario_10.xml     |  27 +
.../data/scenario_1_with_1_node_unavailable.xml    |  84 +--
.../data/scenario_1_with_all_instances_exclude.xml |  80 +--
.../data/scenario_1_with_all_nodes_disable.xml     |   8 +-
.../model/data/scenario_1_with_metrics.xml         |   8 +-
.../model/data/scenario_2_with_metrics.xml         |  20 +-
.../model/data/scenario_3_with_2_nodes.xml         |   8 +-
.../model/data/scenario_3_with_metrics.xml         |  12 +-
.../data/scenario_4_with_1_node_no_instance.xml    |   2 +-
.../model/data/scenario_5_with_instance_disk_0.xml |   4 +-
.../model/data/scenario_6_with_2_nodes.xml         |  12 +-
.../model/data/scenario_7_with_2_nodes.xml         |  12 +-
.../model/data/scenario_8_with_4_nodes.xml         |  20 +-
...nario_9_with_3_active_plus_1_disabled_nodes.xml |  20 +-
.../model/faker_cluster_and_metrics.py             | 104 ++--
.../decision_engine/model/faker_cluster_state.py   |  10 +
....json => instance-live_migration_post-end.json} |   2 +-
.../data/scenario3_service-update-disabled.json    |   2 +-
.../data/scenario3_service-update-enabled.json     |   2 +-
.../model/notification/data/service-create.json    |   2 +-
.../model/notification/data/service-delete.json    |   2 +-
.../model/notification/data/service-update.json    |  26 +-
.../model/notification/test_nova_notifications.py  | 193 ++++--
.../planner/test_node_resource_consolidation.py    | 245 ++++++++
.../planner/test_planner_manager.py                |   4 +-
.../solution/test_default_solution.py              |   9 +-
.../strategy/strategies/test_base.py               |  70 +++
.../strategies/test_basic_consolidation.py         |  84 +--
.../strategy/strategies/test_host_maintenance.py   |  31 +-
.../strategies/test_node_resource_consolidation.py | 345 +++++++++++
.../strategy/strategies/test_noisy_neighbor.py     |   2 +-
.../strategies/test_outlet_temp_control.py         |  14 +-
.../strategy/strategies/test_saving_energy.py      |  78 +--
.../strategies/test_vm_workload_consolidation.py   |  84 +--
.../strategy/strategies/test_workload_balance.py   |  16 +-
.../strategies/test_workload_stabilization.py      | 125 ++--
.../strategy/strategies/test_zone_migration.py     | 158 +++--
266 files changed, 9304 insertions(+), 4679 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index 39d429b2..cc65597b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9 +9 @@ keystoneauth1>=3.4.0 # Apache-2.0
-jsonschema<3.0.0,>=2.6.0 # MIT
+jsonschema>=2.6.0 # MIT
@@ -12,0 +13 @@ croniter>=0.3.20 # MIT License
+os-resource-classes>=0.4.0
@@ -16 +17 @@ oslo.config>=5.2.0 # Apache-2.0
-oslo.context>=2.20.0 # Apache-2.0
+oslo.context>=2.21.0 # Apache-2.0
@@ -20 +21 @@ oslo.log>=3.37.0 # Apache-2.0
-oslo.messaging>=5.36.0 # Apache-2.0
+oslo.messaging>=8.1.2 # Apache-2.0
@@ -30 +31 @@ pbr>=3.1.1 # Apache-2.0
-pecan>=1.2.1 # BSD
+pecan>=1.3.2 # BSD
@@ -39 +40 @@ python-neutronclient>=6.7.0 # Apache-2.0
-python-novaclient>=10.1.0 # Apache-2.0
+python-novaclient>=14.1.0 # Apache-2.0
@@ -41 +42 @@ python-openstackclient>=3.14.0 # Apache-2.0
-python-ironicclient>=2.3.0 # Apache-2.0
+python-ironicclient>=2.5.0 # Apache-2.0
@@ -46 +47 @@ taskflow>=3.1.0 # Apache-2.0
-WebOb>=1.7.4 # MIT
+WebOb>=1.8.5 # MIT
@@ -48 +49,3 @@ WSME>=0.9.2 # MIT
-networkx>=1.11 # BSD
+# NOTE(fdegir): NetworkX 2.3 dropped support for Python 2
+networkx>=1.11,<2.3;python_version<'3.0'  # BSD
+networkx>=1.11;python_version>='3.4' # BSD
@@ -49,0 +53 @@ microversion_parse>=0.2.1 # Apache-2.0
+futurist>=1.8.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index a6810b6a..1a5854f6 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -16 +16 @@ os-api-ref>=1.4.0 # Apache-2.0
-bandit>=1.1.0 # Apache-2.0
+bandit>=1.6.0 # Apache-2.0






More information about the Release-announce mailing list