cloudstack-cli 0.1.7 → 0.2.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 +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