cloudstack_client 0.6.1 → 0.6.2

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