tvd-runit 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -1 +1,6 @@
1
- default[:runit_dir] = "/etc/service"
1
+ default[:runit][:services_run] = "/etc/service"
2
+ default[:runit][:num_old_logs] = 5
3
+ default[:runit][:max_log_size] = 500000000
4
+ default[:runit][:max_log_time] = 86400
5
+ default[:runit][:start_timeout] = 60
6
+ default[:runit][:stop_timeout] = 60
@@ -0,0 +1,94 @@
1
+ #
2
+ # Cookbook Name:: runit
3
+ # Definition:: runit_service
4
+ #
5
+ # Copyright 2008-2009, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ define :runit_service, :services_defined => nil, :only_if => false, :options => Hash.new do
21
+ params[:template_name] ||= params[:name]
22
+ params[:restart] ||= "restart"
23
+ params[:env] ||= {}
24
+
25
+ svdir = "#{params[:services_defined]}/#{params[:name]}"
26
+
27
+ directory svdir
28
+
29
+ cookbook_file "#{svdir}/run" do
30
+ mode 0755
31
+ source "sv-#{params[:template_name]}-run"
32
+ cookbook params[:cookbook] if params[:cookbook]
33
+ end
34
+
35
+ directory "#{svdir}/log"
36
+
37
+ cookbook_file "#{svdir}/log/run" do
38
+ mode 0755
39
+ source "sv-log-run"
40
+ cookbook "runit"
41
+ end
42
+
43
+ template "#{svdir}/log/config" do
44
+ mode 0644
45
+ source "sv-log-config.erb"
46
+ cookbook "runit"
47
+ if params[:options].respond_to?(:has_key?)
48
+ variables :options => params[:options]
49
+ end
50
+ end
51
+
52
+ directory "#{svdir}/env"
53
+
54
+ runit_env = {
55
+ "PATH" => ENV['PATH'],
56
+ "HOME" => node[:home_dir]
57
+ }
58
+
59
+ runit_env.merge(params[:env]).each do |varname, value|
60
+ template "#{svdir}/env/#{varname}" do
61
+ source "envdir.erb"
62
+ mode 0644
63
+ cookbook "runit"
64
+ variables :value => value
65
+ end
66
+ end
67
+
68
+ ruby_block "supervise_#{params[:name]}_sleep" do
69
+ block do
70
+ (1..6).each {|i| sleep 1 unless ::FileTest.pipe?("#{svdir}/supervise/ok") }
71
+ end
72
+ not_if { FileTest.pipe?("#{svdir}/supervise/ok") || $testrun }
73
+ end
74
+
75
+ ruby_block "supervise_#{params[:name]}_log_sleep" do
76
+ block do
77
+ (1..6).each {|i| sleep 1 unless ::FileTest.pipe?("#{svdir}/log/supervise/ok") }
78
+ end
79
+ not_if { FileTest.pipe?("#{svdir}/supervise/log/ok") || $testrun }
80
+ end
81
+
82
+ execute "#{params[:restart]}_#{params[:name]}_service" do
83
+ command "sv #{params[:restart]} #{params[:name]}"
84
+ subscribes :run, resources(:cookbook_file => "#{svdir}/run"), :delayed
85
+ action :nothing
86
+ end
87
+
88
+ execute "hup_#{params[:name]}_log" do
89
+ command "sv hup #{params[:name]}/log"
90
+ subscribes :run, resources(:cookbook_file => "#{svdir}/log/run")
91
+ subscribes :run, resources(:template => "#{svdir}/log/config")
92
+ action :nothing
93
+ end
94
+ end
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+ exec 2>&1
5
+
6
+ exec svlogd -tt -b 10000 .
@@ -0,0 +1 @@
1
+ <%= @value %>
@@ -0,0 +1,4 @@
1
+ s<%= @options[:max_log_size] ? @options[:max_log_size] : node[:runit][:max_log_size]%>
2
+ n<%= @options[:num_old_logs] ? @options[:num_old_logs] : node[:runit][:num_old_logs]%>
3
+ t<%= @options[:max_log_time] ? @options[:max_log_time] : node[:runit][:max_log_time]%>
4
+ !gzip
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tvd-runit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-17 00:00:00.000000000 Z
12
+ date: 2012-09-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: microwave
@@ -34,6 +34,10 @@ extensions: []
34
34
  extra_rdoc_files: []
35
35
  files:
36
36
  - cookbooks/runit/attributes/default.rb
37
+ - cookbooks/runit/definitions/runit_service.rb
38
+ - cookbooks/runit/files/default/sv-log-run
39
+ - cookbooks/runit/templates/default/envdir.erb
40
+ - cookbooks/runit/templates/default/sv-log-config.erb
37
41
  - lib/development.rb
38
42
  - lib/tvd-runit.rb
39
43
  - lib/tvd-runit/version.rb