|
|
|
@ -0,0 +1,47 @@ |
|
|
|
var util = require('util'); |
|
|
|
|
|
|
|
var constants = require('../constants'); |
|
|
|
|
|
|
|
var service_check_api = function(){}; |
|
|
|
|
|
|
|
|
|
|
|
service_check_api.prototype.service_check = function(status, check, host, extra, callback){ |
|
|
|
/* |
|
|
|
* service_check_api.service_check(options, callback]) |
|
|
|
* |
|
|
|
* used to post a service check |
|
|
|
* |
|
|
|
* `status` the `dogapi.constant.STATUSES` status code for the check |
|
|
|
* `check` the name of the check |
|
|
|
* `host` the host associated with the check |
|
|
|
* `extra` an object of optional arguments `timestamp`, `message` or `tags` |
|
|
|
* `callback` is an optional function to call with the results of the api call |
|
|
|
* callback(error, result, status_code) |
|
|
|
*/ |
|
|
|
if(typeof extra === 'function'){ |
|
|
|
callback = extra; |
|
|
|
extra = {}; |
|
|
|
} |
|
|
|
|
|
|
|
if(constants.ALL_STATUSES.indexOf(status) < 0){ |
|
|
|
throw new Error(util.format('Unknown service_check status %s', status)); |
|
|
|
} |
|
|
|
|
|
|
|
var body = { |
|
|
|
check: check, |
|
|
|
status: status, |
|
|
|
host_name: host, |
|
|
|
timestamp: parseInt(extra['timestamp'] || (new Date().getTime() / 1000)), |
|
|
|
}; |
|
|
|
|
|
|
|
if(extra['message']){ |
|
|
|
body['message'] = extra['message']; |
|
|
|
} |
|
|
|
if(extra['tags']){ |
|
|
|
body['tags'] = extra['tags']; |
|
|
|
} |
|
|
|
|
|
|
|
this.request('POST', '/check_run', {body: body}, callback); |
|
|
|
}; |
|
|
|
|
|
|
|
return module.exports = service_check_api; |