Class: KL::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/kldockeragent/server.rb

Instance Method Summary collapse

Constructor Details

#initializeServer

Returns a new instance of Server.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/kldockeragent/server.rb', line 6

def initialize
	@config = KL.config
	if @config['api']['ssl']
		options = {
		    :Port               => @config['api']['port'],
		    :SSLEnable          => true,
		    :SSLVerifyClient    => OpenSSL::SSL::VERIFY_NONE,
		    :SSLCertificate     => OpenSSL::X509::Certificate.new(File.open(@config['api']['cert']['crt']).read),
		    :SSLPrivateKey      => OpenSSL::PKey::RSA.new(File.open(@config['api']['cert']['key']).read),
		    :SSLCertName        => [[ "CN", WEBrick::Utils::getservername ]]
		}
	else
		options = {
		    :Port               => @config['api']['port'],
		    :SSLEnable          => false
		}
	end
	@webrick_options = options
	@server = ::Rack::Handler::WEBrick
end

Instance Method Details

#startObject



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/kldockeragent/server.rb', line 26

def start
	KL.logger.info '[server] Starting web server...'
	Thread.new {
		@server.run KL::Api, @webrick_options
	}
	if (@config['api']['ssl'])
		msg = "[server] Web server listening on #{@config['api']['port']} with SSL"
	else
		msg = "[server] Web server listening on #{@config['api']['port']}"
	end
		KL.logger.info msg
end

#stopObject



38
39
40
41
# File 'lib/kldockeragent/server.rb', line 38

def stop
	@server.shutdown
	KL.logger.info '[server] Web server has stopped.'
end