piglop-ovh-rb 0.1.3
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.
- data/.gitignore +1 -0
- data/LICENSE +674 -0
- data/README.rdoc +75 -0
- data/Rakefile +79 -0
- data/VERSION +1 -0
- data/bin/failover_check +29 -0
- data/bin/ovhrb +16 -0
- data/lib/ovh-rb.rb +11 -0
- data/lib/ovhrb/config.rb +34 -0
- data/lib/ovhrb/converter.rb +21 -0
- data/lib/ovhrb/core_additions.rb +43 -0
- data/lib/ovhrb/manager/manager.rb +5665 -0
- data/lib/ovhrb/manager/managerDriver.rb +6774 -0
- data/lib/ovhrb/manager/managerServiceClient.rb +8607 -0
- data/lib/ovhrb/ovh_object.rb +19 -0
- data/lib/ovhrb/session.rb +23 -0
- data/lib/ovhrb/soap_request_handler.rb +50 -0
- data/ovhrb.yml.sample +7 -0
- data/piglop-ovh-rb.gemspec +56 -0
- metadata +88 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
module OvhRb
|
2
|
+
class OvhObject
|
3
|
+
include Converter
|
4
|
+
|
5
|
+
def initialize(object)
|
6
|
+
object.__xmlele.each do |attr, value|
|
7
|
+
value = convert_to_ovh_object(value)
|
8
|
+
|
9
|
+
attr_name = attr.name.underscore
|
10
|
+
instance_variable_set("@#{attr_name}", value)
|
11
|
+
unless self.class.method_defined?(attr_name)
|
12
|
+
self.class.class_eval do
|
13
|
+
define_method(attr_name) { instance_variable_get("@#{attr_name}") }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module OvhRb
|
2
|
+
class Session
|
3
|
+
include SoapRequestHandler
|
4
|
+
|
5
|
+
def initialize(nic, password, language = 'en', mulisession = true)
|
6
|
+
@nic = nic
|
7
|
+
@password = password
|
8
|
+
@language = language
|
9
|
+
@multisession = mulisession
|
10
|
+
|
11
|
+
self.soap_object = ManagerPortType.new
|
12
|
+
@session_id = login(@nic, @password, @language, @multisession)
|
13
|
+
|
14
|
+
if block_given?
|
15
|
+
begin
|
16
|
+
yield self
|
17
|
+
# ensure
|
18
|
+
# logout
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module OvhRb
|
2
|
+
module SoapRequestHandler
|
3
|
+
include Converter
|
4
|
+
|
5
|
+
attr_accessor :soap_object, :session_id
|
6
|
+
|
7
|
+
def method_missing(name, *args)
|
8
|
+
soap_method_name = name.to_s.camelize(:lower)
|
9
|
+
|
10
|
+
if soap_object.respond_to? soap_method_name
|
11
|
+
self.class.class_eval do
|
12
|
+
define_method_used = "define_#{(soap_method_name=="login"? "login" : "soapi")}_method"
|
13
|
+
send(define_method_used, name, soap_method_name)
|
14
|
+
end
|
15
|
+
send(name, *args)
|
16
|
+
else
|
17
|
+
super
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.included(base)
|
22
|
+
base.extend(ClassMethods)
|
23
|
+
end
|
24
|
+
|
25
|
+
module ClassMethods
|
26
|
+
protected
|
27
|
+
def define_login_method(name, soap_method_name)
|
28
|
+
define_method(name) do |*method_args|
|
29
|
+
soap_object.send(soap_method_name, *method_args)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def define_soapi_method(name, soap_method_name)
|
34
|
+
define_method(name) do |*method_args|
|
35
|
+
soap_response = nil
|
36
|
+
soap_response = begin
|
37
|
+
soap_object.send(soap_method_name, *method_args.insert(0, session_id))
|
38
|
+
rescue ArgumentError => e
|
39
|
+
if e.to_s =~ /for 0/
|
40
|
+
soap_object.send(soap_method_name)
|
41
|
+
else
|
42
|
+
raise e
|
43
|
+
end
|
44
|
+
end
|
45
|
+
convert_to_ovh_object(soap_response) if soap_response
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/ovhrb.yml.sample
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{piglop-ovh-rb}
|
8
|
+
s.version = "0.1.3"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Michael Witrant", "Aur\303\251lien AMILIN"]
|
12
|
+
s.date = %q{2010-10-10}
|
13
|
+
s.email = %q{mike@lepton.fr}
|
14
|
+
s.executables = ["ovhrb", "failover_check"]
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".gitignore",
|
21
|
+
"LICENSE",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"bin/failover_check",
|
26
|
+
"bin/ovhrb",
|
27
|
+
"lib/ovh-rb.rb",
|
28
|
+
"lib/ovhrb/config.rb",
|
29
|
+
"lib/ovhrb/converter.rb",
|
30
|
+
"lib/ovhrb/core_additions.rb",
|
31
|
+
"lib/ovhrb/manager/manager.rb",
|
32
|
+
"lib/ovhrb/manager/managerDriver.rb",
|
33
|
+
"lib/ovhrb/manager/managerServiceClient.rb",
|
34
|
+
"lib/ovhrb/ovh_object.rb",
|
35
|
+
"lib/ovhrb/session.rb",
|
36
|
+
"lib/ovhrb/soap_request_handler.rb",
|
37
|
+
"ovhrb.yml.sample",
|
38
|
+
"piglop-ovh-rb.gemspec"
|
39
|
+
]
|
40
|
+
s.homepage = %q{http://github.com/piglop/ovh-rb}
|
41
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
42
|
+
s.require_paths = ["lib"]
|
43
|
+
s.rubygems_version = %q{1.3.7}
|
44
|
+
s.summary = %q{ovh-rb helps you to use the OVH SOAPI in a ruby way}
|
45
|
+
|
46
|
+
if s.respond_to? :specification_version then
|
47
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
48
|
+
s.specification_version = 3
|
49
|
+
|
50
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
|
+
else
|
52
|
+
end
|
53
|
+
else
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: piglop-ovh-rb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Michael Witrant
|
14
|
+
- "Aur\xC3\xA9lien AMILIN"
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2010-10-10 00:00:00 +02:00
|
20
|
+
default_executable:
|
21
|
+
dependencies: []
|
22
|
+
|
23
|
+
description:
|
24
|
+
email: mike@lepton.fr
|
25
|
+
executables:
|
26
|
+
- ovhrb
|
27
|
+
- failover_check
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- LICENSE
|
32
|
+
- README.rdoc
|
33
|
+
files:
|
34
|
+
- .gitignore
|
35
|
+
- LICENSE
|
36
|
+
- README.rdoc
|
37
|
+
- Rakefile
|
38
|
+
- VERSION
|
39
|
+
- bin/failover_check
|
40
|
+
- bin/ovhrb
|
41
|
+
- lib/ovh-rb.rb
|
42
|
+
- lib/ovhrb/config.rb
|
43
|
+
- lib/ovhrb/converter.rb
|
44
|
+
- lib/ovhrb/core_additions.rb
|
45
|
+
- lib/ovhrb/manager/manager.rb
|
46
|
+
- lib/ovhrb/manager/managerDriver.rb
|
47
|
+
- lib/ovhrb/manager/managerServiceClient.rb
|
48
|
+
- lib/ovhrb/ovh_object.rb
|
49
|
+
- lib/ovhrb/session.rb
|
50
|
+
- lib/ovhrb/soap_request_handler.rb
|
51
|
+
- ovhrb.yml.sample
|
52
|
+
- piglop-ovh-rb.gemspec
|
53
|
+
has_rdoc: true
|
54
|
+
homepage: http://github.com/piglop/ovh-rb
|
55
|
+
licenses: []
|
56
|
+
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options:
|
59
|
+
- --charset=UTF-8
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
hash: 3
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
version: "0"
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
80
|
+
requirements: []
|
81
|
+
|
82
|
+
rubyforge_project:
|
83
|
+
rubygems_version: 1.3.7
|
84
|
+
signing_key:
|
85
|
+
specification_version: 3
|
86
|
+
summary: ovh-rb helps you to use the OVH SOAPI in a ruby way
|
87
|
+
test_files: []
|
88
|
+
|