| 936 | |
| 937 | |
| 938 | string createResourceProviderDirectory( |
| 939 | const string& rootDir, |
| 940 | const SlaveID& slaveId, |
| 941 | const string& resourceProviderType, |
| 942 | const string& resourceProviderName, |
| 943 | const ResourceProviderID& resourceProviderId) |
| 944 | { |
| 945 | const string directory = getResourceProviderPath( |
| 946 | rootDir, |
| 947 | slaveId, |
| 948 | resourceProviderType, |
| 949 | resourceProviderName, |
| 950 | resourceProviderId); |
| 951 | |
| 952 | Try<Nothing> mkdir = os::mkdir(directory); |
| 953 | |
| 954 | CHECK_SOME(mkdir) |
| 955 | << "Failed to create resource provider directory '" << directory << "'"; |
| 956 | |
| 957 | // Remove the previous "latest" symlink. |
| 958 | const string latest = getLatestResourceProviderPath( |
| 959 | rootDir, |
| 960 | slaveId, |
| 961 | resourceProviderType, |
| 962 | resourceProviderName); |
| 963 | |
| 964 | if (os::exists(latest)) { |
| 965 | CHECK_SOME(os::rm(latest)) |
| 966 | << "Failed to remove latest symlink '" << latest << "'"; |
| 967 | } |
| 968 | |
| 969 | // Symlink the new resource provider directory to "latest". |
| 970 | Try<Nothing> symlink = ::fs::symlink(directory, latest); |
| 971 | |
| 972 | CHECK_SOME(symlink) |
| 973 | << "Failed to symlink directory '" << directory |
| 974 | << "' to '" << latest << "'"; |
| 975 | |
| 976 | return directory; |
| 977 | } |
| 978 | |
| 979 | } // namespace paths { |
| 980 | } // namespace slave { |
no test coverage detected