ovh / python-ovh

Thin wrapper around OVH's APIs. Handles all the hard work including credential creation and requests signing.
https://pypi.org/project/ovh/
Other
298 stars 81 forks source link

Fix: include the vendorized packages and package data in the install process #22

Closed brouberol closed 8 years ago

brouberol commented 8 years ago

Some collegues from Lyon told me that recent (0.4.0) ovh package broke after install, as no vendor was installed along.

I packaged the vendors in the tarball, and made sure to add the pem certificate bundle.

yadutaf commented 8 years ago

Thanks a lot for the fix. I'm checking it.

yadutaf commented 8 years ago

Hum, that's strange... The vendor dir is included in the package as expected and it works in a clean virtualenv. See

$ wget https://pypi.python.org/packages/source/o/ovh/ovh-0.4.0.tar.gz
$ tar -tvf ovh-0.4.0.tar.gz | grep 'ovh-0.4.0/ovh/vendor/requests/' | head 
drwxr-x--- jlebigot/jlebigot     0 2016-04-07 14:17 ovh-0.4.0/ovh/vendor/requests/
drwxr-x--- jlebigot/jlebigot     0 2016-04-07 14:17 ovh-0.4.0/ovh/vendor/requests/packages/
drwxr-x--- jlebigot/jlebigot     0 2016-04-07 14:17 ovh-0.4.0/ovh/vendor/requests/packages/chardet/
-rw-r----- jlebigot/jlebigot  1782 2016-04-07 12:14 ovh-0.4.0/ovh/vendor/requests/packages/chardet/cp949prober.py
-rw-r----- jlebigot/jlebigot  3678 2016-04-07 12:14 ovh-0.4.0/ovh/vendor/requests/packages/chardet/eucjpprober.py
-rw-r----- jlebigot/jlebigot 34872 2016-04-07 12:14 ovh-0.4.0/ovh/vendor/requests/packages/chardet/euctwfreq.py
-rw-r----- jlebigot/jlebigot 12628 2016-04-07 12:14 ovh-0.4.0/ovh/vendor/requests/packages/chardet/langgreekmodel.py
-rw-r----- jlebigot/jlebigot  7839 2016-04-07 12:14 ovh-0.4.0/ovh/vendor/requests/packages/chardet/escsm.py
-rw-r----- jlebigot/jlebigot 13359 2016-04-07 12:14 ovh-0.4.0/ovh/vendor/requests/packages/chardet/hebrewprober.py
-rw-r----- jlebigot/jlebigot  1295 2016-04-07 12:14 ovh-0.4.0/ovh/vendor/requests/packages/chardet/__init__.py

Also works from a clean venv:

$ mkvirtualenv test-pr-brouberol
$ pip install ipython ovh
$ ipython
Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
Type "copyright", "credits" or "license" for more information.

IPython 4.1.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import ovh

In [2]: client = ovh.Client()

In [3]: client.get('/me')
ovh/vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
ovh/vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Out[3]: 
## REDACTED ##

In [4]: 
Do you really want to exit ([y]/n)?
yadutaf commented 8 years ago

Seen together. The "It Works" impression was caused by the local cache :(