cloudstack-cli 0.1.7 → 0.2.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 +7 -0
  2. data/Gemfile.lock +1 -3
  3. data/cloudstack-cli.gemspec +0 -1
  4. data/lib/cloudstack-cli/base.rb +3 -0
  5. data/lib/cloudstack-cli/cli.rb +5 -0
  6. data/lib/cloudstack-cli/commands/server.rb +8 -7
  7. data/lib/cloudstack-cli/helper.rb +6 -2
  8. data/lib/cloudstack-cli/version.rb +1 -1
  9. data/lib/cloudstack-client/client.rb +7 -980
  10. data/lib/cloudstack-client/commands/account.rb +22 -0
  11. data/lib/cloudstack-client/commands/capacity.rb +19 -0
  12. data/lib/cloudstack-client/commands/command_template +8 -0
  13. data/lib/cloudstack-client/commands/disk_offering.rb +49 -0
  14. data/lib/cloudstack-client/commands/domain.rb +22 -0
  15. data/lib/cloudstack-client/commands/ip_address.rb +77 -0
  16. data/lib/cloudstack-client/commands/iso.rb +60 -0
  17. data/lib/cloudstack-client/commands/load_balancer_rule.rb +61 -0
  18. data/lib/cloudstack-client/commands/network.rb +101 -0
  19. data/lib/cloudstack-client/commands/port_forwarding_rule.rb +50 -0
  20. data/lib/cloudstack-client/commands/project.rb +32 -0
  21. data/lib/cloudstack-client/commands/router.rb +74 -0
  22. data/lib/cloudstack-client/commands/server.rb +291 -0
  23. data/lib/cloudstack-client/commands/service_offering.rb +98 -0
  24. data/lib/cloudstack-client/commands/template.rb +60 -0
  25. data/lib/cloudstack-client/commands/volumes.rb +20 -0
  26. data/lib/cloudstack-client/commands/zone.rb +57 -0
  27. data/lib/cloudstack-client/helper.rb +2 -2
  28. data/lib/cloudstack-client/version.rb +3 -0
  29. data/lib/cloudstack_cli.rb +0 -8
  30. data/lib/cloudstack_client.rb +2 -2
  31. metadata +26 -34
  32. data/config/cloudstack.example.yml +0 -3
  33. data/lib/cloudstack-client/ssh_command.rb +0 -15
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8af3fabe042b05ed56a834d27d440330855a9519
4
+ data.tar.gz: 0c436d43e029cb1bd32069996f804eef1e38805d
5
+ SHA512:
6
+ metadata.gz: cb8be056ad1c9c3b323ef8360a4a245a405f73bb3dcf9097f088ea432b6cc6cb2a664ddf8d46527aa5863a4b23f24cd215c3eac1278c210dd498a4429e208415
7
+ data.tar.gz: eb40a1ed892960a8ada945d44b5d6491b71ff770d453a4f19a17cb3f517c61ee6d584f3830060a3635c3aa35a354c4ab479abf439ddfc64ddeaa21be15ab6ff9
data/Gemfile.lock CHANGED
@@ -1,15 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudstack-cli (0.1.5)
5
- net-ssh (~> 2.6.7)
4
+ cloudstack-cli (0.2.0)
6
5
  thor (~> 0.18.1)
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
10
9
  specs:
11
10
  json (1.8.0)
12
- net-ssh (2.6.8)
13
11
  rake (10.0.4)
14
12
  rdoc (4.0.1)
15
13
  json (~> 1.4)
@@ -23,5 +23,4 @@ Gem::Specification.new do |gem|
23
23
  gem.add_development_dependency('rake', '~> 10.0.4')
24
24
 
25
25
  gem.add_dependency('thor', '~> 0.18.1')
26
- gem.add_dependency('net-ssh', '~> 2.6.7')
27
26
  end
@@ -1,3 +1,6 @@
1
+ require "thor"
2
+ require "yaml"
3
+
1
4
  module CloudstackCli
2
5
  class Base < Thor
3
6
  include Thor::Actions
@@ -48,6 +48,11 @@ module CloudstackCli
48
48
  end
49
49
  puts JSON.pretty_generate(client.send_request params)
50
50
  end
51
+
52
+ # require subcommands
53
+ Dir[File.dirname(__FILE__) + '/commands/*.rb'].each do |command|
54
+ require command
55
+ end
51
56
 
52
57
  desc "zone SUBCOMMAND ...ARGS", "Manage zones"
53
58
  subcommand "zone", Zone
@@ -33,16 +33,19 @@ class Server < CloudstackCli::Base
33
33
  end
34
34
 
35
35
  desc "create NAME", "create a server"
36
- option :zone, required: true
37
- option :template, required: true, desc: "name of template or iso"
36
+ option :template, desc: "name of the template"
37
+ option :iso, desc: "name of the iso"
38
38
  option :offering, required: true
39
- option :networks, type: :array, required: true
39
+ option :networks, type: :array
40
+ option :zone
40
41
  option :project
41
42
  option :port_rules, type: :array,
42
43
  default: [],
43
44
  desc: "Port Forwarding Rules [public_ip]:port ..."
44
45
  option :disk_offering
45
- option :hypervisor, desc: "only used for iso deployments, defaults to vmware"
46
+ option :disk_size, desc: "disk size in GB"
47
+ option :hypervisor, desc: "only used for iso deployments, default: vmware"
48
+ option :keypair, desc: "the name of the ssh keypair to use"
46
49
  def create(name)
47
50
  if project = find_project
48
51
  project_id = project["id"]
@@ -51,9 +54,7 @@ class Server < CloudstackCli::Base
51
54
  unless server
52
55
  say "Create server #{name}...", :yellow
53
56
  server = client.create_server(
54
- name, options[:offering], options[:template],
55
- options[:zone], options[:networks], options[:project],
56
- options[:disk_offering], options[:hypervisor]
57
+ options.merge({name: name})
57
58
  )
58
59
  puts
59
60
  say "Server #{name} has been created.", :green
@@ -20,8 +20,12 @@ module CloudstackCli
20
20
  unless server
21
21
  say "Create server #{name}..."
22
22
  server = client.create_server(
23
- name, offering, template,
24
- zone, networks, project_name
23
+ name: name,
24
+ offering: offering,
25
+ template: template,
26
+ zone: zone,
27
+ networks: networks,
28
+ project: project_name
25
29
  )
26
30
  puts
27
31
  say "Server #{server["name"]} has been created.", :green
@@ -1,3 +1,3 @@
1
1
  module CloudstackCli
2
- VERSION = "0.1.7"
2
+ VERSION = "0.2.0"
3
3
  end