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.
Files changed (35) hide show
  1. data/.gitignore +12 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +4 -0
  4. data/README.md +111 -0
  5. data/Rakefile +9 -0
  6. data/aws_tracker.gemspec +33 -0
  7. data/bin/tracker +104 -0
  8. data/config/database.yml.example +4 -0
  9. data/db/migrate/20110331145142_create_aws_accounts.rb +16 -0
  10. data/db/migrate/20110331152735_create_instances.rb +38 -0
  11. data/db/migrate/20110403041402_create_security_groups.rb +16 -0
  12. data/db/migrate/20110403060000_create_instance_groups.rb +14 -0
  13. data/db/migrate/20110404014218_create_ebs_volumes.rb +23 -0
  14. data/db/migrate/20110408193824_create_tags.rb +17 -0
  15. data/lib/aws_tracker/models/aws_account.rb +69 -0
  16. data/lib/aws_tracker/models/ebs_volume.rb +55 -0
  17. data/lib/aws_tracker/models/instance.rb +71 -0
  18. data/lib/aws_tracker/models/security_group.rb +34 -0
  19. data/lib/aws_tracker/models/tag.rb +66 -0
  20. data/lib/aws_tracker/tracker.rb +64 -0
  21. data/lib/aws_tracker/version.rb +3 -0
  22. data/lib/aws_tracker.rb +17 -0
  23. data/lib/tasks/bundler.rake +1 -0
  24. data/lib/tasks/database.rake +21 -0
  25. data/lib/tasks/rspec.rake +6 -0
  26. data/spec/lib/aws_tracker/models/aws_account_spec.rb +103 -0
  27. data/spec/lib/aws_tracker/models/ebs_volume_spec.rb +97 -0
  28. data/spec/lib/aws_tracker/models/instance_spec.rb +96 -0
  29. data/spec/lib/aws_tracker/models/security_group_spec.rb +71 -0
  30. data/spec/lib/aws_tracker/models/tag_spec.rb +76 -0
  31. data/spec/lib/aws_tracker/tracker_spec.rb +50 -0
  32. data/spec/spec_helper.rb +17 -0
  33. data/spec/support/_configure_logging.rb +8 -0
  34. data/spec/support/create_testing_objects.rb +30 -0
  35. metadata +178 -0
@@ -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