vmc 0.4.0.beta.40 → 0.4.0.beta.41

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.
@@ -188,17 +188,18 @@ module VMC
188
188
  app.framework = framework
189
189
  app.runtime = runtime
190
190
 
191
- if framework == "standalone"
192
- app.command = input[:command]
191
+ app.command = input[:command] if framework == "standalone"
193
192
 
194
- if (url = input[:url, "none"]) != "none"
195
- app.urls = [url]
193
+ url =
194
+ if framework == "standalone"
195
+ if (given = input[:url, "none"]) != "none"
196
+ given
197
+ end
196
198
  else
197
- app.urls = []
199
+ input[:url, "#{name}.#{target_base}"]
198
200
  end
199
- else
200
- app.urls = [input[:url, "#{name}.#{target_base}"]]
201
- end
201
+
202
+ app.urls = [url] if url && !v2?
202
203
 
203
204
  app.memory = megabytes(input[:memory, framework, runtime])
204
205
 
@@ -208,6 +209,8 @@ module VMC
208
209
  app.create!
209
210
  end
210
211
 
212
+ invoke :map, :app => app, :url => url if v2?
213
+
211
214
  bindings = []
212
215
 
213
216
  if input[:create_services] && !force?
@@ -606,17 +609,41 @@ module VMC
606
609
  :desc => "Application to add the URL to",
607
610
  :from_given => by_name("app")
608
611
  input :url, :argument => true,
609
- :desc => "URL to route"
612
+ :desc => "URL to map to the application"
610
613
  def map
611
- no_v2
612
-
613
614
  app = input[:app]
614
615
 
615
616
  simple = input[:url].sub(/^https?:\/\/(.*)\/?/i, '\1')
616
617
 
617
- with_progress("Updating #{c(app.name, :name)}") do
618
- app.urls << simple
619
- app.update!
618
+ if v2?
619
+ host, domain_name = simple.split(".", 2)
620
+
621
+ route = client.routes.find { |r|
622
+ r.host == host && r.domain.name == domain_name
623
+ }
624
+
625
+ unless route
626
+ domain = client.domain_by_name(domain_name)
627
+ fail "Invalid domain '#{domain_name}'" unless domain
628
+
629
+ route = client.route
630
+
631
+ with_progress("Creating route #{c(simple, :name)}") do
632
+ route.host = host
633
+ route.domain = domain
634
+ route.organization = client.current_organization
635
+ route.create!
636
+ end
637
+ end
638
+
639
+ with_progress("Binding #{c(simple, :name)} to #{c(app.name, :name)}") do
640
+ app.add_route(route)
641
+ end
642
+ else
643
+ with_progress("Updating #{c(app.name, :name)}") do
644
+ app.urls << simple
645
+ app.update!
646
+ end
620
647
  end
621
648
  end
622
649
 
@@ -630,22 +657,34 @@ module VMC
630
657
  ask("Which URL?", :choices => choices)
631
658
  }
632
659
  def unmap
633
- no_v2
634
-
635
660
  app = input[:app]
636
661
  url = input[:url, app.urls]
637
662
 
638
663
  simple = url.sub(/^https?:\/\/(.*)\/?/i, '\1')
639
664
 
640
- with_progress("Updating #{c(app.name, :name)}") do |s|
641
- unless app.urls.delete(simple)
642
- s.fail do
643
- err "URL #{url} is not mapped to this application."
644
- return
645
- end
665
+ if v2?
666
+ host, domain_name = simple.split(".", 2)
667
+
668
+ route = app.routes.find do |r|
669
+ r.host == host && r.domain.name == domain_name
646
670
  end
647
671
 
648
- app.update!
672
+ fail "Invalid route '#{simple}'" unless route
673
+
674
+ with_progress("Removing route #{c(simple, :name)}") do
675
+ app.remove_route(route)
676
+ end
677
+ else
678
+ with_progress("Updating #{c(app.name, :name)}") do |s|
679
+ unless app.urls.delete(simple)
680
+ s.fail do
681
+ err "URL #{url} is not mapped to this application."
682
+ return
683
+ end
684
+ end
685
+
686
+ app.update!
687
+ end
649
688
  end
650
689
  end
651
690
 
@@ -782,11 +821,7 @@ module VMC
782
821
 
783
822
  line
784
823
 
785
- if a.urls.empty?
786
- if v2?
787
- line "urls: #{b("#{a.guid}.#{target_base}")}"
788
- end
789
- else
824
+ unless a.urls.empty?
790
825
  line "urls: #{a.urls.collect { |u| b(u) }.join(", ")}"
791
826
  end
792
827
 
@@ -1,3 +1,3 @@
1
1
  module VMC
2
- VERSION = "0.4.0.beta.40"
2
+ VERSION = "0.4.0.beta.41"
3
3
  end
@@ -6,7 +6,7 @@ describe "App#push" do
6
6
  instances = rand(3) + 1
7
7
  framework = client.framework_by_name("sinatra")
8
8
  runtime = client.runtime_by_name("ruby19")
9
- url = "#{name}.fakecloud.com"
9
+ url = "#{name}.vcap.me"
10
10
  memory = sample([64, 128, 256, 512])
11
11
 
12
12
  client.app_by_name(name).should_not be
@@ -41,6 +41,9 @@ describe "App#push" do
41
41
 
42
42
  does("Creating #{name}")
43
43
 
44
+ does("Creating route #{url}")
45
+ does("Binding #{url} to #{name}")
46
+
44
47
  asks("Create services for application?")
45
48
  given("n")
46
49
  has_input(:create_services, false)
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: -2328282212
4
+ hash: -259037938
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
9
  - 0
10
10
  - beta
11
- - 40
12
- version: 0.4.0.beta.40
11
+ - 41
12
+ version: 0.4.0.beta.41
13
13
  platform: ruby
14
14
  authors:
15
15
  - VMware
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-08-30 00:00:00 Z
20
+ date: 2012-08-31 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: json_pure
@@ -249,12 +249,12 @@ dependencies:
249
249
  requirements:
250
250
  - - ~>
251
251
  - !ruby/object:Gem::Version
252
- hash: 39
252
+ hash: 37
253
253
  segments:
254
254
  - 0
255
255
  - 3
256
- - 26
257
- version: 0.3.26
256
+ - 27
257
+ version: 0.3.27
258
258
  type: :runtime
259
259
  version_requirements: *id014
260
260
  - !ruby/object:Gem::Dependency