jamie-ec2 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ notifications:
5
+ irc:
6
+ channels:
7
+ - "irc.freenode.org#jamie-ci"
8
+ use_notice: true
9
+ skip_join: true
data/Rakefile CHANGED
@@ -7,4 +7,10 @@ Cane::RakeTask.new
7
7
 
8
8
  Tailor::RakeTask.new
9
9
 
10
- task :default => [ :cane, :tailor ]
10
+ desc "Display LOC stats"
11
+ task :stats do
12
+ puts "\n## Production Code Stats"
13
+ sh "countloc -r lib/jamie"
14
+ end
15
+
16
+ task :default => [ :cane, :tailor, :stats ]
data/jamie-ec2.gemspec CHANGED
@@ -17,9 +17,10 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency 'jamie'
20
+ gem.add_dependency 'jamie', '~> 0.1.0.alpha19'
21
21
  gem.add_dependency 'fog'
22
22
 
23
23
  gem.add_development_dependency 'cane'
24
24
  gem.add_development_dependency 'tailor'
25
+ gem.add_development_dependency 'countloc'
25
26
  end
@@ -25,7 +25,9 @@ module Jamie
25
25
 
26
26
  module Driver
27
27
 
28
- # Ec2 driver for Jamie.
28
+ # Amazon EC2 driver for Jamie.
29
+ #
30
+ # @author Fletcher Nichol <fnichol@nichol.ca>
29
31
  class Ec2 < Jamie::Driver::SSHBase
30
32
 
31
33
  default_config 'region', 'us-east-1'
@@ -35,25 +37,24 @@ module Jamie
35
37
  default_config 'username', 'root'
36
38
  default_config 'port', '22'
37
39
 
38
- def create(instance, state)
39
- server = create_server(instance)
40
+ def create(state)
41
+ server = create_server
40
42
  state['server_id'] = server.id
41
43
 
42
- elapsed = Benchmark.measure do
43
- server.wait_for { print "."; ready? } ; print "(server ready)"
44
- state['hostname'] = server.public_ip_address
45
- wait_for_sshd(state['hostname']) ; print "(ssh ready)\n"
46
- end
47
- puts " Created #{instance.name} in #{elapsed.real} seconds."
44
+ info("EC2 instance <#{state['server_id']}> created.")
45
+ server.wait_for { print "."; ready? } ; print "(server ready)"
46
+ state['hostname'] = server.public_ip_address
47
+ wait_for_sshd(state['hostname']) ; print "(ssh ready)\n"
48
48
  rescue Fog::Errors::Error, Excon::Errors::Error => ex
49
49
  raise ActionFailed, ex.message
50
50
  end
51
51
 
52
- def destroy(instance, state)
52
+ def destroy(state)
53
53
  return if state['server_id'].nil?
54
54
 
55
55
  server = connection.servers.get(state['server_id'])
56
56
  server.destroy unless server.nil?
57
+ info("EC2 instance <#{state['server_id']}> destroyed.")
57
58
  state.delete('server_id')
58
59
  state.delete('hostname')
59
60
  end
@@ -69,7 +70,7 @@ module Jamie
69
70
  )
70
71
  end
71
72
 
72
- def create_server(instance)
73
+ def create_server
73
74
  connection.servers.create(
74
75
  :availability_zone => config['availability_zone'],
75
76
  :groups => config['groups'],
@@ -20,7 +20,7 @@ module Jamie
20
20
 
21
21
  module Driver
22
22
 
23
- # Version string for Ec2 Jamie driver
24
- EC2_VERSION = "0.1.0"
23
+ # Version string for EC2 Jamie driver
24
+ EC2_VERSION = "0.2.0"
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jamie-ec2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-27 00:00:00.000000000 Z
12
+ date: 2013-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jamie
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 0.1.0.alpha19
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ! '>='
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: '0'
29
+ version: 0.1.0.alpha19
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: fog
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +75,22 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: countloc
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
78
94
  description: Jamie::Driver::Ec2 - A Jamie Driver for Ec2
79
95
  email:
80
96
  - fnichol@nichol.ca
@@ -83,6 +99,7 @@ extensions: []
83
99
  extra_rdoc_files: []
84
100
  files:
85
101
  - .gitignore
102
+ - .travis.yml
86
103
  - Gemfile
87
104
  - LICENSE
88
105
  - README.md
@@ -104,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
121
  version: '0'
105
122
  segments:
106
123
  - 0
107
- hash: -167423800758030651
124
+ hash: -117953070356559829
108
125
  required_rubygems_version: !ruby/object:Gem::Requirement
109
126
  none: false
110
127
  requirements:
@@ -113,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
130
  version: '0'
114
131
  segments:
115
132
  - 0
116
- hash: -167423800758030651
133
+ hash: -117953070356559829
117
134
  requirements: []
118
135
  rubyforge_project:
119
136
  rubygems_version: 1.8.24