UNPKG

consul

Version:
79 lines (58 loc) 1.36 kB
/** * Catalog node */ 'use strict'; /** * Module dependencies. */ var errors = require('../errors'); var utils = require('../utils'); /** * Initialize a new `CatalogNode` client. */ function CatalogNode(consul) { this.consul = consul; } /** * Lists nodes in a given DC */ CatalogNode.prototype.list = function(opts, callback) { if (!callback) { callback = opts; opts = {}; } else if (typeof opts === 'string') { opts = { dc: opts }; } opts = utils.normalizeKeys(opts); opts = utils.defaults(opts, this.consul._defaults); var req = { name: 'catalog.node.list', path: '/catalog/nodes', }; utils.options(req, opts); this.consul._get(req, utils.body, callback); }; /** * Lists the services provided by a node */ CatalogNode.prototype.services = function(opts, callback) { if (typeof opts === 'string') { opts = { node: opts }; } opts = utils.normalizeKeys(opts); opts = utils.defaults(opts, this.consul._defaults); var req = { name: 'catalog.node.services', path: '/catalog/node/{node}', params: { node: opts.node }, }; if (!opts.node) { return callback(this.consul._err(errors.Validation('node required'), req)); } utils.options(req, opts); this.consul._get(req, utils.body, callback); }; /** * Module Exports. */ exports.CatalogNode = CatalogNode;