cloudstack-cli 1.0.4 → 1.0.5
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 -6
- data/README.md +1 -1
- data/Rakefile +1 -2
- data/cloudstack-cli.gemspec +1 -1
- data/lib/cloudstack-cli/commands/project.rb +12 -3
- data/lib/cloudstack-cli/commands/router.rb +31 -16
- 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: 0e275c44c299b822462e77ba0d69ea939587ba99
|
4
|
+
data.tar.gz: 16635f34c875017d6c27c4a1ebd9be6a7c915c9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4463ce0856dff7467b679260510438122d4ddc170024341e4c735d34fda447fde6ec70f6445fd144459bda487ef0f19ed50a9bf8f66e23780b87bfa02eb43bdf
|
7
|
+
data.tar.gz: 1a0ea872edcbc76720cd98f510a43452a4fce2ad4598a0a207f449707da7bafd0849b79cc3cbbbb51b625a8d4588c61e96c7189f6830487d41ca0ce71e5ae386
|
data/Gemfile.lock
CHANGED
@@ -1,24 +1,22 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cloudstack-cli (1.0.
|
5
|
-
cloudstack_client (~> 1.0.
|
4
|
+
cloudstack-cli (1.0.5)
|
5
|
+
cloudstack_client (~> 1.0.4)
|
6
6
|
thor (~> 0.19.1)
|
7
7
|
|
8
8
|
PATH
|
9
9
|
remote: ../cloudstack_client/
|
10
10
|
specs:
|
11
|
-
cloudstack_client (1.0.
|
11
|
+
cloudstack_client (1.0.4)
|
12
12
|
msgpack (~> 0.5.11)
|
13
13
|
|
14
14
|
GEM
|
15
15
|
remote: https://rubygems.org/
|
16
16
|
specs:
|
17
|
-
json (1.8.3)
|
18
17
|
msgpack (0.5.12)
|
19
18
|
rake (10.4.2)
|
20
19
|
rdoc (4.2.0)
|
21
|
-
json (~> 1.4)
|
22
20
|
thor (0.19.1)
|
23
21
|
|
24
22
|
PLATFORMS
|
@@ -31,4 +29,4 @@ DEPENDENCIES
|
|
31
29
|
rdoc (~> 4.2)
|
32
30
|
|
33
31
|
BUNDLED WITH
|
34
|
-
1.10.
|
32
|
+
1.10.5
|
data/README.md
CHANGED
@@ -71,7 +71,7 @@ Bootsraps a server using a template and creating port-forwarding rules for port
|
|
71
71
|
$ cloudstack-cli server create server-01 --template CentOS-6.4-x64-v1.4 --zone DC1 --offering 1cpu_1gb --port-rules :22 :80
|
72
72
|
```
|
73
73
|
|
74
|
-
### Example: Run
|
74
|
+
### Example: Run any custom API command
|
75
75
|
|
76
76
|
Run the "listAlerts" command against the Cloudstack API with an argument of type=8:
|
77
77
|
|
data/Rakefile
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
require
|
2
|
-
Bundler::GemHelper.install_tasks
|
1
|
+
require "bundler/gem_tasks"
|
data/cloudstack-cli.gemspec
CHANGED
@@ -13,14 +13,23 @@ class Project < CloudstackCli::Base
|
|
13
13
|
end
|
14
14
|
|
15
15
|
desc "list", "list projects"
|
16
|
+
option :domain, desc: "List only resources belonging to the domain specified"
|
16
17
|
def list
|
17
|
-
|
18
|
+
resolve_domain
|
19
|
+
projects = client.list_projects(options.merge listall: true)
|
18
20
|
if projects.size < 1
|
19
21
|
puts "No projects found."
|
20
22
|
else
|
21
|
-
table = [
|
23
|
+
table = [%w(Name Displaytext VMs CPU Memory Domain)]
|
22
24
|
projects.each do |project|
|
23
|
-
table << [
|
25
|
+
table << [
|
26
|
+
project['name'],
|
27
|
+
project['displaytext'],
|
28
|
+
project['vmtotal'],
|
29
|
+
project['cputotal'],
|
30
|
+
project['memorytotal'] / 1024,
|
31
|
+
project['domain']
|
32
|
+
]
|
24
33
|
end
|
25
34
|
print_table(table)
|
26
35
|
say "Total number of projects: #{projects.count}"
|
@@ -8,7 +8,6 @@ class Router < CloudstackCli::Base
|
|
8
8
|
option :redundant_state, desc: "the state of redundant virtual router",
|
9
9
|
enum: %w(master backup fault unknown)
|
10
10
|
option :listall, type: :boolean, desc: "list all routers", default: true
|
11
|
-
option :showid, type: :boolean, desc: "display the router ID"
|
12
11
|
option :reverse, type: :boolean, default: false, desc: "reverse listing of routers"
|
13
12
|
option :command,
|
14
13
|
desc: "command to execute for each router",
|
@@ -17,6 +16,8 @@ class Router < CloudstackCli::Base
|
|
17
16
|
desc: "number of concurrent command to execute"
|
18
17
|
option :format, default: "table",
|
19
18
|
enum: %w(table json yaml)
|
19
|
+
option :showid, type: :boolean, desc: "display the router ID"
|
20
|
+
option :verbose, aliases: '-V', desc: "display additional fields"
|
20
21
|
def list
|
21
22
|
resolve_project
|
22
23
|
resolve_zone
|
@@ -24,7 +25,8 @@ class Router < CloudstackCli::Base
|
|
24
25
|
|
25
26
|
routers = client.list_routers(options)
|
26
27
|
|
27
|
-
|
28
|
+
# show all routers unless project or account is set
|
29
|
+
if options[:listall] && !options[:project] && !options[:account]
|
28
30
|
client.list_projects(listall: true).each do |project|
|
29
31
|
routers = routers + client.list_routers(
|
30
32
|
options.merge(projectid: project['id'])
|
@@ -33,7 +35,11 @@ class Router < CloudstackCli::Base
|
|
33
35
|
end
|
34
36
|
|
35
37
|
if options[:redundant_state]
|
36
|
-
routers = filter_by(
|
38
|
+
routers = filter_by(
|
39
|
+
routers,
|
40
|
+
'redundantstate',
|
41
|
+
options[:redundant_state].downcase
|
42
|
+
)
|
37
43
|
end
|
38
44
|
|
39
45
|
routers.reverse! if options[:reverse]
|
@@ -52,7 +58,6 @@ class Router < CloudstackCli::Base
|
|
52
58
|
enum: %w(table json yaml)
|
53
59
|
def list_from_file(file)
|
54
60
|
routers = parse_file(file)["routers"]
|
55
|
-
|
56
61
|
routers.reverse! if options[:reverse]
|
57
62
|
print_routers(routers, options)
|
58
63
|
execute_router_commands(options[:command].downcase, routers) if options[:command]
|
@@ -154,24 +159,30 @@ class Router < CloudstackCli::Base
|
|
154
159
|
say JSON.pretty_generate(routers: routers)
|
155
160
|
else
|
156
161
|
table = [%w(
|
157
|
-
|
162
|
+
Name Zone Account/Project IP Linklocal-IP Status
|
158
163
|
)]
|
159
|
-
table[0].
|
164
|
+
table[0].unshift('ID') if options[:showid]
|
165
|
+
if options[:verbose]
|
166
|
+
table[0].push('Redundant-State', 'Requ-Upgrade', 'Version', 'Offering')
|
167
|
+
end
|
160
168
|
routers.each do |router|
|
161
169
|
table << [
|
162
|
-
router["id"],
|
163
170
|
router["name"],
|
164
171
|
router["zonename"],
|
165
|
-
router["account"],
|
166
|
-
router["
|
167
|
-
router["
|
168
|
-
router["
|
169
|
-
router["linklocalip"],
|
170
|
-
router["state"],
|
171
|
-
router["isredundantrouter"],
|
172
|
-
router["serviceofferingname"]
|
172
|
+
router["project"] || router["account"],
|
173
|
+
router["nic"] && router["nic"].first ? router["nic"].first['ipaddress'] : "-",
|
174
|
+
router["linklocalip"] || "-",
|
175
|
+
router["state"]
|
173
176
|
]
|
174
|
-
table[-1].
|
177
|
+
table[-1].unshift(router["id"]) if options[:showid]
|
178
|
+
if options[:verbose]
|
179
|
+
table[-1].push(
|
180
|
+
print_redundant_state(router),
|
181
|
+
router["requiresupgrade"] || "-",
|
182
|
+
router["version"] || "-",
|
183
|
+
router["serviceofferingname"]
|
184
|
+
)
|
185
|
+
end
|
175
186
|
end
|
176
187
|
print_table table
|
177
188
|
puts
|
@@ -180,6 +191,10 @@ class Router < CloudstackCli::Base
|
|
180
191
|
end
|
181
192
|
end
|
182
193
|
|
194
|
+
def print_redundant_state(router)
|
195
|
+
router["isredundantrouter"] == "true" ? router["redundantstate"] : "non-redundant"
|
196
|
+
end
|
197
|
+
|
183
198
|
def execute_router_commands(command, routers)
|
184
199
|
unless %w(start stop reboot).include?(command)
|
185
200
|
say "\nCommand #{options[:command]} not supported.", :red
|
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: 1.0.
|
4
|
+
version: 1.0.5
|
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-
|
11
|
+
date: 2015-08-13 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: 1.0.
|
61
|
+
version: 1.0.4
|
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: 1.0.
|
68
|
+
version: 1.0.4
|
69
69
|
description: cloudstack-cli is a CloudStack API command line client written in Ruby.
|
70
70
|
email:
|
71
71
|
- nik.wolfgramm@gmail.com
|