Sashi cli and rootless dockerd fixes (#122)

* Fixed sashi cli create json construction issue
* Properly applied rootless slirp4netns port driver.
* Added dockerd max-concurrent-downloads.
* Changed some debug logs to info.
This commit is contained in:
Ravin Perera
2022-04-23 13:14:05 +05:30
committed by GitHub
parent f7a374c004
commit 3daa1126f6
5 changed files with 19 additions and 7 deletions

View File

@@ -143,9 +143,21 @@ fi
echo "Installing rootless dockerd for user."
sudo -H -u "$user" PATH="$docker_bin":"$PATH" XDG_RUNTIME_DIR="$user_runtime_dir" "$docker_bin"/dockerd-rootless-setuptool.sh install
mkdir "$user_dir"/.config/systemd/user/$docker_service.d
# Add environment variables as an override to docker service unit file.
echo "Applying $docker_service env overrides."
sudo -H -u "$user" mkdir $user_dir/.config/systemd/user/$docker_service.d
sudo -H -u "$user" touch $user_dir/.config/systemd/user/$docker_service.d/override.conf
echo "[Service]
Environment='DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=slirp4netns'" >"$user_dir"/.config/systemd/user/$docker_service.d/override.conf
Environment=DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=slirp4netns" > $user_dir/.config/systemd/user/$docker_service.d/override.conf
# Overwrite docker-rootless cli args on the docker service unit file (ExecStart is not supported by override.conf).
echo "Applying $docker_service extra args."
exec_original="ExecStart=$docker_bin/dockerd-rootless.sh"
exec_replace="$exec_original --max-concurrent-downloads 1"
sed -i "s%$exec_original%$exec_replace%" $user_dir/.config/systemd/user/$docker_service
# Reload the docker service.
sudo -u "$user" XDG_RUNTIME_DIR="$user_runtime_dir" systemctl --user daemon-reload
sudo -u "$user" XDG_RUNTIME_DIR="$user_runtime_dir" systemctl --user restart $docker_service
service_ready $docker_service || rollback "NO_DOCKERSVC"

View File

@@ -199,7 +199,7 @@ namespace cli
int create(std::string_view container_name, std::string_view owner, std::string_view contract_id, std::string_view image)
{
std::string msg, output;
msg.resize(96 + owner.size() + contract_id.size() + image.size());
msg.resize(95 + container_name.size() + owner.size() + contract_id.size() + image.size());
sprintf(msg.data(), MSG_CREATE, container_name.data(), owner.data(), contract_id.data(), image.data());
const int ret = get_json_output(msg, output);

View File

@@ -161,7 +161,7 @@ int parse_cmd(int argc, char **argv)
return 0;
});
}
else if (create->parsed() && !contract_id.empty() && !image.empty())
else if (create->parsed() && !container_name.empty() && !owner.empty() && !contract_id.empty() && !image.empty())
{
return execute_cli([&]()
{ return cli::create(container_name, owner, contract_id, image); });

View File

@@ -876,7 +876,7 @@ namespace hp
return -1;
}
username = output_params.at(1);
LOG_DEBUG << "Created new user : " << username << ", uid : " << user_id;
LOG_INFO << "Created new user : " << username << ", uid : " << user_id;
return 0;
}
else if (strncmp(output_params.at(output_params.size() - 1).data(), "INST_ERR", 8) == 0) // If error.
@@ -913,7 +913,7 @@ namespace hp
// const std::string contract_dir = util::get_user_contract_dir(info.username, container_name);
if (strncmp(output_params.at(output_params.size() - 1).data(), "UNINST_SUC", 8) == 0) // If success.
{
LOG_DEBUG << "Deleted the user : " << username;
LOG_INFO << "Deleted the user : " << username;
return 0;
}
if (strncmp(output_params.at(output_params.size() - 1).data(), "UNINST_ERR", 8) == 0) // If error.

View File

@@ -451,7 +451,7 @@ namespace util
{
if (output.back() == '\n')
output.pop_back();
LOG_DEBUG << output;
LOG_INFO << output;
}
}