hugo 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,12 +13,19 @@ class Hugo::App
13
13
  elsif instances < lb.instances.length
14
14
  delete_ec2(lb.instances.length - instances)
15
15
  end
16
+ else
17
+ instance(build_ec2(1)) unless instance
16
18
  end
17
19
  end
18
20
 
19
21
  def setup
20
- lb.instances.each do |i|
21
- setup_ec2(i)
22
+ if lb
23
+ lb.instances.each do |i|
24
+ setup_ec2(i)
25
+ end
26
+ else
27
+ puts instance
28
+ setup_ec2(instance)
22
29
  end
23
30
  puts "Setup Completed"
24
31
  end
@@ -44,6 +51,10 @@ class Hugo::App
44
51
  self.dna.merge!(options)
45
52
  end
46
53
  end
54
+
55
+ def instance(arg=nil)
56
+ set_or_return(:instance, arg, :kind_of => [String])
57
+ end
47
58
 
48
59
  def name(arg=nil)
49
60
  set_or_return(:name, arg, :kind_of => [String])
@@ -112,11 +123,13 @@ class Hugo::App
112
123
  private
113
124
 
114
125
  def build_ec2(i=1)
126
+ instance_id = nil
115
127
  i.times do
116
128
  instance_id = create_ec2
117
129
  #setup_ec2(instance_id)
118
- lb.add(instance_id)
130
+ lb.add(instance_id) if lb
119
131
  end
132
+ instance_id
120
133
  end
121
134
 
122
135
  def create_ec2
@@ -155,13 +168,15 @@ private
155
168
  commands << 'if [ -d "./hugo-repos" ]; then echo "setup already run"; else sudo gem install chef-deploy --no-ri --no-rdoc; fi'
156
169
  commands << 'if [ -d "./hugo-repos" ]; then echo "setup already run"; else sudo gem install git --no-ri --no-rdoc; fi'
157
170
  commands << "if [ -d \"./hugo-repos\" ]; then echo \"setup already run\"; else git clone #{self.cookbook} ~/hugo-repos; fi"
158
- Hugo::Aws::Ec2.find(instance_id).ssh(commands, nil, File.join(key_path, key_name))
171
+ ec2 = Hugo::Aws::Ec2.find(instance_id)
172
+ puts ec2.uri
173
+ ec2.ssh(commands, nil, File.join(key_path, key_name))
159
174
  end
160
175
 
161
176
  def deploy_ec2
162
177
 
163
178
  commands = []
164
- commands << "cd hugo-repos && git pull"
179
+ commands << "cd hugo-repos && git reset --hard && git pull"
165
180
  commands << 'sudo chef-solo -c /home/ubuntu/hugo-repos/config/solo.rb -j /home/ubuntu/dna.json'
166
181
 
167
182
  database_info = {
@@ -183,9 +198,14 @@ private
183
198
  :app => deploy_info
184
199
  )
185
200
 
186
- lb.instances.each do |i|
187
- Hugo::Aws::Ec2.find(i).ssh(commands, dna, File.join(key_path, key_name))
201
+ if lb
202
+ lb.instances.each do |i|
203
+ Hugo::Aws::Ec2.find(i).ssh(commands, dna, File.join(key_path, key_name))
204
+ end
205
+ else
206
+ Hugo::Aws::Ec2.find(instance).ssh(commands, dna, File.join(key_path, key_name))
188
207
  end
208
+
189
209
  end
190
210
 
191
211
  def delete_ec2(i=1)
@@ -196,5 +216,10 @@ private
196
216
 
197
217
  end
198
218
  end
219
+
220
+ def get_instance(uri)
221
+ nil
222
+ end
223
+
199
224
 
200
225
  end
@@ -102,6 +102,11 @@ module Hugo
102
102
  @ec2 = AWS::EC2::Base.new(:access_key_id => ACCESS_KEY, :secret_access_key => SECRET_KEY)
103
103
  self.new(@ec2.describe_instances(:instance_id => instance).reservationSet.item[0].instancesSet.item[0])
104
104
  end
105
+
106
+ # def self.find(url)
107
+ # @ec2 = AWS::EC2::Base.new(:access_key_id => ACCESS_KEY, :secret_access_key => SECRET_KEY)
108
+ # self.new(@ec2.describe_instances(:instance_id => instance).reservationSet.item[0].instancesSet.item[0])
109
+ # end
105
110
 
106
111
  def self.find_or_create(options)
107
112
  if options[:name]
@@ -86,6 +86,19 @@ Zone: #{ec2.zone}
86
86
 
87
87
  REPORT
88
88
  end
89
+ else
90
+ ec2 = Hugo::Aws::Ec2.find(cloud_app.instance)
91
+ puts <<REPORT
92
+
93
+ Since you are not running a balancer
94
+ you need to remember to add #{ec2.name} as the instance method in your app
95
+ -----------------------
96
+ Id: #{ec2.name}
97
+ Uri: #{ec2.uri}
98
+ Type: #{ec2.type}
99
+ Zone: #{ec2.zone}
100
+
101
+ REPORT
89
102
  end
90
103
 
91
104
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hugo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Wilson
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-02-03 00:00:00 -05:00
13
+ date: 2010-02-04 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency