Sha256: c62365c948ffbfb5aa7868d42ec1fb179c11a934bab2167657240d86b5f91a70

Contents?: true

Size: 983 Bytes

Versions: 11

Compression:

Stored size: 983 Bytes

Contents

module Vmpooler
  class API < Sinatra::Base
    def initialize
      super
    end

    not_found do
      content_type :json

      result = {
        ok: false
      }

      JSON.pretty_generate(result)
    end

    # Load dashboard components
    begin
      require 'dashboard'
    rescue LoadError
      require File.expand_path(File.join(File.dirname(__FILE__), 'dashboard'))
    end

    use Vmpooler::Dashboard

    # Load API components
    %w[helpers dashboard reroute v1].each do |lib|
      begin
        require "api/#{lib}"
      rescue LoadError
        require File.expand_path(File.join(File.dirname(__FILE__), 'api', lib))
      end
    end

    use Vmpooler::API::Dashboard
    use Vmpooler::API::Reroute
    use Vmpooler::API::V1

    def configure(config, redis, metrics)
      self.settings.set :config, config
      self.settings.set :redis, redis
      self.settings.set :metrics, metrics
    end

    def execute!
      self.settings.run!
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
vmpooler-0.7.1 lib/vmpooler/api.rb
vmpooler-0.7.0 lib/vmpooler/api.rb
vmpooler-0.6.3 lib/vmpooler/api.rb
vmpooler-0.6.2 lib/vmpooler/api.rb
vmpooler-0.6.1 lib/vmpooler/api.rb
vmpooler-0.6.0 lib/vmpooler/api.rb
vmpooler-0.5.1 lib/vmpooler/api.rb
vmpooler-0.5.0 lib/vmpooler/api.rb
vmpooler-0.4.0 lib/vmpooler/api.rb
vmpooler-0.3.0 lib/vmpooler/api.rb
vmpooler-0.2.31 lib/vmpooler/api.rb