Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/silas/node-mesos
Mesos framework clients
https://github.com/silas/node-mesos
Last synced: 3 months ago
JSON representation
Mesos framework clients
- Host: GitHub
- URL: https://github.com/silas/node-mesos
- Owner: silas
- License: mit
- Archived: true
- Created: 2014-07-05T14:42:25.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-02-03T00:40:23.000Z (almost 7 years ago)
- Last Synced: 2024-07-19T10:09:33.182Z (4 months ago)
- Language: JavaScript
- Size: 51.8 KB
- Stars: 50
- Watchers: 6
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mesos
Mesos clients.
* [Documentation](#documentation)
* [Development](#development)
* [License](#license)## Documentation
* [Chronos](#chronos)
* [Marathon](#marathon)### 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 HTTPSUsage
``` javascript
var mesos = require('mesos');var chronos = mesos.Chronos({ host: '10.141.141.10' });
```### 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
### 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 typeIf 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
### 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 HTTPSUsage
``` javascript
var mesos = require('mesos');var marathon = mesos.Marathon({ host: '10.141.141.10' });
```See [Marathon REST][marathon-rest] documentation for more information.
### 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 executeAnd more, see [docs](https://github.com/mesosphere/marathon/blob/master/REST.md#post-v2apps).
### marathon.app.list([opts], callback)
List all running applications.
Options
* cmd (String, optional): filter apps by command
### marathon.app.get(opts, callback)
Get application with by ID.
Options
* id (String): app ID
### marathon.app.versions(opts, callback)
List the versions of an application by ID.
Options
* id (String): app ID
### 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### 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 executeAnd more, see [docs](https://github.com/mesosphere/marathon/blob/master/REST.md#put-v2appsappid).
### marathon.app.destroy(opts, callback)
Destroy an applicationb by ID.
Options
* id (String): app ID
### marathon.app.tasks(opts, callback)
List all running tasks for an application by ID.
Options
* id (String): app ID
### 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### marathon.eventSubscription.register(opts, callback)
Register a callback URL as an event subscriber.
Options
* url (String): callback URL
### marathon.eventSubscription.list(callback)
List all event subscriber callback URLs.
### marathon.eventSubscription.unregister(opts, callback)
Unregister a callback URL.
Options
* url (String): callback URL
### 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/