Fixes glance add / update / image-create / image-update on Windows

Fixes Bug #1050345

The image upload hangs if the file contains a byte with value 0x1A (EOF), due to
the fact that the file or stdin streams are treated as text and not
binary streams. This fix sets the proper binary mode.

Change-Id: I3425cb9729a8da4d1b73fbfba06fd6f2c7e8833e
Merge "Fixes glance add / update / image-create / image-update on Windows"
Use full URI path from Glance endpoint in HTTP requests

Fixes bug 1052846

Now the connection uses host, port and path to connect to Glance. So proxied connections to Glance are allowed.

Change-Id: I53a890e6532adb8168961d1d09f938bf439e895c
Add happy path tests for ResponseBodyIterator

Change-Id: I5e971b57a0591752e7fca76d0df78ce139308db5
Simplify http(s) connection instantiation

The endpoint parsing and connection instantiation code was too
complicated and easily broken. This assigns human-readable names to
instance variables and breaks up the parsing into more understandable
chunks.

Fixes bug 1060316.

Change-Id: I5c5236f90d88b9e797cf0a476aabe8cc7cfa1cc9
Display acceptable disk/container formats in help text

Fixes bug #1056497

This patch provides more information in the help text. Originally the text
provided the trivial definitions of the arguments disk_format and
container_format. This patch updates the text to display the acceptable
formats.

Change-Id: I893b52c9f72a34c75e8bea522820863592300302
Handle create/update of images with unknown size

It may not be possible to know in advance the total
size of image data which is to be uploaded, for example
if the data is being piped to stdin.

To handle this we use HTTP Transfer-Encoding: chunked
and do not set any image size headers.

Various subtly different cases needed to be handled for
both image-create and image-update, including:

 * input from named pipe
 * piped input of zero size
 * regular file of zero length

Fix for bug 1056220.

Change-Id: I0c7f0a64d883e058993b954a1c465c5b057f2bcf
Implement blueprint ssl-connect-rework

Use pyOpenSSL for HTTPS connections.

This allows:

* Neater loading of system CA files
* Optional disabling of SSL compression

The performance gain from disabling SSL compression is significant
in cases where the image being uploaded/downloaded is in an already
compressed format (eg qcow2).

Related to bp ssl-connect-rework.

Change-Id: I0568b6c95c5fc7b8eafdbd0284e24c453660a55a
Merge "Handle create/update of images with unknown size"
Merge "Display acceptable disk/container formats in help text"
Add OpenStack trove classifier for PyPI

Add trove classifier to have the client listed among the
other OpenStack-related projets on PyPI.

Change-Id: I2bb290f529fd2cd08d0093f495074d8e1683d91f
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Fixes shell command for member-delete

Fixes the member-delete cli command and string formatting for
dry-run option.
Fixes bug1064320

Change-Id: I338f03d53da5c9b7656ae4d1335de9623b774dd8
Merge "Fixes shell command for member-delete"
Allow deletion of multiple images through CLI

Add nargs to argparse for image-delete command to
allow muliple (optional) positional image-id arguments.
For example:
image-delete xxx aaa yyy will delete valid images
xxx and yyy and print error message for invalid image
aaa. Also with --verbose you can see some extra text
on delete request for each image.

Fixes bug1056498.

Change-Id: I6e804700ed24d16f90ec92569c0893cad4aaa26f
Merge "Allow deletion of multiple images through CLI"
Fixes setup compatibility issue on Windows

Fixes Bug #1052161

"python setup.py build" fails on Windows due to a hardcoded shell path:
/bin/sh

setup.py updated using openstack-common/update.py

Change-Id: If0ae835aeada8769e46dddf4f3c2f2edfdfbc5fe
added --version as new parameter

fixes bug 1056504
Change-Id: Ib28e3941006b46553001d7895d5ddf4b0f9c540d
Enhance --checksum help with algorithm

Fixes bug 1056499.

Added a line to the help text of --checksum which enhances the help text
to show what checksum algorithm is expected.

Change-Id: Ie6604022dd9f398c639afe647b2d94b5179dbb61
Fixes bug on Windows related to a wrong API url

Fixes Bug #1079323

python-glanceclient (latest repository code) fails on Windows due to a
malformed API url. This error is due to the usage of os.path.normpath(),
which should not be used for URLs as it swaps "/" with "\" on Windows.

The fix consists in using posixpath.normpath().
Please see also https://bugs.launchpad.net/nova/+bug/1077125 and related
commit.

Change-Id: Iaa643bd579963ad9ffbf10674973cbca75d435ac
Merge "Fixes bug on Windows related to a wrong API url"