Re-add try catch for getting status func.

This commit is contained in:
LollipopKit
2021-10-28 09:55:16 +08:00
parent 2dbb1a1857
commit 10a745d25a
3 changed files with 50 additions and 35 deletions

View File

@@ -35,11 +35,6 @@ class ServerStatus {
late List<DiskInfo?> disk; late List<DiskInfo?> disk;
late TcpStatus tcp; late TcpStatus tcp;
ServerStatus( ServerStatus(this.cpu2Status, this.memList, this.sysVer, this.uptime,
this.cpu2Status, this.disk, this.tcp);
this.memList,
this.sysVer,
this.uptime,
this.disk,
this.tcp);
} }

View File

@@ -73,7 +73,7 @@ class ServerProvider extends BusyProvider {
} }
return; return;
} }
try {
await Future.wait(_servers.map((s) async { await Future.wait(_servers.map((s) async {
final idx = _servers.indexOf(s); final idx = _servers.indexOf(s);
final status = await _getData(s.info, idx); final status = await _getData(s.info, idx);
@@ -82,6 +82,9 @@ class ServerProvider extends BusyProvider {
notifyListeners(); notifyListeners();
} }
})); }));
} catch (e) {
rethrow;
}
} }
Future<void> startAutoRefresh() async { Future<void> startAutoRefresh() async {
@@ -136,7 +139,7 @@ class ServerProvider extends BusyProvider {
logger.warning(e); logger.warning(e);
} }
} }
try {
final cpu = await client.execute("cat /proc/stat | grep cpu") ?? ''; final cpu = await client.execute("cat /proc/stat | grep cpu") ?? '';
final mem = await client.execute('free -m') ?? ''; final mem = await client.execute('free -m') ?? '';
final sysVer = await client.execute('cat /etc/issue.net') ?? ''; final sysVer = await client.execute('cat /etc/issue.net') ?? '';
@@ -151,6 +154,12 @@ class ServerProvider extends BusyProvider {
_getUpTime(upTime), _getUpTime(upTime),
_getDisk(disk), _getDisk(disk),
_getTcp(tcp)); _getTcp(tcp));
} catch (e) {
_servers[idx].connectionState = ServerConnectionState.failed;
notifyListeners();
logger.warning(e);
return null;
}
} }
Cpu2Status _getCPU(String raw, Cpu2Status old) { Cpu2Status _getCPU(String raw, Cpu2Status old) {

View File

@@ -14,6 +14,14 @@ class ServerDetailPage extends StatefulWidget {
} }
class _ServerDetailPageState extends State<ServerDetailPage> { class _ServerDetailPageState extends State<ServerDetailPage> {
late MediaQueryData _media;
@override
void didChangeDependencies() {
super.didChangeDependencies();
_media = MediaQuery.of(context);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<ServerProvider>(builder: (_, provider, __) { return Consumer<ServerProvider>(builder: (_, provider, __) {
@@ -34,11 +42,14 @@ class _ServerDetailPageState extends State<ServerDetailPage> {
} }
Widget _buildCPUView(ServerStatus ss) { Widget _buildCPUView(ServerStatus ss) {
return ListView.builder( return ConstrainedBox(
constraints: BoxConstraints(maxHeight: _media.size.height * 0.3),
child: ListView.builder(
itemBuilder: (ctx, idx) { itemBuilder: (ctx, idx) {
return Text('$idx ${ss.cpu2Status.usedPercent(coreIdx: idx)}'); return Text('$idx ${ss.cpu2Status.usedPercent(coreIdx: idx)}');
}, },
itemCount: ss.cpu2Status.now.length, itemCount: ss.cpu2Status.now.length,
),
); );
} }