vmc 0.5.1.rc1 → 0.5.1.rc2

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/Rakefile CHANGED
@@ -8,44 +8,5 @@ CURRENT_VERSION = SPEC.version.to_s.freeze
8
8
  RSpec::Core::RakeTask.new(:spec)
9
9
  task :default => :spec
10
10
 
11
- namespace :deploy do
12
- def last_staging_sha
13
- `git rev-parse latest-staging`.strip
14
- end
15
-
16
- def last_release_sha
17
- `git rev-parse latest-release`.strip
18
- end
19
-
20
- def last_staging_ref_was_released?
21
- last_staging_sha == last_release_sha
22
- end
23
-
24
- def next_minor
25
- Gem::Version.new(CURRENT_VERSION + ".0").bump.to_s
26
- end
27
-
28
- def next_rc
29
- unless CURRENT_VERSION =~ /rc/
30
- "#{next_minor}.rc1"
31
- end
32
- end
33
-
34
- task :staging, :version do |_, args|
35
- version = args.version || next_rc
36
- sh "gem bump --push #{"--version #{version}" if version}" if last_staging_ref_was_released?
37
- sh "git tag -f latest-staging"
38
- sh "git push origin :latest-staging"
39
- sh "git push origin latest-staging"
40
- end
41
-
42
- task :candidate do
43
- sh "git fetch"
44
- sh "git checkout latest-staging"
45
- sh "gem release"
46
- sh "git tag -f v#{CURRENT_VERSION}"
47
- sh "git tag -f latest-release"
48
- sh "git push origin :latest-release"
49
- sh "git push origin latest-release"
50
- end
51
- end
11
+ # looking for a way to push gems? check out the new frontend-release git repo!
12
+ # git@github.com:pivotal-vmware/frontend-release.git
@@ -16,6 +16,7 @@ module VMC::Space
16
16
  input :auditor, :desc => "Add yourself as auditor", :default => false
17
17
 
18
18
  def create_space
19
+ # TODO: ask org instead
19
20
  return invoke :help,
20
21
  :command => "create-space" if input[:organization].nil?
21
22
 
@@ -48,6 +49,8 @@ module VMC::Space
48
49
  if input[:target]
49
50
  invoke :target, :organization => space.organization,
50
51
  :space => space
52
+ else
53
+ line c("Space created! Use #{b("switch-space #{space.name}")} to target it.", :good)
51
54
  end
52
55
  end
53
56
 
data/lib/vmc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module VMC
2
- VERSION = "0.5.1.rc1".freeze
2
+ VERSION = "0.5.1.rc2".freeze
3
3
  end
@@ -11,7 +11,7 @@ if ENV['VMC_TEST_USER'] && ENV['VMC_TEST_PASSWORD'] && ENV['VMC_TEST_TARGET']
11
11
  let(:password) { ENV['VMC_TEST_PASSWORD'] }
12
12
 
13
13
  let(:app) do
14
- fuzz = defined?(TRAVIS_BUILD_ID) ? TRAVIS_BUILD_ID : Time.new.to_f.to_s.gsub(".", "_")
14
+ fuzz = TRAVIS_BUILD_ID || Time.new.to_f.to_s.gsub(".", "_")
15
15
  "hello-sinatra-#{fuzz}"
16
16
  end
17
17
 
@@ -1,14 +1,27 @@
1
1
  require "spec_helper"
2
2
  require "webmock/rspec"
3
+ require "ffaker"
3
4
 
4
5
  if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TARGET']
5
6
  describe 'A new user tries to use VMC against v2 production', :ruby19 => true do
6
- include ConsoleAppSpeckerMatchers
7
+ before(:all) do
8
+ WebMock.allow_net_connect!
9
+ end
10
+
11
+ after(:all) do
12
+ WebMock.disable_net_connect!
13
+ end
7
14
 
8
15
  let(:target) { ENV['VMC_V2_TEST_TARGET'] }
9
16
  let(:username) { ENV['VMC_V2_TEST_USER'] }
10
17
  let(:password) { ENV['VMC_V2_TEST_PASSWORD'] }
11
18
 
19
+ let(:client) do
20
+ client = CFoundry::V2::Client.new("https://#{target}")
21
+ client.login(username, password)
22
+ client
23
+ end
24
+
12
25
  before do
13
26
  Interact::Progress::Dots.start!
14
27
  end
@@ -18,7 +31,7 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
18
31
  end
19
32
 
20
33
  it "registers a new account and deletes it" do
21
- pending "until we get some v2 admin credentials somewhere to actually run this with"
34
+ pending "until we get some v2 admin credentials somewhere to actually run this with" if TRAVIS_BUILD_ID
22
35
 
23
36
  email = Faker::Internet.email
24
37
  run("#{vmc_bin} target #{target}") do |runner|
@@ -52,13 +65,21 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
52
65
  runner.send_keys "1"
53
66
  end
54
67
 
55
- run("#{vmc_bin} delete-user #{email}") do |runner|
56
- expect(runner).to say "Really delete user #{email}?>"
57
- runner.send_keys "y"
58
- expect(runner).to say "Deleting #{email}... OK"
59
- end
68
+ # run("#{vmc_bin} delete-user #{email}") do |runner|
69
+ # expect(runner).to say "Really delete user #{email}?>"
70
+ # runner.send_keys "y"
71
+ # expect(runner).to say "Deleting #{email}... OK"
72
+ # end
73
+
74
+ puts "deleting #{email}"
75
+ client.login(email, "p")
76
+ user = client.current_user
77
+ guid = user.guid
78
+ client.login(username, password)
79
+ user.delete!
80
+ client.base.uaa.delete_user(guid)
60
81
  end
61
82
  end
62
83
  else
63
84
  $stderr.puts 'Skipping v2 integration specs; please provide $VMC_V2_TEST_TARGET, $VMC_V2_TEST_USER, and $VMC_V2_TEST_PASSWORD'
64
- end
85
+ end
@@ -11,7 +11,7 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
11
11
  let(:password) { ENV['VMC_V2_TEST_PASSWORD'] }
12
12
 
13
13
  let(:app) do
14
- fuzz = defined?(TRAVIS_BUILD_ID) ? TRAVIS_BUILD_ID : Time.new.to_f.to_s.gsub(".", "_")
14
+ fuzz = TRAVIS_BUILD_ID || Time.new.to_f.to_s.gsub(".", "_")
15
15
  "hello-sinatra-#{fuzz}"
16
16
  end
17
17
 
@@ -103,7 +103,7 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
103
103
  expect(runner).to say "Uploading #{app}... OK"
104
104
  expect(runner).to say "Starting #{app}... OK"
105
105
 
106
- expect(runner).to say "Using Ruby", 10
106
+ expect(runner).to say /(Using|Installing) Ruby/i, 10
107
107
  expect(runner).to say "Your bundle is complete!", 30
108
108
 
109
109
  expect(runner).to say "Checking #{app}..."
@@ -16,7 +16,7 @@ if ENV['VMC_V2_TEST_TARGET']
16
16
 
17
17
  it "can switch targets, even if a target is invalid" do
18
18
  run("#{vmc_bin} target invalid-target") do |runner|
19
- expect(runner).to say /target refused/i
19
+ expect(runner).to say "Target refused"
20
20
  runner.wait_for_exit
21
21
  end
22
22
 
data/spec/spec_helper.rb CHANGED
@@ -9,6 +9,7 @@ require "webmock"
9
9
  require "ostruct"
10
10
 
11
11
  INTEGRATE_WITH = ENV["INTEGRATE_WITH"] || "default"
12
+ TRAVIS_BUILD_ID = ENV["TRAVIS_BUILD_ID"]
12
13
 
13
14
  def vmc_bin
14
15
  vmc = File.expand_path("#{SPEC_ROOT}/../bin/vmc.dev")
@@ -1,6 +1,7 @@
1
1
  def command(klass, &specs)
2
2
  describe klass do
3
3
  let(:stub_precondition?) { true }
4
+
4
5
  before do
5
6
  any_instance_of klass do |cli|
6
7
  stub(cli).precondition if stub_precondition?
@@ -68,4 +68,4 @@ class TrackingExpector
68
68
  def output_ended?(timeout)
69
69
  (@out.is_a?(IO) && !IO.select([@out], nil, nil, timeout)) || @out.eof?
70
70
  end
71
- end
71
+ end
@@ -1,25 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require "vmc/cli/space/create"
3
3
 
4
- describe VMC::Space::Create do
5
- let(:spaces) { fake_list(:space, 3) }
6
- let(:organization) { fake(:organization, :spaces => spaces) }
7
- let(:new_space) { stub! }
8
- let(:client) { fake_client(:current_organization => organization, :spaces => spaces) }
9
- let(:new_name) { "some-new-name" }
10
-
11
- before do
12
- %w{create! organization= name= name add_manager add_developer add_auditor organization}.each do |method|
13
- new_space.__send__(method.to_sym)
14
- end
15
-
16
- stub(client).space { new_space }
17
- any_instance_of described_class do |cli|
18
- stub(cli).client { client }
19
- stub(cli).precondition { nil }
20
- end
21
- end
22
-
4
+ command VMC::Space::Create do
23
5
  describe 'metadata' do
24
6
  let(:command) { Mothership.commands[:create_space] }
25
7
 
@@ -42,31 +24,69 @@ describe VMC::Space::Create do
42
24
  end
43
25
  end
44
26
 
45
- context "when we don't specify an organization" do
46
- subject { vmc %W[--no-quiet create-space new-space-name] }
27
+ describe "running the command" do
28
+ let(:client) do
29
+ fake_client(:current_organization => organization)
30
+ end
47
31
 
48
- context "when we have a default organization" do
49
- it "uses that organization to create a space" do
50
- subject
32
+ let(:organization) { fake(:organization) }
33
+
34
+ let(:new_space) { fake :space, :name => new_name }
35
+ let(:new_name) { "some-new-name" }
36
+
37
+ before do
38
+ stub(client).space { new_space }
39
+ stub(new_space).create!
40
+ stub(new_space).add_manager
41
+ stub(new_space).add_developer
42
+ stub(new_space).add_auditor
43
+ end
51
44
 
52
- stdout.rewind
53
- expect(stdout.readline).to include "Creating space"
45
+ context "when --target is given" do
46
+ subject { vmc %W[create-space #{new_space.name} --target] }
47
+
48
+ it "switches them to the new space" do
49
+ mock_invoke :target, :organization => organization,
50
+ :space => new_space
51
+ subject
54
52
  end
55
53
  end
56
54
 
57
- context "when we don't have a default organization" do
58
- let(:organization) { nil }
55
+ context "when --target is NOT given" do
56
+ subject { vmc %W[create-space #{new_space.name}] }
59
57
 
60
- it "shows the help for the command" do
58
+ it "tells the user how they can switch to the new space" do
61
59
  subject
60
+ expect(output).to say("Space created! Use switch-space #{new_space.name} to target it.")
61
+ end
62
+ end
63
+
64
+ context "when we don't specify an organization" do
65
+ subject { vmc %W[create-space #{new_space.name}] }
62
66
 
63
- stdout.rewind
64
- expect(stdout.readline).to include "Create a space in an organization"
67
+ context "when we have a default organization" do
68
+ it "uses that organization to create a space" do
69
+ subject
70
+
71
+ stdout.rewind
72
+ expect(stdout.readline).to include "Creating space"
73
+ end
65
74
  end
66
75
 
67
- it "does not try to create the space" do
68
- new_space.create! { raise "should not call this method" } # rr not behaving
69
- subject
76
+ context "when we don't have a default organization" do
77
+ let(:organization) { nil }
78
+
79
+ it "shows the help for the command" do
80
+ subject
81
+
82
+ stdout.rewind
83
+ expect(stdout.readline).to include "Create a space in an organization"
84
+ end
85
+
86
+ it "does not try to create the space" do
87
+ new_space.create! { raise "should not call this method" } # rr not behaving
88
+ subject
89
+ end
70
90
  end
71
91
  end
72
92
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmc
3
3
  version: !ruby/object:Gem::Version
4
- hash: 2761529585
4
+ hash: -656826288
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
9
  - 1
10
10
  - rc
11
- - 1
12
- version: 0.5.1.rc1
11
+ - 2
12
+ version: 0.5.1.rc2
13
13
  platform: ruby
14
14
  authors:
15
15
  - Cloud Foundry Team
@@ -18,12 +18,10 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2013-03-06 00:00:00 Z
21
+ date: 2013-03-07 00:00:00 Z
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
24
- name: json_pure
25
- prerelease: false
26
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
27
25
  none: false
28
26
  requirements:
29
27
  - - ~>
@@ -33,12 +31,12 @@ dependencies:
33
31
  - 1
34
32
  - 6
35
33
  version: "1.6"
34
+ prerelease: false
36
35
  type: :runtime
37
- version_requirements: *id001
36
+ name: json_pure
37
+ requirement: *id001
38
38
  - !ruby/object:Gem::Dependency
39
- name: multi_json
40
- prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
40
  none: false
43
41
  requirements:
44
42
  - - ~>
@@ -48,12 +46,12 @@ dependencies:
48
46
  - 1
49
47
  - 3
50
48
  version: "1.3"
49
+ prerelease: false
51
50
  type: :runtime
52
- version_requirements: *id002
51
+ name: multi_json
52
+ requirement: *id002
53
53
  - !ruby/object:Gem::Dependency
54
- name: interact
55
- prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
57
55
  none: false
58
56
  requirements:
59
57
  - - ~>
@@ -63,24 +61,24 @@ dependencies:
63
61
  - 0
64
62
  - 5
65
63
  version: "0.5"
64
+ prerelease: false
66
65
  type: :runtime
67
- version_requirements: *id003
66
+ name: interact
67
+ requirement: *id003
68
68
  - !ruby/object:Gem::Dependency
69
- name: cfoundry
70
- prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
72
70
  none: false
73
71
  requirements:
74
72
  - - ">="
75
73
  - !ruby/object:Gem::Version
76
- hash: 2761529569
74
+ hash: -656826304
77
75
  segments:
78
76
  - 0
79
77
  - 5
80
78
  - 3
81
79
  - rc
82
- - 1
83
- version: 0.5.3.rc1
80
+ - 2
81
+ version: 0.5.3.rc2
84
82
  - - <
85
83
  - !ruby/object:Gem::Version
86
84
  hash: 7
@@ -88,12 +86,12 @@ dependencies:
88
86
  - 0
89
87
  - 6
90
88
  version: "0.6"
89
+ prerelease: false
91
90
  type: :runtime
92
- version_requirements: *id004
91
+ name: cfoundry
92
+ requirement: *id004
93
93
  - !ruby/object:Gem::Dependency
94
- name: clouseau
95
- prerelease: false
96
- requirement: &id005 !ruby/object:Gem::Requirement
94
+ version_requirements: &id005 !ruby/object:Gem::Requirement
97
95
  none: false
98
96
  requirements:
99
97
  - - ~>
@@ -103,12 +101,12 @@ dependencies:
103
101
  - 0
104
102
  - 0
105
103
  version: "0.0"
104
+ prerelease: false
106
105
  type: :runtime
107
- version_requirements: *id005
106
+ name: clouseau
107
+ requirement: *id005
108
108
  - !ruby/object:Gem::Dependency
109
- name: mothership
110
- prerelease: false
111
- requirement: &id006 !ruby/object:Gem::Requirement
109
+ version_requirements: &id006 !ruby/object:Gem::Requirement
112
110
  none: false
113
111
  requirements:
114
112
  - - ">="
@@ -126,12 +124,12 @@ dependencies:
126
124
  - 1
127
125
  - 0
128
126
  version: "1.0"
127
+ prerelease: false
129
128
  type: :runtime
130
- version_requirements: *id006
129
+ name: mothership
130
+ requirement: *id006
131
131
  - !ruby/object:Gem::Dependency
132
- name: manifests-vmc-plugin
133
- prerelease: false
134
- requirement: &id007 !ruby/object:Gem::Requirement
132
+ version_requirements: &id007 !ruby/object:Gem::Requirement
135
133
  none: false
136
134
  requirements:
137
135
  - - ~>
@@ -142,12 +140,12 @@ dependencies:
142
140
  - 6
143
141
  - 2
144
142
  version: 0.6.2
143
+ prerelease: false
145
144
  type: :runtime
146
- version_requirements: *id007
145
+ name: manifests-vmc-plugin
146
+ requirement: *id007
147
147
  - !ruby/object:Gem::Dependency
148
- name: tunnel-vmc-plugin
149
- prerelease: false
150
- requirement: &id008 !ruby/object:Gem::Requirement
148
+ version_requirements: &id008 !ruby/object:Gem::Requirement
151
149
  none: false
152
150
  requirements:
153
151
  - - ~>
@@ -158,12 +156,12 @@ dependencies:
158
156
  - 2
159
157
  - 2
160
158
  version: 0.2.2
159
+ prerelease: false
161
160
  type: :runtime
162
- version_requirements: *id008
161
+ name: tunnel-vmc-plugin
162
+ requirement: *id008
163
163
  - !ruby/object:Gem::Dependency
164
- name: rake
165
- prerelease: false
166
- requirement: &id009 !ruby/object:Gem::Requirement
164
+ version_requirements: &id009 !ruby/object:Gem::Requirement
167
165
  none: false
168
166
  requirements:
169
167
  - - ~>
@@ -173,12 +171,12 @@ dependencies:
173
171
  - 0
174
172
  - 9
175
173
  version: "0.9"
174
+ prerelease: false
176
175
  type: :development
177
- version_requirements: *id009
176
+ name: rake
177
+ requirement: *id009
178
178
  - !ruby/object:Gem::Dependency
179
- name: rspec
180
- prerelease: false
181
- requirement: &id010 !ruby/object:Gem::Requirement
179
+ version_requirements: &id010 !ruby/object:Gem::Requirement
182
180
  none: false
183
181
  requirements:
184
182
  - - ~>
@@ -188,12 +186,12 @@ dependencies:
188
186
  - 2
189
187
  - 11
190
188
  version: "2.11"
189
+ prerelease: false
191
190
  type: :development
192
- version_requirements: *id010
191
+ name: rspec
192
+ requirement: *id010
193
193
  - !ruby/object:Gem::Dependency
194
- name: webmock
195
- prerelease: false
196
- requirement: &id011 !ruby/object:Gem::Requirement
194
+ version_requirements: &id011 !ruby/object:Gem::Requirement
197
195
  none: false
198
196
  requirements:
199
197
  - - ~>
@@ -203,12 +201,12 @@ dependencies:
203
201
  - 1
204
202
  - 9
205
203
  version: "1.9"
204
+ prerelease: false
206
205
  type: :development
207
- version_requirements: *id011
206
+ name: webmock
207
+ requirement: *id011
208
208
  - !ruby/object:Gem::Dependency
209
- name: rr
210
- prerelease: false
211
- requirement: &id012 !ruby/object:Gem::Requirement
209
+ version_requirements: &id012 !ruby/object:Gem::Requirement
212
210
  none: false
213
211
  requirements:
214
212
  - - ~>
@@ -218,8 +216,10 @@ dependencies:
218
216
  - 1
219
217
  - 0
220
218
  version: "1.0"
219
+ prerelease: false
221
220
  type: :development
222
- version_requirements: *id012
221
+ name: rr
222
+ requirement: *id012
223
223
  description:
224
224
  email:
225
225
  - vcap-dev@googlegroups.com