pryaws 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/pryaws +39 -0
- data/lib/pryaws/auto-scaling.rb +26 -0
- data/lib/pryaws/cloud-formation.rb +27 -0
- data/lib/pryaws/ec2.rb +31 -0
- data/lib/pryaws/sns.rb +23 -0
- data/lib/pryaws.rb +4 -0
- metadata +84 -0
data/bin/pryaws
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'pryaws'
|
3
|
+
require 'pry'
|
4
|
+
|
5
|
+
def die(msg)
|
6
|
+
puts msg
|
7
|
+
exit 1
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_proxy()
|
11
|
+
e = ENV['https_proxy']
|
12
|
+
if e && !e.empty?
|
13
|
+
if !e.start_with? "http"
|
14
|
+
e = "https://#{e}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
return e
|
18
|
+
end
|
19
|
+
|
20
|
+
die 'AWS_ACCESS_KEY_ID not set' if ENV['AWS_ACCESS_KEY_ID'].nil?
|
21
|
+
die 'AWS_SECRET_ACCESS_KEY not set' if ENV['AWS_SECRET_ACCESS_KEY'].nil?
|
22
|
+
|
23
|
+
AWS.config({
|
24
|
+
:region => 'eu-west-1',
|
25
|
+
:http_wire_trace => ENV.include?("AWS_DEBUG"),
|
26
|
+
:proxy_uri => get_proxy()
|
27
|
+
})
|
28
|
+
|
29
|
+
sqs = AWS::SQS.new()
|
30
|
+
sns = AWS::SNS.new()
|
31
|
+
s3 = AWS::S3.new()
|
32
|
+
ec2 = AWS::EC2.new()
|
33
|
+
as = AWS::AutoScaling.new()
|
34
|
+
cw = AWS::CloudWatch.new()
|
35
|
+
sdb = AWS::SimpleDB.new()
|
36
|
+
cf = AWS::CloudFormation.new()
|
37
|
+
|
38
|
+
puts 'Available: sqs, sns, s3, ec2, as, cw, sdb, cf'
|
39
|
+
binding.pry()
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'aws'
|
2
|
+
require 'aws-sdk'
|
3
|
+
|
4
|
+
module AWS
|
5
|
+
class AutoScaling
|
6
|
+
|
7
|
+
def find_for_instance_id(instance_id)
|
8
|
+
instances[instance_id].group()
|
9
|
+
end
|
10
|
+
|
11
|
+
# http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/AutoScaling/Group.html
|
12
|
+
class Group
|
13
|
+
|
14
|
+
def info
|
15
|
+
"#{name} #{min_size}..#{max_size} [#{auto_scaling_instances.map{|i| i.id}.join(',')}]"
|
16
|
+
end
|
17
|
+
|
18
|
+
def set_min_max(min, max)
|
19
|
+
update(:max_size => min, :min_size => max)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'aws'
|
2
|
+
require 'aws-sdk'
|
3
|
+
|
4
|
+
module AWS
|
5
|
+
|
6
|
+
class AutoScaling
|
7
|
+
|
8
|
+
def find_for_instance_id(instance_id)
|
9
|
+
instances[instance_id].group()
|
10
|
+
end
|
11
|
+
|
12
|
+
# http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/AutoScaling/Group.html
|
13
|
+
class Group
|
14
|
+
|
15
|
+
def info()
|
16
|
+
"#{name} #{min_size}..#{max_size} [#{auto_scaling_instances.map{|i| i.id}.join(',')}]"
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_min_max(min, max)
|
20
|
+
update(:max_size => min, :min_size => max)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/pryaws/ec2.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'aws'
|
2
|
+
require 'aws-sdk'
|
3
|
+
|
4
|
+
module AWS
|
5
|
+
|
6
|
+
#http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/EC2.html
|
7
|
+
class EC2
|
8
|
+
|
9
|
+
def find_by_name(name)
|
10
|
+
instances.tagged('Name').tagged_values(name)
|
11
|
+
end
|
12
|
+
|
13
|
+
class InstanceCollection
|
14
|
+
|
15
|
+
def info()
|
16
|
+
map(&:info).to_a()
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
class Instance
|
22
|
+
|
23
|
+
def info()
|
24
|
+
"#{id()} #{tags['Name']}"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/lib/pryaws/sns.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'aws'
|
2
|
+
require 'aws-sdk'
|
3
|
+
|
4
|
+
module AWS
|
5
|
+
|
6
|
+
class SNS
|
7
|
+
|
8
|
+
class TopicCollection
|
9
|
+
|
10
|
+
if !self.respond_to?(:named)
|
11
|
+
def named(name)
|
12
|
+
each do |topic|
|
13
|
+
return topic if topic.name == name
|
14
|
+
end
|
15
|
+
nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/lib/pryaws.rb
ADDED
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pryaws
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- haku
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-11-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: aws-sdk
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: pry
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: Loads a batch of helpers that make the AWS SDK easier to interact with
|
47
|
+
and drop to binding.pry().
|
48
|
+
email:
|
49
|
+
executables:
|
50
|
+
- pryaws
|
51
|
+
extensions: []
|
52
|
+
extra_rdoc_files: []
|
53
|
+
files:
|
54
|
+
- lib/pryaws.rb
|
55
|
+
- lib/pryaws/auto-scaling.rb
|
56
|
+
- lib/pryaws/cloud-formation.rb
|
57
|
+
- lib/pryaws/ec2.rb
|
58
|
+
- lib/pryaws/sns.rb
|
59
|
+
- bin/pryaws
|
60
|
+
homepage: https://github.com/haku/pryaws
|
61
|
+
licenses: []
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options: []
|
64
|
+
require_paths:
|
65
|
+
- lib
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
requirements: []
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 1.8.25
|
81
|
+
signing_key:
|
82
|
+
specification_version: 3
|
83
|
+
summary: Interactive AWS console using Ruby Pry.
|
84
|
+
test_files: []
|