Harden workspace prechecks
This commit is contained in:
parent
018fa551dd
commit
26ee215765
@ -265,6 +265,12 @@ class WorkspaceProvisionController extends ChangeNotifier {
|
||||
if (info == null) {
|
||||
return null;
|
||||
}
|
||||
if (!info.os.toLowerCase().contains('ubuntu')) {
|
||||
return appText(
|
||||
'当前仅支持 Ubuntu 20.04 / 22.04 / 24.04,检测到 ${info.os}。',
|
||||
'Only Ubuntu 20.04 / 22.04 / 24.04 is supported. Detected: ${info.os}.',
|
||||
);
|
||||
}
|
||||
if (!info.dnsResolved) {
|
||||
return appText(
|
||||
'部署前需要先把 ${workspaceDomain.trim()} 做好 DNS 解析。',
|
||||
|
||||
@ -190,6 +190,34 @@ PORT_443_OPEN=yes
|
||||
contains('443'),
|
||||
);
|
||||
});
|
||||
|
||||
test('precheck blocks unsupported non-Ubuntu systems', () async {
|
||||
final controller = WorkspaceProvisionController(executor: _FakeSshExecutor());
|
||||
addTearDown(controller.dispose);
|
||||
controller.updateForm(
|
||||
serverAddress: '203.0.113.10',
|
||||
workspaceDomain: 'xworkmate-bridge.example.com',
|
||||
sshKeyContent: 'key',
|
||||
);
|
||||
controller.serverInfo = const ServerInfo(
|
||||
os: 'Debian GNU/Linux 11 (bullseye)',
|
||||
arch: 'x86_64',
|
||||
sudoAvailable: true,
|
||||
dockerVersion: 'missing',
|
||||
systemdVersion: 'systemd 249',
|
||||
caddyVersion: 'missing',
|
||||
ansibleVersion: 'ansible [core 2.14]',
|
||||
gitVersion: 'git version 2.34.1',
|
||||
dnsAddressCount: 1,
|
||||
port443ListenerCount: 0,
|
||||
port443Open: true,
|
||||
);
|
||||
|
||||
expect(
|
||||
controller.validatePrecheckBlockingIssue(),
|
||||
contains('Ubuntu'),
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user