cloudstack-cli 0.14.0 → 0.14.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -4
- data/cloudstack-cli.gemspec +1 -1
- data/lib/cloudstack-cli/cli.rb +1 -0
- data/lib/cloudstack-cli/commands/project.rb +25 -0
- data/lib/cloudstack-cli/commands/server.rb +9 -5
- data/lib/cloudstack-cli/commands/system_vm.rb +43 -8
- data/lib/cloudstack-cli/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4992b15860eda6fbefe75457c67366290a0b7301
|
4
|
+
data.tar.gz: bb3848d8d6b67d3cddadb12391d70783f2077846
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51f6c75a86c111e6e26665d534d2ccffb4122e3bae46d956084ef61392389f99dbab757c7dfc048b5bcda9c4eb9e0eabd9f6374e2fb672dd99f4080bcdeeffe6
|
7
|
+
data.tar.gz: 96bee024c0ba4af985cb9508bf8525dfabfd0092667630a5bc70f2cb3117c9b4010d01a1974b384a2b5aea5f6fcd9da4241249ea3648ad0787f1fe9e5cc07d49
|
data/Gemfile.lock
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git@github.com:niwo/cloudstack_client.git
|
3
|
-
revision:
|
3
|
+
revision: f4aa35073e82129aa27600cef0987254d2453259
|
4
4
|
branch: master
|
5
5
|
specs:
|
6
|
-
cloudstack_client (0.9.
|
6
|
+
cloudstack_client (0.9.7)
|
7
7
|
|
8
8
|
PATH
|
9
9
|
remote: .
|
10
10
|
specs:
|
11
|
-
cloudstack-cli (0.14.
|
12
|
-
cloudstack_client (~> 0.9.
|
11
|
+
cloudstack-cli (0.14.1)
|
12
|
+
cloudstack_client (~> 0.9.7)
|
13
13
|
thor (~> 0.19.1)
|
14
14
|
|
15
15
|
GEM
|
data/cloudstack-cli.gemspec
CHANGED
data/lib/cloudstack-cli/cli.rb
CHANGED
@@ -20,6 +20,7 @@ module CloudstackCli
|
|
20
20
|
desc "version", "Print cloudstack-cli version number"
|
21
21
|
def version
|
22
22
|
say "cloudstack-cli version #{CloudstackCli::VERSION}"
|
23
|
+
say " (cloudstack_client version #{CloudstackClient::VERSION})"
|
23
24
|
end
|
24
25
|
map %w(-v --version) => :version
|
25
26
|
|
@@ -27,4 +27,29 @@ class Project < CloudstackCli::Base
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
desc "list_accounts PROJECT_NAME", "show accounts belonging to a project"
|
31
|
+
def list_accounts(name)
|
32
|
+
unless project = client.get_project(name)
|
33
|
+
say "No project with name #{name} found."
|
34
|
+
else
|
35
|
+
accounts = client.list_project_accounts(project['id'], options)
|
36
|
+
if accounts.size < 1
|
37
|
+
say "No project accounts found."
|
38
|
+
else
|
39
|
+
table = [%w(Name Type Domain State)]
|
40
|
+
accounts.each do |account|
|
41
|
+
table << [
|
42
|
+
account['name'],
|
43
|
+
TYPES[account['accounttype']],
|
44
|
+
account['domain'],
|
45
|
+
account['state']
|
46
|
+
]
|
47
|
+
end
|
48
|
+
print_table table
|
49
|
+
say "Total number of project accounts: #{accounts.size}"
|
50
|
+
print_table table
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
30
55
|
end
|
@@ -40,7 +40,6 @@ class Server < CloudstackCli::Base
|
|
40
40
|
say "Total number of servers: #{servers.count}"
|
41
41
|
|
42
42
|
if options[:command]
|
43
|
-
args = { project_id: project_id, sync: true, account: options[:account] }
|
44
43
|
command = options[:command].downcase
|
45
44
|
unless %w(start stop reboot).include?(command)
|
46
45
|
say "\nCommand #{options[:command]} not supported.", :red
|
@@ -49,7 +48,12 @@ class Server < CloudstackCli::Base
|
|
49
48
|
exit unless yes?("\n#{command.capitalize} the server(s) above? [y/N]:", :magenta)
|
50
49
|
servers.each_slice(options[:concurrency]) do | batch |
|
51
50
|
jobs = batch.map do |server|
|
52
|
-
|
51
|
+
args = { sync: true, account: server['account'] }
|
52
|
+
args[:project_id] = server['projectid'] if server['projectid']
|
53
|
+
{
|
54
|
+
id: client.send("#{command}_server", server['name'], args)['jobid'],
|
55
|
+
name: "#{command.capitalize} server #{server['name']}"
|
56
|
+
}
|
53
57
|
end
|
54
58
|
puts
|
55
59
|
watch_jobs(jobs)
|
@@ -173,16 +177,16 @@ class Server < CloudstackCli::Base
|
|
173
177
|
option :account
|
174
178
|
def start(name)
|
175
179
|
options[:project_id] = find_project['id'] if options[:project]
|
176
|
-
say("
|
180
|
+
say("Starting server #{name}", :magenta)
|
177
181
|
client.start_server(name, options)
|
178
182
|
puts
|
179
183
|
end
|
180
184
|
|
181
|
-
desc "
|
185
|
+
desc "reboot NAME", "reboot a server"
|
182
186
|
option :project
|
183
187
|
option :account
|
184
188
|
option :force
|
185
|
-
def
|
189
|
+
def reboot(name)
|
186
190
|
options[:project_id] = find_project['id'] if options[:project]
|
187
191
|
exit unless options[:force] || yes?("Reboot server #{name}? [y/N]:", :magenta)
|
188
192
|
client.reboot_server(name, options)
|
@@ -3,10 +3,12 @@ class SystemVm < CloudstackCli::Base
|
|
3
3
|
desc 'list', 'list system VMs'
|
4
4
|
option :zone, desc: "the name of the availability zone"
|
5
5
|
option :state, desc: "state of the system VM"
|
6
|
+
option :type, desc: "the system VM type.",
|
7
|
+
enum: %w(consoleproxy secondarystoragevm)
|
6
8
|
def list
|
7
9
|
vms = client.list_system_vms(options)
|
8
10
|
if vms.size < 1
|
9
|
-
say "No system
|
11
|
+
say "No system VM's found."
|
10
12
|
else
|
11
13
|
table = [["Zone", "State", "Type", "Name"]]
|
12
14
|
vms.each do |vm|
|
@@ -15,17 +17,14 @@ class SystemVm < CloudstackCli::Base
|
|
15
17
|
]
|
16
18
|
end
|
17
19
|
print_table table
|
18
|
-
say "Total number of system
|
20
|
+
say "Total number of system VM's: #{vms.size}"
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
22
|
-
desc 'show
|
23
|
-
option :zone
|
24
|
+
desc 'show NAME', 'show system VM'
|
24
25
|
def show(name)
|
25
|
-
vms = client.list_system_vms
|
26
|
-
|
27
|
-
vm = vms.first
|
28
|
-
unless vm
|
26
|
+
vms = client.list_system_vms
|
27
|
+
unless vm = filter_by(vms, 'name', name).first
|
29
28
|
say "No system vm with name #{name} found."
|
30
29
|
else
|
31
30
|
table = vm.map do |key, value|
|
@@ -35,4 +34,40 @@ class SystemVm < CloudstackCli::Base
|
|
35
34
|
end
|
36
35
|
end
|
37
36
|
|
37
|
+
desc "start NAME", "start a system VM"
|
38
|
+
def start(name)
|
39
|
+
vms = client.list_system_vms
|
40
|
+
unless vm = filter_by(vms, 'name', name).first
|
41
|
+
say "No system vm with name #{name} found."
|
42
|
+
else
|
43
|
+
say("Starting system VM #{name}", :magenta)
|
44
|
+
client.start_system_vm(vm['id'])
|
45
|
+
puts
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
desc "stop NAME", "stop a system VM"
|
50
|
+
def stop(name)
|
51
|
+
vms = client.list_system_vms(options)
|
52
|
+
unless vm = filter_by(vms, 'name', name).first
|
53
|
+
say "No system vm with name #{name} found."
|
54
|
+
else
|
55
|
+
exit unless options[:force] || yes?("Stop system VM #{name}? [y/N]:", :magenta)
|
56
|
+
client.stop_system_vm(vm['id'])
|
57
|
+
puts
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "reboot NAME", "reboot a system VM"
|
62
|
+
def reboot(name)
|
63
|
+
vms = client.list_system_vms(options)
|
64
|
+
unless vm = filter_by(vms, 'name', name).first
|
65
|
+
say "No system vm with name #{name} found."
|
66
|
+
else
|
67
|
+
exit unless options[:force] || yes?("Reboot system VM #{name}? [y/N]:", :magenta)
|
68
|
+
client.reboot_system_vm(vm['id'])
|
69
|
+
puts
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
38
73
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudstack-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nik Wolfgramm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdoc
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.9.
|
61
|
+
version: 0.9.7
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.9.
|
68
|
+
version: 0.9.7
|
69
69
|
description: cloudstack-cli is a CloudStack API command line client written in Ruby.
|
70
70
|
email:
|
71
71
|
- nik.wolfgramm@gmail.com
|