Fix the user del issue, cgroup tools bug, user creation logic

This commit is contained in:
evanc 2015-05-10 23:36:32 -07:00
Родитель 12b95f2258
Коммит 7b6ce1d127
5 изменённых файлов: 24 добавлений и 4 удалений

Просмотреть файл

@ -136,6 +136,13 @@ namespace hpc
"Set correct permissions on key files", "Set correct permissions on key files",
} }
}, },
{ "1.2.1.8",
{
"Remove the user even if it is logged on",
"Won't overwrite the keys if private key is not created",
"Work around the bug of removing multi-subsys cgroup in old version of CGroup tools",
}
},
}; };
return versionHistory; return versionHistory;

Просмотреть файл

@ -165,7 +165,7 @@ void* Process::ForkThread(void* arg)
} }
Final: Final:
p->ExecuteCommand("/bin/bash", "CleanupTask.sh", p->taskExecutionId, p->processId); p->ExecuteCommandNoCapture("/bin/bash", "CleanupTask.sh", p->taskExecutionId, p->processId);
p->ExecuteCommand("rm -rf", p->taskFolder); p->ExecuteCommand("rm -rf", p->taskFolder);
p->ended = true; p->ended = true;
p->OnCompleted(); p->OnCompleted();

Просмотреть файл

@ -90,6 +90,18 @@ namespace hpc
return ret; return ret;
} }
template <typename ... Args>
int ExecuteCommandNoCapture(const std::string& cmd, const Args& ... args)
{
std::string output;
std::string cmdLine = String::Join(" ", cmd, args...);
int ret = System::ExecuteCommandOut(output, cmd, args...);
Logger::Debug(this->jobId, this->taskId, this->requeueCount, "'{0}', exitCode {1}, output {2}.", cmdLine, ret, output);
return ret;
}
static void* ForkThread(void*); static void* ForkThread(void*);
std::string GetAffinity(); std::string GetAffinity();

Просмотреть файл

@ -61,8 +61,9 @@ json::value RemoteExecutor::StartJobAndTask(StartJobAndTaskArgs&& args, const st
} }
bool privateKeyAdded = 0 == System::AddSshKey(userName, args.PrivateKey, "id_rsa"); bool privateKeyAdded = 0 == System::AddSshKey(userName, args.PrivateKey, "id_rsa");
bool publicKeyAdded = 0 == System::AddSshKey(userName, args.PublicKey, "id_rsa.pub"); bool publicKeyAdded = privateKeyAdded && (0 == System::AddSshKey(userName, args.PublicKey, "id_rsa.pub"));
bool authKeyAdded = 0 == System::AddAuthorizedKey(userName, args.PublicKey);
bool authKeyAdded = privateKeyAdded && publicKeyAdded && (0 == System::AddAuthorizedKey(userName, args.PublicKey));
if (authKeyAdded) if (authKeyAdded)
{ {

Просмотреть файл

@ -410,7 +410,7 @@ int System::DeleteUser(const std::string& userName)
{ {
std::string output; std::string output;
int ret = System::ExecuteCommandOut(output, "userdel", userName, "-r"); int ret = System::ExecuteCommandOut(output, "userdel", userName, "-r -f");
if (ret != 0) if (ret != 0)
{ {
Logger::Error("userdel {0} error code {1}", userName, ret); Logger::Error("userdel {0} error code {1}", userName, ret);