1
- #!/bin/python
1
+ #!/usr/ bin/env python
2
2
# pleskbuddy.py created by Dan Hand
3
3
4
4
from __future__ import absolute_import , division , print_function
5
5
6
6
# Standard Library
7
7
import argparse
8
8
import sys
9
- from subprocess import call , PIPE , Popen
10
- from urllib2 import urlopen
9
+ from subprocess import PIPE , Popen , call
11
10
12
11
13
- __version__ = '1.0.0'
12
+ try :
13
+ # Standard Library
14
+ from urllib .request import urlopen
15
+ except ImportError :
16
+ # Third Party
17
+ from urllib2 import urlopen
18
+
19
+
20
+ __version__ = "2.0.0"
14
21
15
22
16
23
def options ():
17
24
psa_parser = argparse .ArgumentParser ()
18
- psa_parser .add_argument ('-v' , '--version' , dest = 'show_version' ,
19
- action = 'store_true' , help = 'Shows version information' )
20
- psa_parser .add_argument ('--sub-list' , dest = 'subscription_list' ,
21
- action = 'store_true' , help = 'Shows a list of subscriptions' )
22
- psa_parser .add_argument ('--info' , dest = 'info' ,
23
- action = 'store_true' , help = 'Shows a list of subscriptions' )
24
- psa_parser .add_argument ('--domain-list' , dest = 'domain_list' ,
25
- action = 'store_true' , help = 'Shows a list of domains with their IP addresses' )
26
- psa_parser .add_argument ('--list-components' , dest = 'show_components' ,
27
- action = 'store_true' , help = 'Creates a list of available components' )
28
- psa_parser .add_argument ('--install-component' , dest = 'component_install' , type = str ,
29
- help = 'Allows installation of available component' )
30
- psa_parser .add_argument ('--php-handler' , dest = 'php_handler' ,
31
- action = 'store_true' , help = 'Displays a list of domains with their respective PHP handler' )
25
+ psa_parser .add_argument (
26
+ "-v" ,
27
+ "--version" ,
28
+ dest = "show_version" ,
29
+ action = "store_true" ,
30
+ help = "Shows version information" ,
31
+ )
32
+ psa_parser .add_argument (
33
+ "--sub-list" ,
34
+ dest = "subscription_list" ,
35
+ action = "store_true" ,
36
+ help = "Shows a list of subscriptions" ,
37
+ )
38
+ psa_parser .add_argument (
39
+ "--info" , dest = "info" , action = "store_true" , help = "Shows a list of subscriptions"
40
+ )
41
+ psa_parser .add_argument (
42
+ "--domain-list" ,
43
+ dest = "domain_list" ,
44
+ action = "store_true" ,
45
+ help = "Shows a list of domains with their IP addresses" ,
46
+ )
47
+ psa_parser .add_argument (
48
+ "--list-components" ,
49
+ dest = "show_components" ,
50
+ action = "store_true" ,
51
+ help = "Creates a list of available components" ,
52
+ )
53
+ psa_parser .add_argument (
54
+ "--install-component" ,
55
+ dest = "component_install" ,
56
+ type = str ,
57
+ help = "Allows installation of available component" ,
58
+ )
59
+ psa_parser .add_argument (
60
+ "--php-handler" ,
61
+ dest = "php_handler" ,
62
+ action = "store_true" ,
63
+ help = "Displays a list of domains with their respective PHP handler" ,
64
+ )
32
65
return psa_parser
33
66
34
67
35
68
class Color (object ):
36
- RED = ' \033 [31m\033 [1m'
37
- GREEN = ' \033 [32m\033 [1m'
38
- YELLOW = ' \033 [33m\033 [1m'
39
- BLUE = ' \033 [34m\033 [1m'
40
- MAGENTA = ' \033 [35m\033 [1m'
41
- CYAN = ' \033 [36m\033 [1m'
42
- WHITE = ' \033 [37m\033 [1m'
43
- RESET = ' \033 [0m'
69
+ RED = " \033 [31m\033 [1m"
70
+ GREEN = " \033 [32m\033 [1m"
71
+ YELLOW = " \033 [33m\033 [1m"
72
+ BLUE = " \033 [34m\033 [1m"
73
+ MAGENTA = " \033 [35m\033 [1m"
74
+ CYAN = " \033 [36m\033 [1m"
75
+ WHITE = " \033 [37m\033 [1m"
76
+ RESET = " \033 [0m"
44
77
45
78
46
79
# Variables
@@ -49,69 +82,108 @@ class Color(object):
49
82
50
83
51
84
def show_version ():
52
- print (Color .CYAN + r'''
85
+ print (
86
+ Color .CYAN
87
+ + r"""
53
88
_ _ _ _ _
54
89
_ __ | | ___ ___| | _| |__ _ _ __| | __| |_ _
55
90
| '_ \| |/ _ \/ __| |/ / '_ \| | | |/ _` |/ _` | | | |
56
91
| |_) | | __/\__ \ <| |_) | |_| | (_| | (_| | |_| |
57
92
| .__/|_|\___||___/_|\_\_.__/ \__,_|\__,_|\__,_|\__, |
58
93
|_| |___/
59
94
60
- version: %s ''' % (__version__ ), Color .RESET )
95
+ version: %s """
96
+ % (__version__ ),
97
+ Color .RESET ,
98
+ )
61
99
62
100
63
101
def info ():
64
- domain_count = Popen ('MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin -Dpsa -sNe \
65
- "select count(*) from domains"' , stdout = PIPE , shell = True ).communicate ()[0 ].strip ()
66
- plesk_version = open ('/usr/local/psa/version' , "r" ).read ().split ()
67
- login_url = Popen ('plesk login -relative-url' , stdout = PIPE , shell = True ).communicate ()[0 ].strip ()
68
- public_ip = urlopen ('https://ipv4.icanhazip.com' ).read ().strip ()
69
- psa_info = (Color .MAGENTA + '==== Plesk Information ====\n ' + Color .RESET +
70
- Color .MAGENTA + 'Login URL: ' + Color .RESET + 'https://{0}:8443{1}\n ' + Color .MAGENTA +
71
- 'Plesk version: ' + Color .RESET + '{2}\n ' + Color .MAGENTA +
72
- 'Domain Count: ' + Color .RESET + '{3}' ).format (public_ip , login_url , plesk_version [0 ], str (domain_count ))
102
+ domain_count = (
103
+ Popen (
104
+ 'MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin -Dpsa -sNe \
105
+ "select count(*) from domains"' ,
106
+ stdout = PIPE ,
107
+ shell = True ,
108
+ )
109
+ .communicate ()[0 ]
110
+ .strip ()
111
+ .decode ("utf-8" )
112
+ )
113
+ plesk_version = open ("/usr/local/psa/version" , "r" ).read ().split ()[0 ]
114
+ login_url = (
115
+ Popen ("plesk login -relative-url" , stdout = PIPE , shell = True )
116
+ .communicate ()[0 ]
117
+ .strip ()
118
+ .decode ("utf-8" )
119
+ )
120
+ public_ip = urlopen ("https://ipv4.icanhazip.com" ).read ().strip ().decode ("utf-8" )
121
+ psa_info = (
122
+ Color .MAGENTA
123
+ + "==== Plesk Information ====\n "
124
+ + Color .RESET
125
+ + Color .MAGENTA
126
+ + "Login URL: "
127
+ + Color .RESET
128
+ + "https://{0}:8443{1}\n "
129
+ + Color .MAGENTA
130
+ + "Plesk version: "
131
+ + Color .RESET
132
+ + "{2}\n "
133
+ + Color .MAGENTA
134
+ + "Domain Count: "
135
+ + Color .RESET
136
+ + "{3}"
137
+ ).format (public_ip , login_url , plesk_version , str (domain_count ))
73
138
print (psa_info )
74
139
75
140
76
141
def subscription_list ():
77
- print (Color .MAGENTA + ' ==== Plesk Subscription List ====' + Color .RESET )
78
- subscription_list = ' plesk bin subscription --list'
142
+ print (Color .MAGENTA + " ==== Plesk Subscription List ====" + Color .RESET )
143
+ subscription_list = " plesk bin subscription --list"
79
144
call (subscription_list , shell = True )
80
145
81
146
82
147
def domain_list ():
83
- print (Color .MAGENTA + ' ==== Plesk Domain List ====' + Color .RESET )
84
- domain_list = ' MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin -Dpsa -e"SELECT dom.id, dom.name, \
148
+ print (Color .MAGENTA + " ==== Plesk Domain List ====" + Color .RESET )
149
+ domain_list = " MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin -Dpsa -e\ " SELECT dom.id, dom.name, \
85
150
ia.ipAddressId, iad.ip_address FROM domains dom LEFT JOIN DomainServices d ON \
86
- (dom.id = d.dom_id AND d.type = \ ' web\ ' ) LEFT JOIN IpAddressesCollections ia ON \
87
- ia.ipCollectionId = d.ipCollectionId LEFT JOIN IP_Addresses iad ON iad.id = ia.ipAddressId"'
151
+ (dom.id = d.dom_id AND d.type = 'web') LEFT JOIN IpAddressesCollections ia ON \
152
+ ia.ipCollectionId = d.ipCollectionId LEFT JOIN IP_Addresses iad ON iad.id = ia.ipAddressId\" "
88
153
call (domain_list , shell = True )
89
154
90
155
91
156
def show_components ():
92
- print (Color .MAGENTA + ' ==== Plesk Component List ====' + Color .RESET )
93
- component_list = ' plesk installer --select-release-current --show-components'
157
+ print (Color .MAGENTA + " ==== Plesk Component List ====" + Color .RESET )
158
+ component_list = " plesk installer --select-release-current --show-components"
94
159
call (component_list , shell = True )
95
160
96
161
97
162
def component_install ():
98
- call (['plesk' , 'installer' , '--select-release-current' ,
99
- '--install-component' , PSA_ARGS .component_install ])
163
+ call (
164
+ [
165
+ "plesk" ,
166
+ "installer" ,
167
+ "--select-release-current" ,
168
+ "--install-component" ,
169
+ PSA_ARGS .component_install ,
170
+ ]
171
+ )
100
172
101
173
102
174
def php_handler ():
103
- print (Color .MAGENTA + ' ==== Plesk domains and their PHP handler ====' + Color .RESET )
175
+ print (Color .MAGENTA + " ==== Plesk domains and their PHP handler ====" + Color .RESET )
104
176
domains_with_php = 'plesk db "select d.name,h.php_handler_id from domains d join hosting h on h.dom_id=d.id"'
105
177
call (domains_with_php , shell = True )
106
178
107
179
108
180
def main ():
109
181
# Check if Plesk is installed
110
182
try :
111
- _ = open (' /usr/local/psa/version' , 'r' )
183
+ _ = open (" /usr/local/psa/version" , "r" )
112
184
except IOError as ex :
113
- sys .exit (' It doesn\ ' t look like Plesk is installed!' )
114
-
185
+ sys .exit (" It doesn't look like Plesk is installed!" )
186
+
115
187
if PSA_ARGS .show_version :
116
188
show_version ()
117
189
elif PSA_ARGS .subscription_list :
@@ -128,5 +200,5 @@ def main():
128
200
info ()
129
201
130
202
131
- if __name__ == ' __main__' :
203
+ if __name__ == " __main__" :
132
204
main ()
0 commit comments