gaptool-server 0.7.4 → 0.8.0
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/Rakefile +19 -21
- data/VERSION +1 -1
- data/bin/gaptool-server +2 -2
- data/bin/gaptool-shell +2 -2
- data/config.ru +3 -4
- data/lib/app.rb +76 -66
- data/lib/exceptions.rb +4 -4
- data/lib/routes.rb +212 -203
- data/tasks/app.rb +12 -12
- data/tasks/config.rb +8 -8
- data/tasks/docker.rb +19 -19
- data/tasks/ec2.rb +14 -16
- data/tasks/gem.rb +7 -8
- data/tasks/role.rb +19 -19
- data/tasks/server.rb +7 -7
- data/tasks/user.rb +9 -9
- data/test/api_test.rb +212 -146
- data/test/base_test.rb +5 -5
- data/test/data_test.rb +56 -75
- data/test/test_helper.rb +11 -9
- metadata +3 -3
data/test/data_test.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
require_relative 'test_helper'
|
2
2
|
require 'json'
|
3
3
|
|
4
|
-
|
4
|
+
redis = Gaptool.redis
|
5
5
|
|
6
|
+
describe 'data helpers' do
|
6
7
|
before(:each) do
|
7
|
-
|
8
|
+
redis.flushall
|
8
9
|
DH.set_config('chef_repo', 'myrepo')
|
9
10
|
DH.set_config('chef_branch', 'master')
|
10
11
|
end
|
11
12
|
|
12
13
|
after(:all) do
|
13
|
-
|
14
|
-
expect(keys).to eq([])
|
14
|
+
redis.flushall
|
15
15
|
end
|
16
16
|
|
17
17
|
def data
|
18
18
|
{
|
19
|
-
'role' =>
|
20
|
-
'environment' =>
|
19
|
+
'role' => 'role',
|
20
|
+
'environment' => 'env'
|
21
21
|
}
|
22
22
|
end
|
23
23
|
|
@@ -25,52 +25,46 @@ describe "data helpers" do
|
|
25
25
|
'i-1234567'
|
26
26
|
end
|
27
27
|
|
28
|
-
it
|
29
|
-
expect { DH.addserver(
|
30
|
-
expect { DH.addserver('', data,
|
28
|
+
it 'should add a server' do
|
29
|
+
expect { DH.addserver('i-1234567', {}, 'secret') }.to raise_error(ArgumentError)
|
30
|
+
expect { DH.addserver('', data, 'secret') }.to raise_error(ArgumentError)
|
31
31
|
|
32
|
-
DH.addserver(instid, data,
|
32
|
+
DH.addserver(instid, data, 'secret')
|
33
33
|
server = DH.get_server_data(instid)
|
34
|
-
expect(server).to eq(data.merge(
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
'apps' => []
|
41
|
-
}))
|
34
|
+
expect(server).to eq(data.merge('instance' => instid,
|
35
|
+
'chef_repo' => 'myrepo',
|
36
|
+
'chef_branch' => 'master',
|
37
|
+
'registered' => 'false',
|
38
|
+
'secret' => 'secret',
|
39
|
+
'apps' => []))
|
42
40
|
end
|
43
41
|
|
44
|
-
it
|
42
|
+
it 'should add a registered server' do
|
45
43
|
DH.addserver(instid, data, nil)
|
46
44
|
server = DH.get_server_data(instid)
|
47
|
-
expect(server).to eq(data.merge(
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
'apps' => []
|
52
|
-
}))
|
45
|
+
expect(server).to eq(data.merge('instance' => instid,
|
46
|
+
'chef_repo' => 'myrepo',
|
47
|
+
'chef_branch' => 'master',
|
48
|
+
'apps' => []))
|
53
49
|
end
|
54
50
|
|
55
|
-
it
|
56
|
-
DH.addserver(instid, data,
|
51
|
+
it 'should register a server' do
|
52
|
+
DH.addserver(instid, data, 'secret')
|
57
53
|
res = DH.register_server(data['role'], data['environment'], '')
|
58
54
|
expect(res).to be(nil)
|
59
55
|
|
60
56
|
res = DH.register_server(data['role'], data['environment'], 'secret')
|
61
57
|
expect(res).to eq(instid)
|
62
58
|
server = DH.get_server_data(instid)
|
63
|
-
expect(server).to eq(data.merge(
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
'apps' => []
|
68
|
-
}))
|
59
|
+
expect(server).to eq(data.merge('instance' => instid,
|
60
|
+
'chef_repo' => 'myrepo',
|
61
|
+
'chef_branch' => 'master',
|
62
|
+
'apps' => []))
|
69
63
|
end
|
70
64
|
|
71
|
-
it
|
65
|
+
it 'should remove a server' do
|
72
66
|
DH.addserver(instid, data, 'secret')
|
73
|
-
|
67
|
+
DH.register_server(data['role'], data['environment'], 'secret')
|
74
68
|
res = DH.rmserver(instid)
|
75
69
|
expect(res).to eq(instid)
|
76
70
|
server = DH.get_server_data(instid)
|
@@ -80,7 +74,7 @@ describe "data helpers" do
|
|
80
74
|
expect(res).to be(nil)
|
81
75
|
end
|
82
76
|
|
83
|
-
it
|
77
|
+
it 'should set a config' do
|
84
78
|
c = DH.get_config('fakekey')
|
85
79
|
expect(c).to be(nil)
|
86
80
|
|
@@ -89,51 +83,38 @@ describe "data helpers" do
|
|
89
83
|
expect(c).to eq('value')
|
90
84
|
end
|
91
85
|
|
92
|
-
it
|
93
|
-
DH.
|
94
|
-
DH.addserver(instid, data, nil)
|
95
|
-
server = DH.get_server_data(instid, initkey: true)
|
96
|
-
expect(server).to eq(data.merge({
|
97
|
-
'instance' => instid,
|
98
|
-
'chef_repo' => 'myrepo',
|
99
|
-
'chef_branch' => 'master',
|
100
|
-
'initkey' => 'FAKEKEY',
|
101
|
-
'apps' => []
|
102
|
-
}))
|
103
|
-
end
|
104
|
-
|
105
|
-
it "should get the runlist for a node from the role" do
|
106
|
-
DH.save_role_data("role", chef_runlist: ["recipe[myrecipe]"].to_json)
|
86
|
+
it 'should get the runlist for a node from the role' do
|
87
|
+
DH.save_role_data('role', chef_runlist: ['recipe[myrecipe]'].to_json)
|
107
88
|
DH.addserver(instid, data, nil)
|
108
|
-
role = DH.get_role_data(
|
109
|
-
expect(role).to eq(
|
110
|
-
|
111
|
-
|
112
|
-
|
89
|
+
role = DH.get_role_data('role', 'testenv')
|
90
|
+
expect(role).to eq('chef_runlist' => ['recipe[myrecipe]'],
|
91
|
+
'apps' => [],
|
92
|
+
'amis' => {},
|
93
|
+
'sg' => {})
|
113
94
|
server = DH.get_server_data(instid)
|
114
|
-
expect(server).to eq(data.merge(
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
95
|
+
expect(server).to eq(data.merge('instance' => instid,
|
96
|
+
'chef_runlist' => ['recipe[myrecipe]'],
|
97
|
+
'chef_repo' => 'myrepo',
|
98
|
+
'chef_branch' => 'master',
|
99
|
+
'apps' => []))
|
119
100
|
end
|
120
101
|
|
121
|
-
it
|
122
|
-
DH.save_role_data(
|
102
|
+
it 'shoud get the ami for a node from the role' do
|
103
|
+
DH.save_role_data('role', ami: 'ami-1234567')
|
123
104
|
DH.addserver(instid, data, nil)
|
124
|
-
role = DH.get_role_data(
|
125
|
-
expect(role).to eq(
|
126
|
-
|
127
|
-
|
128
|
-
|
105
|
+
role = DH.get_role_data('role', 'testenv')
|
106
|
+
expect(role).to eq('ami' => 'ami-1234567',
|
107
|
+
'apps' => [],
|
108
|
+
'amis' => {},
|
109
|
+
'sg' => {})
|
129
110
|
end
|
130
111
|
|
131
|
-
it
|
132
|
-
DH.save_role_data(
|
133
|
-
role = DH.get_role_data(
|
134
|
-
expect(role).to eq(
|
135
|
-
|
136
|
-
|
137
|
-
|
112
|
+
it 'shoud get the sg for a node from the role' do
|
113
|
+
DH.save_role_data('role', ami: 'ami-1234567', 'sg' => { 'test' => 'my_role' })
|
114
|
+
role = DH.get_role_data('role', 'testenv')
|
115
|
+
expect(role).to eq('ami' => 'ami-1234567',
|
116
|
+
'apps' => [],
|
117
|
+
'amis' => {},
|
118
|
+
'sg' => { 'test' => 'my_role' })
|
138
119
|
end
|
139
120
|
end
|
data/test/test_helper.rb
CHANGED
@@ -3,12 +3,17 @@ if ENV['COVERAGE']
|
|
3
3
|
require 'simplecov'
|
4
4
|
require 'simplecov-rcov'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
module SimpleCov
|
7
|
+
module Formatter
|
8
|
+
class MergedFormatter
|
9
|
+
def format(result)
|
10
|
+
SimpleCov::Formatter::HTMLFormatter.new.format(result)
|
11
|
+
SimpleCov::Formatter::RcovFormatter.new.format(result)
|
12
|
+
end
|
13
|
+
end
|
10
14
|
end
|
11
15
|
end
|
16
|
+
|
12
17
|
SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
|
13
18
|
SimpleCov.start do
|
14
19
|
add_filter '/test/'
|
@@ -17,7 +22,7 @@ if ENV['COVERAGE']
|
|
17
22
|
end
|
18
23
|
# Clear airbrake env if set
|
19
24
|
ENV['AIRBRAKE_API_KEY'] = nil
|
20
|
-
libpath = File.realpath(File.join(File.dirname(__FILE__),
|
25
|
+
libpath = File.realpath(File.join(File.dirname(__FILE__), '..', 'lib'))
|
21
26
|
require 'rspec'
|
22
27
|
require 'rack/test'
|
23
28
|
require 'fakeredis/rspec'
|
@@ -27,11 +32,8 @@ require "#{libpath}/app.rb"
|
|
27
32
|
RSpec.configure do |conf|
|
28
33
|
conf.include Rack::Test::Methods
|
29
34
|
def app
|
30
|
-
|
35
|
+
Gaptool::Server
|
31
36
|
end
|
32
37
|
end
|
33
38
|
|
34
39
|
DH = Gaptool::Data
|
35
|
-
|
36
|
-
conn = Redis.new
|
37
|
-
$redis = Redis::Namespace.new(:gt, redis:conn)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gaptool-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Bailey
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-01-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sinatra
|
@@ -338,7 +338,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
338
338
|
version: '0'
|
339
339
|
requirements: []
|
340
340
|
rubyforge_project:
|
341
|
-
rubygems_version: 2.
|
341
|
+
rubygems_version: 2.4.5.1
|
342
342
|
signing_key:
|
343
343
|
specification_version: 4
|
344
344
|
summary: gaptool-server for managing cloud resources
|