mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 04:23:40 +00:00
Feature/consolidate setup (#3092)
* start consolidating * add start-cli flash-os * combine install and setup and refactor all * use http * undo mock * fix translation * translations * use dialogservice wrapper * better ST messaging on setup * only warn on update if breakages (#3097) * finish setup wizard and ui language-keyboard feature * fix typo * wip: localization * remove start-tunnel readme * switch to posix strings for language internal * revert mock * translate backend strings * fix missing about text * help text for args * feat: add "Add new gateway" option (#3098) * feat: add "Add new gateway" option * Update web/projects/ui/src/app/routes/portal/components/form/controls/select.component.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add translation --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Matt Hill <mattnine@protonmail.com> * fix dns selection * keyboard keymap also * ability to shutdown after install * revert mock * working setup flow + manifest localization * (mostly) redundant localization on frontend * version bump * omit live medium from disk list and better space management * ignore missing package archive on 035 migration * fix device migration * add i18n helper to sdk * fix install over 0.3.5.1 * fix grub config --------- Co-authored-by: Matt Hill <mattnine@protonmail.com> Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com> Co-authored-by: Alex Inkin <alexander@inkin.ru> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -141,7 +141,7 @@ impl LxcManager {
|
||||
> 0
|
||||
{
|
||||
return Err(Error::new(
|
||||
eyre!("rootfs is not empty, refusing to delete"),
|
||||
eyre!("{}", t!("lxc.mod.rootfs-not-empty")),
|
||||
ErrorKind::InvalidRequest,
|
||||
));
|
||||
}
|
||||
@@ -249,6 +249,7 @@ impl LxcContainer {
|
||||
.arg("-R")
|
||||
.arg("+C")
|
||||
.arg(&log_mount_point)
|
||||
.env("LANG", "C.UTF-8")
|
||||
.invoke(ErrorKind::Filesystem)
|
||||
.await
|
||||
{
|
||||
@@ -381,7 +382,7 @@ impl LxcContainer {
|
||||
}
|
||||
if start.elapsed() > CONTAINER_DHCP_TIMEOUT {
|
||||
return Err(Error::new(
|
||||
eyre!("Timed out waiting for container to acquire DHCP lease"),
|
||||
eyre!("{}", t!("lxc.mod.dhcp-timeout")),
|
||||
ErrorKind::Timeout,
|
||||
));
|
||||
}
|
||||
@@ -407,9 +408,12 @@ impl LxcContainer {
|
||||
if !output.status.success() {
|
||||
return Err(Error::new(
|
||||
eyre!(
|
||||
"Command failed with exit code: {:?} \n Message: {:?}",
|
||||
output.status.code(),
|
||||
String::from_utf8(output.stderr)
|
||||
"{}",
|
||||
t!(
|
||||
"lxc.mod.command-failed",
|
||||
code = format!("{:?}", output.status.code()),
|
||||
message = format!("{:?}", String::from_utf8(output.stderr))
|
||||
)
|
||||
),
|
||||
ErrorKind::Docker,
|
||||
));
|
||||
@@ -437,7 +441,7 @@ impl LxcContainer {
|
||||
> 0
|
||||
{
|
||||
return Err(Error::new(
|
||||
eyre!("rootfs is not empty, refusing to delete"),
|
||||
eyre!("{}", t!("lxc.mod.rootfs-not-empty")),
|
||||
ErrorKind::InvalidRequest,
|
||||
));
|
||||
}
|
||||
@@ -473,13 +477,19 @@ impl LxcContainer {
|
||||
.await
|
||||
);
|
||||
return Err(Error::new(
|
||||
eyre!("timed out waiting for socket"),
|
||||
eyre!("{}", t!("lxc.mod.socket-timeout")),
|
||||
ErrorKind::Timeout,
|
||||
));
|
||||
}
|
||||
tokio::time::sleep(Duration::from_millis(100)).await;
|
||||
}
|
||||
tracing::info!("Connected to socket in {:?}", started.elapsed());
|
||||
tracing::info!(
|
||||
"{}",
|
||||
t!(
|
||||
"lxc.mod.connected-to-socket",
|
||||
elapsed = format!("{:?}", started.elapsed())
|
||||
)
|
||||
);
|
||||
Ok(UnixRpcClient::new(sock_path))
|
||||
}
|
||||
|
||||
@@ -569,8 +579,11 @@ impl Drop for LxcContainer {
|
||||
fn drop(&mut self) {
|
||||
if !self.exited {
|
||||
tracing::warn!(
|
||||
"Container {} was ungracefully dropped. Cleaning up dangling containers...",
|
||||
&**self.guid
|
||||
"{}",
|
||||
t!(
|
||||
"lxc.mod.container-ungracefully-dropped",
|
||||
container = &**self.guid
|
||||
)
|
||||
);
|
||||
let rootfs = self.rootfs.take();
|
||||
let guid = std::mem::take(&mut self.guid);
|
||||
@@ -589,16 +602,25 @@ impl Drop for LxcContainer {
|
||||
}
|
||||
.await
|
||||
{
|
||||
tracing::error!("Error reading logs from crashed container: {e}");
|
||||
tracing::error!(
|
||||
"{}",
|
||||
t!("lxc.mod.error-reading-crashed-logs", error = e.to_string())
|
||||
);
|
||||
tracing::debug!("{e:?}")
|
||||
}
|
||||
rootfs.unmount(true).await.log_err();
|
||||
drop(guid);
|
||||
if let Err(e) = manager.gc().await {
|
||||
tracing::error!("Error cleaning up dangling LXC containers: {e}");
|
||||
tracing::error!(
|
||||
"{}",
|
||||
t!(
|
||||
"lxc.mod.error-cleaning-up-containers",
|
||||
error = e.to_string()
|
||||
)
|
||||
);
|
||||
tracing::debug!("{e:?}")
|
||||
} else {
|
||||
tracing::info!("Successfully cleaned up dangling LXC containers");
|
||||
tracing::info!("{}", t!("lxc.mod.cleaned-up-containers"));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user