/chronos-api

Easy to use Chronos API written in ruby

Primary LanguageRubyMIT LicenseMIT

chronos-api

Gem Version travis-ci

This gem provides a CLI and a simple REST API client for Chronos.

Installation

Add this line to your application's Gemfile:

gem 'chronos-api', :require => 'chronos'

And then run:

$ bundle install

Usage

Authentification

You have two options to set authentification if your Chronos API requires it:

Chronos.options = {:username => 'your-user-name', :password => 'your-secret-password'}

or

$ export CHRONOS_USER=your-user-name
$ export CHRONOS_PASSWORD=your-secret-password
$ irb
irb(main):001:0> require 'chronos'
=> true
irb(main):002:0> Chronos.options
=> {:username => "your-user-name", :password => "your-secret-password"}

or

$ chronos -c http://USERNAME:PASSWORD@HOST:PORT

List

To list the current scheduled jobs:

require 'chronos'
jobs = Chronos.list

or

$ chronos list

Add a job

To add a new job:

require 'chronos'
Chronos.add({
  name: 'myjob',
  schedule: 'R10/2012-10-01T05:52:00Z/PT2S',
  epsilon: 'PT15M',
  command: 'echo foobar',
  owner: 'chronos@algolia.com',
  async: false
})

or

$ chronos add --job /path/to/job/details.json

Delete a job

To delete a job:

require 'chronos'
Chronos.delete('job_name')

or

$ chronos delete --name job_name

Delete all jobs

To delete all jobs:

require 'chronos'
Chronos.delete_all

or

$ chronos delete_all

Manually start a job

To manually start a job:

require 'chronos'
Chronos.start('job_name')

or

$ chronos start --name job_name

Contributing

Please fork and send pull request. Make sure to have test cases for your changes.

Credits

This gem has been highly inspired by marathon-api.

License

This program is licensed under the MIT license. See LICENSE for details.