appfog-vmc-plugin 0.1.2 → 0.1.3
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.
- checksums.yaml +8 -8
- data/lib/appfog-vmc-plugin/cfoundry/baseclient.rb +29 -0
- data/lib/appfog-vmc-plugin/cfoundry/v1/client.rb +1 -1
- data/lib/appfog-vmc-plugin/cfoundry.rb +1 -1
- data/lib/appfog-vmc-plugin/commands/export.rb +1 -1
- data/lib/appfog-vmc-plugin/commands/import.rb +1 -1
- data/lib/appfog-vmc-plugin/commands/map.rb +30 -0
- data/lib/appfog-vmc-plugin/commands/unmap.rb +45 -0
- data/lib/appfog-vmc-plugin/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
N2Y0N2M1MGVlNzMyNWUzYjM3YzI2ZDJkNzdlZjYxZTkwZTU4MzlmMA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzA3ODY0MDEzODJkZWMxNmU3MGU3ZWExZjQwMGMxZTE3ZjZlYjkyYQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODQyOWUwOTIxYTI5MzU1OWY1NmVhNjQwNWVkMzNkMTczYjU4M2U1ZjgwZjAy
|
10
|
+
NDZhN2FiN2EzY2U4YzhkYWY3MTMwYjZiMGI5MmY0NTIzNmI5MmI2Njc3OWRj
|
11
|
+
NTkzZjdiNWUxZTViNjViNjE1MGYxN2UyOWUyOTUyOTljZDkzNWM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjRlOTExOTZlNzBiNDg0ZmM1NjBkZDk0ZTg4MTllNjhmYzU4OWUzOWFiZDgw
|
14
|
+
ZjA5NzdlNTY0MDE5ZTMyYjE0MjA5NjJmNGJmZjQwY2JhMTQ3OGQ4ZmFlNzZl
|
15
|
+
MzkzZDFjNTZkOTJjZWUwZjM4YTE1OGZiMWZiYmM1YTU1NDYzNWI=
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module CFoundry
|
2
|
+
class BaseClient
|
3
|
+
def get(*args)
|
4
|
+
options = args.reduce({}) do |opts, arg|
|
5
|
+
arg.is_a?(Hash) ? arg : opts
|
6
|
+
end
|
7
|
+
tries = options.has_key?(:retry) && options[:retry] == false ? 1 : 3
|
8
|
+
delay = options.has_key?(:delay) ? options[:delay] : 10
|
9
|
+
with_retry(tries, delay, [CFoundry::TargetRefused, CFoundry::BadResponse]) do
|
10
|
+
request("GET", *args)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def with_retry(tries, delay=2, exceptions=[])
|
15
|
+
try_count = 0
|
16
|
+
loop do
|
17
|
+
begin
|
18
|
+
try_count += 1
|
19
|
+
return yield
|
20
|
+
rescue Exception => e
|
21
|
+
if try_count > tries || !exceptions.include?(e.class)
|
22
|
+
raise e
|
23
|
+
end
|
24
|
+
sleep delay * try_count
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -74,7 +74,7 @@ module CFoundry::V1
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def export_service(service_name)
|
77
|
-
@base.get("services", "export", service_name, :accept => :json)
|
77
|
+
@base.get("services", "export", service_name, :accept => :json, :retry => false)
|
78
78
|
end
|
79
79
|
|
80
80
|
def import_service(service_name, uri)
|
@@ -5,7 +5,7 @@ module VMCAppfog
|
|
5
5
|
input :service, :desc => "Service to export", :argument => :optional,
|
6
6
|
:from_given => by_name(:service_instance, "service")
|
7
7
|
def export_service
|
8
|
-
service = input[:
|
8
|
+
service = input[:service]
|
9
9
|
|
10
10
|
export_info =
|
11
11
|
with_progress("Exporting service #{c(service.name, :name)}") do
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module VMCAppfog
|
2
|
+
class Map < VMC::CLI
|
3
|
+
def precondition; end
|
4
|
+
|
5
|
+
desc "Add a URL mapping"
|
6
|
+
group :apps, :info
|
7
|
+
input :app, :desc => "Application to add the URL to",
|
8
|
+
:argument => :optional, :from_given => by_name(:app)
|
9
|
+
input :url, :desc => "URL to map", :argument => :optional
|
10
|
+
def map
|
11
|
+
app = input[:app]
|
12
|
+
url = input[:url]
|
13
|
+
|
14
|
+
with_progress("Updating #{c(app.name, :name)}") do
|
15
|
+
app.urls << url
|
16
|
+
app.update!
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def ask_app
|
23
|
+
ask("Which application?", :choices => client.apps, :display => proc(&:name))
|
24
|
+
end
|
25
|
+
|
26
|
+
def ask_url
|
27
|
+
ask("Enter URL?")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module VMCAppfog
|
2
|
+
class Unmap < VMC::CLI
|
3
|
+
desc "Remove a URL mapping"
|
4
|
+
group :apps, :info
|
5
|
+
input :app, :desc => "Application to remove the URL from",
|
6
|
+
:argument => :optional, :from_given => by_name(:app)
|
7
|
+
input :url, :desc => "URL to unmap", :argument => :optional
|
8
|
+
input :all, :desc => "Act on all routes", :type => :boolean
|
9
|
+
def unmap
|
10
|
+
app = input[:app]
|
11
|
+
|
12
|
+
fail "No urls to unmap." if app.urls.empty?
|
13
|
+
|
14
|
+
url = input[:url, (app.urls.map{|url| OpenStruct.new({name: url})})] unless input[:all]
|
15
|
+
if url.is_a? String
|
16
|
+
url = OpenStruct.new({name: url})
|
17
|
+
end
|
18
|
+
|
19
|
+
with_progress("Updating #{c(app.name, :name)}") do |s|
|
20
|
+
if input[:all]
|
21
|
+
app.urls = []
|
22
|
+
else
|
23
|
+
|
24
|
+
simple = url.name.sub(/^https?:\/\/(.*)\/?/i, '\1')
|
25
|
+
|
26
|
+
unless app.urls.delete(simple)
|
27
|
+
fail "URL #{url.name} is not mapped to this application."
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
app.update!
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def ask_app
|
38
|
+
ask("Which application?", :choices => client.apps, :display => proc(&:name))
|
39
|
+
end
|
40
|
+
|
41
|
+
def ask_url(choices)
|
42
|
+
ask("Which URL?", :choices => choices.sort_by(&:name), :display => proc(&:name))
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appfog-vmc-plugin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Santeford
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cfoundry
|
@@ -33,6 +33,7 @@ extensions: []
|
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
35
|
- Rakefile
|
36
|
+
- lib/appfog-vmc-plugin/cfoundry/baseclient.rb
|
36
37
|
- lib/appfog-vmc-plugin/cfoundry/upload_helpers.rb
|
37
38
|
- lib/appfog-vmc-plugin/cfoundry/v1/app.rb
|
38
39
|
- lib/appfog-vmc-plugin/cfoundry/v1/base.rb
|
@@ -48,8 +49,10 @@ files:
|
|
48
49
|
- lib/appfog-vmc-plugin/commands/frameworks.rb
|
49
50
|
- lib/appfog-vmc-plugin/commands/import.rb
|
50
51
|
- lib/appfog-vmc-plugin/commands/infra.rb
|
52
|
+
- lib/appfog-vmc-plugin/commands/map.rb
|
51
53
|
- lib/appfog-vmc-plugin/commands/pull.rb
|
52
54
|
- lib/appfog-vmc-plugin/commands/runtimes.rb
|
55
|
+
- lib/appfog-vmc-plugin/commands/unmap.rb
|
53
56
|
- lib/appfog-vmc-plugin/deprecated/env.rb
|
54
57
|
- lib/appfog-vmc-plugin/deprecated/mem.rb
|
55
58
|
- lib/appfog-vmc-plugin/help.rb
|