We eagerly announce the release of: freezer 4.0.0: The OpenStack Backup Restore and Disaster Recovery as a Service Platform This release is part of the ocata release series. Download the package from: https://tarballs.openstack.org/freezer/ For more details, please see below. Changes in freezer 3.0.0.0rc1..4.0.0 ------------------------------------ 6ca0811 Add ability to restore nova instance 0964bc7 Updated from global requirements 0df317c Block based incremental support - rsync a8538ff Fix scheduler_cron have a error get cron args use dict e8173f1 Enable release notes translation 2027b91 Updated from global requirements 57ecd50 Add .project and .pydevproject to .gitignore 7341328 Add backup_name to cindernative backup 638efd2 Remove default=None for config options 29f1264 Backup/restore cinder/nova to ssh 42605c0 fix a typo in FAQ.rst 888eb6b Replace --unlink-first with --overwrite eee345b Backup nova/cinder to local c66dd8f Change --mode description 95dbe59 Updated from global requirements b08c785 Implemet PIPESTATUS env var to handle error correctly. 35adab8 Restore by glance fail to remove temporary image 8101e2a Remove unused code from freezer-scheduler 16e68e3 Select the most recent backup previous to the date ef9397d Fix restore nova nova_network validation 16b6437 Fix print warning when scheduler starts 11f2485 Print the backup name to log file 7b67f01 Compare the two time using different format 2a871b0 Fix upload Engine metafile to swift. a897e53 Show team and repo badges on README da29fee Add pep8 check to freezer tests 8000e53 Import only modules rather than objects eb8d377 Replace LOG.warn with LOG.warning d98de1a Switch to python-freezerclient 3e60f8f Updated from global requirements 59862f3 Added py35 environment configuration to tox.ini 191c272 Typo fixing b5cb5ee Append newline after printing the action result e254dfa Change "Openstack" to "OpenStack" 7498a69 Fix manifest upload with ceph backend 6145de0 Change import order 5649b2c Updated from global requirements 7cf0799 failed to backup data to ssh storage 3390b9c freezer README.rst error about MySQL config file 2cd6ee0 Updated from global requirements 16ff90c Use LOG.error to record log when initializing LOG 61ee6a3 Clean imports in code afca2bd Fix removing temp file 12148b8 Updated from global requirements 8c08499 Added release notes for freezer-agent fd87a6a Refactoring devstack plugin and tests 982c7ef Refactoring Freezer Engines 0b1a62c [TrivialFix] Fix freezer typo of README.rst dcc76e0 fix job_schedule result and start/end timestamps d2334a6 Updated from global requirements 96e856a Create directory JOBS_DIR using the devstack script 7ae39c0 Updated from global requirements e4011c0 Fix job_schedule trigger cron e645c4c Fixing lvm snapshot mountpoint ab47e90 Support upper-constraints in tox.ini 65e38ed Updated from global requirements 73f6305 Report Backup/Restore/Admin job was successful or not. 1507df8 Added sync and nosync opts for making the sync subprocess optional 73f09ad Stop adding ServiceAvailable group option 7cb4765 TrivialFix: Remove cfg import unused 7a27163 Fixing max_retries 4941bda Fix docstrings in index.rst & README.rst c385a79 Remove deprecated code ee1b6a4 failed to stop freezer-scheduler 2071da2 Using assertEqual instead of assertEquals 95278ac Improve abort mechanism to support same functionality as stable/mitaka a884077 log info was written to pid file 7a3a2cc Use ConfigParser instead of SafeConfigParser in Python 3 09c35e1 Updated from global requirements 9e22f05 Correct syntax errors 689de3e incorrect use CONF.set_override f7d436e Correct freezer reraising of exception Diffstat (except docs and test files) ------------------------------------- .gitignore | 5 + FAQ.rst | 35 +- INSTALL.rst | 2 +- README.rst | 44 +- devstack/lib/freezer | 2 + devstack/settings | 1 + freezer/apiclient/__init__.py | 0 freezer/apiclient/actions.py | 80 -- freezer/apiclient/backups.py | 89 -- freezer/apiclient/client.py | 275 ------ freezer/apiclient/exceptions.py | 70 -- freezer/apiclient/jobs.py | 150 ---- freezer/apiclient/registration.py | 83 -- freezer/apiclient/sessions.py | 163 ---- freezer/common/config.py | 89 +- freezer/engine/engine.py | 43 +- freezer/engine/exceptions.py | 19 - freezer/engine/manager.py | 77 ++ freezer/engine/rsync/__init__.py | 0 freezer/engine/rsync/pyrsync.py | 159 ++++ freezer/engine/rsync/rsync.py | 942 +++++++++++++++++++++ freezer/engine/tar/tar.py | 169 ++++ freezer/engine/tar/tar_builders.py | 10 +- freezer/engine/tar/tar_engine.py | 168 ---- freezer/exceptions/__init__.py | 0 freezer/exceptions/engine.py | 31 + freezer/job.py | 41 +- freezer/main.py | 49 +- freezer/mode/mysql.py | 2 +- freezer/mode/sqlserver.py | 2 +- freezer/openstack/backup.py | 12 +- freezer/openstack/osclients.py | 48 +- freezer/openstack/restore.py | 145 +++- freezer/scheduler/arguments.py | 139 ++- freezer/scheduler/daemon.py | 16 +- freezer/scheduler/freezer_scheduler.py | 93 +- freezer/scheduler/scheduler_job.py | 66 +- freezer/scheduler/shell.py | 286 ------- freezer/scheduler/utils.py | 24 +- freezer/scheduler/win_service.py | 4 +- freezer/snapshot/lvm.py | 5 +- freezer/storage/base.py | 13 +- freezer/storage/fslike.py | 28 + freezer/storage/local.py | 2 + freezer/storage/multiple.py | 9 +- freezer/storage/physical.py | 3 +- freezer/storage/ssh.py | 39 +- freezer/storage/swift.py | 22 +- .../unit/apiclient/test_apiclient_exceptions.py | 25 - .../unit/apiclient/test_apiclient_registration.py | 111 --- .../unit/apiclient/test_apiclient_sessions.py | 223 ----- freezer/utils/checksum.py | 8 +- freezer/utils/compress.py | 110 +++ freezer/utils/config.py | 49 +- freezer/utils/crypt.py | 92 ++ freezer/utils/streaming.py | 6 +- freezer/utils/utils.py | 24 +- releasenotes/source/_static/.placeholder | 0 releasenotes/source/_templates/.placeholder | 0 releasenotes/source/conf.py | 265 ++++++ releasenotes/source/index.rst | 17 + releasenotes/source/mitaka.rst | 6 + releasenotes/source/newton.rst | 6 + releasenotes/source/unreleased.rst | 5 + requirements.txt | 25 +- setup.cfg | 1 - specs/python-freezerclient.rst | 2 +- specs/tenant_based_backups.rst | 2 +- test-requirements.txt | 7 +- tox.ini | 19 +- 111 files changed, 4086 insertions(+), 4022 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 116c7da..8fb8342 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,2 +6,2 @@ setuptools!=24.0.0,>=16.0 # PSF/ZPL -pbr>=1.6 # Apache-2.0 -python-swiftclient>=2.2.0 # Apache-2.0 +pbr>=1.8 # Apache-2.0 +python-swiftclient>=3.2.0 # Apache-2.0 @@ -9,4 +9,5 @@ python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0 -python-glanceclient!=2.4.0,>=2.3.0 # Apache-2.0 -python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 -python-openstackclient>=2.1.0 # Apache-2.0 -oslo.utils>=3.16.0 # Apache-2.0 +python-glanceclient>=2.5.0 # Apache-2.0 +python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0 +python-openstackclient>=3.3.0 # Apache-2.0 +python-freezerclient>=1.0.0 # Apache-2.0 +oslo.utils>=3.18.0 # Apache-2.0 @@ -14,3 +15,3 @@ oslo.i18n>=2.1.0 # Apache-2.0 -oslo.log>=1.14.0 # Apache-2.0 -oslo.config>=3.14.0 # Apache-2.0 -keystoneauth1>=2.10.0 # Apache-2.0 +oslo.log>=3.11.0 # Apache-2.0 +oslo.config!=3.18.0,>=3.14.0 # Apache-2.0 +keystoneauth1>=2.18.0 # Apache-2.0 @@ -18 +19,2 @@ keystoneauth1>=2.10.0 # Apache-2.0 -PyMySQL!=0.7.7,>=0.6.2 # MIT License +pycrypto>=2.6 # Public Domain +PyMySQL>=0.7.6 # MIT License @@ -26 +28,2 @@ apscheduler # MIT License -psutil<2.0.0,>=1.1.1 # BSD +psutil>=3.0.1 # BSD + diff --git a/test-requirements.txt b/test-requirements.txt index d2ff1cf..b2b5691 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6 +6 @@ hacking<0.11,>=0.10.2 -coverage>=3.6 # Apache-2.0 +coverage>=4.0 # Apache-2.0 @@ -10,2 +10,2 @@ python-subunit>=0.0.18 # Apache-2.0/BSD -sphinx!=1.3b1,<1.3,>=1.2.1 # BSD -oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 +sphinx!=1.3b1,<1.4,>=1.2.1 # BSD +oslosphinx>=4.7.0 # Apache-2.0 @@ -13,0 +14 @@ testtools>=1.4.0 # MIT +reno>=1.8.0 # Apache-2.0