00001 #ifndef SAMPLE_HANDLER__GRID_TOOLS_H
00002 #define SAMPLE_HANDLER__GRID_TOOLS_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <SampleHandler/Global.h>
00015
00016 #include <AsgTools/MessageCheck.h>
00017 #include <map>
00018 #include <memory>
00019 #include <set>
00020 #include <vector>
00021
00022 namespace SH
00023 {
00024 ANA_MSG_HEADER (msgGridTools)
00025
00026
00027
00028
00029
00030
00031 bool checkVomsProxy ();
00032
00033
00044 void ensureVomsProxy ();
00045
00046
00056 std::vector<std::string>
00057 faxListFilesGlob (const std::string& name, const std::string& filter);
00058
00059
00070 std::vector<std::string>
00071 faxListFilesRegex (const std::string& name, const std::string& filter);
00072
00073
00075 struct RucioListDidsEntry
00076 {
00078 std::string scope;
00079
00081 std::string name;
00082
00084 std::string type;
00085 };
00086
00093 std::vector<RucioListDidsEntry>
00094 rucioListDids (const std::string& dataset);
00095
00096
00097
00099 struct RucioListFileReplicasEntry
00100 {
00102 std::string scope;
00103
00105 std::string name;
00106
00108 std::string filesize;
00109
00111 std::string adler32;
00112
00114 std::string disk;
00115
00117 std::string replica;
00118 };
00119
00126 std::vector<RucioListFileReplicasEntry>
00127 rucioListFileReplicas (const std::string& dataset);
00128
00129
00130
00138 std::map<std::string,std::unique_ptr<MetaObject> >
00139 rucioGetMetadata (const std::set<std::string>& datasets);
00140
00141
00143 struct RucioDownloadResult
00144 {
00145 std::string did;
00146 unsigned totalFiles = 0;
00147 unsigned downloadedFiles = 0;
00148 unsigned alreadyLocal = 0;
00149 unsigned notDownloaded = 0;
00150 };
00151
00157 RucioDownloadResult
00158 rucioDownload (const std::string& location,
00159 const std::string& dataset);
00160
00166 std::vector<RucioDownloadResult>
00167 rucioDownloadList (const std::string& location,
00168 const std::vector<std::string>& datasets);
00169 }
00170
00171 #endif