Skip to content

Commit

Permalink
fix(k8s): use statuscodeerror type when using request-promise
Browse files Browse the repository at this point in the history
  • Loading branch information
jpreese committed Apr 26, 2019
1 parent cb39a5f commit e61fe33
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 e61fe33

Please sign in to comment.