aws_tracker 0.0.1
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.
- data/.gitignore +12 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/README.md +111 -0
- data/Rakefile +9 -0
- data/aws_tracker.gemspec +33 -0
- data/bin/tracker +104 -0
- data/config/database.yml.example +4 -0
- data/db/migrate/20110331145142_create_aws_accounts.rb +16 -0
- data/db/migrate/20110331152735_create_instances.rb +38 -0
- data/db/migrate/20110403041402_create_security_groups.rb +16 -0
- data/db/migrate/20110403060000_create_instance_groups.rb +14 -0
- data/db/migrate/20110404014218_create_ebs_volumes.rb +23 -0
- data/db/migrate/20110408193824_create_tags.rb +17 -0
- data/lib/aws_tracker/models/aws_account.rb +69 -0
- data/lib/aws_tracker/models/ebs_volume.rb +55 -0
- data/lib/aws_tracker/models/instance.rb +71 -0
- data/lib/aws_tracker/models/security_group.rb +34 -0
- data/lib/aws_tracker/models/tag.rb +66 -0
- data/lib/aws_tracker/tracker.rb +64 -0
- data/lib/aws_tracker/version.rb +3 -0
- data/lib/aws_tracker.rb +17 -0
- data/lib/tasks/bundler.rake +1 -0
- data/lib/tasks/database.rake +21 -0
- data/lib/tasks/rspec.rake +6 -0
- data/spec/lib/aws_tracker/models/aws_account_spec.rb +103 -0
- data/spec/lib/aws_tracker/models/ebs_volume_spec.rb +97 -0
- data/spec/lib/aws_tracker/models/instance_spec.rb +96 -0
- data/spec/lib/aws_tracker/models/security_group_spec.rb +71 -0
- data/spec/lib/aws_tracker/models/tag_spec.rb +76 -0
- data/spec/lib/aws_tracker/tracker_spec.rb +50 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/support/_configure_logging.rb +8 -0
- data/spec/support/create_testing_objects.rb +30 -0
- metadata +178 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Establish ActiveRecord connection
|
2
|
+
db_conf_file = File.expand_path('../../config/database.yml', __FILE__)
|
3
|
+
puts "Using DB #{db_conf_file}..."
|
4
|
+
require 'active_record'
|
5
|
+
ActiveRecord::Base.establish_connection(YAML::load(File.open(db_conf_file)))
|
6
|
+
|
7
|
+
Bundler.require # Load all gems and libs
|
8
|
+
|
9
|
+
# Require RSpec support files. Logging is configured there
|
10
|
+
support_files = Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")]
|
11
|
+
support_files.sort.each {|f| require f}
|
12
|
+
|
13
|
+
# RSpec configuration block
|
14
|
+
RSpec.configure do |config|
|
15
|
+
config.mock_with :rspec # == Mock Framework
|
16
|
+
#config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
17
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
# Setup a global Logger for all tests
|
4
|
+
LOG_LEVEL = ::Logger::WARN
|
5
|
+
LOG = AWSTracker.default_logger
|
6
|
+
LOG.info "Logging configured in #{File.basename __FILE__}."
|
7
|
+
LOG.level = LOG_LEVEL
|
8
|
+
#ActiveRecord::Base.logger = LOG # Uncomment for ActiveRecord outputs
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Make sure the necessary information is in the environment to run the tests
|
2
|
+
%w{AWS_ACCOUNT_NUMBER AWS_ACCESS_KEY_ID AWS_ACCESS_KEY_SECRET}.each do |var|
|
3
|
+
if (not ENV.has_key?(var))
|
4
|
+
LOG.error "Environment variable #{var} must be set to run the tests."
|
5
|
+
exit 1
|
6
|
+
end
|
7
|
+
end
|
8
|
+
LOG.info "Using Amazon account #{ENV['AWS_ACCOUNT_NUMBER']}"
|
9
|
+
|
10
|
+
# Print warning about EC2 accounts
|
11
|
+
LOG.warn "WARNING: To run these tests successfully, AWS account "+
|
12
|
+
"#{ENV['AWS_ACCOUNT_NUMBER']} must have:"
|
13
|
+
LOG.warn " * At least one Security Group"
|
14
|
+
LOG.warn " * At least one Instance"
|
15
|
+
LOG.warn " * At least one EBS Volume"
|
16
|
+
LOG.warn " * At least one Tag"
|
17
|
+
|
18
|
+
# Setup a global EC2 connection for all tests
|
19
|
+
EC2 = RightAws::Ec2.new(
|
20
|
+
ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_ACCESS_KEY_SECRET'], {:logger => LOG}
|
21
|
+
)
|
22
|
+
|
23
|
+
# Set up a quick way to quicky create a memory resident AWSAccount from memory
|
24
|
+
# This account is written to the database when this method is invoked
|
25
|
+
def get_memory_resident_account
|
26
|
+
account = AWSTracker::AWSAccount.from_memory
|
27
|
+
account.log = LOG
|
28
|
+
account.ec2 = EC2
|
29
|
+
account
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: aws_tracker
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Benton Roberts
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-04-26 00:00:00 -04:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
name: activerecord
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
version: "0"
|
34
|
+
requirement: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
name: right_aws
|
39
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
requirement: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
name: sqlite3
|
53
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
requirement: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
name: rake
|
67
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
76
|
+
requirement: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
name: rspec
|
81
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
hash: 3
|
87
|
+
segments:
|
88
|
+
- 0
|
89
|
+
version: "0"
|
90
|
+
requirement: *id005
|
91
|
+
description: This gem peridically queries AWS for information about Instances, SecurityGroups, EBSVolumes, etc., and saves the data as interconnected ActiveRecord objects.aws_tracker
|
92
|
+
email:
|
93
|
+
- benton@bentonroberts.com
|
94
|
+
executables:
|
95
|
+
- tracker
|
96
|
+
extensions: []
|
97
|
+
|
98
|
+
extra_rdoc_files: []
|
99
|
+
|
100
|
+
files:
|
101
|
+
- .gitignore
|
102
|
+
- .rspec
|
103
|
+
- Gemfile
|
104
|
+
- README.md
|
105
|
+
- Rakefile
|
106
|
+
- aws_tracker.gemspec
|
107
|
+
- bin/tracker
|
108
|
+
- config/database.yml.example
|
109
|
+
- db/migrate/20110331145142_create_aws_accounts.rb
|
110
|
+
- db/migrate/20110331152735_create_instances.rb
|
111
|
+
- db/migrate/20110403041402_create_security_groups.rb
|
112
|
+
- db/migrate/20110403060000_create_instance_groups.rb
|
113
|
+
- db/migrate/20110404014218_create_ebs_volumes.rb
|
114
|
+
- db/migrate/20110408193824_create_tags.rb
|
115
|
+
- lib/aws_tracker.rb
|
116
|
+
- lib/aws_tracker/models/aws_account.rb
|
117
|
+
- lib/aws_tracker/models/ebs_volume.rb
|
118
|
+
- lib/aws_tracker/models/instance.rb
|
119
|
+
- lib/aws_tracker/models/security_group.rb
|
120
|
+
- lib/aws_tracker/models/tag.rb
|
121
|
+
- lib/aws_tracker/tracker.rb
|
122
|
+
- lib/aws_tracker/version.rb
|
123
|
+
- lib/tasks/bundler.rake
|
124
|
+
- lib/tasks/database.rake
|
125
|
+
- lib/tasks/rspec.rake
|
126
|
+
- spec/lib/aws_tracker/models/aws_account_spec.rb
|
127
|
+
- spec/lib/aws_tracker/models/ebs_volume_spec.rb
|
128
|
+
- spec/lib/aws_tracker/models/instance_spec.rb
|
129
|
+
- spec/lib/aws_tracker/models/security_group_spec.rb
|
130
|
+
- spec/lib/aws_tracker/models/tag_spec.rb
|
131
|
+
- spec/lib/aws_tracker/tracker_spec.rb
|
132
|
+
- spec/spec_helper.rb
|
133
|
+
- spec/support/_configure_logging.rb
|
134
|
+
- spec/support/create_testing_objects.rb
|
135
|
+
has_rdoc: true
|
136
|
+
homepage: http://github.com/benton/aws_tracker
|
137
|
+
licenses: []
|
138
|
+
|
139
|
+
post_install_message:
|
140
|
+
rdoc_options: []
|
141
|
+
|
142
|
+
require_paths:
|
143
|
+
- lib
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 3
|
150
|
+
segments:
|
151
|
+
- 0
|
152
|
+
version: "0"
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
hash: 3
|
159
|
+
segments:
|
160
|
+
- 0
|
161
|
+
version: "0"
|
162
|
+
requirements: []
|
163
|
+
|
164
|
+
rubyforge_project: aws_tracker
|
165
|
+
rubygems_version: 1.3.7
|
166
|
+
signing_key:
|
167
|
+
specification_version: 3
|
168
|
+
summary: Models the state of Amazon Web Services accounts in ActiveRecord
|
169
|
+
test_files:
|
170
|
+
- spec/lib/aws_tracker/models/aws_account_spec.rb
|
171
|
+
- spec/lib/aws_tracker/models/ebs_volume_spec.rb
|
172
|
+
- spec/lib/aws_tracker/models/instance_spec.rb
|
173
|
+
- spec/lib/aws_tracker/models/security_group_spec.rb
|
174
|
+
- spec/lib/aws_tracker/models/tag_spec.rb
|
175
|
+
- spec/lib/aws_tracker/tracker_spec.rb
|
176
|
+
- spec/spec_helper.rb
|
177
|
+
- spec/support/_configure_logging.rb
|
178
|
+
- spec/support/create_testing_objects.rb
|