in src/jailer/src/main.rs [82:241]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
use self::Error::*;
match *self {
ArgumentParsing(ref err) => write!(f, "Failed to parse arguments: {}", err),
Canonicalize(ref path, ref io_err) => write!(
f,
"{}",
format!("Failed to canonicalize path {:?}: {}", path, io_err).replace("\"", "")
),
Chmod(ref path, ref err) => {
write!(f, "Failed to change permissions on {:?}: {}", path, err)
}
CgroupInheritFromParent(ref path, ref filename) => write!(
f,
"{}",
format!(
"Failed to inherit cgroups configurations from file {} in path {:?}",
filename, path
)
.replace("\"", "")
),
CgroupLineNotFound(ref proc_mounts, ref controller) => write!(
f,
"{} configurations not found in {}",
controller, proc_mounts
),
CgroupInvalidFile(ref file) => write!(f, "Cgroup invalid file: {}", file,),
CgroupWrite(ref evalue, ref rvalue, ref file) => write!(
f,
"Expected value {} for {}. Current value: {}",
evalue, file, rvalue
),
CgroupFormat(ref arg) => write!(f, "Invalid format for cgroups: {}", arg,),
CgroupHierarchyMissing(ref arg) => write!(f, "Hierarchy not found: {}", arg,),
CgroupControllerUnavailable(ref arg) => write!(f, "Controller {} is unavailable", arg,),
CgroupInvalidVersion(ref arg) => {
write!(f, "{} is an invalid cgroup version specifier", arg,)
}
CgroupInvalidParentPath() => {
write!(
f,
"Parent cgroup path is invalid. Path should not be absolute or contain '..' or '.'",
)
}
ChangeFileOwner(ref path, ref err) => {
write!(f, "Failed to change owner for {:?}: {}", path, err)
}
ChdirNewRoot(ref err) => write!(f, "Failed to chdir into chroot directory: {}", err),
Clone(ref err) => write!(f, "Failed cloning into a new child process: {}", err),
CloseNetNsFd(ref err) => write!(f, "Failed to close netns fd: {}", err),
CloseDevNullFd(ref err) => write!(f, "Failed to close /dev/null fd: {}", err),
Copy(ref file, ref path, ref err) => write!(
f,
"{}",
format!("Failed to copy {:?} to {:?}: {}", file, path, err).replace("\"", "")
),
CreateDir(ref path, ref err) => write!(
f,
"{}",
format!("Failed to create directory {:?}: {}", path, err).replace("\"", "")
),
CStringParsing(_) => write!(f, "Encountered interior \\0 while parsing a string"),
Dup2(ref err) => write!(f, "Failed to duplicate fd: {}", err),
Exec(ref err) => write!(f, "Failed to exec into Firecracker: {}", err),
FileName(ref path) => write!(
f,
"{}",
format!("Failed to extract filename from path {:?}", path).replace("\"", "")
),
FileOpen(ref path, ref err) => write!(
f,
"{}",
format!("Failed to open file {:?}: {}", path, err).replace("\"", "")
),
FromBytesWithNul(ref err) => {
write!(f, "Failed to decode string from byte array: {}", err)
}
GetOldFdFlags(ref err) => write!(f, "Failed to get flags from fd: {}", err),
Gid(ref gid) => write!(f, "Invalid gid: {}", gid),
InvalidInstanceId(ref err) => write!(f, "Invalid instance ID: {}", err),
MissingParent(ref path) => write!(
f,
"{}",
format!("File {:?} doesn't have a parent", path).replace("\"", "")
),
MkdirOldRoot(ref err) => write!(
f,
"Failed to create the jail root directory before pivoting root: {}",
err
),
MknodDev(ref err, ref devname) => write!(
f,
"Failed to create {} via mknod inside the jail: {}",
devname, err
),
MountBind(ref err) => {
write!(f, "Failed to bind mount the jail root directory: {}", err)
}
MountPropagationSlave(ref err) => {
write!(f, "Failed to change the propagation type to slave: {}", err)
}
NotAFile(ref path) => write!(
f,
"{}",
format!("{:?} is not a file", path).replace("\"", "")
),
NotADirectory(ref path) => write!(
f,
"{}",
format!("{:?} is not a directory", path).replace("\"", "")
),
OpenDevNull(ref err) => write!(f, "Failed to open /dev/null: {}", err),
OsStringParsing(ref path, _) => write!(
f,
"{}",
format!("Failed to parse path {:?} into an OsString", path).replace("\"", "")
),
PivotRoot(ref err) => write!(f, "Failed to pivot root: {}", err),
ReadLine(ref path, ref err) => write!(
f,
"{}",
format!("Failed to read line from {:?}: {}", path, err).replace("\"", "")
),
ReadToString(ref path, ref err) => write!(
f,
"{}",
format!("Failed to read file {:?} into a string: {}", path, err).replace("\"", "")
),
RegEx(ref err) => write!(f, "Regex failed: {:?}", err),
ResLimitArgument(ref arg) => write!(f, "Invalid resource argument: {}", arg,),
ResLimitFormat(ref arg) => write!(f, "Invalid format for resources limits: {}", arg,),
ResLimitValue(ref arg, ref err) => {
write!(f, "Invalid limit value for resource: {}: {}", arg, err)
}
RmOldRootDir(ref err) => write!(f, "Failed to remove old jail root directory: {}", err),
SetCurrentDir(ref err) => write!(f, "Failed to change current directory: {}", err),
SetNetNs(ref err) => write!(f, "Failed to join network namespace: netns: {}", err),
Setrlimit(ref err) => write!(f, "Failed to set limit for resource: {}", err),
SetSid(ref err) => write!(f, "Failed to daemonize: setsid: {}", err),
Uid(ref uid) => write!(f, "Invalid uid: {}", uid),
UmountOldRoot(ref err) => write!(f, "Failed to unmount the old jail root: {}", err),
UnexpectedListenerFd(fd) => {
write!(f, "Unexpected value for the socket listener fd: {}", fd)
}
UnshareNewNs(ref err) => {
write!(f, "Failed to unshare into new mount namespace: {}", err)
}
UnsetCloexec(ref err) => write!(
f,
"Failed to unset the O_CLOEXEC flag on the socket fd: {}",
err
),
Write(ref path, ref err) => write!(
f,
"{}",
format!("Failed to write to {:?}: {}", path, err).replace("\"", "")
),
}
}