blimpy 0.3.7 → 0.3.8

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/lib/blimpy/box.rb CHANGED
@@ -159,41 +159,51 @@ module Blimpy
159
159
  '-l', username, dns_name, *args)
160
160
  end
161
161
 
162
- def scp_file(filename)
162
+ def scp_file(filename, directory='')
163
163
  filename = File.expand_path(filename)
164
164
  run_command('scp', '-o', 'StrictHostKeyChecking=no',
165
- filename, "#{username}@#{dns_name}:", *ARGV[3..-1])
165
+ filename, "#{username}@#{dns_name}:#{directory}", *ARGV[3..-1])
166
166
  end
167
167
 
168
168
  def bootstrap_livery
169
+ script = File.expand_path(File.dirname(__FILE__) + "/../../scripts/#{livery}.sh")
170
+
169
171
  if livery == :cwd
170
- unpack_command = 'true'
171
- dir_name = File.basename(Dir.pwd)
172
-
173
- if can_rsync?
174
- unpack_command = "cd #{dir_name}"
175
- run_command('rsync', '-avL',
176
- '--exclude=.git',
177
- '--exclude=.svn',
178
- '--exclude=.blimpy.d',
179
- '.',
180
- "#{username}@#{dns_name}:#{dir_name}/")
181
- else
182
- puts "Remote host has no rsync(1), falling back to copying a full tarball over"
183
- tarball = Blimpy::Livery.tarball_directory(Dir.pwd)
184
- scp_file(tarball)
185
- # HAXX
186
- basename = File.basename(tarball)
187
- unpack_command = "tar -zxf #{basename} && cd #{dir_name}"
188
- end
172
+ script = File.join(Dir.pwd, '/bootstrap.sh')
173
+ end
189
174
 
190
- puts 'Bootstrapping the livery'
191
- run_sudo = 'sudo'
192
- if username == 'root'
193
- run_sudo = ''
194
- end
195
- ssh_into("#{unpack_command} && #{run_sudo} ./bootstrap.sh")
175
+ unless File.exists?(script)
176
+ puts "Could not find `#{script}` which is needed to kick-start the machine"
177
+ return
178
+ end
179
+
180
+ unpack_command = 'true'
181
+ dir_name = File.basename(Dir.pwd)
182
+
183
+ if can_rsync?
184
+ unpack_command = "cd #{dir_name}"
185
+ run_command('rsync', '-avL',
186
+ '--exclude=.git',
187
+ '--exclude=.svn',
188
+ '--exclude=.blimpy.d',
189
+ '.',
190
+ "#{username}@#{dns_name}:#{dir_name}/")
191
+ else
192
+ puts "Remote host has no rsync(1), falling back to copying a full tarball over"
193
+ tarball = Blimpy::Livery.tarball_directory(Dir.pwd)
194
+ scp_file(tarball)
195
+ # HAXX
196
+ basename = File.basename(tarball)
197
+ ssh_into("tar -zxf #{basename} && cd #{dir_name}")
198
+ end
199
+
200
+ puts 'Bootstrapping the livery'
201
+ run_sudo = 'sudo'
202
+ if username == 'root'
203
+ run_sudo = ''
196
204
  end
205
+ scp_file(script, dir_name)
206
+ ssh_into("cd #{dir_name} && #{run_sudo} ./#{File.basename(script)}")
197
207
  end
198
208
 
199
209
  def wait_for_sshd
@@ -1,3 +1,3 @@
1
1
  module Blimpy
2
- VERSION = "0.3.7"
2
+ VERSION = "0.3.8"
3
3
  end
@@ -0,0 +1,21 @@
1
+ #!/bin/sh -x
2
+
3
+ which pkg > /dev/null
4
+
5
+ if [ $? -ne 0 ]; then
6
+ echo "pkgng is not installed!"
7
+ ftp -V ftp://anonymous:ec2@ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/pkg.tbz
8
+ pkg_add ./pkg.tbz
9
+
10
+ echo "PACKAGESITE : http://pkgbeta.freebsd.org/freebsd-9-amd64/latest/" > /usr/local/etc/pkg.conf
11
+
12
+ pkg update -q
13
+ # Update pkgng itself
14
+ pkg install -y pkg
15
+ # Install rsync(1) so we don't have to fall back to tar(1)+scp(1) ever again
16
+ pkg install -y rsync
17
+ # Install puppet so we can get that up and running
18
+ pkg install -y puppet
19
+ fi
20
+
21
+ puppet apply --modulepath=./modules --verbose manifests/site.pp
@@ -0,0 +1,19 @@
1
+ #!/bin/sh -x
2
+
3
+ export PATH=/var/lib/gems/1.8/bin:$PATH
4
+
5
+ which puppet
6
+
7
+ if [ $? -ne 0 ]; then
8
+ apt-get update
9
+
10
+ apt-get install -y ruby1.8 \
11
+ ruby1.8-dev \
12
+ libopenssl-ruby1.8 \
13
+ rubygems
14
+
15
+ gem install puppet --no-ri --no-rdoc
16
+ fi
17
+
18
+
19
+ puppet apply --verbose --modulepath=./modules manifests/site.pp
@@ -141,25 +141,6 @@ describe Blimpy::Box do
141
141
  result.should be_instance_of Blimpy::Boxes::AWS
142
142
  end
143
143
  end
144
-
145
- end
146
-
147
- describe '#bootstrap_livery' do
148
- context 'with a livery of :cwd' do
149
- before :each do
150
- subject.livery = :cwd
151
- subject.stub(:can_rsync?).and_return(true)
152
- end
153
-
154
- it 'should tarball up the current directory' do
155
- Dir.should_receive(:pwd).and_return('mock-pwd')
156
- subject.should_receive(:run_command) do |*args|
157
- args.first.should == 'rsync'
158
- end
159
- subject.should_receive(:ssh_into)
160
- subject.bootstrap_livery
161
- end
162
- end
163
144
  end
164
145
  end
165
146
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blimpy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-08 00:00:00.000000000Z
12
+ date: 2012-07-09 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog
16
- requirement: &7560740 !ruby/object:Gem::Requirement
16
+ requirement: &13551560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *7560740
24
+ version_requirements: *13551560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: thor
27
- requirement: &7559940 !ruby/object:Gem::Requirement
27
+ requirement: &13550720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *7559940
35
+ version_requirements: *13550720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: minitar
38
- requirement: &7559080 !ruby/object:Gem::Requirement
38
+ requirement: &13549340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *7559080
46
+ version_requirements: *13549340
47
47
  description: Blimpy is a tool for managing a fleet of machines in the CLOUD!
48
48
  email:
49
49
  - tyler@monkeypox.org
@@ -81,6 +81,8 @@ files:
81
81
  - lib/blimpy/livery.rb
82
82
  - lib/blimpy/securitygroups.rb
83
83
  - lib/blimpy/version.rb
84
+ - scripts/freebsd_puppet.sh
85
+ - scripts/linux_puppet.sh
84
86
  - spec/blimpy/box_spec.rb
85
87
  - spec/blimpy/boxes/aws_spec.rb
86
88
  - spec/blimpy/boxes/openstack_spec.rb
@@ -106,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
108
  version: '0'
107
109
  segments:
108
110
  - 0
109
- hash: -306445518054353312
111
+ hash: -3611461695599472567
110
112
  required_rubygems_version: !ruby/object:Gem::Requirement
111
113
  none: false
112
114
  requirements:
@@ -115,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
117
  version: '0'
116
118
  segments:
117
119
  - 0
118
- hash: -306445518054353312
120
+ hash: -3611461695599472567
119
121
  requirements: []
120
122
  rubyforge_project:
121
123
  rubygems_version: 1.8.10