Files
aaPanel/class_v2/btdockerModelV2/screen.py
T
Jack ed55fa708d 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
2024-07-19 11:25:10 +08:00

84 lines
2.9 KiB
Python

#coding: utf-8
#-------------------------------------------------------------------
# aaPanel
#-------------------------------------------------------------------
# Copyright (c) 2015-2099 aaPanel(www.aapanel.com) All rights reserved.
#-------------------------------------------------------------------
# Author: zouhw <zhw@aapanel.com>
#-------------------------------------------------------------------
#------------------------------
# Docker模型
#------------------------------
import dk_public as dp
import time
class main:
def get_status(self,args):
"""
start_time
stop_time
:param args:
:return:
"""
data = dict()
# 容器总数
data['container_count'] = self.__get_container_count(args)
# 镜像信息,镜像总数,占用空间大小
data['image_info'] = dp.sql("image_infos").where("time>=? and time<=?",(args.start_time,args.stop_time)).select()
# 主机信息
data['host'] = len(dp.sql('hosts').select())
# 1小时内容器占用资源前三平均值
data['container_top'] = {"cpu":self.__get_cpu_avg(),"mem":self.__get_mem_avg()}
return data
def __get_container_count(self,args):
count = dp.sql('container_count').where("time>=? and time<=?", (args.start_time, args.stop_time)).select()
if not count:
return 0
return count[-1]
def __get_mem_avg(self):
now = int(time.time())
start_time = now - 3600
data = dp.sql("mem_stats").where("time>=? and time<=?",(start_time,now)).select()
containers = list()
info = dict()
# 获取容器ID
for d in data:
containers.append(d['container_id'])
# 获取每个容器1小时内的cpu使用率总和
containers = set(containers)
for c in containers:
num = 0
usage = 0
for d in data:
if d['container_id'] == c:
num += 1
usage += float(d['usage'])
if num != 0:
info[c] = usage / num
return info
def __get_cpu_avg(self):
now = int(time.time())
start_time = now - 3600
data = dp.sql("cpu_stats").where("time>=? and time<=?",(start_time,now)).select()
containers = list()
info = dict()
# 获取容器ID
for d in data:
containers.append(d['container_id'])
# 获取每个容器1小时内的cpu使用率总和
containers = set(containers)
for c in containers:
num = 0
cpu_usage = 0
for d in data:
if d['container_id'] == c:
num += 1
cpu_usage += float(0 if d['cpu_usage'] == '0.0' else d['cpu_usage'])
if num != 0:
info[c] = cpu_usage / num
return info