eye 0.2.4 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -3
  3. data/bin/eye +7 -0
  4. data/bin/loader_eye +7 -5
  5. data/examples/notify.eye +1 -1
  6. data/eye.gemspec +4 -4
  7. data/lib/eye.rb +1 -3
  8. data/lib/eye/controller.rb +4 -0
  9. data/lib/eye/controller/status.rb +1 -1
  10. data/lib/eye/dsl.rb +1 -1
  11. data/lib/eye/dsl/main.rb +0 -13
  12. data/lib/eye/dsl/opts.rb +4 -2
  13. data/lib/eye/loader.rb +2 -3
  14. data/lib/eye/notify.rb +3 -3
  15. data/lib/eye/process/monitor.rb +5 -3
  16. data/lib/eye/process/notify.rb +5 -5
  17. data/lib/eye/process/scheduler.rb +4 -4
  18. data/lib/eye/process/system.rb +3 -10
  19. data/lib/eye/process/trigger.rb +1 -1
  20. data/lib/eye/process/watchers.rb +1 -1
  21. data/lib/eye/server.rb +9 -8
  22. data/lib/eye/system.rb +2 -7
  23. data/lib/eye/system_resources.rb +3 -3
  24. data/lib/eye/utils/celluloid_chain.rb +2 -2
  25. metadata +7 -241
  26. data/lib/eye/io/unix_server.rb +0 -44
  27. data/lib/eye/io/unix_socket.rb +0 -39
  28. data/spec/checker/cpu_spec.rb +0 -58
  29. data/spec/checker/file_ctime_spec.rb +0 -34
  30. data/spec/checker/file_size_spec.rb +0 -107
  31. data/spec/checker/http_spec.rb +0 -114
  32. data/spec/checker/memory_spec.rb +0 -64
  33. data/spec/checker/socket_spec.rb +0 -116
  34. data/spec/checker_spec.rb +0 -187
  35. data/spec/child_process/child_process_spec.rb +0 -46
  36. data/spec/client_server_spec.rb +0 -33
  37. data/spec/controller/commands_spec.rb +0 -92
  38. data/spec/controller/controller_spec.rb +0 -157
  39. data/spec/controller/find_objects_spec.rb +0 -176
  40. data/spec/controller/group_spec.rb +0 -110
  41. data/spec/controller/intergration_spec.rb +0 -366
  42. data/spec/controller/load_spec.rb +0 -371
  43. data/spec/controller/races_spec.rb +0 -70
  44. data/spec/controller/stop_on_delete_spec.rb +0 -157
  45. data/spec/dsl/chain_spec.rb +0 -146
  46. data/spec/dsl/checks_spec.rb +0 -219
  47. data/spec/dsl/config_spec.rb +0 -44
  48. data/spec/dsl/dsl_spec.rb +0 -73
  49. data/spec/dsl/getter_spec.rb +0 -223
  50. data/spec/dsl/integration_spec.rb +0 -376
  51. data/spec/dsl/load_spec.rb +0 -52
  52. data/spec/dsl/notify_spec.rb +0 -114
  53. data/spec/dsl/process_spec.rb +0 -380
  54. data/spec/dsl/sub_procs_spec.rb +0 -93
  55. data/spec/dsl/with_server_spec.rb +0 -128
  56. data/spec/example/em.rb +0 -57
  57. data/spec/example/forking.rb +0 -20
  58. data/spec/example/sample.rb +0 -154
  59. data/spec/fixtures/dsl/0.rb +0 -8
  60. data/spec/fixtures/dsl/0a.rb +0 -8
  61. data/spec/fixtures/dsl/0c.rb +0 -8
  62. data/spec/fixtures/dsl/1.rb +0 -5
  63. data/spec/fixtures/dsl/bad.eye +0 -6
  64. data/spec/fixtures/dsl/configs/1.eye +0 -3
  65. data/spec/fixtures/dsl/configs/2.eye +0 -1
  66. data/spec/fixtures/dsl/configs/3.eye +0 -1
  67. data/spec/fixtures/dsl/configs/4.eye +0 -3
  68. data/spec/fixtures/dsl/empty.eye +0 -20
  69. data/spec/fixtures/dsl/include_test.eye +0 -5
  70. data/spec/fixtures/dsl/include_test/1.rb +0 -6
  71. data/spec/fixtures/dsl/include_test/ha.rb +0 -4
  72. data/spec/fixtures/dsl/include_test2.eye +0 -5
  73. data/spec/fixtures/dsl/integration.eye +0 -30
  74. data/spec/fixtures/dsl/integration2.eye +0 -32
  75. data/spec/fixtures/dsl/integration_locks.eye +0 -30
  76. data/spec/fixtures/dsl/integration_sor.eye +0 -32
  77. data/spec/fixtures/dsl/integration_sor2.eye +0 -27
  78. data/spec/fixtures/dsl/integration_sor3.eye +0 -32
  79. data/spec/fixtures/dsl/load.eye +0 -25
  80. data/spec/fixtures/dsl/load2.eye +0 -7
  81. data/spec/fixtures/dsl/load2_dup2.eye +0 -13
  82. data/spec/fixtures/dsl/load2_dup_pid.eye +0 -7
  83. data/spec/fixtures/dsl/load3.eye +0 -10
  84. data/spec/fixtures/dsl/load4.eye +0 -7
  85. data/spec/fixtures/dsl/load5.eye +0 -8
  86. data/spec/fixtures/dsl/load6.eye +0 -17
  87. data/spec/fixtures/dsl/load_dubls.eye +0 -36
  88. data/spec/fixtures/dsl/load_dup_ex_names.eye +0 -15
  89. data/spec/fixtures/dsl/load_error.eye +0 -5
  90. data/spec/fixtures/dsl/load_error_folder/load3.eye +0 -10
  91. data/spec/fixtures/dsl/load_error_folder/load4.eye +0 -7
  92. data/spec/fixtures/dsl/load_folder/load3.eye +0 -10
  93. data/spec/fixtures/dsl/load_folder/load4.eye +0 -7
  94. data/spec/fixtures/dsl/load_int.eye +0 -8
  95. data/spec/fixtures/dsl/load_int2.eye +0 -13
  96. data/spec/fixtures/dsl/load_logger.eye +0 -26
  97. data/spec/fixtures/dsl/load_logger2.eye +0 -3
  98. data/spec/fixtures/dsl/long_load.eye +0 -5
  99. data/spec/fixtures/dsl/subfolder1/proc1.rb +0 -3
  100. data/spec/fixtures/dsl/subfolder2.eye +0 -9
  101. data/spec/fixtures/dsl/subfolder2/common.rb +0 -1
  102. data/spec/fixtures/dsl/subfolder2/proc2.rb +0 -3
  103. data/spec/fixtures/dsl/subfolder2/sub/proc3.rb +0 -6
  104. data/spec/fixtures/dsl/subfolder3.eye +0 -8
  105. data/spec/fixtures/dsl/subfolder3/common.rb +0 -1
  106. data/spec/fixtures/dsl/subfolder3/proc4.rb +0 -3
  107. data/spec/fixtures/dsl/subfolder3/sub/proc5.rb +0 -6
  108. data/spec/fixtures/dsl/subfolder4.eye +0 -6
  109. data/spec/fixtures/dsl/subfolder4/a.rb +0 -2
  110. data/spec/fixtures/dsl/subfolder4/b.rb +0 -1
  111. data/spec/fixtures/dsl/subfolder4/c.rb +0 -1
  112. data/spec/mock_spec.rb +0 -31
  113. data/spec/notify/jabber_spec.rb +0 -25
  114. data/spec/notify/mail_spec.rb +0 -26
  115. data/spec/notify_spec.rb +0 -90
  116. data/spec/process/checks/child_checks_spec.rb +0 -79
  117. data/spec/process/checks/cpu_spec.rb +0 -114
  118. data/spec/process/checks/ctime_spec.rb +0 -43
  119. data/spec/process/checks/fsize_spec.rb +0 -22
  120. data/spec/process/checks/http_spec.rb +0 -52
  121. data/spec/process/checks/intergration_spec.rb +0 -32
  122. data/spec/process/checks/memory_spec.rb +0 -127
  123. data/spec/process/child_process_spec.rb +0 -125
  124. data/spec/process/config_spec.rb +0 -74
  125. data/spec/process/controller_spec.rb +0 -173
  126. data/spec/process/monitoring_spec.rb +0 -180
  127. data/spec/process/notify_spec.rb +0 -27
  128. data/spec/process/restart_spec.rb +0 -186
  129. data/spec/process/scheduler_spec.rb +0 -178
  130. data/spec/process/start_spec.rb +0 -261
  131. data/spec/process/states_history_spec.rb +0 -123
  132. data/spec/process/stop_spec.rb +0 -156
  133. data/spec/process/system_spec.rb +0 -136
  134. data/spec/process/triggers/flapping_spec.rb +0 -242
  135. data/spec/process/update_config_spec.rb +0 -62
  136. data/spec/spec_helper.rb +0 -128
  137. data/spec/support/rr_celluloid.rb +0 -15
  138. data/spec/support/spec_support.rb +0 -163
  139. data/spec/system_resources_spec.rb +0 -56
  140. data/spec/system_spec.rb +0 -174
  141. data/spec/utils/alive_array_spec.rb +0 -49
  142. data/spec/utils/celluloid_chain_spec.rb +0 -89
  143. data/spec/utils/tail_spec.rb +0 -20
@@ -1,52 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "Subfolder load spec" do
4
-
5
- it "should load file with full_path" do
6
- f = fixture("dsl/subfolder1/proc1.rb")
7
- conf = <<-E
8
- Eye.load("#{f}")
9
- Eye.application("bla") do
10
- proc1(self, "e1")
11
- end
12
- E
13
- Eye::Dsl.parse_apps(conf).should == {"bla" => {:name => "bla", :groups=>{
14
- "__default__"=>{:name => "__default__", :application => "bla", :processes=>{
15
- "e1"=>{:pid_file=>"e1.pid", :application=>"bla", :group=>"__default__", :name=>"e1"}}}}}}
16
- end
17
-
18
- it "file loaded, but proc not exists in it" do
19
- f = fixture("dsl/subfolder1/proc1.rb")
20
- conf = <<-E
21
- Eye.load("#{f}")
22
- Eye.application("bla") do
23
- proc55(self, "e1")
24
- end
25
- E
26
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(NoMethodError)
27
- end
28
-
29
- it "subfolder2" do
30
- file = fixture('dsl/subfolder2.eye')
31
- Eye::Dsl.parse_apps(nil, file).should == {
32
- "subfolder2" => {:name => "subfolder2", :working_dir=>"/tmp", :groups=>{
33
- "__default__"=>{:name => "__default__", :application => "subfolder2", :working_dir=>"/tmp", :processes=>{
34
- "e3"=>{:working_dir=>"/tmp", :pid_file=>"e3.pid2", :application=>"subfolder2", :group=>"__default__", :name=>"e3"},
35
- "e4"=>{:working_dir=>"sub2", :pid_file=>"e4.pid3", :application=>"subfolder2", :group=>"__default__", :name=>"e4"}}}}}}
36
- end
37
-
38
- it "subfolder3" do
39
- file = fixture('dsl/subfolder3.eye')
40
- Eye::Dsl.parse_apps(nil, file).should == {
41
- "subfolder3" => {:name => "subfolder3", :working_dir=>"/tmp", :groups=>{
42
- "__default__"=>{:name => "__default__", :application => "subfolder3", :working_dir=>"/tmp", :processes=>{
43
- "e1"=>{:working_dir=>"/tmp", :pid_file=>"e1.pid4", :application=>"subfolder3", :group=>"__default__", :name=>"e1"},
44
- "e2"=>{:working_dir=>"sub3", :pid_file=>"e2.pid5", :application=>"subfolder3", :group=>"__default__", :name=>"e2"}}}}}}
45
- end
46
-
47
- it "subfolder4" do
48
- file = fixture('dsl/subfolder4.eye')
49
- Eye::Dsl.parse_apps(nil, file).should == {"subfolder4"=>{:name=>"subfolder4", :environment=>{"a"=>1, "b"=>2, "c"=>3}}}
50
- end
51
-
52
- end
@@ -1,114 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "Eye::Dsl notify" do
4
- it "integration" do
5
- conf = <<-E
6
- Eye.config do
7
- mail :host => "mx.some.host.ru", :port => 25
8
-
9
- contact :vasya, :mail, "vasya@mail.ru"
10
- contact :petya, :mail, "petya@mail.ru", :port => 1111
11
-
12
- contact_group :idiots do
13
- contact :idiot1, :mail, "idiot1@mail.ru"
14
- contact :idiot2, :mail, "idiot1@mail.ru", :port => 1111
15
- end
16
- end
17
-
18
- Eye.application :bla do
19
- notify :vasya
20
- notify :idiots, :crit
21
-
22
- group :gr1 do
23
- notify :petya
24
- notify :idiot1, :warn
25
- end
26
- end
27
- E
28
- res = Eye::Dsl.parse(conf)
29
-
30
- res.should == {
31
- :applications => {
32
- "bla"=>{:name=>"bla",
33
- :notify=>{"vasya"=>:crit, "idiots"=>:crit},
34
- :groups=>{"gr1"=>{:name=>"gr1",
35
- :notify=>{"vasya"=>:crit, "idiots"=>:crit, "petya"=>:crit, "idiot1"=>:warn}, :application=>"bla", :processes=>{}}}}},
36
- :config => {
37
- :mail=>{:host=>"mx.some.host.ru", :port => 25, :type => :mail},
38
- :contacts=>{
39
- "vasya"=>{:name=>"vasya", :type=>:mail, :contact=>"vasya@mail.ru", :opts=>{}},
40
- "petya"=>{:name=>"petya", :type=>:mail, :contact=>"petya@mail.ru", :opts=>{:port=>1111}},
41
- 'idiots'=>[{:name=>"idiot1", :type=>:mail, :contact=>"idiot1@mail.ru", :opts=>{}}, {:name=>"idiot2", :type=>:mail, :contact=>"idiot1@mail.ru", :opts=>{:port=>1111}}],
42
- "idiot1"=>{:name=>"idiot1", :type=>:mail, :contact=>"idiot1@mail.ru", :opts=>{}},
43
- "idiot2"=>{:name=>"idiot2", :type=>:mail, :contact=>"idiot1@mail.ru", :opts=>{:port=>1111}}}}}
44
- end
45
-
46
- it "valid contact type" do
47
- conf = <<-E
48
- Eye.config do
49
- contact :vasya, :mail, "vasya@mail.ru", :port => 25, :host => "localhost"
50
- end
51
- E
52
- Eye::Dsl.parse(conf)[:config].should == {:contacts=>{
53
- "vasya"=>{:name=>"vasya", :type=>:mail, :contact=>"vasya@mail.ru", :opts=>{:port => 25, :host => "localhost"}}}}
54
- end
55
-
56
- it "raise on unknown contact type" do
57
- conf = <<-E
58
- Eye.config do
59
- contact :vasya, :dddd, "vasya@mail.ru", :host => "localhost", :port => 12
60
- end
61
- E
62
- expect{ Eye::Dsl.parse(conf) }.to raise_error(Eye::Dsl::Error)
63
- end
64
-
65
- it "raise on unknown additional_options" do
66
- conf = <<-E
67
- Eye.config do
68
- contact :vasya, :mail, "vasya@mail.ru", :host => "localhost", :port => 12, :bla => 1
69
- end
70
- E
71
- expect{ Eye::Dsl.parse(conf) }.to raise_error(Eye::Dsl::Validation::Error)
72
- end
73
-
74
- it "raise on not including on list of values" do
75
- conf = <<-E
76
- Eye.config do
77
- contact :vasya, :mail, "vasya@mail.ru", :host => "localhost", :port => 12, :auth => :ply
78
- end
79
- E
80
- expect{ Eye::Dsl.parse(conf) }.to raise_error(Eye::Dsl::Validation::Error)
81
- end
82
-
83
- it "set notify inherited" do
84
- conf = <<-E
85
- Eye.app :bla do
86
- notify :vasya
87
-
88
- group :bla do
89
- end
90
- end
91
- E
92
- Eye::Dsl.parse_apps(conf).should == {
93
- "bla" => {:name=>"bla",
94
- :notify=>{"vasya"=>:crit},
95
- :groups=>{"bla"=>{:name=>"bla",
96
- :notify=>{"vasya"=>:crit}, :application=>"bla", :processes=>{}}}}}
97
- end
98
-
99
- it "clear notify with nonotify" do
100
- conf = <<-E
101
- Eye.app :bla do
102
- notify :vasya
103
-
104
- group :bla do
105
- nonotify :vasya
106
- end
107
- end
108
- E
109
- Eye::Dsl.parse_apps(conf).should == {
110
- "bla" => {:name=>"bla",
111
- :notify=>{"vasya"=>:crit},
112
- :groups=>{"bla"=>{:name=>"bla", :notify=>{}, :application=>"bla", :processes=>{}}}}}
113
- end
114
- end
@@ -1,380 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "Eye::Dsl" do
4
-
5
- it "process without pid_file should raise" do
6
- conf = <<-E
7
- Eye.application("bla") do
8
- process("1") do
9
- stdout "1.log"
10
- end
11
- end
12
- E
13
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
14
- end
15
-
16
- it "valid process" do
17
- conf = <<-E
18
- Eye.application("bla") do
19
- process("1") do
20
- pid_file "1.pid"
21
- end
22
- end
23
- E
24
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:pid_file=>"1.pid", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
25
- end
26
-
27
- it "disable process" do
28
- conf = <<-E
29
- Eye.application("bla") do
30
- env "a" => 'b'
31
- xprocess("1") do
32
- pid_file "1.pid"
33
- end
34
- end
35
- E
36
- Eye::Dsl.parse_apps(conf).should == {"bla" => {:environment=>{"a"=>"b"}, :name => "bla"}}
37
- end
38
-
39
- it "process with times" do
40
- conf = <<-E
41
- Eye.application("bla") do
42
- 2.times do |i|
43
- process("\#{i}") do
44
- pid_file "\#{i}.pid"
45
- end
46
- end
47
- end
48
- E
49
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"0"=>{:pid_file=>"0.pid", :application=>"bla", :group=>"__default__", :name=>"0"}, "1"=>{:pid_file=>"1.pid", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
50
- end
51
-
52
- it "process with def" do
53
- conf = <<-E
54
- def add_process(proxy, name)
55
- proxy.process(name) do
56
- pid_file "\#{name}.pid"
57
- end
58
- end
59
-
60
- Eye.application("bla") do
61
- add_process(self, "1")
62
- add_process(self, "2")
63
- end
64
- E
65
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:pid_file=>"1.pid", :application=>"bla", :group=>"__default__", :name=>"1"}, "2"=>{:pid_file=>"2.pid", :application=>"bla", :group=>"__default__", :name=>"2"}}}}}}
66
- end
67
-
68
- it "process with constant" do
69
- conf = <<-E
70
- BLA = "1.pid"
71
-
72
- Eye.application("bla") do
73
- process("1") do
74
- pid_file BLA
75
- end
76
- end
77
- E
78
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:pid_file=>"1.pid", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
79
- end
80
-
81
- it "when 2 processes with same pid_file, its ERROR" do
82
- conf = <<-E
83
- def add_process(proxy, name)
84
- proxy.process(name) do
85
- pid_file "same.pid"
86
- end
87
- end
88
-
89
- Eye.application("bla") do
90
- add_process(self, "1")
91
- add_process(self, "2")
92
- end
93
- E
94
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
95
- end
96
-
97
- it "when 2 processes with same name, should squash" do
98
- conf = <<-E
99
- Eye.application("bla") do
100
- process("1"){pid_file "11"}
101
- process("1"){pid_file "12"}
102
- end
103
- E
104
- Eye::Dsl.parse_apps(conf).should == {'bla' => {:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:pid_file=>"12", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
105
- end
106
-
107
- describe "stdout, stder, stdall" do
108
- it "stdout, stderr" do
109
- conf = <<-E
110
- Eye.application("bla") do
111
- process("1") do
112
- stdout "1.log"
113
- stderr "2.log"
114
- pid_file "1.pid"
115
- end
116
- end
117
- E
118
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:stdout=>"1.log", :stderr=>"2.log", :pid_file=>"1.pid", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
119
- end
120
-
121
- it "stdall" do
122
- conf = <<-E
123
- Eye.application("bla") do
124
- process("1") do
125
- stdall "1.log"
126
- pid_file "1.pid"
127
- end
128
- end
129
- E
130
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:stdout=>"1.log", :stderr=>"1.log", :stdall => "1.log", :pid_file=>"1.pid", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
131
- end
132
-
133
- end
134
-
135
- describe "pid_file is invalid" do
136
- it "pid_file in app is invalid" do
137
- conf = <<-E
138
- Eye.application("bla") do
139
- pid_file "11"
140
-
141
- process("1") do
142
- pid_file "12"
143
- end
144
- end
145
- E
146
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
147
- end
148
-
149
- it "pid_file in group is invalid" do
150
- conf = <<-E
151
- Eye.application("bla") do
152
-
153
- group("mini") do
154
- pid_file "11"
155
- process("1"){ pid_file "12" }
156
- end
157
- end
158
- E
159
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
160
- end
161
- end
162
-
163
- describe "child process" do
164
- it "ok child monitor" do
165
- conf = <<-E
166
- Eye.application("bla") do
167
- process("1") do
168
- pid_file "1.pid"
169
- monitor_children{ restart_command "kill" }
170
- end
171
- end
172
- E
173
- Eye::Dsl.parse_apps(conf).should == {"bla" => {:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:pid_file=>"1.pid", :monitor_children=>{:restart_command=>"kill"}, :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
174
- end
175
-
176
- it "child invalid command" do
177
- conf = <<-E
178
- Eye.application("bla") do
179
- process("1") do
180
- pid_file "1.pid"
181
- monitor_children{ restart_some "kill" }
182
- end
183
- end
184
- E
185
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(NoMethodError)
186
- end
187
-
188
- it "child pid_file" do
189
- conf = <<-E
190
- Eye.application("bla") do
191
- process("1") do
192
- pid_file "1.pid"
193
- monitor_children{ pid_file "2.pid" }
194
- end
195
- end
196
- E
197
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
198
- end
199
-
200
- end
201
-
202
- it "valid process with proxies" do
203
- conf = <<-E
204
- Eye.application("bla") do |app|
205
- app.process("1") do |p|
206
- p.pid_file "2.pid"
207
- end
208
- end
209
- E
210
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:pid_file=>"2.pid", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
211
- end
212
-
213
- it "valid process with proxies" do
214
- conf = <<-E
215
- Eye.application("bla") do |app|
216
- app.process("1") do |p|
217
- p.pid_file = "2.pid"
218
- end
219
- end
220
- E
221
- Eye::Dsl.parse_apps(conf).should == {"bla"=>{:name => "bla", :groups=>{"__default__"=>{:name => "__default__", :application => "bla", :processes=>{"1"=>{:pid_file=>"2.pid", :application=>"bla", :group=>"__default__", :name=>"1"}}}}}}
222
- end
223
-
224
- describe "blank envs" do
225
-
226
- it "empty env" do
227
- conf = <<-E
228
- Eye.application("bla") do
229
- env nil
230
- end
231
- E
232
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
233
- end
234
-
235
- it "empty env" do
236
- conf = <<-E
237
- Eye.application("bla") do
238
- env []
239
- end
240
- E
241
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
242
- end
243
-
244
- it "empty env" do
245
- conf = <<-E
246
- Eye.application("bla") do
247
- env 'asdfsdf'
248
- end
249
- E
250
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
251
- end
252
-
253
- end
254
-
255
- describe "validation" do
256
- it "bad string" do
257
- conf = "Eye.app('bla'){ self.working_dir = {} }"
258
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
259
-
260
- conf = "Eye.app('bla'){ self.working_dir = [] }"
261
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
262
-
263
- conf = "Eye.app('bla'){ self.working_dir = 5.6 }"
264
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
265
-
266
- conf = "Eye.app('bla'){ self.working_dir = false }"
267
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
268
- end
269
-
270
- it "good string" do
271
- conf = "Eye.app('bla'){ self.working_dir = nil }"
272
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
273
-
274
- conf = "Eye.app('bla'){ self.working_dir = 'bla' }"
275
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
276
- end
277
-
278
- it "bad bool" do
279
- conf = "Eye.app('bla'){ self.daemonize = {} }"
280
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
281
-
282
- conf = "Eye.app('bla'){ self.daemonize = [] }"
283
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
284
-
285
- conf = "Eye.app('bla'){ self.daemonize = 5.6 }"
286
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
287
-
288
- conf = "Eye.app('bla'){ self.daemonize = 'false' }"
289
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
290
- end
291
-
292
- it "good bool" do
293
- conf = "Eye.app('bla'){ self.daemonize = nil }"
294
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
295
-
296
- conf = "Eye.app('bla'){ self.daemonize = true }"
297
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
298
-
299
- conf = "Eye.app('bla'){ self.daemonize = false }"
300
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
301
- end
302
-
303
- it "bad interval" do
304
- conf = "Eye.app('bla'){ self.daemonize = {} }"
305
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
306
-
307
- conf = "Eye.app('bla'){ self.start_timeout = [] }"
308
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
309
-
310
- conf = "Eye.app('bla'){ self.start_timeout = false }"
311
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
312
-
313
- conf = "Eye.app('bla'){ self.start_timeout = 'false' }"
314
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Dsl::Error)
315
- end
316
-
317
- it "good interval" do
318
- conf = "Eye.app('bla'){ self.start_timeout = nil }"
319
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
320
-
321
- conf = "Eye.app('bla'){ self.start_timeout = 10.seconds }"
322
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
323
-
324
- conf = "Eye.app('bla'){ self.start_timeout = 1.5.seconds }"
325
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Dsl::Error)
326
- end
327
-
328
- end
329
-
330
- describe "process validations" do
331
- it "validate daemonize command" do
332
- conf = <<-E
333
- Eye.application("bla") do
334
- process("1") do
335
- pid_file "1.pid"
336
- daemonize true
337
- start_command "sh -c 'echo some; ruby 1.rb'"
338
- end
339
- end
340
- E
341
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Process::Validate::Error)
342
-
343
- conf = <<-E
344
- Eye.application("bla") do
345
- process("1") do
346
- pid_file "1.pid"
347
- daemonize true
348
- start_command "echo some && ruby 1.rb"
349
- end
350
- end
351
- E
352
- expect{Eye::Dsl.parse_apps(conf)}.to raise_error(Eye::Process::Validate::Error)
353
-
354
- conf = <<-E
355
- Eye.application("bla") do
356
- process("1") do
357
- pid_file "1.pid"
358
- daemonize true
359
- start_command "ruby 1.rb"
360
- end
361
- end
362
- E
363
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Process::Validate::Error)
364
- end
365
-
366
- it "not validate non-daemonize command" do
367
- conf = <<-E
368
- Eye.application("bla") do
369
- process("1") do
370
- pid_file "1.pid"
371
- start_command "sh -c 'echo some && ruby 1.rb'"
372
- end
373
- end
374
- E
375
- expect{Eye::Dsl.parse_apps(conf)}.not_to raise_error(Eye::Process::Validate::Error)
376
- end
377
-
378
- end
379
-
380
- end