Sha256: b5881bd22154d8a1b7835a903c83cd1d5067e1f3270b70bcb8cd2d1e54497a8d

Contents?: true

Size: 1.04 KB

Versions: 9

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

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
      self.settings.set :checkoutlock, Mutex.new
    end

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

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
vmpooler-0.13.3 lib/vmpooler/api.rb
vmpooler-0.13.2 lib/vmpooler/api.rb
vmpooler-0.13.1 lib/vmpooler/api.rb
vmpooler-0.13.0 lib/vmpooler/api.rb
vmpooler-0.12.0 lib/vmpooler/api.rb
vmpooler-0.11.3 lib/vmpooler/api.rb
vmpooler-0.11.2 lib/vmpooler/api.rb
vmpooler-0.11.1 lib/vmpooler/api.rb
vmpooler-0.11.0 lib/vmpooler/api.rb