redis_monitor 0.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/engine/app/controllers/application_controller.rb +3 -0
- data/lib/engine/app/controllers/content_controller.rb +12 -6
- data/lib/engine/app/controllers/info_controller.rb +1 -1
- data/lib/engine/app/controllers/performance_controller.rb +1 -1
- data/lib/engine/app/helpers/database_helper.rb +5 -9
- data/lib/engine/app/lib/backend.rb +10 -36
- data/lib/engine/app/lib/backend_connection.rb +11 -0
- data/lib/engine/app/lib/commands/change_database.rb +6 -0
- data/lib/engine/app/lib/commands/database_list.rb +5 -0
- data/lib/engine/app/lib/{performance_stats.rb → commands/performance_stats.rb} +1 -1
- data/lib/engine/app/lib/commands/remove_key.rb +7 -0
- data/lib/engine/app/lib/commands/search_key.rb +5 -0
- data/lib/engine/app/lib/security/authentication.rb +3 -6
- data/lib/engine/app/lib/security/authorization.rb +7 -5
- data/lib/engine/app/views/content/_search_form.haml +1 -1
- data/lib/engine/app/views/content/search.haml +1 -1
- data/lib/engine/config/environments/production.rb +1 -1
- data/lib/engine/config/initializers/configuration.rb +6 -3
- data/lib/engine/spec/controllers/content_controller_spec.rb +7 -3
- data/lib/engine/spec/controllers/info_controller_spec.rb +4 -1
- data/lib/engine/spec/controllers/performance_controller_spec.rb +1 -1
- data/lib/engine/spec/lib/backend_spec.rb +4 -56
- data/lib/engine/spec/lib/commands/change_database_spec.rb +24 -0
- data/lib/engine/spec/lib/commands/database_list_spec.rb +15 -0
- data/lib/engine/spec/lib/{performance_stats_spec.rb → commands/performance_stats_spec.rb} +5 -5
- data/lib/engine/spec/lib/commands/remove_key_spec.rb +21 -0
- data/lib/engine/spec/lib/commands/search_key_spec.rb +25 -0
- data/lib/engine/spec/lib/security/authentication_spec.rb +3 -3
- data/lib/engine/spec/spec_helper.rb +7 -3
- data/lib/redis_monitor.rb +1 -2
- data/lib/version.rb +1 -1
- metadata +13 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff13da4a5a6d6d3b4965964e669d6790b8aa88eb
|
4
|
+
data.tar.gz: db3f048bdb23af208771e50116923c962b4b520f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0008c8e625d7c73d2fe4ad6f554f4ea648557c6d308b4538e870000df576ad8cf052cd78d4931d1f2f62983622356851a2d47fd3444b79e964366250127942cf
|
7
|
+
data.tar.gz: b63cd187913745965bc002e4928f9b72df5a6490ed7febe98615290ed9646ed6bd13e57c76e11bdb7bb73de50fe6f593e51fbad437b2f9503cc296e36e3b81d3
|
@@ -7,4 +7,7 @@ class ApplicationController < ActionController::Base
|
|
7
7
|
http_basic_authenticate_with name: Authentication.credentials[:user], password: Authentication.credentials[:password]
|
8
8
|
end
|
9
9
|
|
10
|
+
def backend
|
11
|
+
@backend ||= BackendConnection.build(current_database: session[:database])
|
12
|
+
end
|
10
13
|
end
|
@@ -1,21 +1,24 @@
|
|
1
1
|
class ContentController < ApplicationController
|
2
2
|
skip_before_action :verify_authenticity_token
|
3
3
|
before_action :load_section
|
4
|
+
before_action :load_database_list, only: [:index, :search]
|
5
|
+
before_action :load_current_database, only: [:index, :search]
|
4
6
|
|
5
7
|
def index
|
6
8
|
end
|
7
9
|
|
8
10
|
def search
|
9
|
-
|
11
|
+
results = SearchKey.new(backend, params[:key]).result
|
12
|
+
@results = results.paginate(:page => params[:page], :per_page => 20)
|
10
13
|
end
|
11
14
|
|
12
15
|
def delete
|
13
|
-
|
16
|
+
RemoveKey.new(backend, params[:key]).execute
|
14
17
|
redirect_to :back
|
15
18
|
end
|
16
19
|
|
17
20
|
def change_database
|
18
|
-
|
21
|
+
ChangeDatabase.new(backend, session, params[:database]).execute
|
19
22
|
redirect_to :back
|
20
23
|
end
|
21
24
|
|
@@ -24,9 +27,12 @@ class ContentController < ApplicationController
|
|
24
27
|
@section = 'content'
|
25
28
|
end
|
26
29
|
|
27
|
-
def
|
28
|
-
|
29
|
-
|
30
|
+
def load_database_list
|
31
|
+
@databases = DatabaseList.new(backend).result
|
32
|
+
end
|
33
|
+
|
34
|
+
def load_current_database
|
35
|
+
@current_database = backend.current_database
|
30
36
|
end
|
31
37
|
end
|
32
38
|
|
@@ -1,21 +1,17 @@
|
|
1
1
|
module DatabaseHelper
|
2
|
-
def
|
3
|
-
|
4
|
-
end
|
5
|
-
|
6
|
-
def databases
|
7
|
-
Backend.databases.each do |database|
|
2
|
+
def databases(dbs)
|
3
|
+
dbs.each do |database|
|
8
4
|
database_option(database)
|
9
5
|
end
|
10
6
|
end
|
11
7
|
|
12
8
|
def database_option(database)
|
13
|
-
haml_tag :option, {selected: (database.to_i == current_database.to_i)} do
|
9
|
+
haml_tag :option, {selected: (database.to_i == @current_database.to_i)} do
|
14
10
|
haml_concat database
|
15
11
|
end
|
16
12
|
end
|
17
13
|
|
18
|
-
def choose_database_select
|
14
|
+
def choose_database_select(dbs)
|
19
15
|
capture_haml do
|
20
16
|
haml_tag :form, action: '/content/change_database', method: 'post' do
|
21
17
|
haml_tag :div, class: 'form-group' do
|
@@ -24,7 +20,7 @@ module DatabaseHelper
|
|
24
20
|
end
|
25
21
|
|
26
22
|
haml_tag :select, id: 'database_select', name: 'database', class: 'selectpicker form-control', data: {style: 'btn-info'} do
|
27
|
-
databases
|
23
|
+
databases(dbs)
|
28
24
|
end
|
29
25
|
end
|
30
26
|
end
|
@@ -1,45 +1,19 @@
|
|
1
1
|
require 'redis'
|
2
|
-
require 'forwardable'
|
3
2
|
|
4
3
|
class Backend
|
5
|
-
|
4
|
+
attr_accessor :host, :port, :current_database
|
6
5
|
|
7
|
-
|
6
|
+
delegate :get, :set, :info, :keys, :select, :del, :to => :redis
|
8
7
|
|
9
|
-
def
|
10
|
-
|
11
|
-
|
8
|
+
def initialize(opts = {})
|
9
|
+
@host = opts[:host]
|
10
|
+
@port = opts[:port]
|
11
|
+
@current_database = opts[:current_database]
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
def self.port
|
19
|
-
@@port
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.redis
|
23
|
-
@@redis ||= Redis.new(:host => host, :port => port)
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.performance_stats
|
27
|
-
PerformanceStats.new(self).results
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.search(key)
|
31
|
-
keys(key).map{|found| {key: found, value: get(found)} }
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.change_database(*args)
|
35
|
-
select(*args)
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.remove(key)
|
39
|
-
redis.del(key) if Authorization.authorized_for?(:remove_content)
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.databases
|
43
|
-
info.keys.map{|d| d.match(/db(\d+)/);$1}.compact
|
14
|
+
def redis
|
15
|
+
@redis ||= Redis.new(host: host, port: port)
|
16
|
+
@redis.select(current_database)
|
17
|
+
@redis
|
44
18
|
end
|
45
19
|
end
|
@@ -36,7 +36,7 @@ class PerformanceStats < Struct.new(:backend)
|
|
36
36
|
time.real / CREATE_AND_DELETE_ACCESS_TIMES
|
37
37
|
end
|
38
38
|
|
39
|
-
def
|
39
|
+
def result
|
40
40
|
{ average_access: format_result_in_ms(average_access),
|
41
41
|
average_write: format_result_in_ms(average_write),
|
42
42
|
average_create_and_delete: format_result_in_ms(average_create_and_delete)}
|
@@ -1,14 +1,11 @@
|
|
1
|
-
|
1
|
+
class Authentication
|
2
|
+
cattr_accessor :credentials
|
2
3
|
|
3
|
-
def self.
|
4
|
+
def self.setup(credentials)
|
4
5
|
@@credentials = credentials
|
5
6
|
end
|
6
7
|
|
7
8
|
def self.authentication_required?
|
8
9
|
!!credentials
|
9
10
|
end
|
10
|
-
|
11
|
-
def self.credentials
|
12
|
-
@@credentials
|
13
|
-
end
|
14
11
|
end
|
@@ -1,16 +1,18 @@
|
|
1
1
|
class Authorization
|
2
|
+
cattr_accessor :permissions
|
3
|
+
|
2
4
|
DEFAULTS = {remove_content: true}
|
3
5
|
|
4
|
-
def self.
|
6
|
+
def self.setup(opts = {})
|
5
7
|
opts = {} unless opts
|
6
8
|
@@permissions = DEFAULTS.merge(opts)
|
7
9
|
end
|
8
10
|
|
9
|
-
def self.permissions
|
10
|
-
@@permissions
|
11
|
-
end
|
12
|
-
|
13
11
|
def self.authorized_for?(action)
|
14
12
|
!!permissions[action]
|
15
13
|
end
|
14
|
+
|
15
|
+
def self.execute_if_authorized_for(action)
|
16
|
+
yield if authorized_for?(action) && block_given?
|
17
|
+
end
|
16
18
|
end
|
@@ -20,7 +20,7 @@ Engine::Application.configure do
|
|
20
20
|
# config.action_dispatch.rack_cache = true
|
21
21
|
|
22
22
|
# Disable Rails's static asset server (Apache or nginx will already do this).
|
23
|
-
config.serve_static_assets = false
|
23
|
+
#config.serve_static_assets = false
|
24
24
|
|
25
25
|
|
26
26
|
# Specifies the header that your server uses for sending files.
|
@@ -1,5 +1,8 @@
|
|
1
1
|
if defined?(REDIS_MONITOR_OPTS)
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
BackendConnection.setup do |config|
|
3
|
+
config.host = REDIS_MONITOR_OPTS[:redis_host]
|
4
|
+
config.port = REDIS_MONITOR_OPTS[:redis_port]
|
5
|
+
end
|
6
|
+
Authorization.setup(REDIS_MONITOR_OPTS[:permissions])
|
7
|
+
Authentication.setup(REDIS_MONITOR_OPTS[:credentials])
|
5
8
|
end
|
@@ -1,27 +1,31 @@
|
|
1
1
|
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe ContentController do
|
4
|
+
let(:backend){ double() }
|
4
5
|
before :each do
|
5
6
|
request.env['HTTP_REFERER'] = '/'
|
7
|
+
controller.stub(:backend){ backend }
|
8
|
+
controller.stub(:load_database_list)
|
9
|
+
controller.stub(:load_current_database)
|
6
10
|
end
|
7
11
|
|
8
12
|
describe 'search action' do
|
9
13
|
it 'should search on backend' do
|
10
|
-
|
14
|
+
SearchKey.any_instance.should_receive(:result){ [] }
|
11
15
|
get :search
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
15
19
|
describe 'delete action' do
|
16
20
|
it 'should call remove on Backend' do
|
17
|
-
|
21
|
+
RemoveKey.any_instance.should_receive(:execute)
|
18
22
|
post :delete
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
22
26
|
describe 'change_database' do
|
23
27
|
it 'should call set_database' do
|
24
|
-
|
28
|
+
ChangeDatabase.any_instance.should_receive(:execute)
|
25
29
|
post :change_database
|
26
30
|
end
|
27
31
|
end
|
@@ -1,9 +1,12 @@
|
|
1
1
|
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe InfoController do
|
4
|
+
let(:backend){ BackendConnection.build }
|
5
|
+
|
4
6
|
describe 'index action' do
|
5
7
|
it 'should get info from backend' do
|
6
|
-
|
8
|
+
controller.stub(:backend){ backend }
|
9
|
+
backend.should_receive(:info)
|
7
10
|
get :index
|
8
11
|
end
|
9
12
|
end
|
@@ -3,7 +3,7 @@ require_relative '../spec_helper'
|
|
3
3
|
describe PerformanceController do
|
4
4
|
describe 'check action' do
|
5
5
|
it 'should get performance stats from backend' do
|
6
|
-
|
6
|
+
PerformanceStats.any_instance.should_receive(:result)
|
7
7
|
get :check
|
8
8
|
end
|
9
9
|
end
|
@@ -1,63 +1,11 @@
|
|
1
1
|
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe Backend do
|
4
|
-
let(:
|
4
|
+
let(:backend){ BackendConnection.build }
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
Backend.stub(:redis){ redis }
|
10
|
-
end
|
11
|
-
|
12
|
-
describe 'performance_stats' do
|
13
|
-
before :each do
|
14
|
-
PerformanceStats.any_instance.stub(:results){ {} }
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'should return a hash with the stats' do
|
18
|
-
Backend.performance_stats.should be_kind_of(Hash)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe 'search' do
|
23
|
-
let(:keys){ ['k1', 'k2', 'k3'] }
|
24
|
-
|
25
|
-
before :each do
|
26
|
-
Backend.stub(:keys){ keys }
|
27
|
-
Backend.stub(:get){ 'value' }
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'should return an array of hashes' do
|
31
|
-
Backend.search('*').should be_kind_of(Array)
|
32
|
-
Backend.search('*')[0].should be_kind_of(Hash)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'every entry should have key and value data' do
|
36
|
-
Backend.search('*')[0][:key].should_not be_nil
|
37
|
-
Backend.search('*')[0][:value].should_not be_nil
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe 'del' do
|
42
|
-
it 'should not delete content if not allowed' do
|
43
|
-
Authorization.stub(:authorized_for?).with(:remove_content){ false }
|
44
|
-
redis.should_receive(:del).never
|
45
|
-
Backend.remove('key')
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'should remove content if allowed' do
|
49
|
-
Authorization.stub(:authorized_for?).with(:remove_content){ true }
|
50
|
-
redis.should_receive(:del)
|
51
|
-
Backend.remove('key')
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe 'databases' do
|
56
|
-
it 'should retrieve databases' do
|
57
|
-
info_keys = {db0: '', db1: '', example: ''}
|
58
|
-
Backend.stub(:info){ info_keys }
|
59
|
-
Backend.databases.should include('0')
|
60
|
-
Backend.databases.should include('1')
|
6
|
+
it 'should respond to basic redis methods' do
|
7
|
+
[:get, :set, :del, :info, :keys, :select].each do |method|
|
8
|
+
backend.should respond_to(method)
|
61
9
|
end
|
62
10
|
end
|
63
11
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe ChangeDatabase do
|
4
|
+
let(:backend){ Struct.new(:current_database).new(0) }
|
5
|
+
let(:database){ '2' }
|
6
|
+
let(:session){ Struct.new(:database).new(0) }
|
7
|
+
let(:command){ ChangeDatabase.new(backend, session, database) }
|
8
|
+
|
9
|
+
describe 'execute' do
|
10
|
+
before :each do
|
11
|
+
backend.stub(:select)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should change current_database' do
|
15
|
+
command.execute
|
16
|
+
backend.current_database.should eq(database)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should save current_database in session' do
|
20
|
+
command.execute
|
21
|
+
session[:database].should eq(database)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe DatabaseList do
|
4
|
+
let(:backend){ double() }
|
5
|
+
let(:command){ DatabaseList.new(backend) }
|
6
|
+
|
7
|
+
describe 'result' do
|
8
|
+
it 'should retrieve all database identifiers' do
|
9
|
+
backend.stub(:info){ {db0: '', db1: '', example: ''} }
|
10
|
+
|
11
|
+
command.result.should include('0')
|
12
|
+
command.result.should include('1')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative '../../spec_helper'
|
2
2
|
|
3
3
|
describe PerformanceStats do
|
4
4
|
let(:backend){ double(get: nil, set: nil, del: nil) }
|
@@ -42,7 +42,7 @@ describe PerformanceStats do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
describe '
|
45
|
+
describe 'result' do
|
46
46
|
before :each do
|
47
47
|
performance_stats.stub(:average_access)
|
48
48
|
performance_stats.stub(:average_write)
|
@@ -50,9 +50,9 @@ describe PerformanceStats do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'should include performance stats' do
|
53
|
-
performance_stats.
|
54
|
-
performance_stats.
|
55
|
-
performance_stats.
|
53
|
+
performance_stats.result.should include(:average_access)
|
54
|
+
performance_stats.result.should include(:average_write)
|
55
|
+
performance_stats.result.should include(:average_create_and_delete)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe RemoveKey do
|
4
|
+
let(:backend){ double() }
|
5
|
+
let(:key){ 'key' }
|
6
|
+
let(:command){ RemoveKey.new(backend, key) }
|
7
|
+
|
8
|
+
describe 'execute' do
|
9
|
+
it 'should not delete content if not allowed' do
|
10
|
+
Authorization.stub(:authorized_for?).with(:remove_content){ false }
|
11
|
+
backend.should_receive(:del).never
|
12
|
+
command.execute
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should remove content if allowed' do
|
16
|
+
Authorization.stub(:authorized_for?).with(:remove_content){ true }
|
17
|
+
backend.should_receive(:del)
|
18
|
+
command.execute
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe SearchKey do
|
4
|
+
let(:backend){ double() }
|
5
|
+
let(:key){ 'key' }
|
6
|
+
let(:command){ SearchKey.new(backend, key) }
|
7
|
+
let(:keys_found){ ['k1', 'k2', 'k3'] }
|
8
|
+
|
9
|
+
describe 'result' do
|
10
|
+
before :each do
|
11
|
+
backend.stub(:keys){ keys_found }
|
12
|
+
backend.stub(:get){ 'value' }
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should return an array of hashes' do
|
16
|
+
command.result.should be_kind_of(Array)
|
17
|
+
command.result[0].should be_kind_of(Hash)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'every entry should have key and value data' do
|
21
|
+
command.result[0][:key].should_not be_nil
|
22
|
+
command.result[0][:value].should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -5,18 +5,18 @@ describe Authentication do
|
|
5
5
|
|
6
6
|
describe 'config' do
|
7
7
|
it 'should inject authentication in server class' do
|
8
|
-
Authentication.
|
8
|
+
Authentication.setup(credentials)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
describe 'authentication_required??' do
|
13
13
|
it 'should return true if it has some credentials' do
|
14
|
-
Authentication.
|
14
|
+
Authentication.setup(credentials)
|
15
15
|
Authentication.authentication_required?.should eq(true)
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'should return false if no credentials were provided' do
|
19
|
-
Authentication.
|
19
|
+
Authentication.setup(nil)
|
20
20
|
Authentication.authentication_required?.should eq(false)
|
21
21
|
end
|
22
22
|
end
|
@@ -41,7 +41,11 @@ RSpec.configure do |config|
|
|
41
41
|
config.order = "random"
|
42
42
|
end
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
BackendConnection.setup do |config|
|
45
|
+
config.host = 'localhost'
|
46
|
+
config.port = 6379
|
47
|
+
end
|
48
|
+
|
49
|
+
Authorization.setup({})
|
50
|
+
Authentication.setup(nil)
|
47
51
|
|
data/lib/redis_monitor.rb
CHANGED
@@ -14,7 +14,6 @@ module RedisMonitor
|
|
14
14
|
args = parse_arguments
|
15
15
|
store_arguments(args)
|
16
16
|
|
17
|
-
system('lib/engine/bin/rails', 's', '-p', args[:http_port].to_s)
|
18
|
-
#system('lib/engine/bin/rails', 's', '-e', 'production')
|
17
|
+
system('lib/engine/bin/rails', 's', '-p', args[:http_port].to_s, '-e', 'production')
|
19
18
|
end
|
20
19
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis_monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Javier Jimenez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -209,7 +209,12 @@ files:
|
|
209
209
|
- lib/engine/app/helpers/database_helper.rb
|
210
210
|
- lib/engine/app/helpers/pagination_helper.rb
|
211
211
|
- lib/engine/app/lib/backend.rb
|
212
|
-
- lib/engine/app/lib/
|
212
|
+
- lib/engine/app/lib/backend_connection.rb
|
213
|
+
- lib/engine/app/lib/commands/change_database.rb
|
214
|
+
- lib/engine/app/lib/commands/database_list.rb
|
215
|
+
- lib/engine/app/lib/commands/performance_stats.rb
|
216
|
+
- lib/engine/app/lib/commands/remove_key.rb
|
217
|
+
- lib/engine/app/lib/commands/search_key.rb
|
213
218
|
- lib/engine/app/lib/security/authentication.rb
|
214
219
|
- lib/engine/app/lib/security/authorization.rb
|
215
220
|
- lib/engine/app/mailers/.keep
|
@@ -266,7 +271,11 @@ files:
|
|
266
271
|
- lib/engine/spec/controllers/info_controller_spec.rb
|
267
272
|
- lib/engine/spec/controllers/performance_controller_spec.rb
|
268
273
|
- lib/engine/spec/lib/backend_spec.rb
|
269
|
-
- lib/engine/spec/lib/
|
274
|
+
- lib/engine/spec/lib/commands/change_database_spec.rb
|
275
|
+
- lib/engine/spec/lib/commands/database_list_spec.rb
|
276
|
+
- lib/engine/spec/lib/commands/performance_stats_spec.rb
|
277
|
+
- lib/engine/spec/lib/commands/remove_key_spec.rb
|
278
|
+
- lib/engine/spec/lib/commands/search_key_spec.rb
|
270
279
|
- lib/engine/spec/lib/security/authentication_spec.rb
|
271
280
|
- lib/engine/spec/lib/security/authorization_spec.rb
|
272
281
|
- lib/engine/spec/spec_helper.rb
|