@@ -171,9 +171,8 @@ def plesk_home_dict():
171
171
home_dict [user .pw_dir ] = user
172
172
return home_dict
173
173
174
- def read_pleskplans ():
174
+ def read_pleskplans (plans ):
175
175
home_dict = plesk_home_dict ()
176
- plans = {}
177
176
userplans = {}
178
177
# Thanks to Stas Karpinsky of vangus.co.il for correcting the SQL!
179
178
plan_lines = run_program (['plesk' , 'db' , \
@@ -214,10 +213,20 @@ def read_pleskplans():
214
213
userplans [user .pw_name ] = plan
215
214
return plans , userplans
216
215
216
+ def read_diskplans ():
217
+ plans = {}
218
+ logging .debug ("read_diskplans" )
219
+ if (os .path .exists (common .get_pkg_dir ())):
220
+ for f in glob .glob (common .get_pkg_dir () + '/*.conf' ):
221
+ finalfile = f [len (common .get_pkg_dir ()) + 1 :][:- 5 ]
222
+ logging .debug ("Found package file: %s, finalfile: %s" % (f , finalfile ))
223
+ plans [finalfile ] = []
224
+ return plans
225
+
217
226
def read_usersplans ():
227
+ plans = read_diskplans ()
218
228
if common .get_plesk ():
219
- return read_pleskplans ()
220
- plans = {}
229
+ return read_pleskplans (plans )
221
230
userplans = {}
222
231
planfiles = glob .glob ('/var/cpanel/packages/*' )
223
232
for planfile in planfiles :
@@ -288,6 +297,9 @@ def write_pkg(pkg, pkg_json):
288
297
f = open (common .pkg_to_filename (pkg ), 'w' , encoding = "utf-8" )
289
298
except Exception as err :
290
299
common .fatal_error ('Error opening %s for write: %s' % (common .pkg_to_filename (pkg ), err ))
300
+ if 'size' in pkg_json :
301
+ logging .debug ("Remove size" )
302
+ del pkg_json ['size' ]
291
303
for opt in common .get_options ():
292
304
if opt in pkg_json and arrInfinite (opt , pkg_json ):
293
305
del pkg_json [opt ]
@@ -297,8 +309,17 @@ def write_pkg(pkg, pkg_json):
297
309
common .fatal_error ('Error writing %s: %s' % (common .pkg_to_filename (pkg ), err ))
298
310
f .close ()
299
311
300
- def revalidate_pkg (pkg , users , users_vals , org_pkg , pkg_json , force , args_dict ):
301
- logging .debug ("revalidate_pkg" )
312
+ def revalidate_pkg (pkg , pkg_sizes , users , users_vals , org_pkg , pkg_json , force , args_dict ):
313
+ logging .debug ("revalidate_pkg %s %d users" % (pkg , len (users )))
314
+ if len (users ) == 0 :
315
+ logging .debug ("Delete package entirely: %s" % pkg )
316
+ filename = common .pkg_to_filename (pkg )
317
+ if os .path .exists (filename ):
318
+ os .remove (filename )
319
+ if pkg in pkg_sizes :
320
+ del pkg_sizes [pkg ]
321
+ write_pkg_sizes (pkg_sizes )
322
+ return
302
323
test_users = []
303
324
if force :
304
325
test_users = users
@@ -324,7 +345,7 @@ def revalidate_pkg(pkg, users, users_vals, org_pkg, pkg_json, force, args_dict):
324
345
325
346
def validate_pkg (pkg , pkg_sizes , users_vals , users ):
326
347
pkg_json = read_pkg (pkg , pkg_sizes )
327
- revalidate_pkg (pkg , users , users_vals , pkg_json , pkg_json , False , None )
348
+ revalidate_pkg (pkg , pkg_sizes , users , users_vals , pkg_json , pkg_json , False , None )
328
349
329
350
def command_validate (args , users_vals , usersplans , pkg_sizes ):
330
351
if args .command == 'validate-all' or args .command == 'list-all' :
@@ -406,7 +427,7 @@ def command_set(args, users_vals, usersplans, pkg_sizes):
406
427
pkg_sizes [pkg ] = args .size
407
428
if not set_json (args , pkg_json ) and not all_users :
408
429
continue
409
- revalidate_pkg (pkg , usersplans [pkg ], users_vals , org_pkg , pkg_json , all_users , vars (args ))
430
+ revalidate_pkg (pkg , pkg_sizes , usersplans [pkg ], users_vals , org_pkg , pkg_json , all_users , vars (args ))
410
431
if write_sizes :
411
432
write_pkg_sizes (pkg_sizes )
412
433
return 0
0 commit comments