strong-mesh-client

1.6.5 • Public • Published

strong-mesh-client

Background

This module provides a node.js and browser client that interacts with a set of strong-pm APIs.

Usage

Node.js

Below is an example setting up the mesh client for use in node.js.

var mesh = MeshClient.create('/path/to/config/file.json', {
  interval: 2000
});
 
mesh.ManagerHost.create({host: 'foo.com', port: 3000});

Browser + Proxy

First mount the proxy as an express middleware / route handler.

// app => an express / loopback app
var meshProxy = require('strong-mesh-client/proxy/server')('/path/to/config/file.json', {
  interval: 2000
});
 
app.use('/path/to/proxy', meshProxy.middleware(app));

Add the client script.

<script src="/path/to/proxy/client.js"></script>

Interact with mesh from the browser via the proxy.

var mesh = require('strong-mesh-client')('http://localhost:3000');;
 
// get notifications when hosts change
mesh.notifications.on('host changed', function() {
  mesh.ManagerHost.find(function(err, hosts) {
    $scope.hosts = hosts;
    $scope.$apply();
  });
});
 
// adding a host to the manager (that is a PM)
mesh.ManagerHost.create({
  host: '...',
  port: ...
}, function(err, inst) {
  // host added
});
 
// delete from the config
ManagerHost.deleteById('...', cb);
 
// perform an action on a specific host
managerHost.action({
  cmd: 'stop'
}, cb);

Models

ManagerHost

{
  host: 'foo.com',
  port: 3000,
  error: {message: '...', status: 500},
  errorType: 'connection', // correspond to the error property
  app: {
    name: 'appname',
    version: '1.2.3',
    port: 4000
  }, // if null, app is not running
  actions: [
    'start',
    'edit', // always included
    'delete' // always included
  ], // list of available actions depending on the state of the host
  processes: {
    targetCount: 7,
    pids: [{
      id: '...',
      pid: 123
    }]
  },
  credentials: {
    username: '...',
    password: '...'
  }
}

LoadBalancer

{
  host: 'foo.com',
  port: 3000,
  credentials: {
    username: '...',
    password: '...'
  },
  error: {status: 500, message: '...'}
}

Readme

Keywords

none

Package Sidebar

Install

npm i strong-mesh-client

Weekly Downloads

160

Version

1.6.5

License

LicenseRef-LICENSE

Last publish

Collaborators

  • dhmlau
  • 0candy
  • hacksparrow