jamie-ec2 0.1.0 → 0.2.0
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/.travis.yml +9 -0
- data/Rakefile +7 -1
- data/jamie-ec2.gemspec +2 -1
- data/lib/jamie/driver/ec2.rb +12 -11
- data/lib/jamie/driver/ec2_version.rb +2 -2
- metadata +25 -8
data/.travis.yml
ADDED
data/Rakefile
CHANGED
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
|
data/lib/jamie/driver/ec2.rb
CHANGED
@@ -25,7 +25,9 @@ module Jamie
|
|
25
25
|
|
26
26
|
module Driver
|
27
27
|
|
28
|
-
#
|
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(
|
39
|
-
server = create_server
|
40
|
+
def create(state)
|
41
|
+
server = create_server
|
40
42
|
state['server_id'] = server.id
|
41
43
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
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(
|
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
|
73
|
+
def create_server
|
73
74
|
connection.servers.create(
|
74
75
|
:availability_zone => config['availability_zone'],
|
75
76
|
:groups => config['groups'],
|
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.
|
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:
|
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:
|
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:
|
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: -
|
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: -
|
133
|
+
hash: -117953070356559829
|
117
134
|
requirements: []
|
118
135
|
rubyforge_project:
|
119
136
|
rubygems_version: 1.8.24
|