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 +4 -4
- data/cloudstack_client.gemspec +0 -1
- data/lib/cloudstack_client/client.rb +8 -13
- data/lib/cloudstack_client/commands/server.rb +4 -4
- data/lib/cloudstack_client/version.rb +1 -1
- data/lib/connection_helper.rb +1 -1
- metadata +3 -19
- data/bin/cs-command-generator +0 -5
- data/lib/cloudstack_client/command_generator.rb +0 -75
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9dde802869315559c07e249e54463c727c8bb55
|
4
|
+
data.tar.gz: 03d1817bae8bcc56c1ca642bfa15bcee49cfb458
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 303bce9e8f4dfcdf1062e7b9a98f919f13c6ceb83f5a61d3a6ee5728a16df5dbc11b79e7dbd590baef1dfa84bb243cddbd330e7bfbd67d6406765b868db06719
|
7
|
+
data.tar.gz: a1e141d0cca512f20a85fc1d7ddfccd8f597de4d486e8030765cc0a30c397f396842fab1bfb71f75b793e3a501281148ac89f171501abb1e7532ad1be980b896
|
data/cloudstack_client.gemspec
CHANGED
@@ -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,
|
338
|
+
def destroy_server(id, args = {})
|
340
339
|
params = {
|
341
340
|
'command' => 'destroyVirtualMachine',
|
342
341
|
'id' => id
|
343
342
|
}
|
344
|
-
|
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
|
data/lib/connection_helper.rb
CHANGED
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.
|
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-
|
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
|
113
|
+
rubygems_version: 2.2.0
|
130
114
|
signing_key:
|
131
115
|
specification_version: 4
|
132
116
|
summary: CloudStack API client written in Ruby
|
data/bin/cs-command-generator
DELETED
@@ -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
|