Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pubsub: convert to grpc #1070

Merged
merged 1 commit into from
Feb 16, 2016

Conversation

stephenplusplus
Copy link
Contributor

Fixes #1104

RE: #1049

This adds support for gRPC APIs where necessary (Service & ServiceObject). This PR also converts Pub/Sub to use gRPC.

To Dos

mockery -> mockery-next

Mockery wasn't holding up for our use of gRPC in this module. When trying to mock it in two different test suites, mockery couldn't handle it. I found mockery-next handles it quite well: cspotcode/mockery-next#6.

Mockery Next requires a more logical way of specifying the modules you want to stub (https://github.com/mfncooper/mockery/pull/25/files). That's why the enormous changes to just filepaths in almost every test file.

@stephenplusplus stephenplusplus added api: pubsub Issues related to the Pub/Sub API. core labels Jan 19, 2016
@googlebot googlebot added the cla: yes This human has signed the Contributor License Agreement. label Jan 19, 2016

service[protoOpts.method](snakeize(reqOpts), function(err, resp) {
if (err) {
var HTTP_ERROR_CODE_MAP = {

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@callmehiphop
Copy link
Contributor

What are your thoughts on instead of adding conditionals to check whether or not we should be using grpc or request, we instead made additional classes that extend Service and ServiceObject? e.g. ProtoService and ProtoServiceObject.

If possible I think it might provide us with a cleaner separation of logic and potentially less of the actual service (in this case PubSub) would need to change.

Just throwing it out there, TBH I'm not even sure if it would work since I'm still going through the code. :)

@stephenplusplus
Copy link
Contributor Author

That sounds good to me!

// out around 90 seconds. Allow an extra couple of seconds to give the API a
// chance to respond on its own before terminating the connection.
var PUBSUB_API_TIMEOUT = 90000;
this.timeout = PUBSUB_API_TIMEOUT + 2000;

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@stephenplusplus
Copy link
Contributor Author

@tbetbetbe - hello! I'm hoping you can take a look at how we're using gRPC here to make sure it's correct. I also have some general questions in my opening post for this PR that I could use some help with. Thanks, and if you have any questions, let me know!

@stephenplusplus stephenplusplus force-pushed the spp--grpc-rpc branch 2 times, most recently from 3dd733d to 28dbca2 Compare January 22, 2016 16:12
@stephenplusplus
Copy link
Contributor Author

@callmehiphop - ptal!

@callmehiphop
Copy link
Contributor

@stephenplusplus LGTM!

this.grpcCredentials
);

service[protoOpts.method](snakeize(reqOpts), function(err, resp) {

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@stephenplusplus
Copy link
Contributor Author

@murgatroid99 when I run our system tests, the output is pretty noisy:

  pubsub
D0129 16:18:20.158068000 123145305219072 frame_settings.c:243] adding 983041 for initial_window change
D0129 16:18:20.311131000 123145305219072 frame_settings.c:243] adding 983041 for initial_window change
D0129 16:18:20.358417000 123145306292224 frame_settings.c:243] adding 983041 for initial_window change
    Topic
D0129 16:18:21.339030000 123145304682496 frame_settings.c:243] adding 983041 for initial_window change
D0129 16:18:22.832881000 123145305219072 frame_settings.c:243] adding 983041 for initial_window change
D0129 16:18:23.626765000 123145305755648 frame_settings.c:243] adding 983041 for initial_window change

Is this something that can be switched off?

@murgatroid99
Copy link

Those verbose logs shouldn't be output at all unless you have GRPC_TRACE=http or GRPC_TRACE=all in your environment.

@stephenplusplus
Copy link
Contributor Author

I don't recall setting those. I echo'd and no value was returned, but unset just in case and still saw the logs.

@stephenplusplus
Copy link
Contributor Author

@murgatroid99 I had a friend try and he ran into the same problem:

D0202 10:54:49.967704000 123145306595328 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.002932000 123145307668480 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.012918000 123145306595328 frame_settings.c:243] adding 983041 for initial_window change
    1) "before all" hook
D0202 10:54:50.235652000 123145307668480 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.270647000 123145307668480 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.286221000 123145306058752 frame_settings.c:243] adding 983041 for initial_window change

Should I open an issue on gRPC?

@murgatroid99
Copy link

Yes, that would be helpful.

On Tue, Feb 2, 2016, 8:10 AM Stephen Sawchuk notifications@github.com
wrote:

@murgatroid99 https://github.com/murgatroid99 I had a friend try and he
ran into the same problem:

D0202 10:54:49.967704000 123145306595328 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.002932000 123145307668480 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.012918000 123145306595328 frame_settings.c:243] adding 983041 for initial_window change
1) "before all" hook
D0202 10:54:50.235652000 123145307668480 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.270647000 123145307668480 frame_settings.c:243] adding 983041 for initial_window change
D0202 10:54:50.286221000 123145306058752 frame_settings.c:243] adding 983041 for initial_window change

Should I open an issue on gRPC?


Reply to this email directly or view it on GitHub
#1070 (comment)
.

@stephenplusplus
Copy link
Contributor Author

grpc/grpc#5004 -- sorry to increment a repo with already greater than 5000 issues :( Thanks for your help, though!

@callmehiphop
Copy link
Contributor

I haven't been able to reproduce the IAM failures. Can you make sure to rm -rf node_modules && npm cache clean && npm install?

Still getting failures for this. Again, this doesn't look like a code issue, but rather the response for IAM comes back in object form vs strings for HTTP.

@stephenplusplus
Copy link
Contributor Author

Can you paste the errors?

@callmehiphop
Copy link
Contributor

  1. pubsub IAM should get a policy:
  Uncaught AssertionError: { version: 0,
    bindings: [],
    etag: 
     { '0': 0,
       '1': 32,
       '2': 1,
       length: 3,
       parent: 'ewogICJwcml2YXRlX2t deepEqual { bindings: [], etag: 'ACAB', version: 0 }
  + expected - actual

   {
     "bindings": []
  -  "etag": {
  -    "0": 0
  -    "1": 32
  -    "2": 1
  -    "length": 3
  -    "parent": "ewogICJwcml2YXRlX2tleV9pZCI6ICI0OGYzMjAxZjIwNGQwZTU0NTM1YjQxMTQwNWUxZjQ3OTU4NjkwYTg3IiwKICAicHJpdmF0ZV9rZXkiOiAiLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG5NSUlFdmdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLZ3dnZ1NrQWdFQUFvSUJBUUNrSjgxSnRYOW1xR3AzXG55d3lwR1ZVNUEvd0VqdmxRbk43Y0pPSHlweGVpOWdTVWhVSmdjNWRZZEVnNmgzTkNaUlRoQXB4aGtuUUhRb3lFXG50cG5yZnBDd05sMHI2dzN5enVBYUVvM21peHhickxGWkJNWXdHc1ZsN1hnenZ5ZEVLSmxVZGd6dy9iMFk3M25aXG5DQjhONEs3UGxCTk1JaXpnU1Q4SENiam1xMVB1eWxYcjR4cWFuOU5JdHVrV3NuKzg3OU42UUcvdkZncWhBaFU0XG5NTW11WDRmb0hDZlZnbEdCM0IrajEwMDdiQ3p0bkh5TGk0SHZLK2U4ck1vRWR6bXkvNk1nNU50ZnlDRHdzMW9CXG5pc3VsOVFIdHp1OThxcGFNY0pabXRXa3pEWU9ML09HcEpsYkc0bDhFR1FyYWFsOXp6NzVzNG9pNHZ0ZVovTEtGXG5BcnFlOXBDNUFnTUJBQUVDZ2dFQUdnNmpYSmJ0NFRyTW83VmNqaDhTVXhtWjBKTnRhZWxzeXQ4ajZxT3hjZEhCXG5pbDNZMm55ZXdwQzZ3bWVyMlJjNGlEc2szYXdrdE41UWRlU1NiRHBMOTF5NXozWGhZZkNLekRpenc2dkRWWjRGXG5ETTlnTWxTZGp2OXgvQ3pVcTlJUi9NRThicWlvY3FQWTRLV1VZRnlSQXl4TEgrT3c0ZTFlanR4eE9GUnIzMVNIXG4yQXZJWWhQZ1N6VVJIeTZTcUc2NlprdjlSdmhzNXpnR3RMUEQ0M3hUR2NhdnFkUmlzNWpVSzBTMHZWYUl4ZTVXXG5vK0M4ckh3T2h1QjFqUm8wNGtLV2tjZTQ1V01MK3dJZ3pKbDdVdCtnSjl0blVneWNoRjVsYXk0OFNoTWdNbFBKXG40TG5qQS9NRUZkYnhkc1dpZzlWc0E3VzBEdkNhb2VvbW5Gclo1NjBCQVFLQmdRRE43Y09tVXZLRmZxK2lieXVGXG5OcTQvQnF3NjZQM2JQTmxxdXhZL0NrTzVMZU9vaUlBRVFCSjkraWw3UlZVNlpvTGNUeiszRmZQNlVQdnJEZ24wXG5aTmZGY1JuYkFEZDMrSUc2bjhRVk5mT0JicThONmJad2FyMmE1MWd3blZhN0diTUdCdlBBekYwOGpsRG9YMmkzXG5pTC9XUHQrUGVzdTZzRVFhT1l5TTU1SEZJUUtCZ1FETUVkR1ZRaTdWTHBHcU5xSEg3ZjdGeEJBbEdtMmcwZENyXG5LT2c2U2ZCSklHWklVQzZvVHQyK0FsaUF4d2duc2QzV25WRTNuSmNjcTVNSkFSemdNL1g5T2JjWjhFbXVRa2xtXG5JQXBqSjRMWHBiSlNHTG5jMHZScnk2aUpFaVhicmRENkhFOUpGT3lKcTdqeG85cVNKeWc1UXNOcWhkQnRBQXZPXG5wRndwUmgvQW1RS0JnUUN3VEUwQzJPS09EVDU2TnVpd1hIYml1R2k4Nm5saXQzNS9WSG9nTUQ1NGkrUHFoaW5xXG4rWnViUkk4ODNNZXhmcytyb3lFdU1sbzB4QjVZUnlXWW1ManRiUDJ3czBmSnF2UU5mUGdYSEtCREFDcFlJKzB2XG40d0krV3E3eXQ5RG56NEdudUUzNGtqMkVPV2JrK2NHaDF5NDlVb2g4d3FrbVEvK1o0QWtISEwxOFlRS0JnUUNQXG5TUE9mbVpqSWxxb3dtYXQrZGQwdGZ6elcwSGVwTTZrUWhPaUtCT0J5ZUExWk9QT0p1ZFo0VTYxUXZtODdiK2dUXG5pT0k5NmZVd2JFZ1JTbmE3OWNBQ3pVT0RNdlNKSm9IaTh4eFlBcVljUkh1d3FTdlhvVWQ5YU1JdGZGQ1lyckxNXG42cFBBL0xBWStqb2hjS3RIYzdjS2ZaWTRkVHlqVENUK011bURFWG02QVFLQmdEdkk3S2pFeU5wMkVhcnRjMmRiXG42ME8wclFlYTdIZU5vTHE4dVFmdUtTaGE4dTVKUzdMK3FSaXFUSjZJSTVocHQyNGJFTXc4cmRKVVlZMnJzSCtOXG5wNHdiRkFaRERXdHZoWDdyRGFOdmVKdnN5T2hvZjNON1JnQ1dYZUxKRDNuZWh5VE5CczEwN0wvZUR4K1lLVlY3XG53UFhHYkRVdVI4ejg4Z3Rta1U5aFNud1Fcbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsCiAgImNsaWVudF9lbWFpbCI6ICI4MDY5ODkwMDQzNDctZW9yOWQ2M2U4YWQxb3RidWQwN2o1N2RuZjJnMTA1OGxAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLAogICJjbGllbnRfaWQiOiAiODA2OTg5MDA0MzQ3LWVvcjlkNjNlOGFkMW90YnVkMDdqNTdkbmYyZzEwNThsLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwKICAidHlwZSI6ICJzZXJ2aWNlX2FjY291bnQiCn0AAAAAeyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9AAAAAAB7ImlzcyI6IjgwNjk4OTAwNDM0Ny1lb3I5ZDYzZThhZDFvdGJ1ZDA3ajU3ZG5mMmcxMDU4bEBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsInNjb3BlIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9wdWJzdWIgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jbG91ZC1wbGF0Zm9ybSIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTQ1NTIxMjc4MCwiaWF0IjoxNDU1MjA5MTgwfQAAAAAAAC0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQpNSUlFdmdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLZ3dnZ1NrQWdFQUFvSUJBUUNrSjgxSnRYOW1xR3AzCnl3eXBHVlU1QS93RWp2bFFuTjdjSk9IeXB4ZWk5Z1NVaFVKZ2M1ZFlkRWc2aDNOQ1pSVGhBcHhoa25RSFFveUUKdHBucmZwQ3dObDByNnczeXp1QWFFbzNtaXh4YnJMRlpCTVl3R3NWbDdYZ3p2eWRFS0psVWRnencvYjBZNzNuWgpDQjhONEs3UGxCTk1JaXpnU1Q4SENiam1xMVB1eWxYcjR4cWFuOU5JdHVrV3NuKzg3OU42UUcvdkZncWhBaFU0Ck1NbXVYNGZvSENmVmdsR0IzQitqMTAwN2JDenRuSHlMaTRIdksrZThyTW9FZHpteS82TWc1TnRmeUNEd3Mxb0IKaXN1bDlRSHR6dTk4cXBhTWNKWm10V2t6RFlPTC9PR3BKbGJHNGw4RUdRcmFhbDl6ejc1czRvaTR2dGVaL0xLRgpBcnFlOXBDNUFnTUJBQUVDZ2dFQUdnNmpYSmJ0NFRyTW83VmNqaDhTVXhtWjBKTnRhZWxzeXQ4ajZxT3hjZEhCCmlsM1kybnlld3BDNndtZXIyUmM0aURzazNhd2t0TjVRZGVTU2JEcEw5MXk1ejNYaFlmQ0t6RGl6dzZ2RFZaNEYKRE05Z01sU2Rqdjl4L0N6VXE5SVIvTUU4YnFpb2NxUFk0S1dVWUZ5UkF5eExIK093NGUxZWp0eHhPRlJyMzFTSAoyQXZJWWhQZ1N6VVJIeTZTcUc2NlprdjlSdmhzNXpnR3RMUEQ0M3hUR2NhdnFkUmlzNWpVSzBTMHZWYUl4ZTVXCm8rQzhySHdPaHVCMWpSbzA0a0tXa2NlNDVXTUwrd0lnekpsN1V0K2dKOXRuVWd5Y2hGNWxheTQ4U2hNZ01sUEoKNExuakEvTUVGZGJ4ZHNXaWc5VnNBN1cwRHZDYW9lb21uRnJaNTYwQkFRS0JnUURON2NPbVV2S0ZmcStpYnl1RgpOcTQvQnF3NjZQM2JQTmxxdXhZL0NrTzVMZU9vaUlBRVFCSjkraWw3UlZVNlpvTGNUeiszRmZQNlVQdnJEZ24wClpOZkZjUm5iQURkMytJRzZuOFFWTmZPQmJxOE42Ylp3YXIyYTUxZ3duVmE3R2JNR0J2UEF6RjA4amxEb1gyaTMKaUwvV1B0K1Blc3U2c0VRYU9ZeU01NUhGSVFLQmdRRE1FZEdWUWk3VkxwR3FOcUhIN2Y3RnhCQWxHbTJnMGRDcgpLT2c2U2ZCSklHWklVQzZvVHQyK0FsaUF4d2duc2QzV25WRTNuSmNjcTVNSkFSemdNL1g5T2JjWjhFbXVRa2xtCklBcGpKNExYcGJKU0dMbmMwdlJyeTZpSkVpWGJyZEQ2SEU5SkZPeUpxN2p4bzlxU0p5ZzVRc05xaGRCdEFBdk8KcEZ3cFJoL0FtUUtCZ1FDd1RFMEMyT0tPRFQ1Nk51aXdYSGJpdUdpODZubGl0MzUvVkhvZ01ENTRpK1BxaGlucQorWnViUkk4ODNNZXhmcytyb3lFdU1sbzB4QjVZUnlXWW1ManRiUDJ3czBmSnF2UU5mUGdYSEtCREFDcFlJKzB2CjR3SStXcTd5dDlEbno0R251RTM0a2oyRU9XYmsrY0doMXk0OVVvaDh3cWttUS8rWjRBa0hITDE4WVFLQmdRQ1AKU1BPZm1aaklscW93bWF0K2RkMHRmenpXMEhlcE02a1FoT2lLQk9CeWVBMVpPUE9KdWRaNFU2MVF2bTg3YitnVAppT0k5NmZVd2JFZ1JTbmE3OWNBQ3pVT0RNdlNKSm9IaTh4eFlBcVljUkh1d3FTdlhvVWQ5YU1JdGZGQ1lyckxNCjZwUEEvTEFZK2pvaGNLdEhjN2NLZlpZNGRUeWpUQ1QrTXVtREVYbTZBUUtCZ0R2STdLakV5TnAyRWFydGMyZGIKNjBPMHJRZWE3SGVOb0xxOHVRZnVLU2hhOHU1SlM3TCtxUmlxVEo2SUk1aHB0MjRiRU13OHJkSlVZWTJyc0grTgpwNHdiRkFaRERXdHZoWDdyRGFOdmVKdnN5T2hvZjNON1JnQ1dYZUxKRDNuZWh5VE5CczEwN0wvZUR4K1lLVlY3CndQWEdiRFV1Ujh6ODhndG1rVTloU253UQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmdyYW50X3R5cGU9dXJuJTNBaWV0ZiUzQXBhcmFtcyUzQW9hdXRoJTNBZ3JhbnQtdHlwZSUzQWp3dC1iZWFyZXImYXNzZXJ0aW9uPWV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUpwYzNNaU9pSTRNRFk1T0Rrd01EUXpORGN0Wlc5eU9XUTJNMlU0WVdReGIzUmlkV1F3TjJvMU4yUnVaakpuTVRBMU9HeEFaR1YyWld4dmNHVnlMbWR6WlhKMmFXTmxZV05qYjNWdWRDNWpiMjBpTENKelkyOXdaU0k2SW1oMGRIQnpPaTh2ZDNkM0xtZHZiMmRzWldGd2FYTXVZMjl0TDJGMWRHZ3ZjSFZpYzNWaUlHaDBkSEJ6T2k4dmQzZDNMbWR2YjJkc1pXRndhWE11WTI5dEwyRjFkR2d2WTJ4dmRXUXRjR3hoZEdadmNtMGlMQ0poZFdRaU9pSm9kSFJ3Y3pvdkwyRmpZMjkxYm5SekxtZHZiMmRzWlM1amIyMHZieTl2WVhWMGFESXZkRzlyWlc0aUxDSmxlSEFpT2pFME5UVXlNVEkzT0RBc0ltbGhkQ0k2TVRRMU5USXdPVEU0TUgwLmQ4UWlZQVFEOGNGVjUybnpva3c0cFBGR2dOTXJKbm5IbHZvNlJKSThvTDhNVldXNXNwRElHc1p6aHgxMXp6SXdWQldyVGNKajctRmtfU193X0p6dkRIeHlNVl9IZEYzOWhaWW1Kc0JjNkF3NUZPT0pVUGlyV0llbXk4NkhkZHZoWjRvZWVBRFVRWF9vSGdZdzc4bGRoNndtdzVhZkVFc0JnYk13WEo1QWlmVUJITTNCQnQ5dlVtZFVULUl2R3Nyb2FBOWQ4MzZfUk9jY0duV2t4STBjZS1IVEVhMDhuRjZMdUZHcmxDMlAxWXdyVnJBTlp4TjJPVERwOEphcVNwWG5XZVFMSUozUFZGQnRRUXVPaVMtYUpaaF9WTGxkdVR0a0pYWlNuZ1R2MkJKOUpteXFlZ3JHR3pDam95dEhmcG1OT3lYMFZSUW1BbFNRLVdxMElWLXR0ZwAAAAAAAHsKICAiYWNjZXNzX3Rva2VuIiA6ICJ5YTI5LmhRS1VpNDh2bjNmc016ZXp1TkluTDl2YWRTR3ItS21RcFRUT2tFWWF6a0huMjJyUTdmMkx6SzQ0Zks0SDlLM1Atc0hncml3IiwKICAidG9rZW5fdHlwZSIgOiAiQmVhcmVyIiwKICAiZXhwaXJlc19pbiIgOiAzNjAwCn0ACgAAAAAAAAAAAAAAAAAAAApScHJvamVjdHMvYm9yZWFsLXBoeXNpY3MtOTExL3RvcGljcy90ZXN0LXRvcGljLWI0OTk2M2Q5LTkyZjAtNDg4MS04YWM2LTA0MTM5ODI2NWMwZgAAAAAKUnByb2plY3RzL2JvcmVhbC1waHlzaWNzLTkxMS90b3BpY3MvdGVzdC10b3BpYy1iNDk5NjNkOS05MmYwLTQ4ODEtOGFjNi0wNDEzOTgyNjVjMGYAAAAAGgMAIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
  -  }
  +  "etag": "ACAB"
     "version": 0
   }

  at system-test/pubsub.js:364:16
  at lib/common/grpc-service.js:206:5

@stephenplusplus
Copy link
Contributor Author

Confirmed on Node v0.12. This is an issue with GrpcService#isBufferLike_ -- I'll see if I can find a fix!

@stephenplusplus
Copy link
Contributor Author

Fixed in stephenplusplus@7811c4f - ptal

@callmehiphop
Copy link
Contributor

@stephenplusplus looks like Travis is still choking on it

@stephenplusplus
Copy link
Contributor Author

Travis has been put in his place.

@callmehiphop
Copy link
Contributor

@stephenplusplus LGTM, let me know if there's anything else I can do to help.

@stephenplusplus
Copy link
Contributor Author

Cool, thanks!

@tmatsuo is gRPC generally available for pubsub.googleapis.com?

@stephenplusplus
Copy link
Contributor Author

@callmehiphop this thing is ready to fly.

*/
GrpcService.prototype.request = function(protoOpts, reqOpts, callback) {
if (global.GCLOUD_TEST_ENVIRONMENT) {
return global.GCLOUD_TEST_ENVIRONMENT;

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

pubsub: convert to grpc
callmehiphop added a commit that referenced this pull request Feb 16, 2016
@callmehiphop callmehiphop merged commit 1962cc8 into googleapis:master Feb 16, 2016
@callmehiphop
Copy link
Contributor

ctavan added a commit to ctavan/google-cloud-node that referenced this pull request Feb 3, 2017
ctavan added a commit to ctavan/google-cloud-node that referenced this pull request Feb 3, 2017
sofisl pushed a commit that referenced this pull request Jan 17, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`^16.0.0` -> `^18.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/16.18.3/18.11.9) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/compatibility-slim/16.18.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/confidence-slim/16.18.3)](https://docs.renovatebot.com/merge-confidence/) |

---

### Configuration

📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-vision).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yNDEuMTEiLCJ1cGRhdGVkSW5WZXIiOiIzNC4xMS4xIn0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: pubsub Issues related to the Pub/Sub API. cla: yes This human has signed the Contributor License Agreement. core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Abort outstanding HTTP requests when subscription is closed
4 participants