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; }
Try<list<string>> getFrameworkPaths( const string& rootDir, const SlaveID& slaveId) { return fs::list( path::join(getSlavePath(rootDir, slaveId), FRAMEWORKS_DIR, "*")); }
Try<list<string>> getFrameworkPaths( const string& rootDir, const SlaveID& slaveId) { return os::glob( path::join(getSlavePath(rootDir, slaveId), "frameworks", "*")); }
string getFrameworkPath( const string& rootDir, const SlaveID& slaveId, const FrameworkID& frameworkId) { return path::join( getSlavePath(rootDir, slaveId), FRAMEWORKS_DIR, stringify(frameworkId)); }
string getSlaveInfoPath( const string& rootDir, const SlaveID& slaveId) { return path::join(getSlavePath(rootDir, slaveId), SLAVE_INFO_FILE); }