gaptool-server 0.3.8 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.8
1
+ 0.4.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "gaptool-server"
8
- s.version = "0.3.8"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Matt Bailey"]
12
- s.date = "2013-05-28"
12
+ s.date = "2013-05-29"
13
13
  s.description = "gaptool-server for managing cloud resources"
14
14
  s.email = "m@mdb.io"
15
15
  s.executables = ["gaptool-server"]
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
36
36
  "lib/helpers/nicebytes.rb",
37
37
  "lib/helpers/partials.rb",
38
38
  "lib/helpers/redis.rb",
39
+ "lib/helpers/rehash.rb",
39
40
  "lib/helpers/services.rb",
40
41
  "lib/models/init.rb",
41
42
  "lib/models/user.rb",
@@ -45,6 +46,7 @@ Gem::Specification.new do |s|
45
46
  "lib/routes/main.rb",
46
47
  "lib/routes/mongodb.rb",
47
48
  "lib/routes/redis.rb",
49
+ "lib/routes/rehash.rb",
48
50
  "lib/routes/services.rb",
49
51
  "lib/views/hosts.erb",
50
52
  "lib/views/init.erb",
data/lib/helpers/init.rb CHANGED
@@ -16,3 +16,6 @@ GaptoolServer.helpers MongodbHelpers
16
16
 
17
17
  require_relative 'services'
18
18
  GaptoolServer.helpers ServiceHelpers
19
+
20
+ require_relative 'rehash'
21
+ GaptoolServer.helpers RehashHelpers
@@ -0,0 +1,63 @@
1
+ module RehashHelpers
2
+ def rehash()
3
+ @layout = {}
4
+ @roles = []
5
+ $redis.keys('app:*').each do |app|
6
+ role = $redis.hget(app,'role')
7
+ unless role == 'nil'
8
+ @roles << role
9
+ end
10
+ end
11
+ $redis.keys('host:*').each do |key|
12
+ @roles << key.gsub('host:','').gsub(/:.*:i-.*/,'')
13
+ end
14
+ @roles.uniq!
15
+ @roles.each do |role|
16
+ apps = []
17
+ $redis.keys('app:*').each do |app|
18
+ if $redis.hget(app,'role') == role
19
+ apps << app.gsub('app:','')
20
+ end
21
+ end
22
+ @layout[role] = apps
23
+ end
24
+
25
+ $redis.keys("host:*").each do |rediskey|
26
+ $redis.del rediskey
27
+ end
28
+
29
+ $redis.keys("instance:*").each do |rediskey|
30
+ $redis.del rediskey
31
+ end
32
+
33
+ @zones = $redis.hgetall('amis').keys
34
+ @zones.each do |zone|
35
+ @ec2 = AWS::EC2.new(:access_key_id => $redis.hget('config', 'aws_id'), :secret_access_key => $redis.hget('config', 'aws_secret'), :ec2_endpoint => "ec2.#{zone}.amazonaws.com")
36
+ @instances = []
37
+ @ec2.instances.each do |instance|
38
+ if instance.tags['gaptool'] == 'yes'
39
+ @instances << instance
40
+ end
41
+ end
42
+ @instances.each do |instance|
43
+ @name = instance.tags['Name'].split('-')
44
+ @rediskey = "host:#{@name[0]}:#{@name[1]}:i-#{@name.last}"
45
+ @host = {
46
+ "zone"=> instance.availability_zone,
47
+ "itype"=> instance.instance_type,
48
+ "role"=> @name.first,
49
+ "environment"=> @name[1],
50
+ "secret"=>"NA",
51
+ "capacity"=>"6",
52
+ "hostname"=> instance.public_dns_name,
53
+ "apps" => @layout[@name[0]].to_s,
54
+ "instance"=> instance.instance_id
55
+ }
56
+ @host.keys.each do |key|
57
+ $redis.hset(@rediskey, key, @host[key])
58
+ end
59
+ end
60
+ end
61
+ return "complete"
62
+ end
63
+ end
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ class GaptoolServer < Sinatra::Application
3
+ post '/rehash' do
4
+ rehash().to_json
5
+ end
6
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: gaptool-server
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.8
5
+ version: 0.4.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Matt Bailey
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2013-05-28 00:00:00 Z
13
+ date: 2013-05-29 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sinatra
@@ -205,6 +205,7 @@ files:
205
205
  - lib/helpers/nicebytes.rb
206
206
  - lib/helpers/partials.rb
207
207
  - lib/helpers/redis.rb
208
+ - lib/helpers/rehash.rb
208
209
  - lib/helpers/services.rb
209
210
  - lib/models/init.rb
210
211
  - lib/models/user.rb
@@ -214,6 +215,7 @@ files:
214
215
  - lib/routes/main.rb
215
216
  - lib/routes/mongodb.rb
216
217
  - lib/routes/redis.rb
218
+ - lib/routes/rehash.rb
217
219
  - lib/routes/services.rb
218
220
  - lib/views/hosts.erb
219
221
  - lib/views/init.erb
@@ -233,7 +235,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
235
  requirements:
234
236
  - - ">="
235
237
  - !ruby/object:Gem::Version
236
- hash: -3096093593790391344
238
+ hash: -406574304005095491
237
239
  segments:
238
240
  - 0
239
241
  version: "0"