From 4dfcc40527aabde4a6f346b11c378161cdefa4a6 Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Fri, 9 Sep 2016 15:23:34 -0700 Subject: [PATCH] Adding new Travis key. PR #2288 broke the Travis build since the key stored (from 2014) didn't have the project ID as a value. --- google/cloud/credentials.py | 11 ++++++--- system_tests/attempt_system_tests.py | 32 ++++++++++++++++++++++++--- system_tests/key.json.enc | Bin 1248 -> 2448 bytes 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/google/cloud/credentials.py b/google/cloud/credentials.py index b6ca5f3aff04..daf0a914d3b0 100644 --- a/google/cloud/credentials.py +++ b/google/cloud/credentials.py @@ -62,10 +62,15 @@ def get_credentials(): { 'type': 'service_account', - 'client_id': '...', - 'client_email': '...', + 'project_id': '...', 'private_key_id': '...', - 'private_key': '...' + 'private_key': '...', + 'client_email': '...', + 'client_id': '...', + 'auth_uri': '...', + 'token_uri': '...', + 'auth_provider_x509_cert_url': '...', + 'client_x509_cert_url': '...' } The second of these is simply a JSON key downloaded from the Google APIs diff --git a/system_tests/attempt_system_tests.py b/system_tests/attempt_system_tests.py index ce97a97fd33c..c5c9ef2a843e 100644 --- a/system_tests/attempt_system_tests.py +++ b/system_tests/attempt_system_tests.py @@ -19,6 +19,28 @@ If being run as part of a Travis build for a merged commit, the encrypted `key.json` file need be decrypted before running tests. + +Before encrypting: + +* Visit ``https://github.com/settings/tokens/new``, get a token, + and store the token in travis.token file. +* Visit + ``https://console.cloud.google.com/apis/credentials?project={PROJ}`` +* Click "Create credentials >> Service account key", select your + service account and create a JSON key (we'll call it ``key.json``) + +Encrypt the file via:: + +$ travis login --github-token=$(cat travis.token) +$ travis encrypt-file --repo=GoogleCloudPlatform/google-cloud-python key.json + +After running ``travis encrypt-file``, take note of the ``openssl`` command +printed out. In particular, it'll give the name of the key and +IV (initialization vector) environment variables added to the Travis +project. + +See: +https://docs.travis-ci.com/user/encrypting-files/ """ @@ -26,6 +48,8 @@ import subprocess import sys +from google.cloud.environment_vars import CREDENTIALS + from run_system_test import FailedSystemTestModule from run_system_test import run_module_tests @@ -46,6 +70,8 @@ SCRIPTS_DIR = os.path.dirname(__file__) ROOT_DIR = os.path.abspath(os.path.join(SCRIPTS_DIR, '..')) ENCRYPTED_KEYFILE = os.path.join(ROOT_DIR, 'system_tests', 'key.json.enc') +ENCRYPTED_KEY_ENV = 'encrypted_c16407eb06cc_key' +ENCRYPTED_INIT_VECTOR_ENV = 'encrypted_c16407eb06cc_iv' def check_environment(): @@ -73,9 +99,9 @@ def decrypt_keyfile(): print('Running in Travis during merge, decrypting stored ' 'key file.') - encrypted_key = os.getenv('encrypted_a1b222e8c14d_key') - encrypted_iv = os.getenv('encrypted_a1b222e8c14d_iv') - out_file = os.getenv('GOOGLE_APPLICATION_CREDENTIALS') + encrypted_key = os.getenv(ENCRYPTED_KEY_ENV) + encrypted_iv = os.getenv(ENCRYPTED_INIT_VECTOR_ENV) + out_file = os.getenv(CREDENTIALS) # Convert encrypted key file into decrypted file to be used. subprocess.call([ 'openssl', 'aes-256-cbc', diff --git a/system_tests/key.json.enc b/system_tests/key.json.enc index 22dd69ecde27a5c2c64e55522ab649b2228881e5..1444a17dcd1c4452144b65a5c56dab22f8b8d97c 100644 GIT binary patch literal 2448 zcmV;B32*j;stoT{H+J|SCU*Z^OjU#@ZV5o5)p?o2rjxxthnIe}8g#at+!O(ur@9TgXuT;eo&YF3D=--&TT^j&=V%LlgXT?jj*|c{`o(pKv!HZI=HcLR)R+;GpQX^@eOsTIKr*63VUswyIM}!v|I&2 z%PR{5+r)h2a_cG1aR7w~cSsw}x|>2*?a;8fqEn4ZbuC#;y)wf=@pzDMhPe>Zz*NGz z&B7nmOaRuN2z=pWP>e+Y|`6tV00m{zk5Lay=yjEs(h z3NG55o%tY6vlr|sgRk+iuYv8c4yrL5f)<7Lk({RvothsszM8(1B>YIu z@WRpsEIeR;R&)(JnIygF^@+p%-x@-_>d{fx)()s`tA(GTOAmu z8GSI8G#bsxmKi$~gPdwd7gDuzXGr{~c(HHu5_6m=s1!Eq;pUEDqjWj1sO*VPcCNNh zIN2r=@Q>n(J$q z?6QtT1)FCDo{l;m0ufnrS9)EJRuQ`PKqq|e zv$a-62*mJ@`H}V<)yrSrP>>837s{POc@Mz)I$+RP@6tyfEdGvIs#+6n*Z@C(?d{+Tfd_0S^(vx+MLU0(-zjSISS=5T^^fG{mYY1hZ%bxPYPzB3fdkLRh*@zU>(bN5t3vF##M#nhi`H;Gh4QP63$k{7Bg zyiDu>G>I4Gx98kWdUUT!qQSyIyZRIGo&Xp;oSx$mAm%pjjqzSSh*|V2@Ht(%>2oRW z4a7Z93$P4gRJ-SuJdaAK_U9rrhKfd&j*I;ijwJhu-$8)of)n6B>^iYPc;Sih1dYbE z-^6-*l%aDM7^8bV+9er~i&DTXoG;llh70^mA{UMSR1Gg#Qog3LQtfy-xjjzYwzYzg-pO2F5=;edT2XyRWZy5~OtweG(~ zP}xbX5}xo9x~0;`sY+p!%MSkLZ#6aEG#>GZ3I65k7@zsrwf~qITJ?qlUZ+dvO|MT+b+s707=^&+2HoTpoI=_aWY;W43Bv8_4O}h zLr`L1oX=c76U}6O9u$xmAaRnU7g{-NhZ;%^kIIw+2|I5Xs*yavT_unm_1Zy^eFL}x z5p*=IQ9}NeFyKsH;d1sP-CM{f96#^PvMf^o!lQrlM@j?)(*|gRIS*O+ zw_x>@nsp3O6c8~KiPr0wRxa2VLWZ~1zae;SjsGcTo^?=z%#wS1>Re>jI98P9xT%e+dF>p5}O?`WiG}aYZTq`~WS{l`U1a z6L-JoDg;PPBE}~F0`2NyHg!YJC^A0h3VFe5o$e=u+Pk_pIi(6^YNBfe=qHq&FKk)) zEHx_Ha-@^2h&<+IM4#Y$yPE?q)h7EZ=7HwowrLZ2F_-lY%rCJs3Q*{wd!jEZK|qZ7 z9m#RnfoYpUxZ|f26u@_?x}|4^E22b=oXyvp_?f}h`SKM|UmmQofs_9tEL;=I^OAHz z^7cgDDw@E(84?-cRcUM9|9ge@5tSk5rU3P@2|!Pdhzg5@7b$7toc%_TwIJJz-Udx{ z*YC~~WZL`1!G*c%8fUtXZ|Ch24{up~`oQS4m`#Pb9ze%lzkai*v8gpK^<1HD;TN|2 zKYg6B#(4BKXX73{_03%QX1jc%yXNn5ywCksM7>AK`7jN8&nn;T{U+xFyI)a~sCh7% z&YtOgdPW0y%#h(aBcIU7G7g+|hnJlygLv6n9{Vype--5d@7(>f1rI$2S7^hf6Xbg+yC zwD-sks4pHSaf(SFiEy}LrJ`^Gk)4DKhb4@X6Vg{c%Ej9sun zZVO7l0Nc$WnCU}xT^G%nkN`76CAgW10}M6X^B)$BeNM{pIciKc7;{!qNtOnFW@}05 z-~OFS$ST{;g%ve^ZDNVVz!Jm(QPLGN8m-mWA6V%x1TEjFZ1f>E^j&`0Gp^PyhGpnQ9F1AB@m+b!Hrs O4tEUg(q>8rR|gR0o5qI# literal 1248 zcmV<61RwhsmpK9JAIKu%t(K!os&34jOi|CzO2ab;wrkBcg)}|K!|?ypR5sV(c0Dr? zFUWHanStfPT@>)j(0Y^Ea>&y+AlnSV5e$0suM2|iqat!2WoSd>UhJ$(*scBOAdr1* zkxVf_CRZUz(sepf(A70{xXp#{#JoY|XsH9Wpd(dCsaMdZ9q~Q_>3(iLS$@cx*-TA! z3x+$F7gpn**Rc$n zSRf;&lcbX{V(^mlu4C{Y8`TX2D;~(40WPcxksY~S1Eee8@$>yu6B>>ZQQLi5(7@DK zf2r1SWikMLm67)g?aH(c8PJ*~c_A=KR?AMf{Dk+V`9rF=iXc_-77nCQ5NMQS`NW~r zl)xMBLtlUn6To@dv8al0$r<%xvvp6Zymh6V0hDw>Z@R$iW!(J`GSgAU50_%r6b*x{ zT|0&&a;wJ*C0r3;{_5bdMK2&X2nz9RKlCPFs5EKCeMfFrI9{aQ>M_T`^wFkPpDtDp z38Zb%bQ&MsaRw&t5j$EW$OP@SV3u};HJxkeK2~wO*A+*H0Z7z&SaEr1s^PH^b8AIi zy0BouK-k`%*Nqb@RWc8O=Jw$BAib?E-|E;6IR3F|O^O>f!OsM5y;3xwJCJ|g9k!xbAYTq0MiNj0Xuh{_m9-b?pCvS{(aybJe z*(sEX@Q_NhMtX}*BaLkHX?CCOIW?}=x{8)}U6TBacY_n_ zVZ`Vohuy>Wf(KmaJ;uzj+r^g0;_D%pSeA>aiL~>d3?lW(2!{iG#5t<`jf8nCE~MYL z12Ef%OG{DV(y$rDf-KjT3*+G!mi9@ZE9@-kj{TkGUyhz6u7xDee~Io}S7Y0+l5P_? zY?2Zj5g54t`vuk3(5$ctaVcPKzRHJeb2a73-m;JBEt0awvK97HDwbw+pY-#fY!wg& zF+@?qXwAX%_c@=++k1O<)lN!~CU{OCdU*(`q>-N%@lr{#{vqt`ccE#w zSaR&OV^ese5u{xXj{9n)DI%}8YG6QOn?cR!r9DcCufyEun{xoaaI^e+&ekAMNNF7o z-6P=P4sCFkLp+)m?LNwb4B~~r%)Vgby{#<<=nTj>cP`%cThqYMk!w?8?>bYPX2N6mW$$)ohg>Y}#rc*fVwo^0sF9h7v9gPo+U*=a4zxXgS0imcqTCQxlP z6RuF3*+9Ctp!x{-f0k}Ob$TvQsv%bxugQ)%Xvde&19OA*q+FCf=%qM`=(5Z*hcot; zb3RV-JZb1G1kDMbfG_b9XvpeyHA7hL!Smr?J;!rdzJNv!@W#cy6vbBC1{MOoak8fy Kr8~3hxaD?3Sb4+%