plesk_kit 2.0.17 → 2.1.0
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
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZDA2YjIyZjRmYTM3Y2E5NjUzMDA2YzIyMDU4ZmRmYTJhOGEzNTM2MA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MWUzYzQ0YjAyNmYxN2I4Yjg2NTcyYzEwOTAxZjY2MWVkZWVjNjhlNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MGZmZDE0Zjc0ZmJjOWRhNDcwYWM1YTU4OWE2YzM4MjhlNTVmYzVjNzNiNzIx
|
10
|
+
ZGU5OWI0MzVmZjFmMjA0MDk0NWRlNDIyOGRhOWM0YmRmYjBkOTg1NDRlNDVk
|
11
|
+
NDVjOWMxMTU2YzdmMGJjZDUzMTAyYjU0NDVkNzk5ZTNhYTMzZWU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTY0ZjQzZmJjOWFlMGFjNDA5Nzc1NzdkYTk1YWJlMzYxYmExNmQ0NzY2NmYw
|
14
|
+
Nzc3M2M0ZjJhOGQ0Njc2MTZiZDIwNzdiMjZiMDUxZTEyMzEwMTJhM2FhNGJi
|
15
|
+
YjBjZTIyMzIxOTUxNGMxMDY4ZTkwNDA0MDczNDk0YTdhOGQ5NzI=
|
@@ -58,6 +58,12 @@ module PleskKit
|
|
58
58
|
service_plan.analyse response[0], server
|
59
59
|
end
|
60
60
|
|
61
|
+
def self.get_subscription_usage(subscription,plesk_sub_id,server)
|
62
|
+
packet = subscription.usage_pack shell, plesk_sub_id
|
63
|
+
response = transportation_for packet, server
|
64
|
+
subscription.analyse_usage response[0]
|
65
|
+
end
|
66
|
+
|
61
67
|
def self.push_service_plan service_plan, server
|
62
68
|
packet = service_plan.build_xml_for_add shell
|
63
69
|
response = transportation_for packet, server
|
@@ -7,10 +7,24 @@ module PleskKit
|
|
7
7
|
belongs_to :service_plan
|
8
8
|
before_create :provision_in_plesk
|
9
9
|
|
10
|
+
# TODO: doing checks before downgrades
|
11
|
+
# box is returned in stat, it shoulds how many are consumed
|
12
|
+
# real_size is returned in gen_info, it should show how big the entire subscription is... hopefully
|
10
13
|
|
14
|
+
#request should look like this:
|
15
|
+
#<packet version="1.6.3.0">
|
16
|
+
# <webspace>
|
17
|
+
# <get>
|
18
|
+
# <filter>
|
19
|
+
# <id>subscription_id.to_i</id>
|
20
|
+
# </filter>
|
21
|
+
# <gen_info>
|
22
|
+
# <stat/>
|
23
|
+
# </get>
|
24
|
+
# </webspace>
|
25
|
+
#</packet>
|
11
26
|
|
12
27
|
def provision_in_plesk
|
13
|
-
|
14
28
|
account = (customer_account_id.present? ? customer_account : (reseller_account_id.present? ? reseller_account : raise(msg="no accounts?")))
|
15
29
|
plan = PleskKit::ServicePlan.find_by_name self.plan_name
|
16
30
|
self.service_plan_id = plan.id
|
@@ -32,6 +46,37 @@ module PleskKit
|
|
32
46
|
end
|
33
47
|
end
|
34
48
|
|
49
|
+
def downgradable?(to=new_plan)
|
50
|
+
account = (customer_account_id.present? ? customer_account : (reseller_account_id.present? ? reseller_account : raise(msg="no accounts?")))
|
51
|
+
mbox_limit = new_plan.mailboxes
|
52
|
+
space_limit = new_plan.storage #needs to be in bytes or convert the next value to GB
|
53
|
+
|
54
|
+
plesk_subscription_identifier = PleskKit::Communicator.get_subscription_id(self)
|
55
|
+
usage = PleskKit::Communicator.get_subscription_usage(self,plesk_subscription_identifier, account.server)
|
56
|
+
if usage[0] < space_limit && usage[1] < mbox_limit
|
57
|
+
return true
|
58
|
+
else
|
59
|
+
return false
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
def usage_pack shell, plesk_sub_id
|
65
|
+
xml = shell
|
66
|
+
xml.instruct!
|
67
|
+
xml.packet(:version => '1.6.3.0') {
|
68
|
+
xml.webspace{
|
69
|
+
xml.get {
|
70
|
+
xml.filter{
|
71
|
+
xml.id(plesk_sub_id) # TODO!!!
|
72
|
+
}
|
73
|
+
xml.gen_info
|
74
|
+
xml.stat
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
end
|
79
|
+
|
35
80
|
# update the plan name attr here before switching
|
36
81
|
def switch_in_plesk
|
37
82
|
account = (customer_account_id.present? ? customer_account : (reseller_account_id.present? ? reseller_account : raise(msg="no accounts?")))
|
@@ -166,5 +211,21 @@ module PleskKit
|
|
166
211
|
return sub_guid || true
|
167
212
|
end
|
168
213
|
|
214
|
+
def analyse_usage response_string
|
215
|
+
xml = REXML::Document.new(response_string)
|
216
|
+
status = xml.root.elements['//status'].text if xml.root.elements['//status'].present?
|
217
|
+
space = ''
|
218
|
+
mbox = ''
|
219
|
+
if status == "error"
|
220
|
+
code = xml.root.elements['//errcode'].text
|
221
|
+
message = xml.root.elements['//errtext'].text
|
222
|
+
raise "#{code}: #{message}"
|
223
|
+
else
|
224
|
+
space = xml.root.elements['//real_size'].text if xml.root.elements['//real_size'].present?
|
225
|
+
mbox = xml.root.elements['//box'].text if xml.root.elements['//box'].present?
|
226
|
+
end
|
227
|
+
return [space,mbox]
|
228
|
+
end
|
229
|
+
|
169
230
|
end
|
170
231
|
end
|
data/lib/plesk_kit/version.rb
CHANGED