Collaborne / auto-kubernetes-client

NodeJS Kubernetes Client with automatic API discovery
Apache License 2.0
8 stars 3 forks source link

'watch' doesn't handle non-Status errors properly #2

Open ankon opened 7 years ago

ankon commented 7 years ago
npm info it worked if it ends with ok
npm info using npm@3.10.10
npm info using node@v6.10.2
npm info lifecycle kubernetes-aws-resource-service@0.3.2~prestart: kubernetes-aws-resource-service@0.3.2
npm info lifecycle kubernetes-aws-resource-service@0.3.2~start: kubernetes-aws-resource-service@0.3.2

> kubernetes-aws-resource-service@0.3.2 start /app
> node src/index.js "--namespace=development"

[2017-05-19 14:58:45.004] [INFO] [default] - Watching queues at 0...
undefined:1
Forbidden: "/apis/aws.k8s.collaborne.com/v1/namespaces/development/queues?watch=true&resourceVersion=0"
^

SyntaxError: Unexpected token F in JSON at position 0
    at Object.parse (native)
    at DestroyableTransform._flush (/app/node_modules/auto-kubernetes-client/src/index.js:144:24)
    at DestroyableTransform.<anonymous> (/app/node_modules/readable-stream/lib/_stream_transform.js:115:49)
    at DestroyableTransform.g (events.js:291:16)
    at emitNone (events.js:86:13)
    at DestroyableTransform.emit (events.js:185:7)
    at prefinish (/app/node_modules/readable-stream/lib/_stream_writable.js:494:12)
    at finishMaybe (/app/node_modules/readable-stream/lib/_stream_writable.js:506:7)
    at endWritable (/app/node_modules/readable-stream/lib/_stream_writable.js:514:3)
    at DestroyableTransform.Writable.end (/app/node_modules/readable-stream/lib/_stream_writable.js:484:41)

This is similar to https://github.com/Collaborne/auto-kubernetes-client/commit/d037e9178956c5dfccae936d650fe99792125d5b, where it was fixed for non-watch resources.

ankon commented 7 years ago

Note that we should be checking the error code as well -- it seems we're just assuming that the response will be in json-stream format and is always successful.