summaryrefslogtreecommitdiffstats
path: root/healthcheck-container/get-status.js
diff options
context:
space:
mode:
Diffstat (limited to 'healthcheck-container/get-status.js')
-rw-r--r--healthcheck-container/get-status.js228
1 files changed, 114 insertions, 114 deletions
diff --git a/healthcheck-container/get-status.js b/healthcheck-container/get-status.js
index 9c4a723..565c1e0 100644
--- a/healthcheck-container/get-status.js
+++ b/healthcheck-container/get-status.js
@@ -33,141 +33,141 @@ const ca = fs.readFileSync(K8S_CREDS + '/ca.crt');
const token = fs.readFileSync(K8S_CREDS + '/token');
const summarizeDeploymentList = function(list) {
- // list is a DeploymentList object returned by k8s
- // Individual deployments are in the array 'items'
-
- let ret =
- {
- type: "summary",
- count: 0,
- ready: 0,
- items: []
- };
-
- // Extract readiness information
- for (let deployment of list.items) {
- ret.items.push(
- {
- name: deployment.metadata.name,
- ready: deployment.status.readyReplicas || 0,
- unavailable: deployment.status.unavailableReplicas || 0
- }
- );
- ret.count ++;
- ret.ready = ret.ready + (deployment.status.readyReplicas || 0);
- }
-
- return ret;
+ // list is a DeploymentList object returned by k8s
+ // Individual deployments are in the array 'items'
+
+ let ret =
+ {
+ type: "summary",
+ count: 0,
+ ready: 0,
+ items: []
+ };
+
+ // Extract readiness information
+ for (let deployment of list.items) {
+ ret.items.push(
+ {
+ name: deployment.metadata.name,
+ ready: deployment.status.readyReplicas || 0,
+ unavailable: deployment.status.unavailableReplicas || 0
+ }
+ );
+ ret.count ++;
+ ret.ready = ret.ready + (deployment.status.readyReplicas || 0);
+ }
+
+ return ret;
};
const summarizeDeployment = function(deployment) {
- // deployment is a Deployment object returned by k8s
- // we make it look enough like a DeploymentList object to
- // satisfy summarizeDeploymentList
- return summarizeDeploymentList({items: [deployment]});
+ // deployment is a Deployment object returned by k8s
+ // we make it look enough like a DeploymentList object to
+ // satisfy summarizeDeploymentList
+ return summarizeDeploymentList({items: [deployment]});
};
const queryKubernetes = function(path, callback) {
- // Make GET request to Kubernetes API
- const options = {
- host: K8S_HOST,
- path: "/" + path,
- ca : ca,
- headers: {
- Authorization: 'bearer ' + token
- }
- };
- console.log ("request url: " + options.host + options.path);
- const req = https.get(options, function(resp) {
- let rawBody = "";
- resp.on("data", function(data) {
- rawBody += data;
- });
- resp.on("error", function (error) {
- console.error("error: " + error);
- callback(error, null, null)
- });
- resp.on("end", function() {
- console.log ("status: " + resp.statusCode ? resp.statusCode: "NONE")
- callback(null, resp, JSON.parse(rawBody));
- });
- });
- req.end();
+ // Make GET request to Kubernetes API
+ const options = {
+ host: K8S_HOST,
+ path: "/" + path,
+ ca : ca,
+ headers: {
+ Authorization: 'bearer ' + token
+ }
+ };
+ console.log ("request url: " + options.host + options.path);
+ const req = https.get(options, function(resp) {
+ let rawBody = "";
+ resp.on("data", function(data) {
+ rawBody += data;
+ });
+ resp.on("error", function (error) {
+ console.error("error: " + error);
+ callback(error, null, null)
+ });
+ resp.on("end", function() {
+ console.log ("status: " + resp.statusCode ? resp.statusCode: "NONE")
+ callback(null, resp, JSON.parse(rawBody));
+ });
+ });
+ req.end();
};
const getStatus = function(path, extract, callback) {
- // Get info from k8s and extract readiness info
- queryKubernetes(path, function(error, res, body) {
- let ret = body;
- if (!error && res && res.statusCode === 200) {
- ret = extract(body);
- }
- callback (error, res, ret);
- });
+ // Get info from k8s and extract readiness info
+ queryKubernetes(path, function(error, res, body) {
+ let ret = body;
+ if (!error && res && res.statusCode === 200) {
+ ret = extract(body);
+ }
+ callback (error, res, ret);
+ });
};
const getStatusSinglePromise = function (item) {
- // Expect item to be of the form {namespace: "namespace", deployment: "deployment_name"}
- return new Promise(function(resolve, reject){
- const path = K8S_PATH + item.namespace + '/deployments/' + item.deployment;
- queryKubernetes(path, function(error, res, body){
- if (error) {
- reject(error);
- }
- else if (res.statusCode === 404) {
- // Treat absent deployment as if it's an unhealthy deployment
- resolve ({
- metadata: {name: item.deployment},
- status: {unavailableReplicas: 1}
- });
- }
- else if (res.statusCode != 200) {
- reject(body);
- }
- else {
- resolve(body);
- }
- });
- });
+ // Expect item to be of the form {namespace: "namespace", deployment: "deployment_name"}
+ return new Promise(function(resolve, reject){
+ const path = K8S_PATH + item.namespace + '/deployments/' + item.deployment;
+ queryKubernetes(path, function(error, res, body){
+ if (error) {
+ reject(error);
+ }
+ else if (res.statusCode === 404) {
+ // Treat absent deployment as if it's an unhealthy deployment
+ resolve ({
+ metadata: {name: item.deployment},
+ status: {unavailableReplicas: 1}
+ });
+ }
+ else if (res.statusCode != 200) {
+ reject(body);
+ }
+ else {
+ resolve(body);
+ }
+ });
+ });
}
exports.getStatusNamespace = function (namespace, callback) {
- // Get readiness information for all deployments in namespace
- const path = K8S_PATH + namespace + '/deployments';
- getStatus(path, summarizeDeploymentList, callback);
+ // Get readiness information for all deployments in namespace
+ const path = K8S_PATH + namespace + '/deployments';
+ getStatus(path, summarizeDeploymentList, callback);
};
exports.getStatusSingle = function (namespace, deployment, callback) {
- // Get readiness information for a single deployment
- const path = K8S_PATH + namespace + '/deployments/' + deployment;
- getStatus(path, summarizeDeployment, callback);
+ // Get readiness information for a single deployment
+ const path = K8S_PATH + namespace + '/deployments/' + deployment;
+ getStatus(path, summarizeDeployment, callback);
};
exports.getStatusListPromise = function (list) {
- // List is of the form [{namespace: "namespace", deployment: "deployment_name"}, ... ]
- const p = Promise.all(list.map(getStatusSinglePromise))
- return p.then(function(results) {
- return summarizeDeploymentList({items: results});
- });
+ // List is of the form [{namespace: "namespace", deployment: "deployment_name"}, ... ]
+ const p = Promise.all(list.map(getStatusSinglePromise))
+ return p.then(function(results) {
+ return summarizeDeploymentList({items: results});
+ });
}
exports.getDCAEDeploymentsPromise = function (namespace) {
- // Return list of the form [{namespace: "namespace"}, deployment: "deployment_name"].
- // List contains all k8s deployments in the specified namespace that were deployed
- // by Cloudify, based on Cloudify's use of a "marker" label on each k8s deployment that
- // the k8s plugin created.
-
- return new Promise(function(resolve, reject) {
- const path = K8S_PATH + namespace + '/deployments?labelSelector=' + CFY_LABEL + '&limit=' + MAX_DEPS
- queryKubernetes(path, function(error, res, body){
- if (error) {
- reject(error);
- }
- else if (res.statusCode !== 200) {
- reject(body);
- }
- else {
- resolve(body.items.map(function(i) {return {namespace : namespace, deployment: i.metadata.name};}));
- }
- });
- });
+ // Return list of the form [{namespace: "namespace"}, deployment: "deployment_name"].
+ // List contains all k8s deployments in the specified namespace that were deployed
+ // by Cloudify, based on Cloudify's use of a "marker" label on each k8s deployment that
+ // the k8s plugin created.
+
+ return new Promise(function(resolve, reject) {
+ const path = K8S_PATH + namespace + '/deployments?labelSelector=' + CFY_LABEL + '&limit=' + MAX_DEPS
+ queryKubernetes(path, function(error, res, body){
+ if (error) {
+ reject(error);
+ }
+ else if (res.statusCode !== 200) {
+ reject(body);
+ }
+ else {
+ resolve(body.items.map(function(i) {return {namespace : namespace, deployment: i.metadata.name};}));
+ }
+ });
+ });
};