inline std::string createSlaveDirectory( const std::string& rootDir, const SlaveID& slaveId) { std::string directory = getSlavePath(rootDir, slaveId); Try<Nothing> mkdir = os::mkdir(directory); CHECK_SOME(mkdir) << "Failed to create slave directory '" << directory << "'"; // Remove the previous "latest" symlink. std::string latest = getLatestSlavePath(rootDir); if (os::exists(latest)) { CHECK_SOME(os::rm(latest)) << "Failed to remove latest symlink '" << latest << "'"; } // Symlink the new slave directory to "latest". Try<Nothing> symlink = fs::symlink(directory, latest); CHECK_SOME(symlink) << "Failed to symlink directory '" << directory << "' to '" << latest << "'"; return directory; }
string createSlaveDirectory( const string& rootDir, const SlaveID& slaveId) { // `slaveId` should be valid because it's assigned by the master but // we do a sanity check here before using it to create a directory. CHECK_NONE(common::validation::validateSlaveID(slaveId)); const string directory = getSlavePath(rootDir, slaveId); Try<Nothing> mkdir = os::mkdir(directory); CHECK_SOME(mkdir) << "Failed to create agent directory '" << directory << "'"; // Remove the previous "latest" symlink. const string latest = getLatestSlavePath(rootDir); if (os::exists(latest)) { CHECK_SOME(os::rm(latest)) << "Failed to remove latest symlink '" << latest << "'"; } // Symlink the new slave directory to "latest". Try<Nothing> symlink = ::fs::symlink(directory, latest); CHECK_SOME(symlink) << "Failed to symlink directory '" << directory << "' to '" << latest << "'"; return directory; }