bosh-cloudfoundry 0.3.0 → 0.4.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/ChangeLog.md +4 -0
- data/Gemfile +4 -2
- data/Guardfile +1 -1
- data/README.md +15 -25
- data/bosh-cloudfoundry.gemspec +0 -3
- data/lib/bosh-cloudfoundry/bosh_release_manager.rb +1 -1
- data/lib/bosh-cloudfoundry/config_options.rb +4 -0
- data/lib/bosh-cloudfoundry/version.rb +1 -1
- data/lib/bosh/cli/commands/cf.rb +22 -73
- data/spec/unit/cf_command_spec.rb +57 -29
- metadata +4 -52
data/ChangeLog.md
CHANGED
data/Gemfile
CHANGED
data/Guardfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# A sample Guardfile
|
2
2
|
# More info at https://github.com/guard/guard#readme
|
3
3
|
|
4
|
-
guard 'rspec'
|
4
|
+
guard 'rspec' do
|
5
5
|
watch(%r{^spec/.+_spec\.rb$})
|
6
6
|
watch(%r{^lib/bosh/cli/commands/cf.rb$}) { |m| "spec/unit/cf_command_spec.rb" }
|
7
7
|
watch(%r{^lib/bosh-cloudfoundry/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
|
data/README.md
CHANGED
@@ -1,53 +1,42 @@
|
|
1
1
|
# Bosh::CloudFoundry
|
2
2
|
|
3
|
-
You want
|
3
|
+
You want Cloud Foundry? You can now create, scale, upgrade and patch one or more Cloud Foundry deployments using very simple, easy to learn and remember CLI commands.
|
4
4
|
|
5
|
-
Currently supports AWS
|
5
|
+
Currently supports AWS and OpenStack only. vSphere and vCloud support will require someone to tell me that they really want it.
|
6
6
|
|
7
|
-
##
|
7
|
+
## Zero to Cloud Foundry in a few hours
|
8
8
|
|
9
|
-
|
9
|
+
If you have an AWS or OpenStack account then you can deploy a running Cloud Foundry VM by following this very simple tutorial. It first uses the very powerful [bosh-bootstrap](https://github.com/StarkAndWayne/bosh-bootstrap) tool to deploy a BOSH, and then using this project (a plugin for the BOSH CLI) it will do everything necessary to deploy Cloud Foundry via your shiny new, empty BOSH.
|
10
10
|
|
11
|
-
|
11
|
+
**You should not need to know anything before running this tutorial.** If you do this tutorial and you feel it was too complex or you needed to know something additional, please [create a ticket](https://github.com/StarkAndWayne/bosh-cloudfoundry/issues).
|
12
12
|
|
13
13
|
```
|
14
14
|
# on your laptop
|
15
15
|
gem install bosh-bootstrap
|
16
|
-
bosh-bootstrap deploy --
|
16
|
+
bosh-bootstrap deploy --edge-deployer
|
17
|
+
# prompts for AWS/OpenStack credentials
|
18
|
+
# and some other fields that you can
|
19
|
+
# just press Enter for.
|
17
20
|
|
21
|
+
# SSH into inception VM
|
18
22
|
bosh-bootstrap ssh
|
19
23
|
|
20
|
-
|
21
|
-
|
22
|
-
# TODO - restore gem installation when rubygem security issue resolved
|
23
|
-
# sudo gem install bosh-cloudfoundry
|
24
|
-
|
25
|
-
cd /var/vcap/store/repos
|
26
|
-
git clone git://github.com/StarkAndWayne/bosh-cloudfoundry.git
|
27
|
-
cd bosh-cloudfoundry
|
28
|
-
git checkout -b v0.3
|
29
|
-
git pull origin v0.3
|
30
|
-
rake install
|
31
|
-
|
24
|
+
sudo gem install bosh-cloudfoundry
|
32
25
|
export TMPDIR=/var/vcap/store/tmp
|
33
|
-
bosh cf
|
34
|
-
|
35
|
-
bosh cf prepare system production --release-name appcloud-dev
|
26
|
+
bosh cf prepare system production
|
36
27
|
# prompts for a DNS host for your CloudFoundry, such as mycompany.com
|
37
28
|
# will generate a new IP address
|
38
29
|
# now setup your DNS for *.mycompany.com => new IP address
|
39
30
|
# the re-run:
|
40
31
|
bosh cf prepare system production
|
41
32
|
|
42
|
-
bosh
|
43
|
-
bosh cf merge gerrit 37/13137/4 84/13084/4 83/13583/1 09/13609/2
|
44
|
-
bosh cf deploy
|
33
|
+
bosh deploy
|
45
34
|
|
46
35
|
# now we can grow our single VM deployment
|
47
36
|
|
48
37
|
bosh cf change deas 1
|
49
38
|
bosh cf add service postgresql
|
50
|
-
bosh
|
39
|
+
bosh deploy
|
51
40
|
```
|
52
41
|
|
53
42
|
Overtime, as you add more DEAs and other service nodes, your set of VMs might look like:
|
@@ -70,6 +59,7 @@ $ bosh vms
|
|
70
59
|
|
71
60
|
* Ruby 1.9
|
72
61
|
* BOSH running on AWS (other CPIs coming)
|
62
|
+
* Unix-based local system (Windows support for bosh-bootstrap is a priority)
|
73
63
|
|
74
64
|
## Usage
|
75
65
|
|
data/bosh-cloudfoundry.gemspec
CHANGED
@@ -23,7 +23,4 @@ Gem::Specification.new do |gem|
|
|
23
23
|
gem.add_dependency "net-dns"
|
24
24
|
gem.add_dependency "fog", ">= 1.8.0"
|
25
25
|
gem.add_development_dependency "rspec"
|
26
|
-
gem.add_development_dependency "ci_reporter"
|
27
|
-
gem.add_development_dependency "debugger"
|
28
|
-
gem.add_development_dependency "guard-rspec"
|
29
26
|
end
|
@@ -77,7 +77,7 @@ module Bosh::CloudFoundry::BoshReleaseManager
|
|
77
77
|
def create_and_upload_dev_release(release_name=default_dev_release_name)
|
78
78
|
chdir(cf_release_dir) do
|
79
79
|
write_dev_config_file(release_name)
|
80
|
-
sh "bosh create release --with-tarball --force"
|
80
|
+
sh "bosh -n --color create release --with-tarball --force"
|
81
81
|
sh "bosh -n --color upload release"
|
82
82
|
end
|
83
83
|
@bosh_releases = nil # reset cache
|
data/lib/bosh/cli/commands/cf.rb
CHANGED
@@ -39,6 +39,10 @@ module Bosh::Cli::Command
|
|
39
39
|
option "--admin-emails email1,email2", Array, "Admin email accounts in created CloudFoundry"
|
40
40
|
option "--skip-validations", "Skip all validations"
|
41
41
|
def prepare_system(name=nil)
|
42
|
+
# FUTURE remove this when cf-release has a final release with
|
43
|
+
# all patches in https://github.com/StarkAndWayne/bosh-cloudfoundry/issues/42
|
44
|
+
options[:dev] = true
|
45
|
+
|
42
46
|
setup_system_dir(name)
|
43
47
|
confirm_or_prompt_all_defaults
|
44
48
|
confirm_or_prompt_for_system_requirements
|
@@ -111,24 +115,30 @@ module Bosh::Cli::Command
|
|
111
115
|
|
112
116
|
usage "cf upload stemcell"
|
113
117
|
desc "download/create stemcell & upload to BOSH"
|
114
|
-
option "--
|
118
|
+
# option "--stable", "Use latest stemcell; possibly not tagged stable"
|
119
|
+
option "--latest", "Use latest stemcell; possibly not tagged stable [default]"
|
115
120
|
option "--custom", "Create custom stemcell from BOSH git source"
|
116
121
|
def upload_stemcell
|
117
|
-
stemcell_type = "stable"
|
118
|
-
stemcell_type = "latest" if options[:latest]
|
122
|
+
stemcell_type = "stable" if options[:stable]
|
119
123
|
stemcell_type = "custom" if options[:custom]
|
124
|
+
stemcell_type ||= "latest"
|
120
125
|
create_or_download_stemcell_then_upload(stemcell_type)
|
121
126
|
end
|
122
127
|
|
123
128
|
usage "cf upload release"
|
124
129
|
desc "fetch & upload latest public cloudfoundry release to BOSH"
|
125
|
-
option "--dev", "Create development release from very latest cf-release commits"
|
130
|
+
# option "--dev", "Create development release from very latest cf-release commits & specific patches"
|
131
|
+
option "--final", "Upload latest final release from very latest cf-release commits"
|
126
132
|
def upload_release
|
127
133
|
clone_or_update_cf_release
|
128
|
-
if options.delete(:
|
129
|
-
create_and_upload_dev_release
|
130
|
-
else
|
134
|
+
if options.delete(:final)
|
131
135
|
upload_final_release
|
136
|
+
else
|
137
|
+
# FUTURE once all patches from https://github.com/StarkAndWayne/bosh-cloudfoundry/issues/42
|
138
|
+
# are merged into cf-release, then no more gerrit merging required
|
139
|
+
options[:dev] = true
|
140
|
+
merge_gerrit(*%w[37/13137/4 84/13084/4])
|
141
|
+
# create_and_upload_dev_release
|
132
142
|
end
|
133
143
|
end
|
134
144
|
|
@@ -153,7 +163,7 @@ module Bosh::Cli::Command
|
|
153
163
|
end
|
154
164
|
end
|
155
165
|
apply_gerrit_patches
|
156
|
-
create_and_upload_dev_release
|
166
|
+
create_and_upload_dev_release(release_name)
|
157
167
|
end
|
158
168
|
|
159
169
|
usage "cf deploy"
|
@@ -249,32 +259,20 @@ module Bosh::Cli::Command
|
|
249
259
|
end
|
250
260
|
|
251
261
|
# @return [String] label for the CPI being used by the target BOSH
|
252
|
-
# * "aws" - AWS
|
253
|
-
#
|
254
|
-
# Yet to be supported by bosh-cloudfoundry:
|
255
|
-
# * "openstack" - VMWare vSphere
|
256
|
-
# * "vsphere" - VMWare vSphere
|
257
|
-
# * "vcloud" - VMWare vCloud
|
258
262
|
def bosh_provider
|
259
|
-
|
260
|
-
"aws"
|
261
|
-
elsif openstack?
|
262
|
-
"openstack"
|
263
|
-
else
|
264
|
-
err("Please implement cf.rb's bosh_provider for this IaaS")
|
265
|
-
end
|
263
|
+
system_config_setup? ? system_config.bosh_provider : bosh_cpi
|
266
264
|
end
|
267
265
|
|
268
266
|
# Deploying CloudFoundry to AWS?
|
269
267
|
# Is the target BOSH's IaaS using the AWS CPI?
|
270
268
|
def aws?
|
271
|
-
|
269
|
+
bosh_provider == "aws"
|
272
270
|
end
|
273
271
|
|
274
272
|
# Deploying CloudFoundry to OpenStack?
|
275
273
|
# Is the target BOSH's IaaS using the OpenStack CPI?
|
276
274
|
def openstack?
|
277
|
-
|
275
|
+
bosh_provider == "openstack"
|
278
276
|
end
|
279
277
|
|
280
278
|
# User is prompted for common values at the
|
@@ -550,7 +548,7 @@ module Bosh::Cli::Command
|
|
550
548
|
err("Server flavor '#{flavor}' is not a valid OpenStack compute flavor")
|
551
549
|
end
|
552
550
|
else
|
553
|
-
err("Please implemenet cf.rb's validate_compute_flavor for
|
551
|
+
err("Please implemenet cf.rb's validate_compute_flavor for #{bosh_provider.inspect}")
|
554
552
|
end
|
555
553
|
end
|
556
554
|
|
@@ -569,31 +567,6 @@ module Bosh::Cli::Command
|
|
569
567
|
renderer.perform
|
570
568
|
end
|
571
569
|
|
572
|
-
def generate_dea_servers(server_count, server_flavor)
|
573
|
-
director_uuid = "DIRECTOR_UUID"
|
574
|
-
release_name = "appcloud"
|
575
|
-
stemcell_version = "0.6.4"
|
576
|
-
if aws?
|
577
|
-
resource_pool_cloud_properties = "instance_type: #{server_flavor}"
|
578
|
-
else
|
579
|
-
err("Please implemenet cf.rb's generate_dea_servers for this IaaS")
|
580
|
-
end
|
581
|
-
dea_max_memory = 2048 # FIXME a value based on server flavor RAM?
|
582
|
-
nats_password = "mynats1234"
|
583
|
-
system_dir = File.join(base_systems_dir, system_name)
|
584
|
-
mkdir_p(system_dir)
|
585
|
-
chdir system_dir do
|
586
|
-
require 'bosh-cloudfoundry/generators/dea_generator'
|
587
|
-
Bosh::CloudFoundry::Generators::DeaGenerator.start([
|
588
|
-
system_name,
|
589
|
-
server_count, server_flavor,
|
590
|
-
director_uuid, release_name, stemcell_version,
|
591
|
-
resource_pool_cloud_properties,
|
592
|
-
dea_max_memory,
|
593
|
-
nats_password])
|
594
|
-
end
|
595
|
-
end
|
596
|
-
|
597
570
|
# Valdiate that +service_name+ is a known, supported service name
|
598
571
|
def validate_service_name(service_name)
|
599
572
|
return true if skip_validations?
|
@@ -618,30 +591,6 @@ module Bosh::Cli::Command
|
|
618
591
|
end
|
619
592
|
end
|
620
593
|
|
621
|
-
def generate_service_servers(service_name, server_count, server_flavor)
|
622
|
-
director_uuid = "DIRECTOR_UUID"
|
623
|
-
release_name = "appcloud"
|
624
|
-
stemcell_version = "0.6.4"
|
625
|
-
if aws?
|
626
|
-
resource_pool_cloud_properties = "instance_type: #{server_flavor}"
|
627
|
-
else
|
628
|
-
err("Please implemenet cf.rb's generate_service_servers for this IaaS")
|
629
|
-
end
|
630
|
-
persistent_disk = 16192
|
631
|
-
nats_password = "mynats1234"
|
632
|
-
system_dir = File.join(base_systems_dir, system_name)
|
633
|
-
mkdir_p(system_dir)
|
634
|
-
chdir system_dir do
|
635
|
-
require 'bosh-cloudfoundry/generators/service_generator'
|
636
|
-
Bosh::CloudFoundry::Generators::ServiceGenerator.start([
|
637
|
-
system_name,
|
638
|
-
service_name, server_count, server_flavor,
|
639
|
-
director_uuid, release_name, stemcell_version,
|
640
|
-
resource_pool_cloud_properties, persistent_disk,
|
641
|
-
nats_password])
|
642
|
-
end
|
643
|
-
end
|
644
|
-
|
645
594
|
def default_core_server_flavor
|
646
595
|
if aws?
|
647
596
|
"m1.large"
|
@@ -41,9 +41,14 @@ describe Bosh::Cli::Command::Base do
|
|
41
41
|
it "downloads stemcell and uploads it" do
|
42
42
|
@cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
|
43
43
|
@cmd.stub!(:bosh_target_uuid).and_return("DIRECTOR_UUID")
|
44
|
+
@cmd.stub!(:bosh_cpi).and_return("aws")
|
44
45
|
@cmd.should_receive(:`).
|
45
|
-
with("bosh public stemcells --tags aws
|
46
|
+
with("bosh public stemcells --tags aws | grep ' bosh-stemcell-' | awk '{ print $2 }' | sort -r | head -n 1").
|
46
47
|
and_return("bosh-stemcell-aws-0.6.7.tgz")
|
48
|
+
# FIXME default to stable stemcells when 0.8.1 is marked stable
|
49
|
+
# @cmd.should_receive(:`).
|
50
|
+
# with("bosh public stemcells --tags aws,stable | grep ' bosh-stemcell-' | awk '{ print $2 }' | sort -r | head -n 1").
|
51
|
+
# and_return("bosh-stemcell-aws-0.6.7.tgz")
|
47
52
|
@cmd.should_receive(:sh).
|
48
53
|
with("bosh -n --color download public stemcell bosh-stemcell-aws-0.6.7.tgz")
|
49
54
|
@cmd.should_receive(:sh).
|
@@ -58,6 +63,7 @@ describe Bosh::Cli::Command::Base do
|
|
58
63
|
mkdir_p(File.join(@repos_dir, "bosh", "agent"))
|
59
64
|
@cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
|
60
65
|
@cmd.stub!(:bosh_target_uuid).and_return("DIRECTOR_UUID")
|
66
|
+
@cmd.stub!(:bosh_cpi).and_return("aws")
|
61
67
|
@cmd.should_receive(:sh).with("git pull origin master")
|
62
68
|
@cmd.should_receive(:sh).with("bundle install --without development test")
|
63
69
|
@cmd.should_receive(:sh).with("sudo bundle exec rake stemcell:basic['aws']")
|
@@ -94,34 +100,38 @@ describe Bosh::Cli::Command::Base do
|
|
94
100
|
@cmd.should_receive(:`).with("tail -n 1 releases/index.yml | awk '{print $2}'").
|
95
101
|
and_return("126")
|
96
102
|
@cmd.should_receive(:sh).with("bosh -n --color upload release releases/appcloud-126.yml")
|
103
|
+
@cmd.add_option(:final, true)
|
97
104
|
@cmd.upload_release
|
98
105
|
end
|
99
106
|
|
100
|
-
it "updates/creates/uploads development/edge cf-release"
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
107
|
+
it "updates/creates/uploads development/edge cf-release (requires system setup)"
|
108
|
+
# TODO turn this into a unit test for the specific methods
|
109
|
+
# do
|
110
|
+
# cf_release_dir = File.join(@releases_dir, "cf-release")
|
111
|
+
# FileUtils.mkdir_p(cf_release_dir)
|
112
|
+
# @cmd.common_config.cf_release_dir = cf_release_dir
|
113
|
+
# @cmd.add_option(:dev, true)
|
114
|
+
#
|
115
|
+
# @cmd.should_receive(:sh).with("git pull origin master")
|
116
|
+
# script = <<-BASH.gsub(/^ /, '')
|
117
|
+
# grep -rI "github.com" * .gitmodules | awk 'BEGIN {FS=":"} { print($1) }' | uniq while read file
|
118
|
+
# do
|
119
|
+
# echo "changing - $file"
|
120
|
+
# sed -i 's#git://github.com#https://github.com#g' $file
|
121
|
+
# sed -i 's#git@github.com:#https://github.com:#g' $file
|
122
|
+
# done
|
123
|
+
# BASH
|
124
|
+
# @cmd.should_receive(:sh).with("sed -i 's#git@github.com:#https://github.com/#g' .gitmodules")
|
125
|
+
# @cmd.should_receive(:sh).with("sed -i 's#git://github.com#https://github.com#g' .gitmodules")
|
126
|
+
# @cmd.should_receive(:sh).with("git submodule update --init --recursive")
|
127
|
+
# @cmd.should_receive(:write_dev_config_file).with("appcloud-dev")
|
128
|
+
# @cmd.should_receive(:sh).with("bosh create release --with-tarball --force")
|
129
|
+
# @cmd.should_receive(:sh).with("bosh -n --color upload release")
|
130
|
+
# @cmd.upload_release
|
131
|
+
# end
|
123
132
|
|
124
133
|
def generate_new_system(cmd = nil)
|
134
|
+
needs_initial_release_uploaded = true
|
125
135
|
cmd ||= begin
|
126
136
|
cmd = Bosh::Cli::Command::CloudFoundry.new(nil)
|
127
137
|
cmd.add_option(:non_interactive, true)
|
@@ -134,13 +144,22 @@ describe Bosh::Cli::Command::Base do
|
|
134
144
|
|
135
145
|
cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
|
136
146
|
cmd.stub!(:bosh_target_uuid).and_return("DIRECTOR_UUID")
|
147
|
+
cmd.stub!(:bosh_cpi).and_return("aws")
|
137
148
|
cmd.should_receive(:generate_common_password).and_return('c1oudc0wc1oudc0w')
|
138
|
-
cmd.should_receive(:bosh_releases).exactly(1).times.and_return([
|
139
|
-
{"name"=>"appcloud", "versions"=>["124", "126"], "in_use"=>[]},
|
140
|
-
{"name"=>"appcloud-dev", "versions"=>["124.1-dev", "126.1-dev"], "in_use"=>[]},
|
141
|
-
])
|
142
149
|
cmd.should_receive(:validate_dns_a_record).with("api.mycompany.com", '1.2.3.4').and_return(true)
|
143
150
|
cmd.should_receive(:validate_dns_a_record).with("demoapp.mycompany.com", '1.2.3.4').and_return(true)
|
151
|
+
|
152
|
+
if needs_initial_release_uploaded
|
153
|
+
cmd.should_receive(:bosh_releases).exactly(1).times.and_return([])
|
154
|
+
cmd.should_receive(:clone_or_update_cf_release)
|
155
|
+
cmd.should_receive(:merge_gerrit).with(*%w[37/13137/4 84/13084/4 09/13609/2])
|
156
|
+
else
|
157
|
+
cmd.should_receive(:bosh_releases).exactly(1).times.and_return([
|
158
|
+
{"name"=>"appcloud", "versions"=>["124", "126"], "in_use"=>[]},
|
159
|
+
{"name"=>"appcloud-dev", "versions"=>["124.1-dev", "126.1-dev"], "in_use"=>[]},
|
160
|
+
])
|
161
|
+
end
|
162
|
+
|
144
163
|
cmd.should_receive(:bosh_stemcell_versions).exactly(4).times.and_return(['0.6.4'])
|
145
164
|
cmd.should_receive(:render_system)
|
146
165
|
|
@@ -155,7 +174,7 @@ describe Bosh::Cli::Command::Base do
|
|
155
174
|
|
156
175
|
cmd.add_option(:core_ip, '1.2.3.4')
|
157
176
|
cmd.add_option(:root_dns, 'mycompany.com')
|
158
|
-
cmd.add_option(:cf_release, 'appcloud')
|
177
|
+
# cmd.add_option(:cf_release, 'appcloud')
|
159
178
|
cmd.add_option(:core_server_flavor, 'm1.large')
|
160
179
|
cmd.add_option(:admin_emails, ['drnic@starkandwayne.com'])
|
161
180
|
|
@@ -174,6 +193,12 @@ describe Bosh::Cli::Command::Base do
|
|
174
193
|
File.basename(@cmd.system).should == "production"
|
175
194
|
end
|
176
195
|
|
196
|
+
it "temporarily uploads latest stemcell & patched cf-release by default" do
|
197
|
+
generate_new_system(@cmd)
|
198
|
+
File.basename(@cmd.system).should == "production"
|
199
|
+
@cmd.system_config.release_name.should == "appcloud-dev"
|
200
|
+
end
|
201
|
+
|
177
202
|
it "new system has common random password" do
|
178
203
|
generate_new_system(@cmd)
|
179
204
|
@cmd.system_config.common_password.should == "c1oudc0wc1oudc0w"
|
@@ -184,6 +209,7 @@ describe Bosh::Cli::Command::Base do
|
|
184
209
|
|
185
210
|
@cmd.should_receive(:render_system)
|
186
211
|
|
212
|
+
@cmd.stub!(:bosh_cpi).and_return("aws")
|
187
213
|
@cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
|
188
214
|
@cmd.add_option(:flavor, 'm1.xlarge')
|
189
215
|
@cmd.change_deas(3)
|
@@ -204,6 +230,7 @@ describe Bosh::Cli::Command::Base do
|
|
204
230
|
|
205
231
|
@cmd.should_receive(:render_system)
|
206
232
|
|
233
|
+
@cmd.stub!(:bosh_cpi).and_return("aws")
|
207
234
|
@cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
|
208
235
|
@cmd.add_option(:flavor, 'm1.large')
|
209
236
|
@cmd.add_service_node("postgresql", 4)
|
@@ -219,6 +246,7 @@ describe Bosh::Cli::Command::Base do
|
|
219
246
|
|
220
247
|
@cmd.should_receive(:render_system)
|
221
248
|
|
249
|
+
@cmd.stub!(:bosh_cpi).and_return("aws")
|
222
250
|
@cmd.stub!(:bosh_target).and_return("http://9.8.7.6:25555")
|
223
251
|
@cmd.add_option(:flavor, 'm1.large')
|
224
252
|
@cmd.add_service_node("redis", 2)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh-cloudfoundry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bosh_cli
|
@@ -91,54 +91,6 @@ dependencies:
|
|
91
91
|
- - ! '>='
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: ci_reporter
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: debugger
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: guard-rspec
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
134
|
-
type: :development
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ! '>='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0'
|
142
94
|
description: Create and manage your Cloud Foundry deployments
|
143
95
|
email:
|
144
96
|
- drnicwilliams@gmail.com
|
@@ -209,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
209
161
|
version: '0'
|
210
162
|
segments:
|
211
163
|
- 0
|
212
|
-
hash: -
|
164
|
+
hash: -44016591154602000
|
213
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
166
|
none: false
|
215
167
|
requirements:
|
@@ -218,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
170
|
version: '0'
|
219
171
|
segments:
|
220
172
|
- 0
|
221
|
-
hash: -
|
173
|
+
hash: -44016591154602000
|
222
174
|
requirements: []
|
223
175
|
rubyforge_project:
|
224
176
|
rubygems_version: 1.8.24
|