UNPKG

mesos

Version:
299 lines (182 loc) 6.14 kB
# Mesos Mesos clients. * [Documentation](#documentation) * [Development](#development) * [License](#license) ## Documentation * [Chronos](#chronos) * [Marathon](#marathon) <a name="chronos"/> ### mesos.Chronos([opts]) Initialize a new Chronos client. Options * host (String, default: 127.0.0.1): Chronos address * port (String, default: 4400): Chronos HTTP port * secure (Boolean, default: false): enable HTTPS Usage ``` javascript var mesos = require('mesos'); var chronos = mesos.Chronos({ host: '10.141.141.10' }); ``` <a name="chronos-job-create"/> ### chronos.job.create(opts, callback) Create job. Options * name (String): job name * schedule (String): [ISO-8601][iso-8601] recurring series time * command (String): command to execute * epsilon (String): run if missed within this time period ([ISO-8601][iso-8601] duration) * owner (String): email address of job owner * async (Boolean, default: false): run job asynchronously ### chronos.job.destroy(opts, callback) Delete job. Options * name (String): job name <a name="chronos-job-list"/> ### chronos.job.list(callback) List jobs. ### chronos.job.search(opts, callback) Search jobs. Options * name (String, optional): query on name * command (String, optional): query on command * any (String, optional): query on any field * limit (Number, default: 10): limit the number of results * offset (Number, default: 0): offset results by number ### chronos.job.start(opts, callback) Manually start job. Options * name (String): job name ### chronos.job.stats(opts, callback) Get jobs statistics. Options * name (String, optional): job name * percentile (String, optional): statistic type If you specify the job name you'll get all the statistics for that job, otherwise if you specify a percentile you'll get that statistic for all jobs. You must specify either a job name or a percentile. ### chronos.task.update(opts, callback) Update task. Options * id (String): task id * statusCode (Integer, supports: 0, 1): task succeeded (0) or fail (1) ### chronos.task.kill(opts, callback) Kill tasks. Options * job (String): job name <a name="marathon"/> ### mesos.Marathon([opts]) Initialize a new Marathon client. Options * host (String, default: 127.0.0.1): Marathon address * port (String, default: 8080): Marathon HTTP port * secure (Boolean, default: false): enable HTTPS Usage ``` javascript var mesos = require('mesos'); var marathon = mesos.Marathon({ host: '10.141.141.10' }); ``` See [Marathon REST][marathon-rest] documentation for more information. <a name="marathon-app-create"/> ### marathon.app.create(opts, callback) Create and start a new application. Options * id (String): app ID * cpus (Number): number of CPUs for each instance * mem (Number): amount of memory for each instance * instances (Number): number of instances * cmd (String, optional): command to execute And more, see [docs](https://github.com/mesosphere/marathon/blob/master/REST.md#post-v2apps). <a name="marathon-app-list"/> ### marathon.app.list([opts], callback) List all running applications. Options * cmd (String, optional): filter apps by command <a name="marathon-app-get"/> ### marathon.app.get(opts, callback) Get application with by ID. Options * id (String): app ID <a name="marathon-app-versions"/> ### marathon.app.versions(opts, callback) List the versions of an application by ID. Options * id (String): app ID <a name="marathon-app-version"/> ### marathon.app.version(opts, callback) List the configuration of an application by ID at a specified version. Options * id (String): app ID * version (String): app version <a name="marathon-app-update"/> ### marathon.app.update(opts, callback) Change parameters of a running application. The new application parameters apply only to subsequently created tasks, and currently running tasks are not pre-emptively restarted. Options * id (String): app ID * cpus (Number): number of CPUs for each instance * mem (Number): amount of memory for each instance * instances (Number): number of instances * cmd (String, optional): command to execute And more, see [docs](https://github.com/mesosphere/marathon/blob/master/REST.md#put-v2appsappid). <a name="marathon-app-destroy"/> ### marathon.app.destroy(opts, callback) Destroy an applicationb by ID. Options * id (String): app ID <a name="marathon-app-tasks"/> ### marathon.app.tasks(opts, callback) List all running tasks for an application by ID. Options * id (String): app ID <a name="marathon-app-kill"/> ### marathon.app.kill(opts, callback) Kill tasks that belong to an application. Options * id (String): app ID * task (String, optional): kill by task ID * host (String, optional): restrict to tasks on specified slave (can't use with task) * scale (Boolean, optional): scale application down by one <a name="marathon-eventSubscription-register"/> ### marathon.eventSubscription.register(opts, callback) Register a callback URL as an event subscriber. Options * url (String): callback URL <a name="marathon-eventSubscription-list"/> ### marathon.eventSubscription.list(callback) List all event subscriber callback URLs. <a name="marathon-eventSubscription-unregister"/> ### marathon.eventSubscription.unregister(opts, callback) Unregister a callback URL. Options * url (String): callback URL <a name="marathon-tasks"/> ### marathon.tasks(callback) List all running tasks. ## Development 1. Install [Vagrant][vagrant] 1. Clone repository ``` console $ git clone https://github.com/silas/node-mesos.git ``` 1. Switch to project directory ``` console $ cd node-mesos ``` 1. Start VM ``` console $ vagrant up ``` 1. Install client dependencies ``` console $ npm install ``` 1. Run tests ``` console $ npm test ``` ## License This work is licensed under the MIT License (see the LICENSE file). [iso-8601]: https://github.com/cylc/cylc/wiki/ISO-8601 [marathon-rest]: https://github.com/mesosphere/marathon/blob/master/REST.md [vagrant]: http://www.vagrantup.com/