plesk 0.0.2 → 0.0.3alpha

Sign up to get free protection for your applications and to get access to all the features.
data/lib/plesk/client.rb CHANGED
@@ -38,13 +38,14 @@ module Plesk
38
38
  def get_mailgroup_info_for mail
39
39
  name,domain = mail.split("@")
40
40
  domain_id = get_domain_id_for domain
41
- packet = Packet.new
41
+ packet = Packet.new "1.4.1.2"
42
42
  packet.mailgroup_info name,domain_id
43
- answer = start_request packet.to_xml
44
-
43
+ xml = packet.to_xml
44
+ answer = start_request xml
45
45
  answer.search('address').map(&:text)
46
46
  end
47
47
  def set_mailgroup_for mail,mails
48
+ raise "Do not use set, Plesk setting of mailgroups seems to be broken. User reset_mailgroups instead"
48
49
  name,domain = mail.split("@")
49
50
  domain_id = get_domain_id_for domain
50
51
  packet = Packet.new
@@ -72,6 +73,20 @@ module Plesk
72
73
  Nokogiri::XML(response.body)
73
74
  end
74
75
 
76
+
77
+ def reset_mailgroups(mail_group_name, new_mails)
78
+ name,domain = mail_group_name.split("@")
79
+ domain_id = get_domain_id_for domain
80
+ old_mails = get_mailgroup_info_for mail_group_name
81
+ p old_mails
82
+
83
+ packet = Packet.new
84
+ start_request packet.mailgroup_general("remove", domain_id, name, "false" , old_mails).to_xml
85
+ if new_mails.count > 0
86
+ packet = Packet.new
87
+ start_request packet.mailgroup_general("add", domain_id, name, "true" , new_mails).to_xml
88
+ end
89
+ end
75
90
  private
76
91
 
77
92
  def get_domain_info
data/lib/plesk/packet.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  module Plesk
3
3
  class Packet
4
4
  attr_accessor :content
5
- def initialize version="1.4.1.2"
5
+ def initialize version="1.4.2.0"
6
6
  @content = Nokogiri::XML::Builder.new do |xml|
7
7
  xml.packet(version: version)
8
8
  end.doc
@@ -37,6 +37,31 @@ module Plesk
37
37
  }
38
38
  end
39
39
  end
40
+
41
+ def mailgroup_general action, id, name, enabled, mails
42
+ doc = @content
43
+ @content =Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
44
+ xml.mail do
45
+ xml.update do
46
+ xml.send(action) do
47
+ xml.filter do
48
+ xml.domain_id id
49
+ xml.mailname do
50
+ xml.name name
51
+ xml.mailgroup do
52
+ xml.enabled enabled
53
+ mails.each do |mail|
54
+ xml.address mail
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ end
40
65
  def mailgroup_info name,id
41
66
  doc = @content
42
67
  @content =Nokogiri::XML::Builder.with(doc.at('packet')) do |xml|
@@ -62,7 +87,7 @@ module Plesk
62
87
  xml.mailname {
63
88
  xml.name name
64
89
  xml.mailgroup {
65
- xml.enabled :true
90
+ xml.enabled 'true'
66
91
  mails.each do |mail|
67
92
  xml.address mail
68
93
  end
data/lib/plesk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Plesk
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3alpha"
3
3
  end
data/spec/plesk_spec.rb CHANGED
@@ -37,11 +37,12 @@ describe "Plesk" do
37
37
  it "should get a mailgroup list for a mail" do
38
38
  mails = api.get_mailgroup_info_for "developer@pludoni.de"
39
39
  mails.should be_kind_of Array
40
+ mails.count.should > 0
40
41
  end
41
42
  it "should set mailgroup for a mail" do
42
- mails_to_set = ["stefan.wienert@pludoni.de","akos.toth@pludoni.de","martin.schneider@pludoni.de"]
43
- answer = api.set_mailgroup_for "developer@pludoni.de", mails_to_set
44
- answer.at('status').text.should == "ok"
43
+ #mails_to_set = ["stefan.wienert@pludoni.de","akos.toth@pludoni.de","martin.schneider@pludoni.de"]
44
+ #answer = api.set_mailgroup_for "developer@pludoni.de", mails_to_set
45
+ #answer.at('status').text.should == "ok"
45
46
  end
46
47
  it "should be able to retrieve the api secret" do
47
48
  #ip = "46.4.99.113"
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plesk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3alpha
5
+ prerelease: 5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Martin Schneider
@@ -13,7 +13,7 @@ date: 2012-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &20145220 !ruby/object:Gem::Requirement
16
+ requirement: &12779680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *20145220
24
+ version_requirements: *12779680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: gli
27
- requirement: &19733340 !ruby/object:Gem::Requirement
27
+ requirement: &12777240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *19733340
35
+ version_requirements: *12777240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard-rspec
38
- requirement: &19732240 !ruby/object:Gem::Requirement
38
+ requirement: &12774100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *19732240
46
+ version_requirements: *12774100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &19731200 !ruby/object:Gem::Requirement
49
+ requirement: &12773340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *19731200
57
+ version_requirements: *12773340
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &19729460 !ruby/object:Gem::Requirement
60
+ requirement: &12788020 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *19729460
68
+ version_requirements: *12788020
69
69
  description: ! 'Plesk RPC API wrapper written in Ruby '
70
70
  email:
71
71
  - info@outsmartin.de
@@ -105,16 +105,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  segments:
107
107
  - 0
108
- hash: 2607453395036010812
108
+ hash: -1951025564308211233
109
109
  required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  none: false
111
111
  requirements:
112
- - - ! '>='
112
+ - - ! '>'
113
113
  - !ruby/object:Gem::Version
114
- version: '0'
115
- segments:
116
- - 0
117
- hash: 2607453395036010812
114
+ version: 1.3.1
118
115
  requirements: []
119
116
  rubyforge_project:
120
117
  rubygems_version: 1.8.10