vmc 0.4.7 → 0.5.0.beta.1
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/lib/vmc.rb +1 -2
- data/lib/vmc/cli.rb +33 -31
- data/lib/vmc/cli/app/app.rb +2 -2
- data/lib/vmc/cli/app/apps.rb +4 -5
- data/lib/vmc/cli/app/crashes.rb +2 -3
- data/lib/vmc/cli/app/delete.rb +28 -25
- data/lib/vmc/cli/app/env.rb +11 -19
- data/lib/vmc/cli/app/files.rb +11 -15
- data/lib/vmc/cli/app/health.rb +2 -3
- data/lib/vmc/cli/app/instances.rb +3 -3
- data/lib/vmc/cli/app/logs.rb +7 -10
- data/lib/vmc/cli/app/push.rb +17 -89
- data/lib/vmc/cli/app/push/create.rb +2 -0
- data/lib/vmc/cli/app/rename.rb +17 -13
- data/lib/vmc/cli/app/restart.rb +4 -7
- data/lib/vmc/cli/app/routes.rb +14 -11
- data/lib/vmc/cli/app/scale.rb +17 -15
- data/lib/vmc/cli/app/start.rb +4 -7
- data/lib/vmc/cli/app/stats.rb +2 -3
- data/lib/vmc/cli/app/stop.rb +3 -5
- data/lib/vmc/cli/domain/add_domain.rb +3 -5
- data/lib/vmc/cli/domain/create_domain.rb +5 -8
- data/lib/vmc/cli/domain/delete_domain.rb +23 -18
- data/lib/vmc/cli/domain/domains.rb +4 -7
- data/lib/vmc/cli/domain/remove_domain.rb +12 -10
- data/lib/vmc/cli/organization/org.rb +6 -7
- data/lib/vmc/cli/organization/orgs.rb +19 -19
- data/lib/vmc/cli/organization/rename.rb +18 -14
- data/lib/vmc/cli/route/create_route.rb +20 -13
- data/lib/vmc/cli/route/{delete_route.rb → delete.rb} +22 -17
- data/lib/vmc/cli/service/bind.rb +2 -2
- data/lib/vmc/cli/service/create.rb +57 -53
- data/lib/vmc/cli/service/delete.rb +33 -31
- data/lib/vmc/cli/service/rename.rb +17 -14
- data/lib/vmc/cli/service/service.rb +5 -8
- data/lib/vmc/cli/service/services.rb +14 -18
- data/lib/vmc/cli/service/unbind.rb +4 -4
- data/lib/vmc/cli/space/create.rb +16 -17
- data/lib/vmc/cli/space/delete.rb +34 -31
- data/lib/vmc/cli/space/rename.rb +20 -17
- data/lib/vmc/cli/space/space.rb +11 -14
- data/lib/vmc/cli/space/spaces.rb +14 -16
- data/lib/vmc/cli/space/take.rb +1 -3
- data/lib/vmc/cli/start/base.rb +2 -0
- data/lib/vmc/cli/start/colors.rb +0 -1
- data/lib/vmc/cli/start/info.rb +8 -10
- data/lib/vmc/cli/start/login.rb +11 -40
- data/lib/vmc/cli/start/logout.rb +0 -1
- data/lib/vmc/cli/start/register.rb +18 -12
- data/lib/vmc/cli/start/target.rb +7 -36
- data/lib/vmc/cli/start/target_interactions.rb +3 -1
- data/lib/vmc/cli/start/targets.rb +0 -1
- data/lib/vmc/cli/user/create.rb +4 -2
- data/lib/vmc/version.rb +1 -1
- data/spec/factories/organization_factory.rb +5 -0
- data/spec/factories/space_factory.rb +15 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/vmc/cli/app/push/create_spec.rb +2 -1
- data/spec/vmc/cli/app/push_spec.rb +1 -1
- data/spec/vmc/cli/organization/orgs_spec.rb +119 -0
- data/spec/vmc/cli/route/delete_route_spec.rb +3 -3
- data/spec/vmc/cli/service/bind_spec.rb +34 -0
- data/spec/vmc/cli/service/delete_spec.rb +32 -0
- data/spec/vmc/cli/service/service_spec.rb +32 -0
- data/spec/vmc/cli/service/unbind_spec.rb +34 -0
- data/spec/vmc/cli/space/spaces_spec.rb +120 -0
- data/spec/vmc/cli/start/info_spec.rb +38 -0
- data/spec/vmc/cli/start/login_spec.rb +40 -0
- metadata +127 -113
- data/lib/vmc/cli/organization/create_org.rb +0 -28
- data/lib/vmc/cli/organization/delete_org.rb +0 -65
- data/lib/vmc/cli/service/binding.rb +0 -66
- data/lib/vmc/cli/user.rb +0 -118
@@ -1,24 +1,20 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/service/base"
|
4
2
|
|
5
3
|
module VMC::Service
|
6
4
|
class Services < Base
|
7
|
-
desc "List your service
|
5
|
+
desc "List your service"
|
8
6
|
group :services
|
9
|
-
input :space,
|
10
|
-
|
11
|
-
|
12
|
-
:desc => "Show services in given space"
|
7
|
+
input :space, :desc => "Show services in given space",
|
8
|
+
:from_given => by_name(:space),
|
9
|
+
:default => proc { client.current_space }
|
13
10
|
input :name, :desc => "Filter by name"
|
14
11
|
input :service, :desc => "Filter by service type"
|
15
12
|
input :plan, :desc => "Filter by service plan"
|
16
13
|
input :provider, :desc => "Filter by service provider"
|
17
14
|
input :version, :desc => "Filter by service version"
|
18
15
|
input :app, :desc => "Limit to application's service bindings",
|
19
|
-
|
20
|
-
input :full, :
|
21
|
-
:desc => "Verbose output format"
|
16
|
+
:from_given => by_name(:app)
|
17
|
+
input :full, :desc => "Verbose output format", :default => false
|
22
18
|
def services
|
23
19
|
msg =
|
24
20
|
if space = input[:space]
|
@@ -27,30 +23,30 @@ module VMC::Service
|
|
27
23
|
"Getting services"
|
28
24
|
end
|
29
25
|
|
30
|
-
|
26
|
+
services =
|
31
27
|
with_progress(msg) do
|
32
28
|
client.service_instances(:depth => 2)
|
33
29
|
end
|
34
30
|
|
35
31
|
line unless quiet?
|
36
32
|
|
37
|
-
if
|
33
|
+
if services.empty? and !quiet?
|
38
34
|
line "No services."
|
39
35
|
return
|
40
36
|
end
|
41
37
|
|
42
|
-
|
43
|
-
!
|
38
|
+
services.reject! do |i|
|
39
|
+
!service_matches(i, input)
|
44
40
|
end
|
45
41
|
|
46
42
|
if input[:full]
|
47
|
-
spaced(
|
48
|
-
|
43
|
+
spaced(services) do |s|
|
44
|
+
invoke :service, :service => s
|
49
45
|
end
|
50
46
|
else
|
51
47
|
table(
|
52
48
|
["name", "service", "version", v2? && "plan", v2? && "bound apps"],
|
53
|
-
|
49
|
+
services.collect { |i|
|
54
50
|
if v2?
|
55
51
|
plan = i.service_plan
|
56
52
|
service = plan.service
|
@@ -75,7 +71,7 @@ module VMC::Service
|
|
75
71
|
|
76
72
|
private
|
77
73
|
|
78
|
-
def
|
74
|
+
def service_matches(i, options)
|
79
75
|
if app = options[:app]
|
80
76
|
return false unless app.services.include? i
|
81
77
|
end
|
@@ -3,12 +3,12 @@ require "vmc/detect"
|
|
3
3
|
require "vmc/cli/service/base"
|
4
4
|
|
5
5
|
module VMC::Service
|
6
|
-
class
|
6
|
+
class Unbind < Base
|
7
7
|
desc "Unbind a service from an application"
|
8
8
|
group :services, :manage
|
9
|
-
input :service, :desc => "Service to unbind", :argument =>
|
10
|
-
:from_given => by_name(:
|
11
|
-
input :app, :desc => "Application to unbind from", :argument =>
|
9
|
+
input :service, :desc => "Service to unbind", :argument => :optional,
|
10
|
+
:from_given => by_name(:service_instance, :service)
|
11
|
+
input :app, :desc => "Application to unbind from", :argument => :optional,
|
12
12
|
:from_given => by_name(:app)
|
13
13
|
def unbind_service
|
14
14
|
app = input[:app]
|
data/lib/vmc/cli/space/create.rb
CHANGED
@@ -1,26 +1,19 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/space/base"
|
4
2
|
|
5
3
|
module VMC::Space
|
6
4
|
class Create < Base
|
7
5
|
desc "Create a space in an organization"
|
8
6
|
group :spaces
|
9
|
-
input
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
input :
|
17
|
-
|
18
|
-
input :
|
19
|
-
:desc => "Add current user as manager"
|
20
|
-
input :developer, :type => :boolean, :default => true,
|
21
|
-
:desc => "Add current user as developer"
|
22
|
-
input :auditor, :type => :boolean, :default => false,
|
23
|
-
:desc => "Add current user as auditor"
|
7
|
+
input :name, :desc => "Space name", :argument => :optional
|
8
|
+
input :organization, :desc => "Parent organization",
|
9
|
+
:argument => :optional, :aliases => ["--org", "-o"],
|
10
|
+
:from_given => by_name(:organization),
|
11
|
+
:default => proc { client.current_organization }
|
12
|
+
input :target, :desc => "Switch to the space after creation",
|
13
|
+
:alias => "-t", :default => false
|
14
|
+
input :manager, :desc => "Add yourself as manager", :default => true
|
15
|
+
input :developer, :desc => "Add yourself as developer", :default => true
|
16
|
+
input :auditor, :desc => "Add yourself as auditor", :default => false
|
24
17
|
def create_space
|
25
18
|
space = client.space
|
26
19
|
space.organization = input[:organization]
|
@@ -53,5 +46,11 @@ module VMC::Space
|
|
53
46
|
:space => space
|
54
47
|
end
|
55
48
|
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def ask_name
|
53
|
+
ask("Name")
|
54
|
+
end
|
56
55
|
end
|
57
56
|
end
|
data/lib/vmc/cli/space/delete.rb
CHANGED
@@ -1,33 +1,20 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/space/base"
|
4
2
|
|
5
3
|
module VMC::Space
|
6
4
|
class Delete < Base
|
7
5
|
desc "Delete a space and its contents"
|
8
6
|
group :spaces
|
9
|
-
input
|
10
|
-
:from_given =>
|
11
|
-
:
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
input :
|
19
|
-
|
20
|
-
:default => proc { client.current_organization },
|
21
|
-
:desc => "Space's organization"
|
22
|
-
input(:really, :type => :boolean, :forget => true,
|
23
|
-
:default => proc { force? || interact }) { |space|
|
24
|
-
ask("Really delete #{c(space.name, :name)}?", :default => false)
|
25
|
-
}
|
26
|
-
input(:recursive, :alias => "-r", :type => :boolean, :forget => true) {
|
27
|
-
ask "Delete #{c("EVERYTHING", :bad)}?", :default => false
|
28
|
-
}
|
29
|
-
input :warn, :type => :boolean, :default => true,
|
30
|
-
:desc => "Show warning if it was the last space"
|
7
|
+
input :organization, :desc => "Space's organization",
|
8
|
+
:aliases => ["--org", "-o"], :from_given => by_name(:organization),
|
9
|
+
:default => proc { client.current_organization }
|
10
|
+
input :spaces, :desc => "Spaces to delete", :argument => :splat,
|
11
|
+
:singular => :space, :from_given => space_by_name
|
12
|
+
input :recursive, :desc => "Delete recursively", :alias => "-r",
|
13
|
+
:default => false, :forget => true
|
14
|
+
input :warn, :desc => "Show warning if it was the last space",
|
15
|
+
:default => true
|
16
|
+
input :really, :type => :boolean, :forget => true, :hidden => true,
|
17
|
+
:default => proc { force? || interact }
|
31
18
|
def delete_space
|
32
19
|
org = input[:organization]
|
33
20
|
spaces = input[:spaces, org]
|
@@ -60,19 +47,17 @@ module VMC::Space
|
|
60
47
|
end
|
61
48
|
end
|
62
49
|
|
63
|
-
private
|
64
|
-
|
65
50
|
def clear_space(space)
|
66
51
|
apps = space.apps
|
67
|
-
|
52
|
+
services = space.service_instances
|
68
53
|
|
69
|
-
return true if apps.empty? &&
|
54
|
+
return true if apps.empty? && services.empty?
|
70
55
|
|
71
56
|
unless force?
|
72
57
|
line "This space is not empty!"
|
73
58
|
line
|
74
59
|
line "apps: #{name_list(apps)}"
|
75
|
-
line "service
|
60
|
+
line "service: #{name_list(services)}"
|
76
61
|
line
|
77
62
|
|
78
63
|
return unless input[:recursive]
|
@@ -82,11 +67,29 @@ module VMC::Space
|
|
82
67
|
invoke :delete, :app => a, :really => true
|
83
68
|
end
|
84
69
|
|
85
|
-
|
86
|
-
invoke :delete_service, :
|
70
|
+
services.each do |i|
|
71
|
+
invoke :delete_service, :service => i, :really => true
|
87
72
|
end
|
88
73
|
|
89
74
|
true
|
90
75
|
end
|
76
|
+
|
77
|
+
private
|
78
|
+
|
79
|
+
def ask_spaces(org)
|
80
|
+
spaces = org.spaces
|
81
|
+
fail "No spaces." if spaces.empty?
|
82
|
+
|
83
|
+
[ask("Which space in #{c(org.name, :name)}?", :choices => spaces,
|
84
|
+
:display => proc(&:name))]
|
85
|
+
end
|
86
|
+
|
87
|
+
def ask_really(space)
|
88
|
+
ask("Really delete #{c(space.name, :name)}?", :default => false)
|
89
|
+
end
|
90
|
+
|
91
|
+
def ask_recursive
|
92
|
+
ask "Delete #{c("EVERYTHING", :bad)}?", :default => false
|
93
|
+
end
|
91
94
|
end
|
92
95
|
end
|
data/lib/vmc/cli/space/rename.rb
CHANGED
@@ -1,26 +1,15 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/space/base"
|
4
2
|
|
5
3
|
module VMC::Space
|
6
4
|
class Rename < Base
|
7
5
|
desc "Rename a space"
|
8
6
|
group :spaces, :hidden => true
|
9
|
-
input :organization, :
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
spaces = client.spaces
|
16
|
-
fail "No spaces." if spaces.empty?
|
17
|
-
|
18
|
-
ask("Rename which space?", :choices => spaces.sort_by(&:name),
|
19
|
-
:display => proc(&:name))
|
20
|
-
}
|
21
|
-
input(:name, :argument => :optional, :desc => "New space name") {
|
22
|
-
ask("New name")
|
23
|
-
}
|
7
|
+
input :organization, :desc => "Space's organization",
|
8
|
+
:aliases => ["--org", "-o"], :from_given => by_name(:organization),
|
9
|
+
:default => proc { client.current_organization }
|
10
|
+
input :space, :desc => "Space to rename", :argument => :optional,
|
11
|
+
:from_given => by_name(:space)
|
12
|
+
input :name, :desc => "New space name", :argument => :optional
|
24
13
|
def rename_space
|
25
14
|
org = input[:organization]
|
26
15
|
space = input[:space, org]
|
@@ -32,5 +21,19 @@ module VMC::Space
|
|
32
21
|
space.update!
|
33
22
|
end
|
34
23
|
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def ask_space(org)
|
28
|
+
spaces = org.spaces
|
29
|
+
fail "No spaces." if spaces.empty?
|
30
|
+
|
31
|
+
ask("Rename which space?", :choices => spaces.sort_by(&:name),
|
32
|
+
:display => proc(&:name))
|
33
|
+
end
|
34
|
+
|
35
|
+
def ask_name
|
36
|
+
ask("New name")
|
37
|
+
end
|
35
38
|
end
|
36
39
|
end
|
data/lib/vmc/cli/space/space.rb
CHANGED
@@ -1,21 +1,18 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/space/base"
|
4
2
|
|
5
3
|
module VMC::Space
|
6
4
|
class Space < Base
|
7
5
|
desc "Show space information"
|
8
6
|
group :spaces
|
9
|
-
input :organization, :
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
input :space, :argument => :optional,
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
:desc => "Show full information for apps, service instances, etc."
|
7
|
+
input :organization, :desc => "Space's organization",
|
8
|
+
:aliases => %w{--org -o},
|
9
|
+
:default => proc { client.current_organization },
|
10
|
+
:from_given => by_name(:organization)
|
11
|
+
input :space, :desc => "Space to show", :argument => :optional,
|
12
|
+
:default => proc { client.current_space },
|
13
|
+
:from_given => space_by_name
|
14
|
+
input :full, :desc => "Show full information for apps, services, etc.",
|
15
|
+
:default => false
|
19
16
|
def space
|
20
17
|
org = input[:organization]
|
21
18
|
space = input[:space, org]
|
@@ -51,9 +48,9 @@ module VMC::Space
|
|
51
48
|
if input[:full]
|
52
49
|
line
|
53
50
|
line "services:"
|
54
|
-
spaced(space.service_instances(:depth => 2)) do |
|
51
|
+
spaced(space.service_instances(:depth => 2)) do |s|
|
55
52
|
indented do
|
56
|
-
invoke :service, :
|
53
|
+
invoke :service, :service => s
|
57
54
|
end
|
58
55
|
end
|
59
56
|
else
|
data/lib/vmc/cli/space/spaces.rb
CHANGED
@@ -1,34 +1,36 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/space/base"
|
4
2
|
|
5
3
|
module VMC::Space
|
6
4
|
class Spaces < Base
|
7
5
|
desc "List spaces in an organization"
|
8
6
|
group :spaces
|
9
|
-
input :organization, :
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
input :organization, :desc => "Organization to list spaces from",
|
8
|
+
:aliases => %w{--org -o}, :argument => :optional,
|
9
|
+
:from_given => by_name(:organization),
|
10
|
+
:default => proc { client.current_organization }
|
13
11
|
input :name, :desc => "Filter by name"
|
14
|
-
input :
|
15
|
-
|
16
|
-
input :full, :type => :boolean, :default => false,
|
17
|
-
:desc => "Show full information for apps, service instances, etc."
|
12
|
+
input :full, :desc => "Show full information for apps, services, etc.",
|
13
|
+
:default => false
|
18
14
|
def spaces
|
19
15
|
org = input[:organization]
|
20
16
|
spaces =
|
21
17
|
with_progress("Getting spaces in #{c(org.name, :name)}") do
|
22
|
-
org.spaces(:depth => quiet? ? 0 : 1)
|
18
|
+
org.spaces(:depth => quiet? ? 0 : 1).sort_by(&:name)
|
23
19
|
end
|
24
20
|
|
21
|
+
return if spaces.empty?
|
22
|
+
|
25
23
|
line unless quiet?
|
26
24
|
|
27
25
|
spaces.reject! do |s|
|
28
26
|
!space_matches?(s, input)
|
29
27
|
end
|
30
28
|
|
31
|
-
if input[:
|
29
|
+
if input[:full]
|
30
|
+
spaced(spaces) do |s|
|
31
|
+
invoke :space, :space => s, :full => input[:full]
|
32
|
+
end
|
33
|
+
else
|
32
34
|
table(
|
33
35
|
%w{name apps services},
|
34
36
|
spaces.collect { |s|
|
@@ -37,10 +39,6 @@ module VMC::Space
|
|
37
39
|
name_list(s.service_instances)
|
38
40
|
]
|
39
41
|
})
|
40
|
-
else
|
41
|
-
spaced(spaces) do |s|
|
42
|
-
invoke :space, :space => s, :full => input[:full]
|
43
|
-
end
|
44
42
|
end
|
45
43
|
end
|
46
44
|
|
data/lib/vmc/cli/space/take.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/space/base"
|
4
2
|
|
5
3
|
module VMC::Space
|
6
4
|
class Take < Base
|
7
5
|
desc "Switch to a space, creating it if it doesn't exist"
|
8
6
|
group :spaces, :hidden => true
|
9
|
-
input :name, :
|
7
|
+
input :name, :desc => "Space name", :argument => true
|
10
8
|
def take_space
|
11
9
|
if space = client.space_by_name(input[:name])
|
12
10
|
invoke :target, :space => space
|
data/lib/vmc/cli/start/base.rb
CHANGED
data/lib/vmc/cli/start/colors.rb
CHANGED
data/lib/vmc/cli/start/info.rb
CHANGED
@@ -1,19 +1,17 @@
|
|
1
|
-
require "vmc/detect"
|
2
1
|
require "vmc/cli/start/base"
|
3
2
|
|
4
3
|
module VMC::Start
|
5
4
|
class Info < Base
|
6
5
|
desc "Display information on the current target, user, etc."
|
7
6
|
group :start
|
8
|
-
input :runtimes, :
|
9
|
-
:
|
10
|
-
input :frameworks, :
|
11
|
-
:
|
12
|
-
input :services, :
|
13
|
-
:
|
14
|
-
input :all, :
|
15
|
-
:
|
16
|
-
|
7
|
+
input :runtimes, :desc => "List supported runtimes", :alias => "-r",
|
8
|
+
:default => false
|
9
|
+
input :frameworks, :desc => "List supported frameworks", :alias => "-f",
|
10
|
+
:default => false
|
11
|
+
input :services, :desc => "List supported services", :alias => "-s",
|
12
|
+
:default => false
|
13
|
+
input :all, :desc => "Show all information", :alias => "-a",
|
14
|
+
:default => false
|
17
15
|
def info
|
18
16
|
all = input[:all]
|
19
17
|
|