|
14 | 14 | ATTR_AUDIO_OUTPUT, |
15 | 15 | ATTR_BACKUP, |
16 | 16 | ATTR_BACKUPS_EXCLUDE_DATABASE, |
17 | | - ATTR_BLK_READ, |
18 | | - ATTR_BLK_WRITE, |
19 | 17 | ATTR_BOOT, |
20 | | - ATTR_CPU_PERCENT, |
21 | 18 | ATTR_DUPLICATE_LOG_FILE, |
22 | 19 | ATTR_IMAGE, |
23 | 20 | ATTR_IP_ADDRESS, |
24 | 21 | ATTR_JOB_ID, |
25 | 22 | ATTR_MACHINE, |
26 | | - ATTR_MEMORY_LIMIT, |
27 | | - ATTR_MEMORY_PERCENT, |
28 | | - ATTR_MEMORY_USAGE, |
29 | | - ATTR_NETWORK_RX, |
30 | | - ATTR_NETWORK_TX, |
| 23 | + ATTR_ONE_SHOT, |
31 | 24 | ATTR_PORT, |
32 | 25 | ATTR_REFRESH_TOKEN, |
33 | 26 | ATTR_SSL, |
|
40 | 33 | from ..exceptions import APIDBMigrationInProgress, APIError |
41 | 34 | from ..validate import docker_image, network_port, version_tag |
42 | 35 | from .const import ATTR_BACKGROUND, ATTR_FORCE, ATTR_SAFE_MODE |
43 | | -from .utils import api_process, api_validate, background_task |
| 36 | +from .utils import api_process, api_return_stats, api_validate, background_task |
44 | 37 |
|
45 | 38 | _LOGGER: logging.Logger = logging.getLogger(__name__) |
46 | 39 |
|
@@ -162,20 +155,10 @@ async def options(self, request: web.Request) -> None: |
162 | 155 | @api_process |
163 | 156 | async def stats(self, request: web.Request) -> dict[str, Any]: |
164 | 157 | """Return resource information.""" |
165 | | - stats = await self.sys_homeassistant.core.stats() |
166 | | - if not stats: |
167 | | - raise APIError("No stats available") |
| 158 | + one_shot = ATTR_ONE_SHOT in request.query |
| 159 | + stats = await self.sys_homeassistant.core.stats(one_shot=one_shot) |
168 | 160 |
|
169 | | - return { |
170 | | - ATTR_CPU_PERCENT: stats.cpu_percent, |
171 | | - ATTR_MEMORY_USAGE: stats.memory_usage, |
172 | | - ATTR_MEMORY_LIMIT: stats.memory_limit, |
173 | | - ATTR_MEMORY_PERCENT: stats.memory_percent, |
174 | | - ATTR_NETWORK_RX: stats.network_rx, |
175 | | - ATTR_NETWORK_TX: stats.network_tx, |
176 | | - ATTR_BLK_READ: stats.blk_read, |
177 | | - ATTR_BLK_WRITE: stats.blk_write, |
178 | | - } |
| 161 | + return api_return_stats(stats) |
179 | 162 |
|
180 | 163 | @api_process |
181 | 164 | async def update(self, request: web.Request) -> dict[str, str] | None: |
|
0 commit comments