vmc 0.5.0 → 0.5.1.rc1

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
@@ -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