cloudstack-cli 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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: {}