gaptool-server 0.5.8 → 0.5.10

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/routes/main.rb +23 -3
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 916d4e82528c729ee6340c99917251a702a2be4d
4
- data.tar.gz: fe7c48d8ceb9f715473ecacf1c35c6ef0ef12486
3
+ metadata.gz: 5a3cbf9109ddfda49338e44b50611176d1f9decc
4
+ data.tar.gz: bce8974307d73e758d40407c3a7eb82d647fa5b3
5
5
  SHA512:
6
- metadata.gz: 35a9925d8817c15b51ed2e65034a1abc665d3bad786bab797da818ec611202dc73c68d3103272b08f3fe2587b45d3d3f8969b44caa6616a67ed6f96d5a7920fd
7
- data.tar.gz: 729bb7e534b3e4b9e9224756b8d6a950ef81507f20e3f81a08719f8f29b2fcc2f7d94a376ceba07248caa52961029e123ff80377ba541dc81ef46a44cbc481fb
6
+ metadata.gz: ad0b86f94a32d8bbca60aba3d76748a73d32e16ba36ebc9af178c7dd590b05297890e600976830881ba14258b3acae4a363e915febb26ddf73c133ace632321e
7
+ data.tar.gz: 33e5cd8d552c17a1c099afaa2a611fa74441e9ec0235167733c7189c1b67e473a3be660cace2fbeff9d117b02c3a5c14ceed1a9960b4b2e7246d0fee22d81ce7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.8
1
+ 0.5.10
data/lib/routes/main.rb CHANGED
@@ -22,6 +22,12 @@ class GaptoolServer < Sinatra::Application
22
22
  sgid = gt_securitygroup(data['role'], data['environment'], data['zone'], security_group)
23
23
  image_id = data['ami'] || $redis.hget("amis:#{data['role']}", data['zone'].chop) || $redis.hget("amis", data['zone'].chop)
24
24
  chef_runlist = $redis.hget("role:#{data['role']}", "chef_runlist")
25
+
26
+ terminate = true
27
+ unless data['terminate'].nil?
28
+ terminate = false
29
+ end
30
+
25
31
  unless data['chef_runlist'].nil?
26
32
  chef_runlist = data['chef_runlist'].to_json
27
33
  end
@@ -42,7 +48,8 @@ class GaptoolServer < Sinatra::Application
42
48
  $redis.hmset(host_key, 'instance_id', instance.id,
43
49
  'chef_branch', data['chef_branch'],
44
50
  'chef_repo', data['chef_repo'],
45
- 'chef_runlist', chef_runlist)
51
+ 'chef_runlist', chef_runlist,
52
+ 'terminate', terminate)
46
53
  $redis.expire(host_key, 86400)
47
54
  "{\"instance\":\"#{instance.id}\"}"
48
55
  end
@@ -52,6 +59,18 @@ class GaptoolServer < Sinatra::Application
52
59
  AWS.config(:access_key_id => $redis.hget('config', 'aws_id'),
53
60
  :secret_access_key => $redis.hget('config', 'aws_secret'),
54
61
  :ec2_endpoint => "ec2.#{data['zone']}.amazonaws.com")
62
+ keys = $redis.keys("*:*:#{data['id']}")
63
+ if keys.nil? || keys.empty?
64
+ error 404
65
+ end
66
+ if keys.length >= 1
67
+ error 409
68
+ end
69
+ data = $redis.hgetall(keys.first)
70
+ if data['terminate'] == false
71
+ error 403
72
+ end
73
+
55
74
  @ec2 = AWS::EC2.new
56
75
  @instance = @ec2.instances[data['id']]
57
76
  res = @instance.terminate
@@ -83,8 +102,8 @@ class GaptoolServer < Sinatra::Application
83
102
 
84
103
  init_recipe = 'recipe[init]'
85
104
  @run_list = [init_recipe]
86
- unless host_data['chef_runlist'].nil? || host_data['chef_runlist'].empty?
87
- @run_list = [*host_data['chef_runlist']]
105
+ unless host_data['chef_runlist'].nil?
106
+ @run_list = [*eval(host_data['chef_runlist'])]
88
107
  unless @run_list.include? init_recipe
89
108
  @run_list.unshift(init_recipe)
90
109
  end
@@ -95,6 +114,7 @@ class GaptoolServer < Sinatra::Application
95
114
  data.merge!("hostname" => hostname)
96
115
  data.merge!("apps" => @apps.to_json)
97
116
  data.merge!("instance" => @instance.id)
117
+ data['terminate'] = host_data['terminate'].nil? ? 'true' : host_data['terminate']
98
118
  hash2redis("host:#{data['role']}:#{data['environment']}:#{@instance.id}", data)
99
119
 
100
120
  @chef_repo = host_data['chef_repo'] && !host_data['chef_repo'].empty? ? host_data['chef_repo'] : $redis.hget('config', 'chefrepo')
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.8
4
+ version: 0.5.10
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-23 00:00:00.000000000 Z
12
+ date: 2014-09-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
@@ -237,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
237
  version: '0'
238
238
  requirements: []
239
239
  rubyforge_project:
240
- rubygems_version: 2.2.2
240
+ rubygems_version: 2.4.1
241
241
  signing_key:
242
242
  specification_version: 4
243
243
  summary: gaptool-server for managing cloud resources