Skip to content

Commit

Permalink
Merge a25de4a into f72944c
Browse files Browse the repository at this point in the history
  • Loading branch information
eagletmt committed Aug 30, 2016
2 parents f72944c + a25de4a commit 4a21c32
Show file tree
Hide file tree
Showing 19 changed files with 242 additions and 388 deletions.
7 changes: 2 additions & 5 deletions .travis.yml
@@ -1,15 +1,12 @@
language: ruby
rvm:
- 2.1.10
- 2.2.4
- 2.3.0
- 2.2.5
- 2.3.1
- ruby-head
env:
- DB=sqlite
- DB=postgres
before_script:
- bundle exec bin/kaede dbus-policy $USER > kaede.conf
- sudo mv kaede.conf /etc/dbus-1/system.d/kaede.conf
- psql -c "CREATE ROLE kaede WITH LOGIN" -U postgres
- psql -c "CREATE DATABASE kaede_test WITH OWNER = kaede ENCODING = 'UTF-8' TEMPLATE = template0" -U postgres
matrix:
Expand Down
10 changes: 3 additions & 7 deletions README.md
Expand Up @@ -24,7 +24,6 @@ Or install it yourself as:
### Requirements
- SQLite3 or PostgreSQL
- redis
- dbus
- recpt1
- b25
- [statvfs](https://github.com/eagletmt/eagletmt-recutils/tree/master/statvfs)
Expand All @@ -35,9 +34,6 @@ Some of them should be optional, though.

### Setup
```sh
kaede dbus-policy $KAEDE_USER > kaede.conf
sudo mv kaede.conf /etc/dbus-1/system.d/kaede.conf

cp kaede.rb.sample kaede.rb
vim kaede.rb
gem install pg # gem install sqlite3
Expand Down Expand Up @@ -76,19 +72,19 @@ kaede update -c kaede.rb
List schedules.

```sh
gdbus introspect --system --dest cc.wanko.kaede1 --object-path /cc/wanko/kaede1/program -r
kaede list-programs -c kaede.rb
```

Reload schedules (usually not needed).

```sh
dbus-send --system --dest=cc.wanko.kaede1 /cc/wanko/kaede1/scheduler cc.wanko.kaede1.Scheduler.Reload
kaede reload-scheduler -c kaede.rb
```

Stop scheduler. The current scheduler process exits after all the running recorders finish.

```sh
dbus-send --system --dest=cc.wanko.kaede1 /cc/wanko/kaede1/scheduler cc.wanko.kaede1.Scheduler.Stop
kaede stop-scheduler -c kaede.rb
```

## What recorder does
Expand Down
2 changes: 1 addition & 1 deletion kaede.gemspec
Expand Up @@ -29,10 +29,10 @@ Gem::Specification.new do |spec|
spec.add_development_dependency "vcr"
spec.add_development_dependency "webmock"
spec.add_dependency "fluent-logger"
spec.add_dependency "grpc"
spec.add_dependency "nokogiri"
spec.add_dependency "redis"
spec.add_dependency "retryable", ">= 2.0.0"
spec.add_dependency "ruby-dbus"
spec.add_dependency "sequel"
spec.add_dependency "sleepy_penguin"
spec.add_dependency "thor"
Expand Down
5 changes: 5 additions & 0 deletions kaede.rb.sample
@@ -1,5 +1,10 @@
require 'redis'
require 'twitter'
require 'logging'

GRPC.extend(Logging.globally)
Logging.logger.root.appenders = Logging.appenders.stdout
Logging.logger.root.level = :debug

Kaede.configure do |config|
config.b25 = '/usr/bin/b25'
Expand Down
51 changes: 44 additions & 7 deletions lib/kaede/cli.rb
Expand Up @@ -50,6 +50,33 @@ def add_tid(tid)
db.add_tracking_title(tid.to_i)
end

desc 'reload-scheduler', 'Reload scheduler'
def reload_scheduler
require 'kaede/grpc/kaede_services_pb'
load_config

stub.reload(Kaede::Grpc::SchedulerReloadInput.new)
end

desc 'stop-scheduler', 'Stop scheduler'
def stop_scheduler
require 'kaede/grpc/kaede_services_pb'
load_config

stub.stop(Kaede::Grpc::SchedulerStopInput.new)
end

desc 'list-programs', 'List programs'
def list_programs
require 'kaede/grpc/kaede_services_pb'
require 'json'
load_config

stub.get_programs(Kaede::Grpc::GetProgramsInput.new).programs.each do |program|
show_program(program)
end
end

desc 'update', 'Update jobs and programs by Syoboi Calendar'
def update
require 'kaede/database'
Expand All @@ -62,13 +89,6 @@ def update
Kaede::Updater.new(db, syobocal).update
end

desc 'dbus-policy USER', 'Generate dbus policy file'
def dbus_policy(user)
require 'kaede/dbus/generator'

puts DBus::Generator.new.generate_policy(user)
end

desc 'db-prepare', 'Create tables'
def db_prepare
require 'kaede/database'
Expand All @@ -86,5 +106,22 @@ def load_config
load File.realpath(path)
end
end

def stub
@stub ||= Kaede::Grpc::Scheduler::Stub.new(Kaede.config.grpc_port, :this_channel_is_insecure)
end

def show_program(program)
h = program.to_h
decode_time(h, :start_time)
decode_time(h, :end_time)
decode_time(h, :enqueued_at)
puts JSON.dump(h)
end

def decode_time(h, key)
t = h[key]
h[key] = Time.at(t.seconds, t.nanos / 1000)
end
end
end
3 changes: 2 additions & 1 deletion lib/kaede/config.rb
Expand Up @@ -3,7 +3,7 @@

module Kaede
class Config
attr_accessor :database_url, :redis, :redis_queue, :fluent_tag_prefix, :fluent_host, :fluent_port
attr_accessor :database_url, :redis, :redis_queue, :fluent_tag_prefix, :fluent_host, :fluent_port, :grpc_port

path_attrs = [:b25, :recpt1, :assdumper, :clean_ts, :statvfs, :record_dir, :cache_dir, :cabinet_dir]
attr_reader *path_attrs
Expand All @@ -26,6 +26,7 @@ def initialize
self.cabinet_dir = basedir.join('cabinet')
self.redis = Redis.new
self.redis_queue = 'jobs'
self.grpc_port = 'localhost:4195'
end
end
end
5 changes: 0 additions & 5 deletions lib/kaede/dbus.rb

This file was deleted.

32 changes: 0 additions & 32 deletions lib/kaede/dbus/generator.rb

This file was deleted.

73 changes: 0 additions & 73 deletions lib/kaede/dbus/main.rb

This file was deleted.

65 changes: 0 additions & 65 deletions lib/kaede/dbus/program.rb

This file was deleted.

0 comments on commit 4a21c32

Please sign in to comment.