Datadog API Node.JS Client
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

109 lines
3.7 KiB

const util = require("util");
module.exports = function (client) {
/*section: host
*comment: mute the given host, if it is not already muted
*params:
* hostname: the hostname of the host to mute
* options: |
* optional, an object containing any of the following
* * end: POSIX timestamp for when the mute should end
* * override: whether or not to override the end for an existing mute
* callback: function(err, res)
*example: |
* ```javascript
* const dogapi = require("dogapi");
* const options = {
* api_key: "api_key",
* app_key: "app_key"
* };
* dogapi.initialize(options);
* dogapi.host.mute("my.host.name", function(err, res){
* console.dir(res);
* });
* ```
*/
function mute(hostname, options, callback) {
if (arguments.length < 3 && typeof arguments[1] === "function") {
callback = options;
options = {};
}
const params = {};
if (typeof options === "object") {
params.body = {}; // create body property
if (options.end) {
params.body.end = parseInt(options.end);
}
if (options.override) {
params.body.override = options.override;
}
} else {
params.body = ""; // create empty body
}
client.request("POST", util.format("/host/%s/mute", hostname), params, callback);
}
/*section: host
*comment: unmute the given host, if it is not already unmuted
*params:
* hostname: the hostname of the host to unmute
* callback: function(err, res)
*example: |
* ```javascript
* const dogapi = require("dogapi");
* const options = {
* api_key: "api_key",
* app_key: "app_key"
* };
* dogapi.initialize(options);
* dogapi.host.unmute("my.host.name", function(err, res){
* console.dir(res);
* });
* ```
*/
function unmute(hostname, callback) {
const params = { body: "" }; // create empty body
client.request("POST", util.format("/host/%s/unmute", hostname), params, callback);
}
return {
mute: mute,
unmute: unmute,
getUsage: function () {
return [
" dogapi host mute <host> [--end <end>] [--override]",
" dogapi host unmute <host>"
];
},
getHelp: function () {
return [
"Host:",
" Subcommands:",
" mute <host> mute the host with the provided hostname",
" unmute <host> unmute the host with the provided hostname",
"",
" Options:",
" --end <end> POSIX timestamp for when the mute should end",
" --override override an existing \"end\" for a mute on a host"
];
},
handleCli: function (subcommand, args, callback) {
if (subcommand === "mute") {
const hostname = args._[4];
const options = {};
if (args["end"]) {
options.end = parseInt(args["end"]);
}
if (args["override"]) {
options.override = args["override"];
}
mute(hostname, options, callback);
} else if (subcommand === "unmute") {
const hostname = args._[4];
unmute(hostname, callback);
} else {
callback("unknown subcommand or arguments try `dogapi host --help` for help", false);
}
}
};
};