Sha256: 33c854e259ce096bb65595098e6c27f1f1a5704d476c1732b60828a138bf9f60

Contents?: true

Size: 1006 Bytes

Versions: 12

Compression:

Stored size: 1006 Bytes

Contents

require 'grape'

module Cellect
  module Server
    class API < Grape::API
      format :json
      
      require 'cellect/server/api/helpers'
      require 'cellect/server/api/sets'
      require 'cellect/server/api/users'
      
      get :stats do
        usage = ->(keyword) do
          `ps axo #{ keyword }`.chomp.split("\n")[1..-1].collect(&:to_f).inject :+
        end
        
        {
          memory: usage.call('%mem'),
          cpu: usage.call('%cpu')
        }
      end
      
      resources :workflows do
        get do
          Cellect::Server.adapter.workflow_list
        end
        
        segment '/:workflow_id' do
          helpers Helpers
          mount Sets
          mount Users
          
          get :status do
            workflow.status
          end
          
          post :reload do
            workflow.async.load_data
          end
          
          delete do
            # delete a workflow (maybe?)
          end
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
cellect-server-0.1.2.pre.jruby lib/cellect/server/api.rb
cellect-server-0.1.2 lib/cellect/server/api.rb
cellect-server-0.1.1 lib/cellect/server/api.rb
cellect-server-0.1.0 lib/cellect/server/api.rb
cellect-server-0.0.9 lib/cellect/server/api.rb
cellect-server-0.0.8 lib/cellect/server/api.rb
cellect-server-0.0.7 lib/cellect/server/api.rb
cellect-server-0.0.6 lib/cellect/server/api.rb
cellect-server-0.0.5 lib/cellect/server/api.rb
cellect-server-0.0.4 lib/cellect/server/api.rb
cellect-server-0.0.3 lib/cellect/server/api.rb
cellect-server-0.0.2 lib/cellect/server/api.rb