Update Google auth to support new JSON key format

Details

Description

Google introduced a new Service Account key format (JSON) and over time this will likely become the preferred format. We should begin by supporting this new format soon. If Google does make this the default, we may want to follow-up and issue a (debug | info) warning to users relying on P12 format.

AFAIK, there is no clear documentation on this format. However, if you open up the Developers Console and look under "APIs & Auth" -> "Credentials", you'll see the "Generate New JSON Key" button next to any existing Service Accounts (or be given the option to create one with a new SA).

Google has introduced a new JSON formatted private key for Service Accounts. This PR adds support for the new format along with some improved handling of files vs strings for the key value. Docs have been updated to inform users Google prefers the JSON format versus legacy P12 format.

ASF GitHub Bot
added a comment - 23/Jan/15 22:42 GitHub user erjohnso opened a pull request:
https://github.com/apache/libcloud/pull/438
[google compute] LIBCLOUD-657 add support for JSON private key format
Google has introduced a new JSON formatted private key for Service Accounts. This PR adds support for the new format along with some improved handling of files vs strings for the key value. Docs have been updated to inform users Google prefers the JSON format versus legacy P12 format.
/cc @windo - This PR also includes the patch from Siim Poder via LIBCLOUD-627 ( https://issues.apache.org/jira/browse/LIBCLOUD-627 ) to fix auth with Python 3.
Manual testing was done for the various file formats and using Python 2.7 and 3.2.
/cc @carlcrott since I broke you last time I touched GCE auth and if I do it again, he'll give me a :facepunch:
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/erjohnso/libcloud LIBCLOUD-657 _google_json_auth
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/libcloud/pull/438.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #438
commit bca920d19282c12eb60f0e71e87dfeab1e4b1607
Author: Eric Johnson <erjohnso@google.com>
Date: 2015-01-23T22:32:26Z
[google compute] add support for JSON private key format