gaptool-server 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/routes/main.rb +17 -33
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 779152ed4d55a3bb346e7107396f5dbac79908a3
|
4
|
+
data.tar.gz: 5bcd127b0645eacd8f6b9efd268c1eb9398a4406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d10a701d3409f90a0985fc793542f85f019fe6ceb1f830ebb03836a6fbedb481782290b5c9275000f2538b3389b41d1b8684d1800aad503ae17aeb350449b955
|
7
|
+
data.tar.gz: ed8136909200594bb0b2f8251e8cfc43c0c9d0bc21474ed7ba3e423a9c5a17b154072208efaf9c9b7181bd5cb5b0251febd049941878f86c51cb2746fbfa8bcb
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.6
|
data/lib/routes/main.rb
CHANGED
@@ -11,7 +11,9 @@ class GaptoolServer < Sinatra::Application
|
|
11
11
|
|
12
12
|
post '/init' do
|
13
13
|
data = JSON.parse request.body.read
|
14
|
-
AWS.config(:access_key_id => $redis.hget('config', 'aws_id'),
|
14
|
+
AWS.config(:access_key_id => $redis.hget('config', 'aws_id'),
|
15
|
+
:secret_access_key => $redis.hget('config', 'aws_secret'),
|
16
|
+
:ec2_endpoint => "ec2.#{data['zone'].chop}.amazonaws.com")
|
15
17
|
@ec2 = AWS::EC2.new
|
16
18
|
# create shared secret to reference in /register
|
17
19
|
@secret = (0...8).map{65.+(rand(26)).chr}.join
|
@@ -19,36 +21,14 @@ class GaptoolServer < Sinatra::Application
|
|
19
21
|
security_group = data['security_group'] || $redis.hget("role:#{data['role']}", "security_group")
|
20
22
|
sgid = gt_securitygroup(data['role'], data['environment'], data['zone'], security_group)
|
21
23
|
image_id = data['ami'] || $redis.hget("amis:#{data['role']}", data['zone'].chop) || $redis.hget("amis", data['zone'].chop)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
:user_data => "#!/bin/bash\ncurl --silent -H 'X-GAPTOOL-USER: #{env['HTTP_X_GAPTOOL_USER']}' -H 'X-GAPTOOL-KEY: #{env['HTTP_X_GAPTOOL_KEY']}' #{$redis.hget('config', 'url')}/register -X PUT --data '#{data.to_json}' | bash",
|
31
|
-
:block_device_mappings => {
|
32
|
-
"/dev/sdf" => {
|
33
|
-
:volume_size => data['mirror'].to_i,
|
34
|
-
:delete_on_termination => false
|
35
|
-
},
|
36
|
-
"/dev/sdg" => {
|
37
|
-
:volume_size => data['mirror'].to_i,
|
38
|
-
:delete_on_termination => false
|
39
|
-
}
|
40
|
-
}
|
41
|
-
)
|
42
|
-
else
|
43
|
-
instance = @ec2.instances.create(
|
44
|
-
:image_id => image_id,
|
45
|
-
:availability_zone => data['zone'],
|
46
|
-
:instance_type => data['itype'],
|
47
|
-
:key_name => "gaptool",
|
48
|
-
:security_group_ids => sgid,
|
49
|
-
:user_data => "#!/bin/bash\ncurl --silent -H 'X-GAPTOOL-USER: #{env['HTTP_X_GAPTOOL_USER']}' -H 'X-GAPTOOL-KEY: #{env['HTTP_X_GAPTOOL_KEY']}' #{$redis.hget('config', 'url')}/register -X PUT --data '#{data.to_json}' | bash"
|
50
|
-
)
|
51
|
-
end
|
24
|
+
instance = @ec2.instances.create(
|
25
|
+
:image_id => image_id,
|
26
|
+
:availability_zone => data['zone'],
|
27
|
+
:instance_type => data['itype'],
|
28
|
+
:key_name => "gaptool",
|
29
|
+
:security_group_ids => sgid,
|
30
|
+
:user_data => "#!/bin/bash\ncurl --silent -H 'X-GAPTOOL-USER: #{env['HTTP_X_GAPTOOL_USER']}' -H 'X-GAPTOOL-KEY: #{env['HTTP_X_GAPTOOL_KEY']}' #{$redis.hget('config', 'url')}/register -X PUT --data '#{data.to_json}' | bash"
|
31
|
+
)
|
52
32
|
# Add host tag
|
53
33
|
instance.add_tag('Name', :value => "#{data['role']}-#{data['environment']}-#{instance.id}")
|
54
34
|
instance.add_tag('gaptool', :value => "yes")
|
@@ -64,7 +44,9 @@ class GaptoolServer < Sinatra::Application
|
|
64
44
|
|
65
45
|
post '/terminate' do
|
66
46
|
data = JSON.parse request.body.read
|
67
|
-
AWS.config(:access_key_id => $redis.hget('config', 'aws_id'),
|
47
|
+
AWS.config(:access_key_id => $redis.hget('config', 'aws_id'),
|
48
|
+
:secret_access_key => $redis.hget('config', 'aws_secret'),
|
49
|
+
:ec2_endpoint => "ec2.#{data['zone']}.amazonaws.com")
|
68
50
|
@ec2 = AWS::EC2.new
|
69
51
|
@instance = @ec2.instances[data['id']]
|
70
52
|
res = @instance.terminate
|
@@ -75,7 +57,9 @@ class GaptoolServer < Sinatra::Application
|
|
75
57
|
|
76
58
|
put '/register' do
|
77
59
|
data = JSON.parse request.body.read
|
78
|
-
AWS.config(:access_key_id => $redis.hget('config', 'aws_id'),
|
60
|
+
AWS.config(:access_key_id => $redis.hget('config', 'aws_id'),
|
61
|
+
:secret_access_key => $redis.hget('config', 'aws_secret'),
|
62
|
+
:ec2_endpoint => "ec2.#{data['zone'].chop}.amazonaws.com")
|
79
63
|
@ec2 = AWS::EC2.new
|
80
64
|
host_key = "instance:#{data['role']}:#{data['environment']}:#{data['secret']}"
|
81
65
|
host_data = $redis.hgetall(host_key)
|
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.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Bailey
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-09-
|
12
|
+
date: 2014-09-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|