Skip to content

Commit

Permalink
Merge pull request #736 from jpreese/fix/kubernetes-crd-statuscheck
Browse files Browse the repository at this point in the history
fix(k8s): use statuscodeerror type when using request-promise
  • Loading branch information
thsig authored Apr 29, 2019
2 parents 1c22654 + f3d18dd commit 986a897
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion garden-service/src/plugins/kubernetes/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ import {
V1Secret,
Policy_v1beta1Api,
} from "@kubernetes/client-node"

import request = require("request-promise")
import requestErrors = require("request-promise/errors")

import { safeLoad, safeDump } from "js-yaml"
import { zip, omitBy, isObject } from "lodash"
import { GardenBaseError, RuntimeError, ConfigurationError } from "../../exceptions"
Expand Down Expand Up @@ -193,7 +196,7 @@ export class KubeApi {
try {
return await request(opts)
} catch (err) {
wrapError(err)
handleRequestPromiseError(err)
}
}
}
Expand Down Expand Up @@ -331,3 +334,16 @@ function wrapError(err) {
throw err
}
}

function handleRequestPromiseError(err) {
if (err instanceof requestErrors.StatusCodeError) {
const wrapped = new KubernetesError(`StatusCodeError from Kubernetes API - ${err.message}`, {
body: err.error,
})
wrapped.code = err.statusCode

throw wrapped
}

return wrapError(err)
}

0 comments on commit 986a897

Please sign in to comment.