We are stoked to announce the release of: karbor 1.0.0: Application Data Protection as a Service for OpenStack This release is part of the queens stable release series. The source is available from: https://git.openstack.org/cgit/openstack/karbor Download the package from: https://tarballs.openstack.org/karbor/ Please report issues through launchpad: https://bugs.launchpad.net/karbor For more details, please see below. Changes in karbor 0.6.0..1.0.0 ------------------------------ bba9322 Add trigger verification in API ac0a8e1 Remove the deprecated "giturl" option 86c2ebe Add description for policy file generation 1ae3466 Change the name of provider 'openstack-kubernetes' f740efa Revert "Add time format check in API" ed1f4b3 Updated from global requirements 4ab1905 Spec: Add Quotas to Karbor a6b174d Fix image restore failed with file system bank ae1d6c6 Add jsonschema validation for karbor copies API 947dc8f Remove repetitive body schema check for karbor API 36bc97d Fix the unit test error about k8s client 810f143 Add jsonschema validation for karbor quotas API 4ad7447 Add jsonschema validation for karbor verification API 95db269 Add jsonschema validation for karbor scheduled operations API d75fba7 Add jsonschema validation for karbor triggers API f4b59d9 Add jsonschema validation for checkpoint API c5ae53d Add jsonschema validation for karbor restores API d3d8e78 Updated from global requirements 38fa126 Add spec of json Schema Validation for Karbor API 209e700 Fix releasenotes build 8c1224e Make time trigger scheduling strategy configurable 99c45fb Updated from global requirements c1f501e Remove setting of version/release from releasenotes a0c0347 Updated from global requirements Diffstat (except docs and test files) ------------------------------------- api-ref/source/conf.py | 4 - etc/providers.d/openstack-kubernetes.conf | 4 +- karbor/api/schemas/checkpoints.py | 37 ++ karbor/api/schemas/copies.py | 37 ++ karbor/api/schemas/quota_classes.py | 27 ++ karbor/api/schemas/quotas.py | 28 ++ karbor/api/schemas/restores.py | 40 +++ karbor/api/schemas/scheduled_operations.py | 50 +++ karbor/api/schemas/triggers.py | 78 ++++ karbor/api/schemas/verifications.py | 38 ++ karbor/api/v1/copies.py | 14 +- karbor/api/v1/plans.py | 30 -- karbor/api/v1/providers.py | 14 +- karbor/api/v1/quota_classes.py | 3 + karbor/api/v1/quotas.py | 3 + karbor/api/v1/restores.py | 29 +- karbor/api/v1/scheduled_operations.py | 8 +- karbor/api/v1/triggers.py | 24 +- karbor/api/v1/verifications.py | 19 +- karbor/api/validation/parameter_types.py | 2 +- karbor/common/config.py | 8 - karbor/common/opts.py | 3 +- karbor/services/operationengine/api.py | 3 + .../operationengine/engine/triggers/__init__.py | 8 +- .../engine/triggers/timetrigger/__init__.py | 46 +++ .../engine/triggers/timetrigger/time_trigger.py | 396 ++++++++------------- .../timetrigger/time_trigger_multi_node.py | 253 +++++++++++++ .../timetrigger/timeformats/calendar_time.py | 35 +- .../timetrigger/timeformats/crontab_time.py | 13 +- .../engine/triggers/timetrigger/utils.py | 123 +++++++ karbor/services/operationengine/manager.py | 7 + karbor/services/operationengine/rpcapi.py | 3 + .../bank_plugins/file_system_bank_plugin.py | 2 + karbor/services/protection/clients/cinder.py | 2 +- karbor/services/protection/clients/k8s.py | 6 +- .../triggers/timetrigger/test_time_trigger.py | 158 ++++---- .../timetrigger/test_time_trigger_multi_node.py | 281 +++++++++++++++ .../unit/plugins/test_pod_protectable_plugin.py | 6 +- .../unit/plugins/test_volume_protectable_plugin.py | 8 +- .../protection/test_file_system_bank_plugin.py | 6 +- .../unit/protection/test_pod_protection_plugin.py | 8 +- karbor/utils.py | 46 --- releasenotes/source/conf.py | 10 +- requirements.txt | 14 +- test-requirements.txt | 8 +- 58 files changed, 2041 insertions(+), 618 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index b73be98..25f378a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13 +13 @@ jsonschema<3.0.0,>=2.6.0 # MIT -keystoneauth1>=3.2.0 # Apache-2.0 +keystoneauth1>=3.3.0 # Apache-2.0 @@ -15 +15 @@ keystonemiddleware>=4.17.0 # Apache-2.0 -kubernetes>=1.0.0 # Apache-2.0 +kubernetes>=4.0.0 # Apache-2.0 @@ -17 +17 @@ python-manilaclient>=1.16.0 # Apache-2.0 -oslo.config>=4.6.0 # Apache-2.0 +oslo.config>=5.1.0 # Apache-2.0 @@ -24 +24 @@ oslo.middleware>=3.31.0 # Apache-2.0 -oslo.policy>=1.23.0 # Apache-2.0 +oslo.policy>=1.30.0 # Apache-2.0 @@ -26 +26 @@ oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 -oslo.service>=1.24.0 # Apache-2.0 +oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 @@ -33 +33 @@ python-novaclient>=9.1.0 # Apache-2.0 -python-cinderclient>=3.2.0 # Apache-2.0 +python-cinderclient>=3.3.0 # Apache-2.0 @@ -38 +38 @@ python-neutronclient>=6.3.0 # Apache-2.0 -six>=1.9.0 # MIT +six>=1.10.0 # MIT diff --git a/test-requirements.txt b/test-requirements.txt index 5c9f04a..1dbf108 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9 +9 @@ croniter>=0.3.4 # MIT License -python-subunit>=0.0.18 # Apache-2.0/BSD +python-subunit>=1.0.0 # Apache-2.0/BSD @@ -14,2 +14,2 @@ testscenarios>=0.4 # Apache-2.0/BSD -testtools>=1.4.0 # MIT -kubernetes>=1.0.0 # Apache-2.0 +testtools>=2.2.0 # MIT +kubernetes>=4.0.0 # Apache-2.0 @@ -19 +19 @@ python-novaclient>=9.1.0 # Apache-2.0 -python-cinderclient>=3.2.0 # Apache-2.0 +python-cinderclient>=3.3.0 # Apache-2.0