mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-09-13 13:07:39 +02:00
Update to 7.7.0
Since version 7.7.0, we recommend yours update python to 3.12. [+] Using nginx technology to load static files improves access speed [+] Refactor homepage, website, FTP, and database using vue3 [+] Table loading changed to skeleton screen [+] Add Website statistics-v2 professional plug-in [+] Add Home page - top 5 resource occupancy [+] Add protection for Files management (requires Tamper-proof for Enterprise 3.7) [+] Website, FTP, Databases page add program status [+] Add FTP log analysis (only supports Centos) [+] Add password-free login to phpMyAdmin [+] Add Proxy Project in Website (Supported when web service uses Nginx) [+] Add WP Toolkit (Pro version only) [+] Redesigned Docker module [+] Add WP Toolkit Protection [+] Add WP Toolkit Backup and Restore [+] Add WP Toolkit Migrated [+] Add WP Toolkit Clone site (supports new domain and subdomain) [+] Add WP Toolkit Create site from backup of other panel [+] Add WP Toolkit support for Cron automatic backup (only save Local disk) [+] Add WP Toolkit operation log [+] Add Integrity check for WP Toolkit [+] Add WP Toolkit plug-in management and themes management [*] Optimize phpMyAdmin formula access method [*] Optimize Home page PHP display problem [*] Optimize jump to the login interface after the login expires [*] Optimize automatic renewal of SSL at some times [*] Optimize Let's Encrypt to increase application success rate [-] Fix Logs Audit cannot be opened [-] Fix apache URL rewrite issue [-] Fix phpmyadmin installation problem [-] Fix the problem that some servers cannot install software [-] Fix upload file error [-] Fix left menu hiding problem [-] Fix aaPanel Mobile QR code display problem [-] Fix problem that third-party plug-ins are not displayed in the App Store [-] Fix issue where the menu bar is blank when opening new tabs [-] Fixed panel not being accessible in some cases [-] Fix the issue where Curl warning caused the inability to apply for SSL [-] Fix Quota issues for Website, FTP, Databases [-] Fix file interface display problem on mobile terminal
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
import time
|
||||
while True:
|
||||
print("Hello, World!")
|
||||
time.sleep(1)
|
||||
@@ -0,0 +1,105 @@
|
||||
import unittest
|
||||
import sys
|
||||
|
||||
if "/www/server/panel" not in sys.path:
|
||||
sys.path.insert(0, "/www/server/panel")
|
||||
from mod.base import RealProcess
|
||||
|
||||
if "/www/server/panel/class" not in sys.path:
|
||||
sys.path.insert(0, "/www/server/panel/class")
|
||||
import public
|
||||
|
||||
real_process = RealProcess()
|
||||
|
||||
|
||||
class TestRealProcess(unittest.TestCase):
|
||||
|
||||
def test_get_process_list(self):
|
||||
res = real_process.get_process_list()
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_info_by_pid(self):
|
||||
res = real_process.get_process_info_by_pid(1)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_info_by_name(self):
|
||||
res = real_process.get_process_info_by_name('system')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_info_by_exec(self):
|
||||
res = real_process.get_process_info_by_exec('/usr/sbin/sshd')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_info_by_port(self):
|
||||
res = real_process.get_process_info_by_port(22)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_info_by_ip(self):
|
||||
res = real_process.get_process_info_by_ip('192.168.168.66')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_info_by_openfile(self):
|
||||
res = real_process.get_process_info_by_openfile('/etc/passwd')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_ps(self):
|
||||
res = real_process.get_process_ps('grep')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_process_tree(self):
|
||||
res = real_process.get_process_tree(1)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
# def test_kill_pid(self):
|
||||
# try:
|
||||
# pid = real_process.get_process_info_by_exec('/www/server/panel/mod/test/process/test.py')['data'][0]['pid']
|
||||
# res = real_process.kill_pid(pid)
|
||||
# self.assertEqual(res['code'], 1)
|
||||
# except:
|
||||
# pass
|
||||
|
||||
# def test_kill_name(self):
|
||||
# try:
|
||||
# name = real_process.get_process_info_by_exec('/www/server/panel/mod/test/process/test.py')['data'][0]['name']
|
||||
# res = real_process.kill_name(name)
|
||||
# self.assertEqual(res['code'], 1)
|
||||
# except:
|
||||
# pass
|
||||
#
|
||||
# def test_kill_tree(self):
|
||||
# try:
|
||||
# pid = real_process.get_process_info_by_exec('/www/server/panel/mod/test/process/test.py')['data'][0]['pid']
|
||||
# res = real_process.kill_tree(pid)
|
||||
# self.assertEqual(res['code'], 1)
|
||||
# except:
|
||||
# pass
|
||||
#
|
||||
# def test_kill_proc_all(self):
|
||||
# pid = real_process.get_process_info_by_exec('/www/server/panel/mod/test/process/test.py')['data'][0]['pid']
|
||||
# res = real_process.kill_proc_all(pid)
|
||||
# self.assertEqual(res['code'], 1)
|
||||
#
|
||||
# def test_kill_port(self):
|
||||
# res = real_process.kill_port(22)
|
||||
# self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_add_black_ip(self):
|
||||
res = real_process.add_black_ip(['1.2.3.4'])
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_del_black_ip(self):
|
||||
res = real_process.del_black_ip(['1.2.3.4'])
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_firewall_reload(self):
|
||||
res = real_process.firewall_reload()
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_run_list(self):
|
||||
res = real_process.get_run_list()
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@@ -0,0 +1,69 @@
|
||||
import unittest
|
||||
import sys
|
||||
import time
|
||||
|
||||
if "/www/server/panel" not in sys.path:
|
||||
sys.path.insert(0, "/www/server/panel")
|
||||
if "/www/server/panel/class" not in sys.path:
|
||||
sys.path.insert(0, "/www/server/panel/class")
|
||||
from mod.base import RealServer
|
||||
|
||||
realserver = RealServer()
|
||||
|
||||
|
||||
class TestRealServer(unittest.TestCase):
|
||||
def test_server_admin(self):
|
||||
res = realserver.server_admin('httpd', 'stop')
|
||||
self.assertEqual(res['code'], 1)
|
||||
res = realserver.server_admin('httpd', 'start')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_server_status(self):
|
||||
res = realserver.server_status('httpd')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_add_boot(self):
|
||||
server_name = 'swwnb'
|
||||
pidfile = '/tmp/test.pl'
|
||||
start_exec = 'btpython /root/1.py'
|
||||
stop_exec = 'kill <cat /tmp/test.pl'
|
||||
res = realserver.add_boot(server_name, pidfile, start_exec, stop_exec)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_universal_server_admin(self):
|
||||
res = realserver.universal_server_admin('swwnb', 'stop')
|
||||
self.assertEqual(res['code'], 1)
|
||||
res = realserver.universal_server_admin('swwnb', 'start')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_universal_server_status(self):
|
||||
res = realserver.universal_server_status('swwnb')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_create_daemon(self):
|
||||
server_name = 'swwnb'
|
||||
pidfile = '/tmp/test.pl'
|
||||
start_exec = 'btpython /root/1.py'
|
||||
workingdirectory = '/tmp'
|
||||
res = realserver.create_daemon(server_name, pidfile, start_exec, workingdirectory)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_daemon_status(self):
|
||||
res = realserver.daemon_status('swwnb')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_del_daemon(self):
|
||||
res = realserver.del_daemon('swwnb')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
# def test_del_boot(self):
|
||||
# res = realserver.del_boot('swwnb')
|
||||
# self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_add_task(self):
|
||||
res = realserver.add_task('echo 1 > /time/111.log', int(time.time()) + 3000)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@@ -0,0 +1,149 @@
|
||||
import unittest
|
||||
import sys
|
||||
|
||||
if "/www/server/panel" not in sys.path:
|
||||
sys.path.insert(0, "/www/server/panel")
|
||||
if "/www/server/panel/class" not in sys.path:
|
||||
sys.path.insert(0, "/www/server/panel/class")
|
||||
from mod.base import RealUser
|
||||
|
||||
realuser = RealUser()
|
||||
|
||||
|
||||
class TestRealUser(unittest.TestCase):
|
||||
def setUp(self):
|
||||
realuser.add_user('test1', 'test1', 'test1')
|
||||
realuser.add_group('test')
|
||||
|
||||
def tearDown(self):
|
||||
realuser.remove_user('test1')
|
||||
realuser.remove_user('test')
|
||||
realuser.remove_group('test1')
|
||||
realuser.remove_group('test')
|
||||
|
||||
def test_get_user_list(self):
|
||||
print('get_user_list:')
|
||||
res = realuser.get_user_list()
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_group_list(self):
|
||||
print('get_group_list:')
|
||||
res = realuser.get_group_list()
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_add_user(self):
|
||||
print('add_user:')
|
||||
res = realuser.add_user('test', 'test', 'test')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_remove_user(self):
|
||||
print('remove_user:')
|
||||
res = realuser.remove_user('test1')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_pwd(self):
|
||||
print('edit_user_pwd:')
|
||||
res = realuser.edit_user_pwd('test1', 'test111')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_group(self):
|
||||
print('edit_user_group:')
|
||||
res = realuser.edit_user_group('test1', 'test')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_ps(self):
|
||||
print('edit_user_ps:')
|
||||
res = realuser.edit_user_ps('test1', 'test')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_status(self):
|
||||
print('edit_user_status:')
|
||||
res = realuser.edit_user_status('test1', '0')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_login_shell(self):
|
||||
print('edit_user_login_shell:')
|
||||
res = realuser.edit_user_login_shell('test1', '/bin/bash')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_home(self):
|
||||
print('edit_user_home:')
|
||||
res = realuser.edit_user_home('test1', '/home/test1')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_user_info(self):
|
||||
print('get_user_info:')
|
||||
res = realuser.get_user_info('test1')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_add_group(self):
|
||||
print('add_group:')
|
||||
res = realuser.add_group('test2')
|
||||
print(res)
|
||||
realuser.remove_group('test2')
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_remove_group(self):
|
||||
realuser.add_group('test')
|
||||
print('remove_group:')
|
||||
res = realuser.remove_group('test')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_group_name(self):
|
||||
print('edit_group_name:')
|
||||
res = realuser.edit_group_name('test', 'test5')
|
||||
print(res)
|
||||
print(realuser.remove_group('test5'))
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_group_info(self):
|
||||
print('get_group_info:')
|
||||
res = realuser.get_group_info('test1')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_group_user(self):
|
||||
print('get_group_user:')
|
||||
res = realuser.get_group_user('test1')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_get_user_group(self):
|
||||
print('get_user_group:')
|
||||
res = realuser.get_user_group('test1')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_permission(self):
|
||||
print('edit_user_permission:')
|
||||
res = realuser.edit_user_permission('test1', '777')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_group_permission(self):
|
||||
print('edit_group_permission:')
|
||||
res = realuser.edit_group_permission('test1', '777')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
def test_edit_user_name(self):
|
||||
print('edit_user_name:')
|
||||
res = realuser.edit_user_name('test1', 'test')
|
||||
print(res)
|
||||
self.assertEqual(res['code'], 1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user