cloudstack-cli 0.4.3 → 0.5.0

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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/README.md +2 -2
  4. data/cloudstack-cli.gemspec +2 -2
  5. data/lib/cloudstack-cli/cli.rb +6 -24
  6. data/lib/cloudstack-cli/commands/account.rb +1 -1
  7. data/lib/cloudstack-cli/commands/capacity.rb +2 -2
  8. data/lib/cloudstack-cli/commands/cluster.rb +1 -1
  9. data/lib/cloudstack-cli/commands/{offering.rb → compute_offer.rb} +4 -5
  10. data/lib/cloudstack-cli/commands/{disk_offering.rb → disk_offer.rb} +2 -2
  11. data/lib/cloudstack-cli/commands/domain.rb +1 -1
  12. data/lib/cloudstack-cli/commands/environment.rb +22 -0
  13. data/lib/cloudstack-cli/commands/host.rb +1 -1
  14. data/lib/cloudstack-cli/commands/ip_address.rb +2 -2
  15. data/lib/cloudstack-cli/commands/iso.rb +1 -1
  16. data/lib/cloudstack-cli/commands/job.rb +2 -2
  17. data/lib/cloudstack-cli/commands/load_balancer.rb +3 -3
  18. data/lib/cloudstack-cli/commands/network.rb +5 -5
  19. data/lib/cloudstack-cli/commands/physical_network.rb +1 -1
  20. data/lib/cloudstack-cli/commands/pod.rb +1 -1
  21. data/lib/cloudstack-cli/commands/port_rule.rb +2 -2
  22. data/lib/cloudstack-cli/commands/project.rb +2 -2
  23. data/lib/cloudstack-cli/commands/router.rb +5 -5
  24. data/lib/cloudstack-cli/commands/server.rb +39 -11
  25. data/lib/cloudstack-cli/commands/snapshot.rb +1 -1
  26. data/lib/cloudstack-cli/commands/ssh_key_pairs.rb +4 -4
  27. data/lib/cloudstack-cli/commands/stack.rb +1 -1
  28. data/lib/cloudstack-cli/commands/template.rb +1 -1
  29. data/lib/cloudstack-cli/commands/user.rb +1 -1
  30. data/lib/cloudstack-cli/commands/volume.rb +1 -1
  31. data/lib/cloudstack-cli/commands/zone.rb +1 -1
  32. data/lib/cloudstack-cli/version.rb +1 -1
  33. metadata +8 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9319ee3b755b7ea9fcbe25c6bbe17899d8ff621
4
- data.tar.gz: 648484a15d8c0f40ce3788df95002f90d0f7da31
3
+ metadata.gz: 52d453553a4f7b0d1ae7f1d925b4fb684f222d79
4
+ data.tar.gz: 25f406366cacbd8cb6b0c6ac2c7265034b841d0b
5
5
  SHA512:
6
- metadata.gz: a7ff140daeca54c0247daa9ce41f681508fd88d8f57208fcf0a4b9824bf8d3e393a1718e63eb298d5bed1181bfaf367105b238a7ee4144b1500ece2c5ce93621
7
- data.tar.gz: 2a10cee22d9954813912de7b5acead1ad35a9e1f58666afe87ddca33e63ab75b21db19bd968e58354cd13d2b6b615b118212b9144f6c719eb63b37d2dc9b90fd
6
+ metadata.gz: 4406c555844a0ccfac4f8c6240c8d68332f48374b389485c20b822481a41e2ccdead30ff8751a560f0b00af9e0219572548ebd48af53f3686bf9d61e2906a3ad
7
+ data.tar.gz: 0520556e1ba0a2624113019c5dbfcb8e40e9329ef3578063bd41803fec280c5906cbf79c92303455e041a6cc187d362363465f7e0a5a5b1f300b7850aa6ac075
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudstack-cli (0.4.3)
5
- cloudstack_client (~> 0.2.14)
4
+ cloudstack-cli (0.5.0)
5
+ cloudstack_client (~> 0.2.16)
6
6
  thor (~> 0.18.1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- cloudstack_client (0.2.14)
11
+ cloudstack_client (0.2.16)
12
12
  json (1.8.1)
13
13
  rake (10.0.4)
14
14
  rdoc (4.0.1)
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Cloudstack CLI
2
2
 
3
3
  cloudstack-cli is a [CloudStack](http://cloudstack.apache.org/) API client written in Ruby.
4
- cloudstack-cli uses the [cloudstack_client](https://bitbucket.org/swisstxt/cloudstack_client) to talk to the Cloudstack API.
4
+ cloudstack-cli uses the [cloudstack_client](https://github.com/niwo/cloudstack_client) to talk to the Cloudstack API.
5
5
 
6
6
  ## Installation
7
7
 
@@ -120,4 +120,4 @@ Hint: You can watch the status of the command with watch.
120
120
 
121
121
  ## License
122
122
 
123
- Released under the MIT License. See the [LICENSE](https://bitbucket.org/swisstxt/cloudstack-cli/raw/master/LICENSE.txt) file for further details.
123
+ Released under the MIT License. See the [LICENSE](https://raw.github.com/niwo/cloudstack-cli/master/LICENSE.txt) file for further details.
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
10
10
  gem.email = ["nik.wolfgramm@gmail.com"]
11
11
  gem.description = %q{cloudstack-cli is a CloudStack API client written in Ruby.}
12
12
  gem.summary = %q{cloudstack-cli CloudStack API client}
13
- gem.homepage = "https://bitbucket.org/swisstxt/cloudstack-cli"
13
+ gem.homepage = "https://github.com/niwo/cloudstack-cli"
14
14
  gem.license = 'MIT'
15
15
 
16
16
  gem.required_ruby_version = '>= 1.9.3'
@@ -24,5 +24,5 @@ Gem::Specification.new do |gem|
24
24
  gem.add_development_dependency('rake', '~> 10.0.4')
25
25
 
26
26
  gem.add_dependency('thor', '~> 0.18.1')
27
- gem.add_dependency('cloudstack_client', '~> 0.2.14')
27
+ gem.add_dependency('cloudstack_client', '~> 0.2.16')
28
28
  end
@@ -58,26 +58,6 @@ module CloudstackCli
58
58
  File.open(file, 'w+') {|f| f.write(config.to_yaml) }
59
59
  end
60
60
 
61
- desc "environments", "list cloudstack-cli environments"
62
- def environments(file = options[:config])
63
- config = {}
64
- if File.exists? file
65
- begin
66
- config = YAML::load(IO.read(file))
67
- rescue
68
- error "Can't load configuration from file #{config_file}."
69
- exit 1
70
- end
71
- table = [%w(Name URL)]
72
- table << ["default", config[:url]]
73
- config.each_key do |key|
74
- table << [key, config[key][:url]] unless key.class == Symbol
75
- end
76
- print_table table
77
- end
78
- end
79
- map :envs => :environments
80
-
81
61
  desc "command COMMAND [arg1=val1 arg2=val2...]", "run a custom api command"
82
62
  def command(command, *args)
83
63
  params = {'command' => command}
@@ -93,6 +73,8 @@ module CloudstackCli
93
73
  require command
94
74
  end
95
75
 
76
+ map :env => :environment
77
+
96
78
  desc "zone SUBCOMMAND ...ARGS", "Manage zones"
97
79
  subcommand :zone, Zone
98
80
 
@@ -111,11 +93,11 @@ module CloudstackCli
111
93
  desc "server SUBCOMMAND ...ARGS", "Manage servers"
112
94
  subcommand :server, Server
113
95
 
114
- desc "offering SUBCOMMAND ...ARGS", "Manage offerings"
115
- subcommand :offering, Offering
96
+ desc "compute_offer SUBCOMMAND ...ARGS", "Manage offerings"
97
+ subcommand :compute_offer, ComputeOffer
116
98
 
117
- desc "disk_offering SUBCOMMAND ...ARGS", "Manage disk offerings"
118
- subcommand :disk_offering, DiskOffering
99
+ desc "disk_offer SUBCOMMAND ...ARGS", "Manage disk offerings"
100
+ subcommand :disk_offering, DiskOffer
119
101
 
120
102
  desc "network SUBCOMMAND ...ARGS", "Manage networks"
121
103
  subcommand :network, Network
@@ -6,7 +6,7 @@ class Account < CloudstackCli::Base
6
6
  2 => 'admin'
7
7
  }
8
8
 
9
- desc 'account list [NAME]', 'list accounts (by name)'
9
+ desc 'list [NAME]', 'list accounts (by name)'
10
10
  def list(name = nil)
11
11
  accounts = client.list_accounts({name: name})
12
12
  if accounts.size < 1
@@ -12,7 +12,7 @@ class Capacity < CloudstackCli::Base
12
12
  9 => {name: "Local Storage", unit: "TB", divider: 1024.0**4}
13
13
  }
14
14
 
15
- desc "capacity list", "list system capacity"
15
+ desc "list", "list system capacity"
16
16
  option :zone
17
17
  option :type, desc: "specify type, see types for a list of types"
18
18
  def list
@@ -32,7 +32,7 @@ class Capacity < CloudstackCli::Base
32
32
  print_table table
33
33
  end
34
34
 
35
- desc "capacity types", "show capacity types"
35
+ desc "types", "show capacity types"
36
36
  def types
37
37
  table = [['type', 'name']]
38
38
  CAPACITY_TYPES.each_pair do |type, data|
@@ -1,6 +1,6 @@
1
1
  class Cluster < CloudstackCli::Base
2
2
 
3
- desc 'cluster list', 'list clusters'
3
+ desc 'list', 'list clusters'
4
4
  def list
5
5
  clusters = client.list_clusters(options)
6
6
  if clusters.size < 1
@@ -1,6 +1,6 @@
1
- class Offering < CloudstackCli::Base
1
+ class ComputeOffer < CloudstackCli::Base
2
2
 
3
- desc 'offering list', 'list compute offerings'
3
+ desc 'list', 'list compute offerings'
4
4
  option :domain
5
5
  def list
6
6
  offerings = client.list_service_offerings(options[:domain])
@@ -20,7 +20,7 @@ class Offering < CloudstackCli::Base
20
20
  end
21
21
  end
22
22
 
23
- desc 'offering create NAME', 'create offering'
23
+ desc 'create NAME', 'create offering'
24
24
  option :cpunumber, required: true
25
25
  option :cpuspeed, required: true
26
26
  option :displaytext, required: true
@@ -38,8 +38,7 @@ class Offering < CloudstackCli::Base
38
38
  puts "OK" if client.delete_offering(id)
39
39
  end
40
40
 
41
-
42
- desc 'offering sort', 'sort by cpu and memory grouped by domain'
41
+ desc 'sort', 'sort by cpu and memory grouped by domain'
43
42
  def sort
44
43
  offerings = client.list_service_offerings(options[:domain])
45
44
  sortkey = -1
@@ -1,6 +1,6 @@
1
- class DiskOffering < CloudstackCli::Base
1
+ class DiskOffer < CloudstackCli::Base
2
2
 
3
- desc 'disk_offering list', 'list disk offerings'
3
+ desc 'list', 'list disk offerings'
4
4
  option :domain
5
5
  def list
6
6
  offerings = client.list_disk_offerings(options[:domain])
@@ -1,6 +1,6 @@
1
1
  class Domain < CloudstackCli::Base
2
2
 
3
- desc 'domain list [NAME]', 'list domains'
3
+ desc 'list [NAME]', 'list domains'
4
4
  def list(name = nil)
5
5
  domains = client.list_domains(name)
6
6
  if domains.size < 1
@@ -0,0 +1,22 @@
1
+ class Environment < CloudstackCli::Base
2
+
3
+ desc "list", "list cloudstack-cli environments"
4
+ def environments(file = options[:config])
5
+ config = {}
6
+ if File.exists? file
7
+ begin
8
+ config = YAML::load(IO.read(file))
9
+ rescue
10
+ error "Can't load configuration from file #{config_file}."
11
+ exit 1
12
+ end
13
+ table = [%w(Name URL)]
14
+ table << ["default", config[:url]]
15
+ config.each_key do |key|
16
+ table << [key, config[key][:url]] unless key.class == Symbol
17
+ end
18
+ print_table table
19
+ end
20
+ end
21
+
22
+ end
@@ -1,6 +1,6 @@
1
1
  class Host < CloudstackCli::Base
2
2
 
3
- desc 'host list', 'list hosts'
3
+ desc 'list', 'list hosts'
4
4
  option :zone
5
5
  def list
6
6
  hosts = client.list_hosts(options)
@@ -1,6 +1,6 @@
1
1
  class IpAddress < CloudstackCli::Base
2
2
 
3
- desc "ip_address release ID", "release public IP address"
3
+ desc "release ID", "release public IP address"
4
4
  def release(id)
5
5
  say("OK", :green) if client.disassociate_ip_address(id)
6
6
  end
@@ -18,7 +18,7 @@ class IpAddress < CloudstackCli::Base
18
18
  say ip['ipaddress']
19
19
  end
20
20
 
21
- desc "ip_address list", "list public IP address"
21
+ desc "list", "list public IP address"
22
22
  option :project
23
23
  option :account
24
24
  option :listall
@@ -1,6 +1,6 @@
1
1
  class Iso < CloudstackCli::Base
2
2
 
3
- desc 'iso list [TYPE]', "list iso's by type [featured|self|self-executable|executable|community], default is featured"
3
+ desc 'list [TYPE]', "list iso's by type [featured|self|self-executable|executable|community], default is featured"
4
4
  option :project
5
5
  option :zone
6
6
  option :account
@@ -1,6 +1,6 @@
1
1
  class Job < CloudstackCli::Base
2
2
 
3
- desc 'job list', 'list async jobs'
3
+ desc 'list', 'list async jobs'
4
4
  def list
5
5
  jobs = client.list_jobs()
6
6
  if jobs.size < 1
@@ -14,7 +14,7 @@ class Job < CloudstackCli::Base
14
14
  end
15
15
  end
16
16
 
17
- desc 'job query ID', 'query async job'
17
+ desc 'query ID', 'query async job'
18
18
  def query(id)
19
19
  job = client.query_job(id)
20
20
  job.each do |key, value|
@@ -1,6 +1,6 @@
1
1
  class LoadBalancer < CloudstackCli::Base
2
2
 
3
- desc "load_balancer list", "list load balancer rules"
3
+ desc "list", "list load balancer rules"
4
4
  option :project
5
5
  def list
6
6
  project = find_project if options[:project]
@@ -18,7 +18,7 @@ class LoadBalancer < CloudstackCli::Base
18
18
  end
19
19
  end
20
20
 
21
- desc "load_balancer create NAME", "create load balancer rule"
21
+ desc "create NAME", "create load balancer rule"
22
22
  option :project
23
23
  option :ip, required: true
24
24
  option :public_port, required: true
@@ -36,7 +36,7 @@ class LoadBalancer < CloudstackCli::Base
36
36
  say "OK!", :green
37
37
  end
38
38
 
39
- desc "load_balancer add NAME", "assign servers to balancer rule"
39
+ desc "add NAME", "assign servers to balancer rule"
40
40
  option :servers, required: true, type: :array, description: 'server names'
41
41
  def add(name)
42
42
  say "Add #{names.join(', ')} to rule #{id}...", :yellow
@@ -1,6 +1,6 @@
1
1
  class Network < CloudstackCli::Base
2
2
 
3
- desc "network list", "list networks"
3
+ desc "list", "list networks"
4
4
  option :project
5
5
  option :account
6
6
  option :showid, type: :boolean
@@ -38,7 +38,7 @@ class Network < CloudstackCli::Base
38
38
  end
39
39
  end
40
40
 
41
- desc "network default", "get the default network"
41
+ desc "default", "get the default network"
42
42
  option :zone
43
43
  def default
44
44
  network = client.get_default_network(options[:zone])
@@ -58,7 +58,7 @@ class Network < CloudstackCli::Base
58
58
  end
59
59
  end
60
60
 
61
- desc "network show NAME", "show detailed infos about a network"
61
+ desc "show NAME", "show detailed infos about a network"
62
62
  option :project
63
63
  def show(name)
64
64
  if options[:project]
@@ -79,7 +79,7 @@ class Network < CloudstackCli::Base
79
79
  end
80
80
  end
81
81
 
82
- desc "network restart NAME", "restart network"
82
+ desc "restart NAME", "restart network"
83
83
  option :cleanup, type: :boolean, default: true
84
84
  def restart(name)
85
85
  network = client.get_network(name)
@@ -93,7 +93,7 @@ class Network < CloudstackCli::Base
93
93
  end
94
94
  end
95
95
 
96
- desc "network delete NAME", "delete network"
96
+ desc "delete NAME", "delete network"
97
97
  def delete(name)
98
98
  network = client.get_network(name)
99
99
  network = client.get_network(name, -1) unless network
@@ -1,6 +1,6 @@
1
1
  class PhysicalNetwork < CloudstackCli::Base
2
2
 
3
- desc "physical_network list", "list physical networks"
3
+ desc "list", "list physical networks"
4
4
  option :project
5
5
  def list
6
6
  project = find_project if options[:project]
@@ -1,6 +1,6 @@
1
1
  class Pod < CloudstackCli::Base
2
2
 
3
- desc 'pod list', 'list pods'
3
+ desc 'list', 'list pods'
4
4
  def list
5
5
  pods = client.list_pods(options)
6
6
  if pods.size < 1
@@ -1,6 +1,6 @@
1
1
  class PortRule < CloudstackCli::Base
2
2
 
3
- desc "port_rule create SERVER", "create portforwarding rules"
3
+ desc "create SERVER", "create portforwarding rules"
4
4
  option :rules, type: :array,
5
5
  required: true,
6
6
  desc: "Port Forwarding Rules [public_ip]:port ...",
@@ -35,7 +35,7 @@ class PortRule < CloudstackCli::Base
35
35
  end
36
36
  end
37
37
 
38
- desc "port_rule list", "list portforwarding rules"
38
+ desc "list", "list portforwarding rules"
39
39
  option :project
40
40
  def list
41
41
  project_id = find_project['id'] if options[:project]
@@ -1,6 +1,6 @@
1
1
  class Project < CloudstackCli::Base
2
2
 
3
- desc "project show NAME", "show detailed infos about a project"
3
+ desc "show NAME", "show detailed infos about a project"
4
4
  option :project
5
5
  def show(name)
6
6
  unless project = client.get_project(name)
@@ -13,7 +13,7 @@ class Project < CloudstackCli::Base
13
13
  end
14
14
  end
15
15
 
16
- desc "project list", "list projects"
16
+ desc "list", "list projects"
17
17
  def list
18
18
  projects = client.list_projects
19
19
  if projects.size < 1
@@ -1,6 +1,6 @@
1
1
  class Router < CloudstackCli::Base
2
2
 
3
- desc "router list", "list virtual routers"
3
+ desc "list", "list virtual routers"
4
4
  option :project
5
5
  option :account
6
6
  option :zone
@@ -70,7 +70,7 @@ class Router < CloudstackCli::Base
70
70
  end
71
71
  end
72
72
 
73
- desc "router stop NAME [NAME2 ..]", "stop virtual router(s)"
73
+ desc "stop NAME [NAME2 ..]", "stop virtual router(s)"
74
74
  option :force, description: "stop without asking", type: :boolean, aliases: '-f'
75
75
  def stop(*names)
76
76
  routers = names.map {|name| get_router(name)}
@@ -83,7 +83,7 @@ class Router < CloudstackCli::Base
83
83
  watch_jobs(jobs)
84
84
  end
85
85
 
86
- desc "router start NAME [NAME2 ..]", "start virtual router(s)"
86
+ desc "start NAME [NAME2 ..]", "start virtual router(s)"
87
87
  option :force, description: "start without asking", type: :boolean, aliases: '-f'
88
88
  def start(*names)
89
89
  routers = names.map {|name| get_router(name)}
@@ -96,7 +96,7 @@ class Router < CloudstackCli::Base
96
96
  watch_jobs(jobs)
97
97
  end
98
98
 
99
- desc "router start NAME [NAME2 ..]", "restart virtual router(s) (stop and start)"
99
+ desc "start NAME [NAME2 ..]", "restart virtual router(s) (stop and start)"
100
100
  option :force, description: "restart without asking", type: :boolean, aliases: '-f'
101
101
  def restart(*names)
102
102
  routers = names.map {|name| get_router(name)}
@@ -117,7 +117,7 @@ class Router < CloudstackCli::Base
117
117
  say "Finished.", :green
118
118
  end
119
119
 
120
- desc "router destroy NAME [NAME2 ..]", "destroy virtual router(s)"
120
+ desc "destroy NAME [NAME2 ..]", "destroy virtual router(s)"
121
121
  option :force, description: "destroy without asking", type: :boolean, aliases: '-f'
122
122
  def destroy(*names)
123
123
  routers = names.map {|name| get_router(name)}
@@ -1,38 +1,66 @@
1
1
  class Server < CloudstackCli::Base
2
2
 
3
- desc "server list", "list servers"
3
+ desc "list", "list servers"
4
4
  option :project
5
5
  option :account
6
6
  option :zone
7
+ option :command, desc: "command to execute for each server: START, STOP or RESTART"
7
8
  def list
8
9
  if options[:project]
9
10
  if options[:project].downcase == "all"
10
11
  options[:project_id] = -1
12
+ project_id = -1
11
13
  else
12
14
  project = find_project
13
15
  options[:project_id] = project['id']
16
+ project_id = project['id']
14
17
  end
15
18
  end
16
19
  servers = client.list_servers(options)
17
20
  if servers.size < 1
18
21
  puts "No servers found."
19
22
  else
20
- table = [["Name", "State", "Offering", "Zone", options[:project] ? "Project" : "Account", "IP's"]]
23
+ table = [["Name", "State", "Offering", "Zone", project_id ? "Project" : "Account", "IP's"]]
21
24
  servers.each do |server|
22
25
  table << [
23
26
  server['name'],
24
27
  server['state'],
25
28
  server['serviceofferingname'],
26
29
  server['zonename'],
27
- options[:project] ? server['project'] : server['account'],
30
+ project_id ? server['project'] : server['account'],
28
31
  server['nic'].map { |nic| nic['ipaddress']}.join(' ')
29
32
  ]
30
33
  end
31
34
  print_table table
32
- end
35
+
36
+ if options[:command]
37
+ case options[:command].downcase
38
+ when "start"
39
+ exit unless yes?("\nStart the server(s) above? [y/N]:", :magenta)
40
+ jobs = servers.map do |server|
41
+ {id: client.start_server(server['name'], project_id, false)['jobid'], name: "Start server #{server['name']}"}
42
+ end
43
+ when "stop"
44
+ exit unless yes?("\nStop the server(s) above? [y/N]:", :magenta)
45
+ jobs = servers.map do |server|
46
+ {id: client.stop_server(server['name'], nil, project_id, false)['jobid'], name: "Stop server #{server['name']}"}
47
+ end
48
+ when "restart"
49
+ exit unless yes?("\nRestart the server(s) above? [y/N]:", :magenta)
50
+ jobs = servers.map do |server|
51
+ {id: client.reboot_server(server['name'], project_id, false)['jobid'], name: "Restart server #{server['name']}"}
52
+ end
53
+ else
54
+ say "\nCommand #{options[:command]} not supported.", :red
55
+ exit 1
56
+ end
57
+ puts
58
+ watch_jobs(jobs)
59
+ end
60
+ end
33
61
  end
34
62
 
35
- desc "server show NAME", "show detailed infos about a server"
63
+ desc "show NAME", "show detailed infos about a server"
36
64
  option :project
37
65
  def show(name)
38
66
  if options[:project]
@@ -53,7 +81,7 @@ class Server < CloudstackCli::Base
53
81
  end
54
82
  end
55
83
 
56
- desc "server create NAME [NAME2 ...]", "create server(s)"
84
+ desc "create NAME [NAME2 ...]", "create server(s)"
57
85
  option :template, aliases: '-t', desc: "name of the template"
58
86
  option :iso, desc: "name of the iso", desc: "name of the iso template"
59
87
  option :offering, aliases: '-o', required: true, desc: "computing offering name"
@@ -107,7 +135,7 @@ class Server < CloudstackCli::Base
107
135
  say "Finished.", :green
108
136
  end
109
137
 
110
- desc "server destroy NAME [NAME2 ..]", "destroy server(s)"
138
+ desc "destroy NAME [NAME2 ..]", "destroy server(s)"
111
139
  option :project
112
140
  option :force, description: "destroy without asking", type: :boolean, aliases: '-f'
113
141
  def destroy(*names)
@@ -127,24 +155,24 @@ class Server < CloudstackCli::Base
127
155
  end
128
156
  end
129
157
 
130
- desc "server bootstrap", "interactive creation of a server with network access"
158
+ desc "bootstrap", "interactive creation of a server with network access"
131
159
  def bootstrap
132
160
  bootstrap_server_interactive
133
161
  end
134
162
 
135
- desc "server stop NAME", "stop a server"
163
+ desc "stop NAME", "stop a server"
136
164
  def stop(name)
137
165
  client.stop_server(name)
138
166
  puts
139
167
  end
140
168
 
141
- desc "server start NAME", "start a server"
169
+ desc "start NAME", "start a server"
142
170
  def start(name)
143
171
  client.start_server(name)
144
172
  puts
145
173
  end
146
174
 
147
- desc "server reboot NAME", "reboot a server"
175
+ desc "reboot NAME", "reboot a server"
148
176
  def restart(name)
149
177
  client.reboot_server(name)
150
178
  puts
@@ -1,6 +1,6 @@
1
1
  class Snapshot < CloudstackCli::Base
2
2
 
3
- desc 'snapshot list', 'list snapshots'
3
+ desc 'list', 'list snapshots'
4
4
  option :account
5
5
  option :project
6
6
  option :domain
@@ -1,6 +1,6 @@
1
1
  class SshKeyPair < CloudstackCli::Base
2
2
 
3
- desc "ssh_key_pair list", 'list ssh key pairs'
3
+ desc "list", 'list ssh key pairs'
4
4
  option :listall
5
5
  option :account
6
6
  option :project
@@ -17,7 +17,7 @@ class SshKeyPair < CloudstackCli::Base
17
17
  end
18
18
  end
19
19
 
20
- desc 'ssh_key_pair create NAME', 'create ssh key pair'
20
+ desc 'create NAME', 'create ssh key pair'
21
21
  option :account
22
22
  option :project
23
23
  def create(name)
@@ -28,7 +28,7 @@ class SshKeyPair < CloudstackCli::Base
28
28
  say pair['privatekey']
29
29
  end
30
30
 
31
- desc 'ssh_key_pair register NAME', 'register ssh key pair'
31
+ desc 'register NAME', 'register ssh key pair'
32
32
  option :account
33
33
  option :project
34
34
  option :public_key, required: true, desc: "path to public_key file"
@@ -46,7 +46,7 @@ class SshKeyPair < CloudstackCli::Base
46
46
  say pair['privatekey']
47
47
  end
48
48
 
49
- desc 'ssh_key_pair delete NAME', 'delete ssh key pair'
49
+ desc 'delete NAME', 'delete ssh key pair'
50
50
  option :account
51
51
  option :project
52
52
  option :force, aliases: '-f', desc: "delete without asking"
@@ -1,6 +1,6 @@
1
1
  class Stack < CloudstackCli::Base
2
2
 
3
- desc "stack create STACKFILE", "create a stack of servers"
3
+ desc "create STACKFILE", "create a stack of servers"
4
4
  def create(stackfile)
5
5
  stack = parse_stackfile(stackfile)
6
6
  say "Create stack #{stack["name"]}...", :green
@@ -1,6 +1,6 @@
1
1
  class Template < CloudstackCli::Base
2
2
 
3
- desc 'template list [TYPE]', 'list templates by type [featured|self|self-executable|executable|community], default is featured'
3
+ desc 'list [TYPE]', 'list templates by type [featured|self|self-executable|executable|community], default is featured'
4
4
  option :project
5
5
  option :zone
6
6
  def list(type='featured')
@@ -6,7 +6,7 @@ class User < CloudstackCli::Base
6
6
  2 => 'admin'
7
7
  }
8
8
 
9
- desc 'user list', 'list users'
9
+ desc 'list', 'list users'
10
10
  option :listall
11
11
  option :account
12
12
  def list
@@ -1,6 +1,6 @@
1
1
  class Volume < CloudstackCli::Base
2
2
 
3
- desc "volume list", "list volumes"
3
+ desc "list", "list volumes"
4
4
  option :project
5
5
  def list
6
6
  projectid = find_project['id'] if options[:project]
@@ -1,6 +1,6 @@
1
1
  class Zone < CloudstackCli::Base
2
2
 
3
- desc "zone list", "list zones"
3
+ desc "list", "list zones"
4
4
  def list
5
5
  zones = client.list_zones
6
6
  if zones.size < 1
@@ -1,3 +1,3 @@
1
1
  module CloudstackCli
2
- VERSION = "0.4.3"
2
+ VERSION = "0.5.0"
3
3
  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.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nik Wolfgramm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-28 00:00:00.000000000 Z
11
+ date: 2013-12-16 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.2.14
61
+ version: 0.2.16
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.2.14
68
+ version: 0.2.16
69
69
  description: cloudstack-cli is a CloudStack API client written in Ruby.
70
70
  email:
71
71
  - nik.wolfgramm@gmail.com
@@ -87,15 +87,16 @@ files:
87
87
  - lib/cloudstack-cli/commands/account.rb
88
88
  - lib/cloudstack-cli/commands/capacity.rb
89
89
  - lib/cloudstack-cli/commands/cluster.rb
90
- - lib/cloudstack-cli/commands/disk_offering.rb
90
+ - lib/cloudstack-cli/commands/compute_offer.rb
91
+ - lib/cloudstack-cli/commands/disk_offer.rb
91
92
  - lib/cloudstack-cli/commands/domain.rb
93
+ - lib/cloudstack-cli/commands/environment.rb
92
94
  - lib/cloudstack-cli/commands/host.rb
93
95
  - lib/cloudstack-cli/commands/ip_address.rb
94
96
  - lib/cloudstack-cli/commands/iso.rb
95
97
  - lib/cloudstack-cli/commands/job.rb
96
98
  - lib/cloudstack-cli/commands/load_balancer.rb
97
99
  - lib/cloudstack-cli/commands/network.rb
98
- - lib/cloudstack-cli/commands/offering.rb
99
100
  - lib/cloudstack-cli/commands/physical_network.rb
100
101
  - lib/cloudstack-cli/commands/pod.rb
101
102
  - lib/cloudstack-cli/commands/port_rule.rb
@@ -112,7 +113,7 @@ files:
112
113
  - lib/cloudstack-cli/helper.rb
113
114
  - lib/cloudstack-cli/version.rb
114
115
  - test/stack_example.json
115
- homepage: https://bitbucket.org/swisstxt/cloudstack-cli
116
+ homepage: https://github.com/niwo/cloudstack-cli
116
117
  licenses:
117
118
  - MIT
118
119
  metadata: {}