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