vmc 0.5.0 → 0.5.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -48,54 +48,4 @@ namespace :deploy do
48
48
  sh "git push origin :latest-release"
49
49
  sh "git push origin latest-release"
50
50
  end
51
-
52
- task :release do
53
- version = CURRENT_VERSION.sub(/\.rc\d+/, "")
54
-
55
- prereleases = SPEC.runtime_dependencies.select(&:prerelease?)
56
- unless prereleases.empty?
57
- puts "The following dependencies must be released:"
58
- prereleases.each do |pre|
59
- puts "- #{pre.name}"
60
- end
61
-
62
- puts ""
63
-
64
- raise
65
- end
66
-
67
- # grab the last release candidate
68
- sh "git checkout latest-release -b release-v#{version}"
69
-
70
- # update the version
71
- sh "gem bump --version #{version}"
72
-
73
- # switch to master
74
- sh "git checkout master"
75
-
76
- # merge the new version number back into master
77
- sh "git merge release-v#{version}"
78
-
79
- # apply tags
80
- sh "git tag -f v#{version}"
81
- sh "git tag -f latest-release"
82
- sh "git tag -f latest-stable"
83
- sh "git push origin master"
84
- sh "git push origin :latest-release 2> /dev/null || exit 0"
85
- sh "git push origin :latest-stable 2> /dev/null || exit 0"
86
- sh "git push origin latest-release"
87
- sh "git push origin latest-stable"
88
- sh "git push origin v#{version}"
89
-
90
- # check out the release tag
91
- sh "git checkout latest-stable"
92
-
93
- # build the gem and push the gem to rubygems
94
- sh "rm -f *.gem"
95
- sh "gem build *.gemspec"
96
- sh "gem push *.gem"
97
- sh "rm -f *.gem"
98
-
99
- puts "You are now on the latest-release tag. You'll have to switch back to your working branch."
100
- end
101
51
  end
@@ -33,13 +33,21 @@ module VMC
33
33
 
34
34
  def memory_choices(exclude = 0)
35
35
  info = client.info
36
- used = info[:usage][:memory]
36
+
37
+ usage = info[:usage]
37
38
  limit = info[:limits][:memory]
38
- available = limit - used + exclude
39
+
40
+ ceiling =
41
+ if usage
42
+ used = usage[:memory]
43
+ limit - used + exclude
44
+ else
45
+ limit
46
+ end
39
47
 
40
48
  mem = 64
41
49
  choices = []
42
- until mem > available
50
+ until mem > ceiling
43
51
  choices << human_mb(mem)
44
52
  mem *= 2
45
53
  end
@@ -68,7 +68,11 @@ module VMC::App
68
68
 
69
69
  with_progress("Creating #{c(app.name, :name)}") do
70
70
  wrap_message_format_errors do
71
- app.create!
71
+ begin
72
+ app.create!
73
+ rescue CFoundry::NotAuthorized
74
+ fail "You need the Project Developer role in #{b(client.current_space.name)} to push."
75
+ end
72
76
  end
73
77
  end
74
78
 
@@ -65,13 +65,13 @@ module VMC::App
65
65
  # set app debug mode, ensuring it's valid, and shutting it down
66
66
  def switch_mode(app, mode)
67
67
  mode = nil if mode == "none"
68
- mode = "run" if mode == "debug_mode" # no value given
68
+ mode = "run" if mode == "" # no value given
69
69
 
70
- return false if app.debug_mode == mode
70
+ return false if app.debug == mode
71
71
 
72
72
  if mode.nil?
73
73
  with_progress("Removing debug mode") do
74
- app.debug_mode = nil
74
+ app.debug = nil
75
75
  app.stop! if app.started?
76
76
  end
77
77
 
@@ -79,20 +79,13 @@ module VMC::App
79
79
  end
80
80
 
81
81
  with_progress("Switching mode to #{c(mode, :name)}") do |s|
82
- runtime = client.runtimes.find { |r| r.name == app.runtime.name }
83
- modes = runtime.debug_modes
84
-
85
- if modes.include?(mode)
86
- app.debug_mode = mode
87
- app.stop! if app.started?
88
- else
89
- fail "Unknown mode '#{mode}'; available: #{modes.join ", "}"
90
- end
82
+ app.debug = mode
83
+ app.stop! if app.started?
91
84
  end
92
85
  end
93
86
 
94
87
  def check_application(app)
95
- if app.debug_mode == "suspend"
88
+ if app.debug == "suspend"
96
89
  line "Application is in suspended debugging mode."
97
90
  line "It will wait for you to attach to it before starting."
98
91
  return
@@ -37,32 +37,42 @@ module VMC
37
37
  def select_org(input, info)
38
38
  if input.has?(:organization) || !org_valid?(info[:organization])
39
39
  org = input[:organization]
40
- with_progress("Switching to organization #{c(org.name, :name)}") {} if org
41
- org
40
+ if org
41
+ with_progress("Switching to organization #{c(org.name, :name)}") {}
42
+ client.current_organization = org
43
+ end
44
+ info[:organization] = org ? org.guid : nil
45
+ !!org
42
46
  else
43
- client.current_organization
47
+ info[:organization] = nil
48
+ client.current_organization = nil
49
+ false
44
50
  end
45
51
  end
46
52
 
47
- def select_space(org, input, info, changed_org)
53
+ def select_space(input, info, changed_org)
48
54
  if input.has?(:space) || !space_valid?(info[:space])
49
55
  line if changed_org && !quiet?
50
- space = input[:space, org]
51
- with_progress("Switching to space #{c(space.name, :name)}") {} if space
52
- space
56
+ space = input[:space, client.current_organization]
57
+ if space
58
+ with_progress("Switching to space #{c(space.name, :name)}") {}
59
+ client.current_space = space
60
+ end
61
+ info[:space] = space ? space.guid : nil
53
62
  else
54
- client.current_space
63
+ info[:space] = nil
64
+ client.current_space = nil
55
65
  end
56
66
  end
57
67
 
58
68
  def select_org_and_space(input, info)
59
- org = select_org(input, info)
60
- changed_org = client.current_organization != org
61
- space = select_space(org, input, info, changed_org) if org
62
- info.merge!(
63
- :organization => (org ? org.guid : nil),
64
- :space => (space ? space.guid : nil)
65
- )
69
+ changed_org = select_org(input, info)
70
+ if client.current_organization
71
+ select_space(input, info, changed_org)
72
+ else
73
+ info[:space] = nil
74
+ client.current_space = nil
75
+ end
66
76
  end
67
77
 
68
78
  def org_valid?(guid, user = client.current_user)
data/lib/vmc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module VMC
2
- VERSION = "0.5.0".freeze
2
+ VERSION = "0.5.1.rc1".freeze
3
3
  end
@@ -77,6 +77,27 @@ describe ExpectOutputMatcher, :ruby19 => true do
77
77
  subject.negative_failure_message.should == "expected 'expected_output' to not be printed, but it was. full output:\nactual_output"
78
78
  end
79
79
  end
80
+
81
+ context "when expecting branching output" do
82
+ let(:expected_output) { {
83
+ "expected_output" => proc {},
84
+ "other_expected_output" => proc {}
85
+ } }
86
+
87
+ it "has a correct failure message" do
88
+ run("echo -n actual_output") do |runner|
89
+ subject.matches?(runner)
90
+ subject.failure_message.should == "expected one of 'expected_output', 'other_expected_output' to be printed, but it wasn't. full output:\nactual_output"
91
+ end
92
+ end
93
+
94
+ it "has a correct negative failure message" do
95
+ run("echo -n expected_output") do |runner|
96
+ subject.matches?(runner)
97
+ subject.negative_failure_message.should == "expected 'expected_output' to not be printed, but it was. full output:\nexpected_output"
98
+ end
99
+ end
100
+ end
80
101
  end
81
102
  end
82
103
 
@@ -85,7 +85,7 @@ describe SpeckerRunner, :ruby19 => true do
85
85
 
86
86
  context "expecting multiple branches" do
87
87
  context "and one of them matches" do
88
- it "can be passed a hash of values with callbacks" do
88
+ it "can be passed a hash of values with callbacks, and returns the matched key" do
89
89
  run("echo 1 3") do |runner|
90
90
  branches = {
91
91
  "1" => proc { 1 },
@@ -93,8 +93,18 @@ describe SpeckerRunner, :ruby19 => true do
93
93
  "3" => proc { 3 }
94
94
  }
95
95
 
96
- expect(runner.expect(branches)).to eq 1
97
- expect(runner.expect(branches)).to eq 3
96
+ expect(runner.expect(branches)).to eq "1"
97
+ expect(runner.expect(branches)).to eq "3"
98
+ end
99
+ end
100
+
101
+ it "calls the matched callback" do
102
+ callback = mock!
103
+ run("echo 1 3") do |runner|
104
+ branches = {
105
+ "1" => proc { callback }
106
+ }
107
+ runner.expect(branches)
98
108
  end
99
109
  end
100
110
  end
@@ -0,0 +1,64 @@
1
+ require "spec_helper"
2
+
3
+ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TARGET'] && ENV['VMC_V2_OTHER_TEST_USER']
4
+ describe 'A user logs in and switches spaces, after a different user has logged in', :ruby19 => true do
5
+ include ConsoleAppSpeckerMatchers
6
+
7
+ let(:target) { ENV['VMC_V2_TEST_TARGET'] }
8
+ let(:username) { ENV['VMC_V2_TEST_USER'] }
9
+ let(:password) { ENV['VMC_V2_TEST_PASSWORD'] }
10
+
11
+ let(:second_username) { ENV['VMC_V2_OTHER_TEST_USER'] }
12
+ let(:second_organization) { ENV['VMC_V2_OTHER_TEST_ORGANIZATION'] }
13
+ let(:second_space) { ENV['VMC_V2_OTHER_TEST_SPACE'] }
14
+ let(:second_password) { ENV['VMC_V2_OTHER_TEST_PASSWORD'] || ENV['VMC_V2_TEST_PASSWORD'] }
15
+
16
+ before do
17
+ Interact::Progress::Dots.start!
18
+
19
+ run("#{vmc_bin} target #{target}") do |runner|
20
+ expect(runner).to say "Setting target"
21
+ expect(runner).to say target
22
+ runner.wait_for_exit
23
+ end
24
+
25
+ run("#{vmc_bin} logout") do |runner|
26
+ runner.wait_for_exit
27
+ end
28
+ end
29
+
30
+ after do
31
+ Interact::Progress::Dots.stop!
32
+ end
33
+
34
+ context "when a different user is already logged in" do
35
+ before do
36
+ run("#{vmc_bin} login #{username} --password #{password}") do |runner|
37
+ expect(runner).to say "Authenticating... OK"
38
+
39
+ expect(runner).to say "Switching to organization"
40
+ expect(runner).to say "OK"
41
+
42
+ expect(runner).to say "Space"
43
+ runner.send_keys("1")
44
+
45
+ expect(runner).to say "Switching to space"
46
+ expect(runner).to say "OK"
47
+
48
+ runner.wait_for_exit
49
+ end
50
+ end
51
+
52
+ it "can switch spaces on login" do
53
+ run("#{vmc_bin} login #{second_username} --password #{second_password} --organization #{second_organization} --space #{second_space}") do |runner|
54
+ expect(runner).to say "Authenticating... OK"
55
+ expect(runner).to say "Switching to organization #{second_organization}... OK"
56
+ expect(runner).to say "Switching to space #{second_space}... OK"
57
+ runner.wait_for_exit
58
+ end
59
+ end
60
+ end
61
+ end
62
+ else
63
+ $stderr.puts 'Skipping v2 integration specs; please provide $VMC_V2_TEST_TARGET, $VMC_V2_TEST_USER, $VMC_V2_TEST_PASSWORD, and $VMC_V2_OTHER_TEST_USER'
64
+ end
@@ -121,5 +121,5 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
121
121
  end
122
122
  end
123
123
  else
124
- $stderr.puts 'Skipping integration specs; please provide $VMC_TEST_TARGET, $VMC_TEST_USER, and $VMC_TEST_PASSWORD'
124
+ $stderr.puts 'Skipping v2 integration specs; please provide $VMC_V2_TEST_TARGET, $VMC_V2_TEST_USER, and $VMC_V2_TEST_PASSWORD'
125
125
  end
@@ -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"
19
+ expect(runner).to say /target refused/i
20
20
  runner.wait_for_exit
21
21
  end
22
22
 
@@ -29,4 +29,4 @@ if ENV['VMC_V2_TEST_TARGET']
29
29
  end
30
30
  else
31
31
  $stderr.puts 'Skipping v2 integration specs; please provide $VMC_V2_TEST_TARGET'
32
- end
32
+ end
@@ -11,17 +11,28 @@ module ConsoleAppSpeckerMatchers
11
11
 
12
12
  def matches?(runner)
13
13
  raise InvalidInputError unless runner.respond_to?(:expect)
14
- expected = runner.expect(@expected_output, @timeout)
14
+ @matched = runner.expect(@expected_output, @timeout)
15
15
  @full_output = runner.output
16
- !!expected
16
+ !!@matched
17
17
  end
18
18
 
19
19
  def failure_message
20
- "expected '#{@expected_output}' to be printed, but it wasn't. full output:\n#@full_output"
20
+ if @expected_output.is_a?(Hash)
21
+ expected_keys = @expected_output.keys.map{|key| "'#{key}'"}.join(', ')
22
+ "expected one of #{expected_keys} to be printed, but it wasn't. full output:\n#@full_output"
23
+ else
24
+ "expected '#{@expected_output}' to be printed, but it wasn't. full output:\n#@full_output"
25
+ end
21
26
  end
22
27
 
23
28
  def negative_failure_message
24
- "expected '#{@expected_output}' to not be printed, but it was. full output:\n#@full_output"
29
+ if @expected_output.is_a?(Hash)
30
+ match = @matched
31
+ else
32
+ match = @expected_output
33
+ end
34
+
35
+ "expected '#{match}' to not be printed, but it was. full output:\n#@full_output"
25
36
  end
26
37
  end
27
38
 
@@ -69,6 +69,7 @@ class SpeckerRunner
69
69
  data = expected.first.match(/(#{branch_names})$/)
70
70
  matched = data[1]
71
71
  branches[matched].call
72
+ matched
72
73
  end
73
74
 
74
75
  def numeric_exit_code(status)
@@ -76,4 +77,4 @@ class SpeckerRunner
76
77
  rescue NoMethodError
77
78
  status
78
79
  end
79
- end
80
+ end
@@ -31,7 +31,7 @@ describe VMC::App::Create do
31
31
 
32
32
  let(:path) { "some-path" }
33
33
 
34
- let(:create) do
34
+ subject(:create) do
35
35
  command = Mothership.commands[:push]
36
36
  create = VMC::App::Push.new(command)
37
37
  create.path = path
@@ -295,6 +295,7 @@ describe VMC::App::Create do
295
295
  before { dont_allow_ask }
296
296
 
297
297
  let(:app) { fake(:app, :guid => nil) }
298
+ let(:space) { fake(:space, :name => "some-space") }
298
299
 
299
300
  let(:attributes) do
300
301
  { :name => "some-app",
@@ -307,7 +308,10 @@ describe VMC::App::Create do
307
308
  }
308
309
  end
309
310
 
310
- before { stub(client).app { app } }
311
+ before do
312
+ stub(client).app { app }
313
+ stub(client).current_space { space }
314
+ end
311
315
 
312
316
  subject { create.create_app(attributes) }
313
317
 
@@ -323,6 +327,16 @@ describe VMC::App::Create do
323
327
  end
324
328
  end
325
329
 
330
+ context "when the user does not have permission to create apps" do
331
+ it "fails with a friendly message" do
332
+ stub(app).create! { raise CFoundry::NotAuthorized, "foo" }
333
+
334
+ expect { subject }.to raise_error(
335
+ VMC::UserError,
336
+ "You need the Project Developer role in some-space to push.")
337
+ end
338
+ end
339
+
326
340
  context "with an invalid buildpack" do
327
341
  before do
328
342
  stub(app).create! do
@@ -588,4 +602,32 @@ describe VMC::App::Create do
588
602
  end
589
603
  end
590
604
  end
605
+
606
+ describe '#memory_choices' do
607
+ let(:info) { {} }
608
+
609
+ before do
610
+ stub(client).info { info }
611
+ end
612
+
613
+ context "when the user has usage information" do
614
+ let(:info) do
615
+ { :usage => { :memory => 512 },
616
+ :limits => { :memory => 2048 }
617
+ }
618
+ end
619
+
620
+ it "asks for the memory with the ceiling taking the memory usage into account" do
621
+ expect(subject.memory_choices).to eq(%w[64M 128M 256M 512M 1G])
622
+ end
623
+ end
624
+
625
+ context "when the user does not have usage information" do
626
+ let(:info) { {:limits => { :memory => 2048 } } }
627
+
628
+ it "asks for the memory with the ceiling as their overall limit" do
629
+ expect(subject.memory_choices).to eq(%w[64M 128M 256M 512M 1G 2G])
630
+ end
631
+ end
632
+ end
591
633
  end
@@ -366,4 +366,4 @@ describe VMC::App::Push do
366
366
  subject
367
367
  end
368
368
  end
369
- end
369
+ end
@@ -98,6 +98,8 @@ command VMC::App::Start do
98
98
  end
99
99
  end
100
100
 
101
+ let(:log_url) { nil }
102
+
101
103
  before do
102
104
  stub(app).invalidate!
103
105
  stub(app).instances do
@@ -164,5 +166,43 @@ command VMC::App::Start do
164
166
  it_does_not_print_log_progress
165
167
  it_waits_for_application_to_become_healthy
166
168
  end
169
+
170
+ context "when a debug mode is given" do
171
+ let(:mode) { "foo" }
172
+
173
+ subject { vmc %W[start #{app.name} -d #{mode}] }
174
+
175
+ context "and the debug mode is different from the one already set" do
176
+ it "starts the app with the given debug mode" do
177
+ expect { subject }.to change { app.debug }.from(nil).to("foo")
178
+ end
179
+ end
180
+
181
+ context "and the debug mode is the same as the one already set" do
182
+ let(:app) { fake :app, :debug => "foo" }
183
+
184
+ it "does not set the debug mode to anything different" do
185
+ dont_allow(app).debug = anything
186
+ subject
187
+ end
188
+ end
189
+
190
+ context "and the mode is given as 'none'" do
191
+ let(:app) { fake :app, :debug => "foo" }
192
+ let(:mode) { "none" }
193
+
194
+ it "removes the debug mode" do
195
+ expect { subject }.to change { app.debug }.from("foo").to(nil)
196
+ end
197
+ end
198
+
199
+ context "and an empty mode is given" do
200
+ let(:mode) { "" }
201
+
202
+ it "sets debug to 'run'" do
203
+ expect { subject }.to change { app.debug }.from(nil).to("run")
204
+ end
205
+ end
206
+ end
167
207
  end
168
208
  end
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmc
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
5
- prerelease:
4
+ hash: 2761529585
5
+ prerelease: 6
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 0
10
- version: 0.5.0
9
+ - 1
10
+ - rc
11
+ - 1
12
+ version: 0.5.1.rc1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Cloud Foundry Team
@@ -16,10 +18,12 @@ autorequire:
16
18
  bindir: bin
17
19
  cert_chain: []
18
20
 
19
- date: 2013-03-05 00:00:00 Z
21
+ date: 2013-03-06 00:00:00 Z
20
22
  dependencies:
21
23
  - !ruby/object:Gem::Dependency
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
+ name: json_pure
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
23
27
  none: false
24
28
  requirements:
25
29
  - - ~>
@@ -29,12 +33,12 @@ dependencies:
29
33
  - 1
30
34
  - 6
31
35
  version: "1.6"
32
- prerelease: false
33
36
  type: :runtime
34
- name: json_pure
35
- requirement: *id001
37
+ version_requirements: *id001
36
38
  - !ruby/object:Gem::Dependency
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ name: multi_json
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
38
42
  none: false
39
43
  requirements:
40
44
  - - ~>
@@ -44,12 +48,12 @@ dependencies:
44
48
  - 1
45
49
  - 3
46
50
  version: "1.3"
47
- prerelease: false
48
51
  type: :runtime
49
- name: multi_json
50
- requirement: *id002
52
+ version_requirements: *id002
51
53
  - !ruby/object:Gem::Dependency
52
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ name: interact
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
53
57
  none: false
54
58
  requirements:
55
59
  - - ~>
@@ -59,28 +63,37 @@ dependencies:
59
63
  - 0
60
64
  - 5
61
65
  version: "0.5"
62
- prerelease: false
63
66
  type: :runtime
64
- name: interact
65
- requirement: *id003
67
+ version_requirements: *id003
66
68
  - !ruby/object:Gem::Dependency
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ name: cfoundry
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
68
72
  none: false
69
73
  requirements:
70
- - - ~>
74
+ - - ">="
71
75
  - !ruby/object:Gem::Version
72
- hash: 15
76
+ hash: 2761529569
73
77
  segments:
74
78
  - 0
75
79
  - 5
76
- - 2
77
- version: 0.5.2
78
- prerelease: false
80
+ - 3
81
+ - rc
82
+ - 1
83
+ version: 0.5.3.rc1
84
+ - - <
85
+ - !ruby/object:Gem::Version
86
+ hash: 7
87
+ segments:
88
+ - 0
89
+ - 6
90
+ version: "0.6"
79
91
  type: :runtime
80
- name: cfoundry
81
- requirement: *id004
92
+ version_requirements: *id004
82
93
  - !ruby/object:Gem::Dependency
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
94
+ name: clouseau
95
+ prerelease: false
96
+ requirement: &id005 !ruby/object:Gem::Requirement
84
97
  none: false
85
98
  requirements:
86
99
  - - ~>
@@ -90,12 +103,12 @@ dependencies:
90
103
  - 0
91
104
  - 0
92
105
  version: "0.0"
93
- prerelease: false
94
106
  type: :runtime
95
- name: clouseau
96
- requirement: *id005
107
+ version_requirements: *id005
97
108
  - !ruby/object:Gem::Dependency
98
- version_requirements: &id006 !ruby/object:Gem::Requirement
109
+ name: mothership
110
+ prerelease: false
111
+ requirement: &id006 !ruby/object:Gem::Requirement
99
112
  none: false
100
113
  requirements:
101
114
  - - ">="
@@ -113,12 +126,12 @@ dependencies:
113
126
  - 1
114
127
  - 0
115
128
  version: "1.0"
116
- prerelease: false
117
129
  type: :runtime
118
- name: mothership
119
- requirement: *id006
130
+ version_requirements: *id006
120
131
  - !ruby/object:Gem::Dependency
121
- version_requirements: &id007 !ruby/object:Gem::Requirement
132
+ name: manifests-vmc-plugin
133
+ prerelease: false
134
+ requirement: &id007 !ruby/object:Gem::Requirement
122
135
  none: false
123
136
  requirements:
124
137
  - - ~>
@@ -129,12 +142,12 @@ dependencies:
129
142
  - 6
130
143
  - 2
131
144
  version: 0.6.2
132
- prerelease: false
133
145
  type: :runtime
134
- name: manifests-vmc-plugin
135
- requirement: *id007
146
+ version_requirements: *id007
136
147
  - !ruby/object:Gem::Dependency
137
- version_requirements: &id008 !ruby/object:Gem::Requirement
148
+ name: tunnel-vmc-plugin
149
+ prerelease: false
150
+ requirement: &id008 !ruby/object:Gem::Requirement
138
151
  none: false
139
152
  requirements:
140
153
  - - ~>
@@ -145,12 +158,12 @@ dependencies:
145
158
  - 2
146
159
  - 2
147
160
  version: 0.2.2
148
- prerelease: false
149
161
  type: :runtime
150
- name: tunnel-vmc-plugin
151
- requirement: *id008
162
+ version_requirements: *id008
152
163
  - !ruby/object:Gem::Dependency
153
- version_requirements: &id009 !ruby/object:Gem::Requirement
164
+ name: rake
165
+ prerelease: false
166
+ requirement: &id009 !ruby/object:Gem::Requirement
154
167
  none: false
155
168
  requirements:
156
169
  - - ~>
@@ -160,12 +173,12 @@ dependencies:
160
173
  - 0
161
174
  - 9
162
175
  version: "0.9"
163
- prerelease: false
164
176
  type: :development
165
- name: rake
166
- requirement: *id009
177
+ version_requirements: *id009
167
178
  - !ruby/object:Gem::Dependency
168
- version_requirements: &id010 !ruby/object:Gem::Requirement
179
+ name: rspec
180
+ prerelease: false
181
+ requirement: &id010 !ruby/object:Gem::Requirement
169
182
  none: false
170
183
  requirements:
171
184
  - - ~>
@@ -175,12 +188,12 @@ dependencies:
175
188
  - 2
176
189
  - 11
177
190
  version: "2.11"
178
- prerelease: false
179
191
  type: :development
180
- name: rspec
181
- requirement: *id010
192
+ version_requirements: *id010
182
193
  - !ruby/object:Gem::Dependency
183
- version_requirements: &id011 !ruby/object:Gem::Requirement
194
+ name: webmock
195
+ prerelease: false
196
+ requirement: &id011 !ruby/object:Gem::Requirement
184
197
  none: false
185
198
  requirements:
186
199
  - - ~>
@@ -190,12 +203,12 @@ dependencies:
190
203
  - 1
191
204
  - 9
192
205
  version: "1.9"
193
- prerelease: false
194
206
  type: :development
195
- name: webmock
196
- requirement: *id011
207
+ version_requirements: *id011
197
208
  - !ruby/object:Gem::Dependency
198
- version_requirements: &id012 !ruby/object:Gem::Requirement
209
+ name: rr
210
+ prerelease: false
211
+ requirement: &id012 !ruby/object:Gem::Requirement
199
212
  none: false
200
213
  requirements:
201
214
  - - ~>
@@ -205,10 +218,8 @@ dependencies:
205
218
  - 1
206
219
  - 0
207
220
  version: "1.0"
208
- prerelease: false
209
221
  type: :development
210
- name: rr
211
- requirement: *id012
222
+ version_requirements: *id012
212
223
  description:
213
224
  email:
214
225
  - vcap-dev@googlegroups.com
@@ -307,6 +318,7 @@ files:
307
318
  - spec/console_app_specker/specker_runner_spec.rb
308
319
  - spec/features/v1/new_user_flow_spec.rb
309
320
  - spec/features/v2/account_lifecycle_spec.rb
321
+ - spec/features/v2/login_spec.rb
310
322
  - spec/features/v2/push_flow_spec.rb
311
323
  - spec/features/v2/switching_targets_spec.rb
312
324
  - spec/spec_helper.rb
@@ -374,12 +386,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
374
386
  required_rubygems_version: !ruby/object:Gem::Requirement
375
387
  none: false
376
388
  requirements:
377
- - - ">="
389
+ - - ">"
378
390
  - !ruby/object:Gem::Version
379
- hash: 3
391
+ hash: 25
380
392
  segments:
381
- - 0
382
- version: "0"
393
+ - 1
394
+ - 3
395
+ - 1
396
+ version: 1.3.1
383
397
  requirements: []
384
398
 
385
399
  rubyforge_project: vmc
@@ -398,6 +412,7 @@ test_files:
398
412
  - spec/console_app_specker/specker_runner_spec.rb
399
413
  - spec/features/v1/new_user_flow_spec.rb
400
414
  - spec/features/v2/account_lifecycle_spec.rb
415
+ - spec/features/v2/login_spec.rb
401
416
  - spec/features/v2/push_flow_spec.rb
402
417
  - spec/features/v2/switching_targets_spec.rb
403
418
  - spec/spec_helper.rb