cloudstack_client 0.6.1 → 0.6.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fb4ef1b1f29fe2b33c07e850d1c0c544342c39fd
4
- data.tar.gz: 5b1b396af2c56a4cb2da5ce4c404c767b77d8019
3
+ metadata.gz: a9dde802869315559c07e249e54463c727c8bb55
4
+ data.tar.gz: 03d1817bae8bcc56c1ca642bfa15bcee49cfb458
5
5
  SHA512:
6
- metadata.gz: c80db1a47d4922a35fe90c8cdde8e5588c08241b76353202a0bb1e17d986c11fe569387f44c2f830dd62e759ac6a97fe4a0baa1b82cb7fc02e96e52bef70a7bb
7
- data.tar.gz: 83bf27b68b50687c04d09467041898a2bb4069268a136146ed6697bff0bfa05da5b5e1aa5b30a033f85e97ef0e8a42a7ad417c7c2cfdd0cd5b5254b74f8526b3
6
+ metadata.gz: 303bce9e8f4dfcdf1062e7b9a98f919f13c6ceb83f5a61d3a6ee5728a16df5dbc11b79e7dbd590baef1dfa84bb243cddbd330e7bfbd67d6406765b868db06719
7
+ data.tar.gz: a1e141d0cca512f20a85fc1d7ddfccd8f597de4d486e8030765cc0a30c397f396842fab1bfb71f75b793e3a501281148ac89f171501abb1e7532ad1be980b896
@@ -21,5 +21,4 @@ Gem::Specification.new do |gem|
21
21
 
22
22
  gem.add_development_dependency('rdoc')
23
23
  gem.add_development_dependency('rake', '~> 10.0', '>= 10.0.4')
24
- gem.add_development_dependency('thor')
25
24
  end
@@ -13,6 +13,13 @@ module CloudstackClient
13
13
  @@async_poll_interval = 2.0
14
14
  @@async_timeout = 400
15
15
 
16
+ # include all commands
17
+ Dir.glob(File.dirname(__FILE__) + "/commands/*.rb").each do |file|
18
+ require file
19
+ module_name = File.basename(file, '.rb').split('_').map{|f| f.capitalize}.join
20
+ include Object.const_get("CloudstackClient").const_get(module_name)
21
+ end
22
+
16
23
  attr_accessor :verbose
17
24
 
18
25
  def initialize(api_url, api_key, secret_key, opts = {})
@@ -21,19 +28,6 @@ module CloudstackClient
21
28
  @secret_key = secret_key
22
29
  @verbose = opts[:quiet] ? false : true
23
30
  @debug = opts[:debug] ? true : false
24
- CloudstackClient::Connection.include_commands unless opts[:no_commands]
25
- end
26
-
27
- ##
28
- # Loads all commands from the commands subdirectory and includes them
29
- #
30
-
31
- def self.include_commands
32
- Dir.glob(File.dirname(__FILE__) + "/commands/*.rb").each do |file|
33
- require file
34
- module_name = File.basename(file, '.rb').split('_').map{|f| f.capitalize}.join
35
- include Object.const_get("CloudstackClient").const_get(module_name)
36
- end
37
31
  end
38
32
 
39
33
  ##
@@ -76,6 +70,7 @@ module CloudstackClient
76
70
  exit 1
77
71
  end
78
72
 
73
+
79
74
  if response.is_a? Net::HTTPOK
80
75
  begin
81
76
  json = JSON.parse(response.body)
@@ -119,7 +119,6 @@ module CloudstackClient
119
119
  params['state'] = args[:state] if args[:state]
120
120
  params['state'] = args[:status] if args[:status]
121
121
  params['groupid'] = args[:group_id] if args[:group_id]
122
- params['keyword'] = args[:keyword] if args[:keyword]
123
122
 
124
123
  if args[:zone]
125
124
  zone = get_zone(args[:zone])
@@ -336,14 +335,15 @@ module CloudstackClient
336
335
  # Destroy the server with the specified name.
337
336
  #
338
337
 
339
- def destroy_server(id, async = true)
338
+ def destroy_server(id, args = {})
340
339
  params = {
341
340
  'command' => 'destroyVirtualMachine',
342
341
  'id' => id
343
342
  }
344
- async ? send_async_request(params)['virtualmachine'] : send_request(params)
343
+ params['expunge'] = true if args[:expunge]
344
+ args[:sync] ? send_request(params) : send_async_request(params)['virtualmachine']
345
345
  end
346
346
 
347
347
  end
348
348
 
349
- end
349
+ end
@@ -1,3 +1,3 @@
1
1
  module CloudstackClient
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
@@ -3,7 +3,7 @@ module CloudstackClient
3
3
  def self.load_configuration(config_file)
4
4
  begin
5
5
  return YAML::load(IO.read(config_file))
6
- rescue => e
6
+ rescue Exception => e
7
7
  puts "Unable to load '#{config_file}' : #{e}"
8
8
  exit
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudstack_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nik Wolfgramm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-07 00:00:00.000000000 Z
11
+ date: 2014-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -44,20 +44,6 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 10.0.4
47
- - !ruby/object:Gem::Dependency
48
- name: thor
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
47
  description: CloudStack API client written in Ruby
62
48
  email:
63
49
  - nik.wolfgramm@gmail.com
@@ -70,11 +56,9 @@ files:
70
56
  - LICENSE.txt
71
57
  - README.md
72
58
  - Rakefile
73
- - bin/cs-command-generator
74
59
  - cloudstack_client.gemspec
75
60
  - lib/cloudstack_client.rb
76
61
  - lib/cloudstack_client/client.rb
77
- - lib/cloudstack_client/command_generator.rb
78
62
  - lib/cloudstack_client/commands/account.rb
79
63
  - lib/cloudstack_client/commands/affinity_group.rb
80
64
  - lib/cloudstack_client/commands/capacity.rb
@@ -126,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
110
  version: '0'
127
111
  requirements: []
128
112
  rubyforge_project:
129
- rubygems_version: 2.0.3
113
+ rubygems_version: 2.2.0
130
114
  signing_key:
131
115
  specification_version: 4
132
116
  summary: CloudStack API client written in Ruby
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'cloudstack_client/command_generator'
4
-
5
- CloudstackClient::CommandGenerator.start
@@ -1,75 +0,0 @@
1
- require 'cloudstack_client/client'
2
- require 'connection_helper'
3
- require 'thor'
4
- require 'yaml'
5
-
6
- module CloudstackClient
7
- class CommandGenerator < Thor
8
- include Thor::Actions
9
-
10
- class_option :config_file,
11
- default: File.join(Dir.home, '.cloudstack-cli.yml'),
12
- aliases: '-c',
13
- desc: 'location of your cloudstack-cli configuration file'
14
-
15
- class_option :env,
16
- aliases: '-e',
17
- desc: 'environment to use'
18
-
19
- class_option :debug,
20
- desc: 'enable debug output',
21
- type: :boolean
22
-
23
- desc "generate", "generate api commands using the Cloudstack API Discovery service"
24
- def generate
25
- json = client.send_request('command' => 'listApis')
26
- commands = json['api'] || []
27
- commands.each do |command|
28
- puts "#{command['name']} : #{command['related']}"
29
- end
30
- end
31
-
32
- no_commands do
33
- def client(opts = {})
34
- @config ||= load_configuration
35
- @client ||= CloudstackClient::Connection.new(
36
- @config[:url],
37
- @config[:api_key],
38
- @config[:secret_key],
39
- {no_commands: true}
40
- )
41
- end
42
-
43
- def load_configuration(config_file = options[:config_file], env = options[:env])
44
- unless File.exists?(config_file)
45
- say "Configuration file #{config_file} not found.", :red
46
- say "Please run \'cs environment add\' to create one."
47
- exit 1
48
- end
49
-
50
- begin
51
- config = YAML::load(IO.read(config_file))
52
- rescue
53
- say "Can't load configuration from file #{config_file}.", :red
54
- exit 1
55
- end
56
-
57
- env ||= config[:default]
58
- if env
59
- unless config = config[env]
60
- say "Can't find environment #{env}.", :red
61
- exit 1
62
- end
63
- end
64
-
65
- unless config.key?(:url) && config.key?(:api_key) && config.key?(:secret_key)
66
- say "The environment #{env || '\'-\''} contains no valid data.", :red
67
- exit 1
68
- end
69
- config
70
- end
71
-
72
- end # no_commands
73
-
74
- end # class
75
- end # module