-
Notifications
You must be signed in to change notification settings - Fork 238
/
ChangeLog
864 lines (630 loc) · 26.3 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
4.6.0
-----
* Transaction IDs are included with more errors.
* Now tested under Python 3.12.
* Various other minor bug fixes and improvements.
4.5.0
-----
* `swift stat --lh` now prints account quotas (including per-policy quotas)
in human-readable units, similar to account usage values.
* Modernized some aspects of packaging, allowing wheels to be built with more
(and more recent) tools.
* Various other minor bug fixes and improvements.
4.4.0
-----
* Now tested under Python 3.11.
4.3.0
-----
* Static Large Objects will now be used by default for segmented uploads
to clusters that support them. The new `--use-dlo` option may be used to
create Dynamic Large Objects, as was the previous behavior without
`--use-slo`.
* Uploads from stdin may now be Dynamic Large Objects by using the new
`--use-dlo` option.
* The `--timeout` option may now include 's', 'm', and 'h' suffixes similar
to the `tempurl` `<time>` argument.
* `499 Client Disconnect` responses are now retried in a manner similar to
`408 Request Timeout` responses.
* Requests are retried for more SSL errors. Only certificate validation
errors will not be retried.
* If downloaded content does not match the Content-Length from response
headers, the reported error will now highlight Content-Length rather than
ETag.
* Transaction IDs are now included when downloaded content does not match
the expectations set by response headers.
* Fix an import error for some distributions by using `importlib` rather than
`pkg_resources` when possible.
* Various other minor bug fixes and improvements.
4.2.0
-----
* The `tempurl` subcommand may now be used to sign admin `/info` requests.
* Now tested under Python 3.10.
* Various other minor bug fixes and improvements.
4.1.0
-----
* Tempurl times may now include suffixes: 's', 'm', 'h', or 'd' to indicate
seconds, minutes, hours, or days respectively. Times with no suffix
continue to be interpretted as seconds.
* Rate-limit responses (498, 429) are now retried.
* Added a `--skip-container-put` option when uploading.
4.0.1
-----
* Added a new `--digest` option to `swift tempurl` to select the signature
algorithm to use. Default is sha256, which has been supported by default
since Swift 2.17.0, though older clusters may require sha1 (the previous
default). Use `swift capabilities` to check the `allowed_digests`.
4.0.0
-----
* Drop support for Python 2.
* Added a `--timeout` option. By default, operations wait indefinitely.
* Swiftclient no longer monkey-patches the requests library.
3.13.1
-----
* This is the final release to support Python 2.
* Fix some example code.
3.13.0
-----
* Improve account-listing formatting when containers have billions of objects.
* Include storage policy information in long-formatted account listings.
* Fix aggregation when listings include more than 10,000 items.
* Suppress traceback logging for 404s.
3.12.0
-----
* Various minor bug fixes and improvements.
3.11.1
-----
* Various minor bug fixes and improvements.
3.11.0
-----
* Fixed a file descriptor leak on Python 2 that was introduced in 3.9.0.
* Transaction IDs are now included in more exceptions.
* Fixed a socket leak when using some module-level functions.
* `swift delete --all` now implies `--versions` to delete all old versions
of objects as well.
* Now tested under Python 3.9.
3.10.1
-----
* Tolerate some password-based values for `OS_AUTH_TYPE`.
* Added `max_backoff` and `starting_backoff` options in the `SwiftService` API.
3.10.0
-----
* Added support for the new object-versioning API to the `list`, `stat`,
`delete`, and `download` subcommands. This optional API was introduced
in Swift 2.24.0; for more information on the API, see
https://docs.openstack.org/swift/latest/middleware.html#object-versioning-api
* Added support for Keystone v3 application credentials using
`--os-auth-type v3applicationcredential`.
* Fixed an issue with capabilities-endpoint discovery when Swift is exposed as
a subpath on the server.
3.9.0
-----
* Now tested under Python 3.8.
* Better clean up connections when using the low-level client.py API.
* Fixed a display issue when `swift delete` made multiple attempts to bulk
delete objects.
3.8.1
-----
* Deleting or overwriting a symlink to an SLO or DLO will no longer attempt
to clean up the large object's segments.
* Fixed an issue sending non-ASCII metadata keys on Python 3.
Note that receiving such metadata on py3 is still broken;
see https://bugs.python.org/issue37093
* Documentation can now be rendered as a PDF.
* Dropped Python 3.5 testing.
3.8.0
-----
* Added a new `--json` option to `swift list`.
* Fixed an issue introduced in 3.5.0 where re-uploading an SLO with
the same size, mtime, and segment size would delete all of the
just-uploaded segments.
* Various other minor bug fixes and improvements.
3.7.0
-----
* Added the delimiter keyword parameter to `get_account()` to match the
functionality of `get_container()`.
* Fixed an issue in the client module where socket connections weren't
closed properly before being dereferenced.
* Various other minor bug fixes and improvements.
3.6.0
-----
* Add the `--prompt` option for the CLI which will cause the user to be
prompted to enter a password. Any password otherwise specified by
`--key`, `--os-password` or an environment variable will be ignored.
* Added bash completion support to the `swift` CLI. Enable this by sourcing
the included `tools/swift.bash_completion` file. Make it permanent by
including this file in the system's `/etc/bash_completion.d` directory.
* Add ability to generate a temporary URL with an IP range restriction.
TempURLs with IP restrictions are supported in Swift 2.19.0 or later.
* The client.py SDK now supports a `query_string` option on the
`head_object()` method. This is useful for finding information on
SLO/DLO manifests without fetching the entire manifest.
* The client.py SDK now respects `region_name` when using sessions.
* Added a `.close()` method to an object response, allowing clients to give
up on reading the rest of the response body, if they so choose.
* Fixed a bug where using `--debug` in the CLI with unicode account names
would cause a client crash.
* Make OS_AUTH_URL work in DevStack (for testing) by default.
* Dropped Python 3.4 testing.
* Various other minor bug fixes and improvements.
3.5.0
-----
* Allow for object uploads > 5GB from stdin.
When uploading from standard input, swiftclient will turn the upload
into an SLO in the case of large objects. By default, input larger
than 10MB will be uploaded as an SLO with 10MB segment sizes. Users
can also supply the ``--segment-size`` option to alter that
threshold and the SLO segment size. One segment is buffered in
memory (which is why 10MB default was chosen).
* The ``--meta`` option can now be set on the upload command.
* Updated PyPy test dependency references to be more accurate
on different distros.
* Various other minor bug fixes and improvements.
3.4.0
-----
* The `swift` CLI now supports streaming from stdin. If "-" is given
as the source, the object content is read from stdin. The
`--object-name` must be given when content is loaded from stdin.
* Tolerate RFC-compliant ETags returned from the server.
* Skip checksum validation on partial downloads.
* Buffer reads from disk, resulting in much faster upload throughput.
* Added support for ISO 8601 timestamps for tempurl, matching the
feature in Swift 2.13.0.
* Added an option to ignore mtime metadata entry (`--ignore-mtime`).
* When using SwiftService to delete many objects, the bulk delete page
size will now be respected. Previously, exceeding this limit would
prevent any objects from being deleted.
* Expose `--prefix` as an option for st_delete.
* Imported docs content from openstack-manuals project.
* Various other minor bug fixes and improvements.
3.3.0
-----
* Added support for prefix-based tempurls. This allows you to create a
tempurl that is valid for all objects which share a given prefix and
matches the feature in Swift 2.12.0 and later.
* In the SDK, we previously only accepted iterables of strings like
'Header: Value'. Now, we'll also accept lists of tuples like
('Header', 'Value') as well as dictionaries like {'Header': 'Value'}.
* Improved help message strings
* Various other minor bug fixes and improvements.
3.2.0
-----
* Added Keystone session support and a "v1password" plugin for Keystone.
This plugin provides a way for Keystone sessions (and clients that
use them, like python-openstackclient) to communicate with old auth
endpoints that still use this mechanism.
* HEAD, GET, and DELETE now support sending additional headers to match
existing functionality on PUT requests.
* Various other minor bug fixes and improvements.
3.1.0
-----
* Added a copy object method.
* Arbitrary query strings can now be passed into container functions.
* Client certificate and key can now be specified via CLI
options (--os-cert/--os-key) or environment variables ($OS_CERT/$OS_KEY).
* A new CLI option `--ignore-checksum` can be specified to turn off
checksum validation. In the SDK, the new `checksum=True` parameter can
be used for the same purpose.
* Added --json option to `swift capabilities` / `swift info`
* Default to v3 auth if we find a (user|project)-domain-(name|id) option.
* Added a Python version constraint of >= Py27.
* `client.py` will now retry on a 401 (auth error) even if `retries` is
set to zero.
* Fixed `swift download` when `marker` was specified.
* Object segments uploaded via swiftclient are now given the content type
"application/swiftclient-segment".
* "Directory marker" objects are now given a "application/directory"
content type to match both Swift's `staticweb` feature and other
ecosystem tools.
* Strip leading/trailing whitespace from headers (otherwise, new versions
of the requests library will raise an InvalidHeader error). Additionally,
header values with standard types (integer, float, or bool) are coerced
to strings before being sent to a socket.
* Non-python dependencies are now specified in bindep.txt. Currently this
only lists a single dependency for testing (PyPy), but if future
dependencies are added, they will be included in this file.
* Client exceptions now include response headers. One benefit is that
this allows clients to see transaction IDs without needing to turn on
debug logging.
* Client connections now accept gzip-encoded responses.
* Various other minor bug fixes and improvements.
3.0.0
-----
* Python 2.6 and Python 3.3 support has been removed. Currently
supported and tested versions of Python are Python 2.7 and Python 3.4.
* Do not reveal sensitive headers in swiftclient log messages by default.
This is controlled by the client.logger_settings dictionary. Setting the
`redact_sensitive_headers` key to False prevents the information hiding. If
the value is True (the default), the `reveal_sensitive_prefix` controls
the maximum length of any sensitive header value logged. The default is
16 to match the default in Swift.
* Object downloads that fail partway through will now retry with a Range
request to read the rest of the object.
* Object uploads will be retried if the source supports seek/tell or has a
reset() method.
* Delete requests will use the cluster's bulk delete feature, if available,
for requests that would require a lot of individual deletes.
* The delete CLI option now accepts a --prefix option to delete objects that
start with the given prefix (similar to the same-named option for list).
* Add support for the auth-version to be specified using
--os-identity-api-version or OS_IDENTITY_API_VERSION
for compatibility with other openstack client command
line options.
* --debug and --info command-line options now work anywhere in the command.
* Objects can now be uploaded to pseudo-directories with the CLI.
* Fixed an issue with uploading a large object that includes a unicode path.
* swiftclient can now auth against Keystone using only a project (tenant)
and a token. This is useful when the client doesn't have access to the
password for a user but otherwise has been granted access.
* Various other minor bug fixes and improvements.
2.7.0
-----
* This is the very last release to support Python 2.6. Any further
development on the 2.7.x release series will only be for security bugfixes.
* Added content type to CLI object list long-form output
* client.get_container() and client.head_object now accept a headers parameter
* Fixed bug when setting Content-Type on upload from CLI
* Fixed bug when deleting DLOs with unicode characters
* Updated man pages and docstrings
* Suppress iso8601 logging in --debug output
* Various other minor bug fixes and improvements.
2.6.0
-----
* Several CLI options have learned short options. The usage strings have
been updated to reflect this.
* Added --no-shuffle option to the CLI download command.
* Added --absolute option for CLI TempURL generation and the corresponding
parameter to utils.generate_temp_url(). This allows for an exact, specific
time to be used for the TempURL expiry time.
* CLI arguments are now always decoded as UTF-8.
* Stop Connection class modifying os_options parameter.
* Reduce memory usage for download/delete.
* The swift service API now logs and reports the traceback
on failed operations.
* Increase httplib._MAXHEADERS to 256 to work around header limits in recent
Python releases.
* Added minimal working service token support to client.py.
* Various other minor bug fixes and improvements.
2.5.0
-----
* The CLI learned an "auth" subcommand which returns bash environment
snippets for auth credentials.
* The CLI --version option is now more explicit by calling itself
"python-swiftclient" rather than the name of the binary.
* Now validates the checksum of each chunk of a large object as it is
uploaded.
* Fixes uploading an object with a relative path.
* Added the ability to download objects to a particular folder.
* Now correctly removes all old segments of an object when replacing a
Dynamic Large Object (DLO).
* The --skip-identical option now works properly when downloading
large objects.
* The client.get_object() response learned a .read([length]) method.
* Fixed an issue where an intermediate caching/proxy service could cause
object content to be improperly decoded.
* Added a timeout parameter to HTTPConnection objects for socket-level
read timeouts.
* Removed a dependency on simplejson.
* Various other minor bug fixes and improvements.
2.4.0
-----
* Mention --segment-size option after 413 response
* Add improvements to MD5 validation
* Unindent a chunk of st_list
* Release connection after consuming the content
* Verify MD5 of uploaded objects
* Fix crash with -l, -d /, and pseudo folders
* add functional tox target
* Fix crash when stat'ing objects with non-ascii names
* Add help message for "<subcommand> --help"
* Fix missing ca-certificate parameter to get_auth
* Fix deleting SLO segments on overwrite
* This patch fixes downloading files to stdout
* Fix environment sanitization for TestServiceUtils
* Fix cross account upload using --os-storage-url
* Change tests to use CaptureOutput class
* Print info message about incorrect --totals usage when neither -l nor --lh is provided. Added test coverage for --totals
* Make preauth params work
* Fix misplaced check for None in SwiftUploadObject
* Fix misnamed dictionary key
* Change tests to use new CaptureOutput class
* Workflow documentation is now in infra-manual
* Show warning when auth_version >= 2 and keystoneclient is missing
* Capture test output better
* Suppress 'No handlers...' message from keystoneclient logger
* Add unit tests for _encode_meta_headers
* Fix misnamed variable in SwiftReader
* Check that content_type header exists before using
* Adds user friendly message when --segment-size is a non-integer
* Make swift post output an error message when failing
* Replaces Stacktraces with useful error messages
* Fix KeyError raised from client Connection
* Fix race in shell when testing for errors to raise SysExit
* Fix race between container create jobs during upload
* Fix the info command with --insecure
* Allow segment size to be specified in a human readable way
* Use skipTest from testtools instead of inherited Exception
* Add tests for account listing using --lh switch
* Do not crash with "swift list --lh" for Ceph RadosGW
2.3.1
-----
* Remove a debugging print statement
* Fix unit tests failing when OS_ env vars are set
* Fix bug with some OS options not being passed to client
* Add per policy container count to account stat output
* Stop creating extraneous directories
2.3.0
-----
* Work toward Python 3.4 support and testing
* Add importable SwiftService incorporating shell.py logic
* Adds console script entry point
* Do not create an empty directory 'pseudo/'
* fixed unit tests when env vars are set
* Fix crash when downloading a pseudo-directory
* Clean up raw policy stats in account stat
* Update theme for docs
* Add a tox job for generating docs
* Add keystone v3 auth support
2.2.0
-----
* Fix context sensitive help for info and tempurl
* Allow to specify storage policy when uploading objects
* Adding Swift Temporary URL support
* Add CONTRIBUTING.md
* Add context sensitive help
* Relax requirement for tenant_name in get_auth()
* replace string format arguments with function parameters
* Removed now unnecessary workaround for PyPy
* Use Emacs-friendly coding line
* Remove extra double quote from docstring
* Fix wrong assertions in unit tests
* fixed several pep8 issues
2.1.0
-----
* Fix Python3 bugs
* Remove testtools.main() call from tests
* Move test_shell.py under tests/unit/
* Mark swiftclient as being a universal wheel
* change assert_ to assertTrue
* change assertEquals to assertEqual
* Provide a link to the documentation to the README
* fixed typos found by RETF rules
* Fix running the unittests under py3
* Add "." for help strings
* Declare that we support Python 3
* Make the function tests Python3-import friendly
* Only encode metadata for user customed headers
* Add functional tests for python-swiftclient
* Removed a duplicate word in a docstring
* Mock auth_end_time in test_shell.test_download
* Don't utf8 encode urls
* Fixed several shell tests on Python3
* Fix up StringIO use in tests for py3
* Updated test_shell for Python3
* Fix test_raw_upload test
* Remove validate_headers
* Use quote/unquote from six module for py3
* Makes use of requests.Session
* Fix test_multithreading on Python 3
* Add tests for bin/swift
* Fix swiftclient.client.quote() for Python 3
* Add requests related unit-tests
* Update help message to specify unit of --segment-size option
* Python 3: fix tests on HTTP headers
* Updated from global requirements
* Use the standard library's copy of mock when it's available
* Replaced print statements with print function
* Removed usage of tuple unpacking in parameters
* don't use mutable defaults in kwargs
* set user-agent header
* Python 3: Get compatible types from six
* Python 3: Fix module names in import
* Python 3: Add six dependency
* Replace dict.iteritems() with dict.items()
* Python 3: Replace iter.next() with six.next(iter)
* Make bin/swift testable part 2
* Make bin/swift testable part 1
* Python 3: Fix tests using temporary text files
* Python 3: cast map() result to list
* Fix temporary pypy gate issue with setuptools
* Decode HTTP responses, fixes bug #1282861
* Copy Swift's .mailmap to swiftclient repo
* Improve help strings
* TCP port is appended two time in ClientException
* add "info" as an alias to "capabilities"
* Use six.StringIO instead of StringIO.StringIO
2.0.3
-----
* Help string format persistent
* Make the help strings constant
* Add LengthWrapper in put_object to honor content_length param
* Updated from global requirements
* Remove useless statement
* swift.1 manpage fix for groff warnings
2.0.2
-----
* Remove multipart/form-data file upload
2.0.1
-----
* Fix --insecure option on auth
* Only run flake8 on swiftclient code
2.0
---
1.9.0
-----
* Remove extraneous vim configuration comments
* Rename Openstack to OpenStack
* Port to python-requests
* Add option to skip downloading/uploading identical files
* Remove tox locale overrides
* Fix swiftclient help
* Fix misspellings in python swiftclient
* changed things because reasons
* Add missing backslash
* match hacking rules in swift
* Updated from global requirements
* Install manpage in share/man/man1 instead of man/man1
* assertEquals is deprecated, use assertEqual
* Add capabilities option
* Install swiftclient manpage
* Replace xrange in for loop with range
* Add --object-name
* retry on ratelimit
* Fix help of some optional arguments
* Updates tox.ini to use new features
* Fix Sphinx version issue
* Enable usage of proxies defined in environment (http(s)_proxy)
* Don't crash when header is value of None
* Fix download bandwidth for swift command
* Updates .gitignore
* Allow custom headers when using swift download (CLI)
* Replaced two references to Cloud Files with Swift
* Fix a typo in help text: "downlad"
* Add close to swiftclient.client.Connection
* enhance swiftclient logging
* Clarify main help for post subcommand
* Fixes python-swiftclient debugging message
1.8.0
-----
* Make pbr only a build-time dependency
* Add verbose output to all stat commands
* assertEquals is deprecated, use assertEqual (H602)
* Skip sniffing and resetting if retry is disabled
* user defined headers added to swift post queries
1.7.0
-----
* Sync with global requirements
* fix bug with replace old *LOs
* Extend usage message for `swift download`
1.6.0
-----
* Added support for running the tests under PyPy with tox
* Remove redundant unit suffix
* Reformat help outputs
* Add a NullHandler when setting up library logging
* Assignment to reserved built-in symbol "file"
* Added headers argument support to get_object()
* Move multi-threading code to a library
* fix(gitignore) : Ignore *.egg files
* python3: Start of adding basic python3 support
* Added log statements in swift client
* Update docstring for swiftclient.Connection.__init__
* Refuse carriage return in header value
* Adds max-backoff for retries in Connection
* Allow setting # of retries in the binary
1.5.0
-----
* Note '-V 2' is necessary for auth 2.0
* Allow storage url override for both auth vers
* Add *.swp into .gitignore
* Add -p option to download command
* add -t for totals to list command and --lh to stat
* add optional 'response_dict' parameters to many calls into which they'll return a dictionary of the response status, reason and headers
* Fixes re-auth flow with expired tokens
* Remove explicit distribute depend
* Add -l and --lh switches to swift 'list' command
* Changed the call to set_tunnel to work in python 2.6 or python 2.7 since its name changed between versions
* Add option to disable SSL compression
* python3: Introduce py33 to tox.ini
* Rename requires files to standard names
* remove busy-wait so that swift client won't use up all CPU cycles
* log get_auth request url instead of x-storage-url
* Update the man page
* Add .coveragerc file to show correct code coverage
* do not warn about etag for slo
* Eradicate eventlet and fix bug lp:959221
* Add end_marker and path query parameters
* Switch to pbr for setup
* Switch to flake8
* Improve Python 3.x compatibility
* Confirm we have auth creds before clearing preauth
1.4.0
-----
* Improve auth option help
* Static large object support
* Fixed pep8 errors in test directory
* Allow user to specify headers at the command line
* Enhance put_object to inform when chunk is ignored
* Allow v2 to use storage_url/storage_token directly
* Add client man page swift.1
* Allow to specify segment container
* Added "/" check when list containers
* Print useful message when keystoneclient is not installed
* Fix reporting version
1.3.0
-----
* Use testr instead of nose
* Update to latest oslo version/setup
* Add generated files to .gitignore
* Add env[SWIFTCLIENT_INSECURE]
* Fix debug feature and add --debug to swift
* Use testtools as base class for test cases
* Add --os-cacert
* Add --insecure option to fix bug #1077869
* Don't segment objects smaller than --segment-size
* Don't add trailing slash to auth URL
* Adding segment size as another x-object-manifest component
* Stop loss of precision when writing 'x-object-meta-mtime'
* Remove unused json_request
* fixed inconsistencies in parameter descriptions
* tell nose to explicity test the 'tests' directory
* Fixes setup compatibility issue on Windows
* Force utf-8 encode of HTTPConnection params
* swiftclient Connection : default optional arguments to None
* Add OpenStack trove classifier for PyPI
* Resolves issue with empty os_options for swift-bench & swift-dispersion-report
* Catch authorization failures
* Do not use dictionaries as default parameters
1.2.0
-----
* Add region_name support
* Allow endpoint type to be specified
* PEP8 cleanup
* PEP8 issues fixed
* Add ability to download without writing to disk
* Fix PEP8 issues
* Change '_' to '-' in options
* Fix swiftclient 400 error when OS_AUTH_URL is set
* Add nosehtmloutput as a test dependency
* Shuffle download order (of containers and objects)
* Add timing stats to verbose download output
* Ensure Content-Length header when PUT/POST a container
* Make python-keystoneclient optional
* Fix container delete throughput and 409 retries
* Consume version info from pkg_resources
* Use keystoneclient for authentication
* Removes the title "Swift Web" from landing page
1.1.1
-----
* Now url encodes/decodes x-object-manifest values
* Configurable concurrency for swift client
* Allow specify tenant:user in user
* Make swift exit on ctrl-c
* Add post-tag versioning
* Don't suppress openstack auth options
* Make swift not hang on error
* Fix pep8 errors w/pep8==1.3
* Add missing test/tools files to the tarball
* Add build_sphinx options
* Make CLI exit nonzero on error
* Add doc and version in swiftclient.__init__.py
* Raise ClientException for invalid auth version
* Version bump after pypi release
1.1.0
-----
* Removed now-unused .cache.bundle references
* Added setup.cfg for verbose test output
* Add run_tests.sh script here
* Adding fake_http_connect to test.utils
* Add openstack project infrastructure
* Add logging
* Defined version to 1.0
* Add CHANGELOG LICENSE and MANIFEST.in
* Delete old test_client and add a gitignore
* Rename client to swiftclient
* Fix links
* Import script from swift to run unittests
* Add test_client from original swift repository
* Add AUTHORS file
* Make sure we get a header StorageURL with 1.0
* Allow specify the tenant in user
* First commit