Class: Baleen::Server
- Inherits:
-
Object
show all
- Includes:
- Default, Celluloid::IO
- Defined in:
- lib/baleen/server.rb
Instance Method Summary
collapse
Methods included from Default
#default_baleen_server, #default_before_command, #default_branch, #default_ci_port, #default_concurrency, #default_daemon, #default_dir, #default_docker_host, #default_docker_port, #default_features, #default_log_level, #default_port, #default_project_file, #default_work_dir
Constructor Details
#initialize(docker_host, docker_port, port, project_file) ⇒ Server
Returns a new instance of Server.
15
16
17
18
19
20
|
# File 'lib/baleen/server.rb', line 15
def initialize(docker_host, docker_port, port, project_file)
Docker.url = "http://#{docker_host}:#{docker_port}"
Baleen::Project.load_project(project_file)
@server = TCPServer.new("0.0.0.0", port)
async.run
end
|
Instance Method Details
#find_project(name, conn) ⇒ Object
#handle_connection(socket) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/baleen/server.rb', line 34
def handle_connection(socket)
loop { handle_request(socket) }
rescue Exception => ex
case ex
when IOError; nil else
puts ex.inspect
raise ex
end
end
|
#handle_request(socket) ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/baleen/server.rb', line 46
def handle_request(socket)
json_request = socket.gets
if json_request.nil?
socket.close
return
end
conn = Connection.new(socket)
request = parse_request(json_request)
begin
if request.is_a? Baleen::Task::RunProject
task = find_project(request.project, conn).task
else
task = request end
rescue Baleen::Error::ProjectNotFound
return
end
RunnerManager.new(conn, task).run do |response|
conn.respond(response)
end
end
|
#parse_request(request) ⇒ Object
#run ⇒ Object
22
23
24
|
# File 'lib/baleen/server.rb', line 22
def run
loop { async.handle_connection @server.accept }
end
|
#shutdown ⇒ Object
26
27
28
29
30
31
32
|
# File 'lib/baleen/server.rb', line 26
def shutdown
begin
@server.close
rescue IOError
BL.info "Shutting down baleen-server..."
end
end
|