plesk 0.0.1 → 0.0.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.
- data/.rspec +1 -0
- data/Gemfile +0 -1
- data/Guardfile +0 -9
- data/Rakefile +0 -1
- data/bin/plesk +64 -0
- data/lib/plesk.rb +7 -128
- data/lib/plesk/client.rb +83 -0
- data/lib/plesk/packet.rb +91 -0
- data/lib/plesk/version.rb +1 -2
- data/plesk.gemspec +4 -0
- data/spec/plesk_spec.rb +52 -13
- metadata +55 -7
- data/bin/template +0 -13
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
CHANGED
data/Guardfile
CHANGED
@@ -1,12 +1,3 @@
|
|
1
|
-
# A sample Guardfile
|
2
|
-
# More info at https://github.com/guard/guard#readme
|
3
|
-
|
4
|
-
guard 'bundler' do
|
5
|
-
watch('Gemfile')
|
6
|
-
# Uncomment next line if Gemfile contain `gemspec' command
|
7
|
-
# watch(/^.+\.gemspec/)
|
8
|
-
end
|
9
|
-
|
10
1
|
guard 'rspec', :version => 2 do
|
11
2
|
watch(%r{^spec/.+_spec\.rb$})
|
12
3
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
data/Rakefile
CHANGED
data/bin/plesk
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# for 1.8.7 compat
|
3
|
+
unless File.respond_to? :realpath
|
4
|
+
class File #:nodoc:
|
5
|
+
def self.realpath path
|
6
|
+
return realpath(File.readlink(path)) if symlink?(path)
|
7
|
+
path
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
$: << File.expand_path(File.dirname(File.realpath(__FILE__)) + '/../lib')
|
12
|
+
|
13
|
+
require 'plesk'
|
14
|
+
require 'gli'
|
15
|
+
|
16
|
+
include GLI
|
17
|
+
|
18
|
+
program_desc 'Use ./plesk to get your api key from your plesk instance.'
|
19
|
+
|
20
|
+
version Plesk::VERSION
|
21
|
+
|
22
|
+
#desc 'Describe some switch here'
|
23
|
+
#switch [:s,:switch]
|
24
|
+
|
25
|
+
#desc 'Describe some flag here'
|
26
|
+
#default_value 'the default'
|
27
|
+
#arg_name 'The name of the argument'
|
28
|
+
#flag [:f,:flagname]
|
29
|
+
|
30
|
+
desc 'Get your api key for the IP which will use the gem, so you dont have to use your login information for future use.'
|
31
|
+
arg_name 'You have to provide your hostname and your credentials.'
|
32
|
+
command :key do |c|
|
33
|
+
c.action do |global_options,options,args|
|
34
|
+
if args.length < 4
|
35
|
+
raise 'Usage: ./plesk key <hostname> <user> <password> <ip_address>'
|
36
|
+
end
|
37
|
+
client = Plesk::Client.new(*args[0..2])
|
38
|
+
puts client.get_secret_for_ip args[3]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
pre do |global,command,options,args|
|
43
|
+
# Pre logic here
|
44
|
+
# Return true to proceed; false to abort and not call the
|
45
|
+
# chosen command
|
46
|
+
# Use skips_pre before a command to skip this block
|
47
|
+
# on that command only
|
48
|
+
true
|
49
|
+
end
|
50
|
+
|
51
|
+
post do |global,command,options,args|
|
52
|
+
# Post logic here
|
53
|
+
# Use skips_post before a command to skip this
|
54
|
+
# block on that command only
|
55
|
+
end
|
56
|
+
|
57
|
+
on_error do |exception|
|
58
|
+
# Error logic here
|
59
|
+
# return false to skip default error handling
|
60
|
+
true
|
61
|
+
end
|
62
|
+
|
63
|
+
exit GLI.run(ARGV)
|
64
|
+
|
data/lib/plesk.rb
CHANGED
@@ -1,132 +1,11 @@
|
|
1
|
-
require "net/https"
|
2
|
-
require "nokogiri"
|
3
1
|
module Plesk
|
4
|
-
class Client
|
5
|
-
attr_accessor :response, :uri,:http
|
6
|
-
def initialize path, user, password
|
7
|
-
@response = 0
|
8
|
-
@uri = URI(path)
|
9
|
-
http = Net::HTTP.new(@uri.host, @uri.port)
|
10
|
-
http.use_ssl = true
|
11
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
12
|
-
@headers = {
|
13
|
-
'HTTP_AUTH_LOGIN' => user,
|
14
|
-
'HTTP_AUTH_PASSWD' => password,
|
15
|
-
'Accept' => '*/*',
|
16
|
-
'Content-Type' => 'text/xml',
|
17
|
-
}
|
18
|
-
@http = http
|
19
|
-
end
|
20
|
-
def get_domain_info
|
21
|
-
packet = PleskPacket.new
|
22
|
-
packet.domain_info
|
23
|
-
start_request packet.to_xml
|
24
|
-
end
|
25
|
-
def get_domain_id_for domain
|
26
|
-
packet = PleskPacket.new
|
27
|
-
packet.domain_info_for_domain domain
|
28
|
-
answer = start_request packet.to_xml
|
29
|
-
Nokogiri::XML(answer.body).at('id').text
|
30
|
-
end
|
31
|
-
def get_mailgroup_info_for mail
|
32
|
-
name,domain = mail.split("@")
|
33
|
-
domain_id = get_domain_id_for domain
|
34
|
-
packet = PleskPacket.new
|
35
|
-
packet.mailgroup_info name,domain_id
|
36
|
-
answer = start_request packet.to_xml
|
37
2
|
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
def set_mailgroup_for mail,mails
|
42
|
-
name,domain = mail.split("@")
|
43
|
-
domain_id = get_domain_id_for domain
|
44
|
-
packet = PleskPacket.new
|
45
|
-
packet.mailgroup_set name,domain_id,mails
|
46
|
-
answer = start_request packet.to_xml
|
47
|
-
end
|
48
|
-
|
49
|
-
def start_request(body)
|
50
|
-
response = http.request_post(@uri.path,body,@headers)
|
51
|
-
@response = response
|
52
|
-
end
|
53
|
-
end
|
54
|
-
class PleskPacket
|
55
|
-
attr_accessor :content
|
56
|
-
def initialize version="1.4.1.2"
|
57
|
-
@content = Nokogiri::XML::Builder.new do |xml|
|
58
|
-
xml.packet(version: version)
|
59
|
-
end.doc
|
60
|
-
end
|
61
|
-
def domain_info
|
62
|
-
doc = @content
|
63
|
-
Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
64
|
-
xml.domain {
|
65
|
-
xml.get {
|
66
|
-
xml.filter
|
67
|
-
xml.dataset {
|
68
|
-
xml.limits
|
69
|
-
xml.prefs
|
70
|
-
}
|
71
|
-
}
|
72
|
-
}
|
73
|
-
end
|
74
|
-
end
|
75
|
-
def domain_info_for_domain domain
|
76
|
-
doc = @content
|
77
|
-
@content=Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
78
|
-
xml.domain {
|
79
|
-
xml.get {
|
80
|
-
xml.filter {
|
81
|
-
xml.domain_name domain
|
82
|
-
}
|
83
|
-
xml.dataset {
|
84
|
-
xml.limits
|
85
|
-
xml.prefs
|
86
|
-
}
|
87
|
-
}
|
88
|
-
}
|
89
|
-
end
|
90
|
-
end
|
91
|
-
def mailgroup_info name,id
|
92
|
-
doc = @content
|
93
|
-
@content =Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
94
|
-
xml.mail {
|
95
|
-
xml.get_info {
|
96
|
-
xml.filter {
|
97
|
-
xml.name name
|
98
|
-
xml.domain_id id
|
99
|
-
}
|
100
|
-
xml.group
|
101
|
-
}
|
102
|
-
}
|
103
|
-
end
|
104
|
-
end
|
105
|
-
def mailgroup_set name,id,mails
|
106
|
-
doc = @content
|
107
|
-
@content =Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
108
|
-
xml.mail {
|
109
|
-
xml.update {
|
110
|
-
xml.set {
|
111
|
-
xml.filter {
|
112
|
-
xml.domain_id id
|
113
|
-
xml.mailname {
|
114
|
-
xml.name name
|
115
|
-
xml.mailgroup {
|
116
|
-
xml.enabled :true
|
117
|
-
mails.each do |mail|
|
118
|
-
xml.address mail
|
119
|
-
end
|
120
|
-
}
|
121
|
-
}
|
122
|
-
}
|
123
|
-
}
|
124
|
-
}
|
125
|
-
}
|
126
|
-
end
|
127
|
-
end
|
128
|
-
def to_xml
|
129
|
-
@content.to_xml
|
130
|
-
end
|
3
|
+
class PleskException < Exception
|
131
4
|
end
|
132
5
|
end
|
6
|
+
|
7
|
+
require "plesk/client"
|
8
|
+
require "plesk/packet"
|
9
|
+
require "plesk/version"
|
10
|
+
|
11
|
+
|
data/lib/plesk/client.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
require "net/https"
|
2
|
+
require "nokogiri"
|
3
|
+
require "open-uri"
|
4
|
+
module Plesk
|
5
|
+
class Client
|
6
|
+
attr_accessor :response, :uri,:http
|
7
|
+
def initialize host, *credentials
|
8
|
+
if credentials.size == 2
|
9
|
+
@headers = {
|
10
|
+
'HTTP_AUTH_LOGIN' => credentials[0],
|
11
|
+
'HTTP_AUTH_PASSWD' => credentials[1],
|
12
|
+
'Accept' => '*/*',
|
13
|
+
'Content-Type' => 'text/xml',
|
14
|
+
}
|
15
|
+
elsif credentials.length == 1
|
16
|
+
@headers = {
|
17
|
+
'KEY' => credentials[0],
|
18
|
+
'Accept' => '*/*',
|
19
|
+
'Content-Type' => 'text/xml',
|
20
|
+
}
|
21
|
+
else
|
22
|
+
raise ArgumentError
|
23
|
+
end
|
24
|
+
@response = 0
|
25
|
+
@uri = URI.parse "https://example.com:8443/enterprise/control/agent.php"
|
26
|
+
@uri.host = host
|
27
|
+
http = Net::HTTP.new(@uri.host, @uri.port)
|
28
|
+
http.use_ssl = true
|
29
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
30
|
+
@http = http
|
31
|
+
end
|
32
|
+
def get_domain_id_for domain
|
33
|
+
packet = Packet.new
|
34
|
+
packet.domain_info_for_domain domain
|
35
|
+
answer = start_request packet.to_xml
|
36
|
+
answer.at('id').text
|
37
|
+
end
|
38
|
+
def get_mailgroup_info_for mail
|
39
|
+
name,domain = mail.split("@")
|
40
|
+
domain_id = get_domain_id_for domain
|
41
|
+
packet = Packet.new
|
42
|
+
packet.mailgroup_info name,domain_id
|
43
|
+
answer = start_request packet.to_xml
|
44
|
+
|
45
|
+
answer.search('address').map(&:text)
|
46
|
+
end
|
47
|
+
def set_mailgroup_for mail,mails
|
48
|
+
name,domain = mail.split("@")
|
49
|
+
domain_id = get_domain_id_for domain
|
50
|
+
packet = Packet.new
|
51
|
+
packet.mailgroup_set name,domain_id,mails
|
52
|
+
answer = start_request packet.to_xml
|
53
|
+
end
|
54
|
+
def get_secret_for_ip ip
|
55
|
+
packet = Packet.new
|
56
|
+
packet.secret_key_for_ip ip
|
57
|
+
answer = start_request packet.to_xml
|
58
|
+
if answer.at('status').text == "ok"
|
59
|
+
answer.at('key').text
|
60
|
+
else
|
61
|
+
$stderr.puts answer.body
|
62
|
+
raise PleskException
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def start_request(body)
|
67
|
+
response = http.request_post(@uri.path,body,@headers)
|
68
|
+
if (400...600).include? response.code.to_i
|
69
|
+
raise PleskException
|
70
|
+
end
|
71
|
+
@response = response
|
72
|
+
Nokogiri::XML(response.body)
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def get_domain_info
|
78
|
+
packet = Packet.new
|
79
|
+
packet.domain_info
|
80
|
+
start_request packet.to_xml
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
data/lib/plesk/packet.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
|
2
|
+
module Plesk
|
3
|
+
class Packet
|
4
|
+
attr_accessor :content
|
5
|
+
def initialize version="1.4.1.2"
|
6
|
+
@content = Nokogiri::XML::Builder.new do |xml|
|
7
|
+
xml.packet(version: version)
|
8
|
+
end.doc
|
9
|
+
end
|
10
|
+
def domain_info
|
11
|
+
doc = @content
|
12
|
+
Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
13
|
+
xml.domain {
|
14
|
+
xml.get {
|
15
|
+
xml.filter
|
16
|
+
xml.dataset {
|
17
|
+
xml.limits
|
18
|
+
xml.prefs
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
def domain_info_for_domain domain
|
25
|
+
doc = @content
|
26
|
+
@content=Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
27
|
+
xml.domain {
|
28
|
+
xml.get {
|
29
|
+
xml.filter {
|
30
|
+
xml.domain_name domain
|
31
|
+
}
|
32
|
+
xml.dataset {
|
33
|
+
xml.limits
|
34
|
+
xml.prefs
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
def mailgroup_info name,id
|
41
|
+
doc = @content
|
42
|
+
@content =Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
43
|
+
xml.mail {
|
44
|
+
xml.get_info {
|
45
|
+
xml.filter {
|
46
|
+
xml.name name
|
47
|
+
xml.domain_id id
|
48
|
+
}
|
49
|
+
xml.group
|
50
|
+
}
|
51
|
+
}
|
52
|
+
end
|
53
|
+
end
|
54
|
+
def mailgroup_set name,id,mails
|
55
|
+
doc = @content
|
56
|
+
@content =Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
57
|
+
xml.mail {
|
58
|
+
xml.update {
|
59
|
+
xml.set {
|
60
|
+
xml.filter {
|
61
|
+
xml.domain_id id
|
62
|
+
xml.mailname {
|
63
|
+
xml.name name
|
64
|
+
xml.mailgroup {
|
65
|
+
xml.enabled :true
|
66
|
+
mails.each do |mail|
|
67
|
+
xml.address mail
|
68
|
+
end
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
end
|
76
|
+
end
|
77
|
+
def secret_key_for_ip ip
|
78
|
+
doc = @content
|
79
|
+
Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
|
80
|
+
xml.secret_key {
|
81
|
+
xml.create {
|
82
|
+
xml.ip_address ip
|
83
|
+
}
|
84
|
+
}
|
85
|
+
end
|
86
|
+
end
|
87
|
+
def to_xml
|
88
|
+
@content.to_xml
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
data/lib/plesk/version.rb
CHANGED
data/plesk.gemspec
CHANGED
@@ -14,5 +14,9 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.name = "plesk"
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.add_dependency 'nokogiri'
|
17
|
+
gem.add_dependency 'gli'
|
18
|
+
gem.add_development_dependency 'guard-rspec'
|
19
|
+
gem.add_development_dependency 'rake'
|
20
|
+
gem.add_development_dependency 'rspec'
|
17
21
|
gem.version = Plesk::VERSION
|
18
22
|
end
|
data/spec/plesk_spec.rb
CHANGED
@@ -1,28 +1,38 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "yaml"
|
3
|
+
require "ostruct"
|
3
4
|
include Plesk
|
4
5
|
describe "Plesk" do
|
5
6
|
let(:api) {
|
6
7
|
config = YAML.load( File.open "spec/config.yml")
|
7
|
-
|
8
|
+
host = config["host"]
|
8
9
|
user = config["user"]
|
9
10
|
pass = config["password"]
|
10
|
-
Client.new(
|
11
|
+
Client.new(host,user,pass)
|
12
|
+
}
|
13
|
+
let(:api_via_key) {
|
14
|
+
config = YAML.load( File.open "spec/config.yml")
|
15
|
+
host = config["host"]
|
16
|
+
key = config["key"]
|
17
|
+
Client.new(host,key)
|
11
18
|
}
|
12
19
|
|
13
20
|
it "should connect to the Plesk RPC" do
|
14
21
|
api.start_request("bla")
|
15
22
|
api.response.code.should == "200"
|
16
23
|
end
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
api.response.code.should == "200"
|
24
|
+
it "should connect to the Plesk RPC via secret key" do
|
25
|
+
api_via_key.start_request("bla")
|
26
|
+
api_via_key.response.code.should == "200"
|
21
27
|
end
|
28
|
+
|
29
|
+
#it "should be able to get basic domain list" do
|
30
|
+
#api.get_domain_info
|
31
|
+
#api.response.code.should == "200"
|
32
|
+
#end
|
22
33
|
it "should be able to find domain id by name" do
|
23
34
|
id = api.get_domain_id_for "itsax.de"
|
24
35
|
id.should be_kind_of String
|
25
|
-
|
26
36
|
end
|
27
37
|
it "should get a mailgroup list for a mail" do
|
28
38
|
mails = api.get_mailgroup_info_for "developer@pludoni.de"
|
@@ -31,28 +41,57 @@ describe "Plesk" do
|
|
31
41
|
it "should set mailgroup for a mail" do
|
32
42
|
mails_to_set = ["stefan.wienert@pludoni.de","akos.toth@pludoni.de","martin.schneider@pludoni.de"]
|
33
43
|
answer = api.set_mailgroup_for "developer@pludoni.de", mails_to_set
|
34
|
-
|
44
|
+
answer.at('status').text.should == "ok"
|
45
|
+
end
|
46
|
+
it "should be able to retrieve the api secret" do
|
47
|
+
#ip = "46.4.99.113"
|
48
|
+
#answer = api.get_secret_for_ip ip
|
49
|
+
#Nokogiri::XML(answer.response.body).at('status').text.should == "ok"
|
50
|
+
#Nokogiri::XML(answer.response.body).at('key').text.to_s.length.should > 10
|
51
|
+
end
|
52
|
+
it "should have a convenient way to get the key" do
|
53
|
+
ip = "46.4.99.113"
|
54
|
+
answer = api.get_secret_for_ip ip
|
55
|
+
answer.should be_kind_of String
|
56
|
+
(10..50).should include answer.length
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should raise an error when plesk" do
|
60
|
+
object = OpenStruct.new body: "ERROR", code: "500"
|
61
|
+
|
62
|
+
Net::HTTP.any_instance.should_receive(:request_post).and_return(object)
|
63
|
+
ip = "46.4.99.113"
|
64
|
+
|
65
|
+
lambda {
|
66
|
+
answer = api.get_secret_for_ip ip
|
67
|
+
}.should raise_error(PleskException)
|
35
68
|
end
|
36
69
|
end
|
37
70
|
|
38
|
-
describe
|
71
|
+
describe Packet do
|
39
72
|
it "should generate xml" do
|
40
|
-
p =
|
73
|
+
p = Packet.new
|
41
74
|
Nokogiri::XML(p.to_xml).errors.should be_empty
|
42
75
|
end
|
43
76
|
it "should have a packet version matching the param" do
|
44
77
|
ver = "1.0.0.0"
|
45
|
-
p =
|
78
|
+
p = Packet.new(ver)
|
46
79
|
Nokogiri::XML(p.to_xml).at('packet').attr('version').should == ver
|
47
80
|
end
|
48
81
|
it "should create a packet to get a domain list" do
|
49
|
-
p =
|
82
|
+
p = Packet.new("1.4.1.2")
|
50
83
|
p.domain_info
|
51
84
|
Nokogiri::XML(p.to_xml).at('get').children.count.should > 0
|
52
85
|
end
|
53
86
|
it "should create a packet to get the mailgroup of a mail adress" do
|
54
|
-
p =
|
87
|
+
p = Packet.new("1.6.0.2")
|
55
88
|
p.mailgroup_info "developer","1"
|
56
89
|
Nokogiri::XML(p.to_xml).at('get_info').children.count.should > 0
|
57
90
|
end
|
91
|
+
it "should create a packet to retrieve the secret" do
|
92
|
+
ip = "192.0.0.1"
|
93
|
+
p = Packet.new
|
94
|
+
p.secret_key_for_ip ip
|
95
|
+
Nokogiri::XML(p.to_xml).at('ip_address').text.should == ip
|
96
|
+
end
|
58
97
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &20145220 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,29 +21,71 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: *20145220
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: gli
|
27
|
+
requirement: &19733340 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *19733340
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: guard-rspec
|
38
|
+
requirement: &19732240 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *19732240
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: &19731200 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *19731200
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &19729460 !ruby/object:Gem::Requirement
|
25
61
|
none: false
|
26
62
|
requirements:
|
27
63
|
- - ! '>='
|
28
64
|
- !ruby/object:Gem::Version
|
29
65
|
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *19729460
|
30
69
|
description: ! 'Plesk RPC API wrapper written in Ruby '
|
31
70
|
email:
|
32
71
|
- info@outsmartin.de
|
33
72
|
executables:
|
34
|
-
-
|
73
|
+
- plesk
|
35
74
|
extensions: []
|
36
75
|
extra_rdoc_files: []
|
37
76
|
files:
|
38
77
|
- .gitignore
|
78
|
+
- .rspec
|
39
79
|
- Gemfile
|
40
80
|
- Guardfile
|
41
81
|
- LICENSE
|
42
82
|
- README.md
|
43
83
|
- Rakefile
|
44
84
|
- VERSION
|
45
|
-
- bin/
|
85
|
+
- bin/plesk
|
46
86
|
- lib/plesk.rb
|
87
|
+
- lib/plesk/client.rb
|
88
|
+
- lib/plesk/packet.rb
|
47
89
|
- lib/plesk/version.rb
|
48
90
|
- plesk.gemspec
|
49
91
|
- spec/config.yml.example
|
@@ -61,15 +103,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
103
|
- - ! '>='
|
62
104
|
- !ruby/object:Gem::Version
|
63
105
|
version: '0'
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
hash: 2607453395036010812
|
64
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
110
|
none: false
|
66
111
|
requirements:
|
67
112
|
- - ! '>='
|
68
113
|
- !ruby/object:Gem::Version
|
69
114
|
version: '0'
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
hash: 2607453395036010812
|
70
118
|
requirements: []
|
71
119
|
rubyforge_project:
|
72
|
-
rubygems_version: 1.8.
|
120
|
+
rubygems_version: 1.8.10
|
73
121
|
signing_key:
|
74
122
|
specification_version: 3
|
75
123
|
summary: You can communicate with your Plesk System through the RPC API. Sends XML
|
data/bin/template
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# for 1.8.7 compat
|
3
|
-
unless File.respond_to? :realpath
|
4
|
-
class File #:nodoc:
|
5
|
-
def self.realpath path
|
6
|
-
return realpath(File.readlink(path)) if symlink?(path)
|
7
|
-
path
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
$: << File.expand_path(File.dirname(File.realpath(__FILE__)) + '/../lib')
|
12
|
-
|
13
|
-
# require 'module' here
|