test-rconfig-setup.cc

Go to the documentation of this file.
00001 #include "config.h"
00002 
00003 #include <iostream>
00004 #include <string>
00005 #include <cassert>
00006 
00007 #ifdef HAVE_UNISTD_H
00008 #include <unistd.h>
00009 #endif
00010 
00011 #include <errno.h>
00012 
00013 #include "asserts.h"
00014 #include "types.h"
00015 #include "error.h"
00016 #include "estring.h"
00017 #include "fs.h"
00018 #include "tstamp.h"
00019 #include "rconfig.h"
00020 
00021 // #define ERR_OUT(e) std::cerr << e;
00022 #define ERR_OUT(e)
00023 
00024 bool make_dir(const std::string& path)
00025 {
00026         bool thrown;
00027 
00028         thrown = false;
00029         try {
00030                 mk_dir(path);
00031         }
00032         catch(...) {
00033                 thrown = true;
00034         }
00035         return(thrown == false);
00036 }
00037 
00038 void cleanup(void)
00039 {
00040         assert(system("rm -fr ./test-rconfig.dir") == 0);
00041 }
00042 
00043 void setup(void)
00044 {
00045         std::ofstream out;
00046 
00047         assert(make_dir("./test-rconfig.dir"));
00048         assert(make_dir("./test-rconfig.dir/catalog.dir"));
00049         assert(make_dir("./test-rconfig.dir/log.dir"));
00050         assert(make_dir("./test-rconfig.dir/vaults"));
00051         assert(make_dir("./test-rconfig.dir/vaults/vault-1"));
00052         assert(make_dir("./test-rconfig.dir/vaults/vault-2"));
00053         assert(make_dir("./test-rconfig.dir/vaults/vault-3"));
00054         assert(make_dir("./test-rconfig.dir/excludes.dir"));
00055 
00056         out.open("./test-rconfig.dir/excludes.dir/excludes.group-A.file-1");
00057         assert(out.is_open());
00058         out.close();
00059         out.open("./test-rconfig.dir/excludes.dir/excludes.group-A.file-2");
00060         assert(out.is_open());
00061         out.close();
00062         out.open("./test-rconfig.dir/excludes.dir/excludes.group-A.file-3");
00063         assert(out.is_open());
00064         out.close();
00065         out.open("./test-rconfig.dir/excludes.dir/excludes.group-B.file-1");
00066         assert(out.is_open());
00067         out.close();
00068         out.open("./test-rconfig.dir/excludes.dir/excludes.group-B.file-2");
00069         assert(out.is_open());
00070         out.close();
00071 
00072         //
00073         // Configuration with nonexistent file
00074         //
00075         assert(make_dir("./test-rconfig.dir/nonexistent"));
00076         out.open("./test-rconfig.dir/nonexistent/default.conf");
00077         out << "include nonexistent-file.conf" << std::endl;
00078         assert(out.is_open());
00079         out.close();
00080 
00081         //
00082         // Test global include command
00083         //
00084         assert(make_dir("./test-rconfig.dir/global-include.dir"));
00085 
00086         out.open("./test-rconfig.dir/global-include.dir/file-1.conf");
00087         assert(out.is_open());
00088         out << "include nonexistent-file.conf" << std::endl;
00089         out.close();
00090 
00091         out.open("./test-rconfig.dir/global-include.dir/file-2.conf");
00092         assert(out.is_open());
00093         out << "include file-2.1.conf" << std::endl;
00094         out.close();
00095 
00096         out.open("./test-rconfig.dir/global-include.dir/file-2.1.conf");
00097         assert(out.is_open());
00098         out << "include file-2.2.conf" << std::endl;
00099         out.close();
00100 
00101         out.open("./test-rconfig.dir/global-include.dir/file-3.conf");
00102         assert(out.is_open());
00103         out << "include file-3.1.conf" << std::endl;
00104         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00105         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00106         out.close();
00107 
00108         out.open("./test-rconfig.dir/global-include.dir/file-3.1.conf");
00109         assert(out.is_open());
00110         out << "include file-3.2.conf"; // NOTE: No endl
00111         out.close();
00112 
00113         out.open("./test-rconfig.dir/global-include.dir/file-3.2.conf");
00114         assert(out.is_open());
00115         out.close();
00116 
00117         out.open("./test-rconfig.dir/global-include.dir/file-4.conf");
00118         assert(out.is_open());
00119         out << "include file-4.1.conf" << std::endl;
00120         out.close();
00121 
00122         out.open("./test-rconfig.dir/global-include.dir/file-4.1.conf");
00123         assert(out.is_open());
00124         out << std::endl;
00125         out << std::endl;
00126         out << "include file-4.2.conf" << std::endl;
00127         out.close();
00128 
00129         out.open("./test-rconfig.dir/global-include.dir/file-4.2.conf");
00130         assert(out.is_open());
00131         out << std::endl;
00132         out << "include " << std::endl;
00133         out.close();
00134 
00135         out.open("./test-rconfig.dir/global-include.dir/file-5.conf");
00136         assert(out.is_open());
00137         out << "include file-5.1.conf" << std::endl;
00138         out.close();
00139 
00140         out.open("./test-rconfig.dir/global-include.dir/file-5.1.conf");
00141         assert(out.is_open());
00142         out << std::endl;
00143         out << std::endl;
00144         out << "include file-5.2.conf" << std::endl;
00145         out.close();
00146 
00147         out.open("./test-rconfig.dir/global-include.dir/file-5.2.conf");
00148         assert(out.is_open());
00149         out << std::endl;
00150         out << "include file-5.conf" << std::endl;
00151         out.close();
00152 
00153         out.open("./test-rconfig.dir/global-include.dir/file-6.conf");
00154         assert(out.is_open());
00155         out << "# This is a comment" << std::endl;
00156         out << "# include" << std::endl;
00157         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00158         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00159         out.close();
00160 
00161         out.open("./test-rconfig.dir/global-include.dir/file-7.conf");
00162         assert(out.is_open());
00163         out << "include file-7.dir/file-7.1.conf" << std::endl;
00164         out.close();
00165 
00166         assert(make_dir("./test-rconfig.dir/global-include.dir/file-7.dir"));
00167 
00168         out.open("./test-rconfig.dir/global-include.dir/file-7.dir/file-7.1.conf");
00169         assert(out.is_open());
00170         out << "include ../file-7.2.conf" << std::endl;
00171         out.close();
00172 
00173         out.open("./test-rconfig.dir/global-include.dir/file-7.2.conf");
00174         assert(out.is_open());
00175         out << "include file-7.dir/dir.2/*" << std::endl;
00176         out.close();
00177 
00178         assert(make_dir("./test-rconfig.dir/global-include.dir/file-7.dir/dir.2"));
00179 
00180         out.open("./test-rconfig.dir/global-include.dir/file-7.dir/dir.2/file-7.3.1.conf");
00181         assert(out.is_open());
00182         out.close();
00183 
00184         out.open("./test-rconfig.dir/global-include.dir/file-7.dir/dir.2/file-7.3.2.conf");
00185         assert(out.is_open());
00186         out.close();
00187 
00188         out.open("./test-rconfig.dir/global-include.dir/file-7.dir/dir.2/file-7.3.3.conf");
00189         assert(out.is_open());
00190         out.close();
00191 
00192         out.open("./test-rconfig.dir/global-include.dir/file-7.dir/dir.2/file-7.3.4.conf");
00193         assert(out.is_open());
00194         out << "include ../../nonexistent-file.conf" << std::endl;
00195         out.close();
00196 
00197         //
00198         // Test global default command
00199         // Test global include-job command
00200         // Test global job command
00201         //
00202         assert(make_dir("./test-rconfig.dir/job-include.dir"));
00203 
00204         out.open("./test-rconfig.dir/job-include.dir/file-1.conf");
00205         assert(out.is_open());
00206         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00207         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00208         out << "<default>" << std::endl;
00209         out << "        path /var/spool" << std::endl;
00210         out << "</default>" << std::endl;
00211         out << std::endl;
00212         out << "<job>" << std::endl;
00213         out << "        hostname host-A" << std::endl;
00214         out << "</job>" << std::endl;
00215         out << "include file-1.job-1.job" << std::endl;
00216         out << "include-job file-1.job-2.job" << std::endl;
00217         out.close();
00218 
00219         out.open("./test-rconfig.dir/job-include.dir/file-1.job-1.job");
00220         assert(out.is_open());
00221         out << "<job>" << std::endl;
00222         out << "        include file-1.job-1.2.job" << std::endl;
00223         out << "</job>" << std::endl;
00224         out.close();
00225 
00226         out.open("./test-rconfig.dir/job-include.dir/file-1.job-1.2.job");
00227         assert(out.is_open());
00228         out << "hostname host-B" << std::endl;
00229         out.close();
00230 
00231         out.open("./test-rconfig.dir/job-include.dir/file-1.job-2.job");
00232         assert(out.is_open());
00233         out << "hostname host-C" << std::endl;
00234         out.close();
00235 
00236         //
00237         // Test global link-catalog-dir command
00238         //
00239         assert(make_dir("./test-rconfig.dir/global-link-catalog-dir.dir"));
00240 
00241         out.open("./test-rconfig.dir/global-link-catalog-dir.dir/file-1.conf");
00242         assert(out.is_open());
00243         out << "link-catalog-dir ./test-rconfig.dir/dne-catalog.dir" << std::endl;
00244         out.close();
00245         
00246         out.open("./test-rconfig.dir/global-link-catalog-dir.dir/file-2.conf");
00247         assert(out.is_open());
00248         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00249         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00250         out << "link-catalog-dir ./test-rconfig.dir/catalog.dir" << std::endl;
00251         out.close();
00252 
00253         out.open("./test-rconfig.dir/global-link-catalog-dir.dir/file-3.conf");
00254         assert(out.is_open());
00255         out << "link-catalog-dir ./test-rconfig.dir/global-link-catalog-dir.dir/file-1.conf" << std::endl;
00256         out.close();
00257 
00258         //
00259         // Test global log-dir command
00260         //
00261         assert(make_dir("./test-rconfig.dir/global-log-dir.dir"));
00262 
00263         out.open("./test-rconfig.dir/global-log-dir.dir/file-1.conf");
00264         assert(out.is_open());
00265         out << "log-dir ./test-rconfig.dir/dne-log.dir" << std::endl;
00266         out.close();
00267         
00268         out.open("./test-rconfig.dir/global-log-dir.dir/file-2.conf");
00269         assert(out.is_open());
00270         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00271         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00272         out.close();
00273 
00274         out.open("./test-rconfig.dir/global-log-dir.dir/file-3.conf");
00275         assert(out.is_open());
00276         out << "log-dir ./test-rconfig.dir/global-log-dir.dir/file-1.conf" << std::endl;
00277         out.close();
00278 
00279         //
00280         // Test global rsync-local-path command
00281         //
00282         assert(make_dir("./test-rconfig.dir/global-rsync-local-path.dir"));
00283 
00284         out.open("./test-rconfig.dir/global-rsync-local-path.dir/file-1.conf");
00285         assert(out.is_open());
00286         out 
00287                 << "rsync-local-path ./test-rconfig.dir/global-rsync-local-path.dir/nonexistent-path" 
00288                 << std::endl;
00289         out.close();
00290 
00291         out.open("./test-rconfig.dir/global-rsync-local-path.dir/file-2.conf");
00292         assert(out.is_open());
00293         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00294         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00295         out
00296                 << "rsync-local-path "
00297                 << "./test-rconfig.dir/global-rsync-local-path.dir/file-1.conf"
00298                 << std::endl;
00299         out.close();
00300 
00301         //
00302         // Test global rsync-parallel command
00303         //
00304         assert(make_dir("./test-rconfig.dir/global-rsync-parallel.dir"));
00305 
00306         out.open("./test-rconfig.dir/global-rsync-parallel.dir/file-1.conf");
00307         assert(out.is_open());
00308         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00309         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00310         out << "rsync-parallel 0" << std::endl;
00311         out.close();
00312 
00313         out.open("./test-rconfig.dir/global-rsync-parallel.dir/file-2.conf");
00314         assert(out.is_open());
00315         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00316         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00317         out << "rsync-parallel 2" << std::endl;
00318         out.close();
00319 
00320         out.open("./test-rconfig.dir/global-rsync-parallel.dir/file-3.conf");
00321         assert(out.is_open());
00322         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00323         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00324         out << "rsync-parallel 100" << std::endl;
00325         out.close();
00326 
00327         out.open("./test-rconfig.dir/global-rsync-parallel.dir/file-4.conf");
00328         assert(out.is_open());
00329         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00330         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00331         out << "rsync-parallel abc" << std::endl;
00332         out.close();
00333 
00334         //
00335         // Test global timestamp-resolution command
00336         //
00337         assert(make_dir("./test-rconfig.dir/global-timestamp-resolution.dir"));
00338 
00339         out.open("./test-rconfig.dir/global-timestamp-resolution.dir/file-1.conf");
00340         assert(out.is_open());
00341         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00342         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00343         out << "timestamp-resolution month" << std::endl;
00344         out.close();
00345 
00346         out.open("./test-rconfig.dir/global-timestamp-resolution.dir/file-2.conf");
00347         assert(out.is_open());
00348         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00349         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00350         out << "timestamp-resolution leap-year" << std::endl;
00351         out.close();
00352 
00353         //
00354         // Test global vault command
00355         //
00356         assert(make_dir("./test-rconfig.dir/global-vault.dir"));
00357         
00358         out.open("./test-rconfig.dir/global-vault.dir/file-1.conf");
00359         assert(out.is_open());
00360         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00361         out 
00362                 << "vault ./test-rconfig.dir/global-vault.dir/nonexistent-vault.dir"
00363                 << std::endl;
00364         out.close();
00365 
00366         out.open("./test-rconfig.dir/global-vault.dir/file-2.conf");
00367         assert(out.is_open());
00368         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00369         out 
00370                 << "vault ./test-rconfig.dir/global-vault.dir/file-1.conf"
00371                 << std::endl;
00372         out.close();
00373 
00374         assert(make_dir("./test-rconfig.dir/global-vault.dir/00-vault.dir"));
00375 
00376         out.open("./test-rconfig.dir/global-vault.dir/file-3.conf");
00377         assert(out.is_open());
00378         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00379         out 
00380                 << "vault ./test-rconfig.dir/global-vault.dir/*"
00381                 << std::endl;
00382         out.close();
00383 
00384         out.open("./test-rconfig.dir/global-vault.dir/file-4.conf");
00385         assert(out.is_open());
00386         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00387         out 
00388                 << "vault ./test-rconfig.dir/vaults/*"
00389                 << std::endl;
00390         out.close();
00391 
00392         //
00393         // Test global vault-overflow-behavior command
00394         //
00395         assert(make_dir("./test-rconfig.dir/global-vault-overflow-behavior.dir"));
00396 
00397         out.open("./test-rconfig.dir/global-vault-overflow-behavior.dir/file-1.conf");
00398         assert(out.is_open());
00399         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00400         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00401         out << "vault-overflow-behavior lksdjflkj" << std::endl;
00402         out.close();
00403 
00404         out.open("./test-rconfig.dir/global-vault-overflow-behavior.dir/file-2.conf");
00405         assert(out.is_open());
00406         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00407         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00408         out << "vault-overflow-behavior delete-oldest" << std::endl;
00409         out.close();
00410 
00411         //
00412         // Test global vault-overflow-blocks command
00413         //
00414         assert(make_dir("./test-rconfig.dir/global-vault-overflow-blocks.dir"));
00415 
00416         out.open("./test-rconfig.dir/global-vault-overflow-blocks.dir/file-1.conf");
00417         assert(out.is_open());
00418         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00419         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00420         out << "vault-overflow-blocks 0" << std::endl;
00421         out.close();
00422 
00423         out.open("./test-rconfig.dir/global-vault-overflow-blocks.dir/file-2.conf");
00424         assert(out.is_open());
00425         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00426         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00427         out << "vault-overflow-blocks 51" << std::endl;
00428         out.close();
00429 
00430         out.open("./test-rconfig.dir/global-vault-overflow-blocks.dir/file-3.conf");
00431         assert(out.is_open());
00432         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00433         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00434         out << "vault-overflow-blocks 50" << std::endl;
00435         out.close();
00436 
00437         //
00438         // Test global vault-overflow-inodes command
00439         //
00440         assert(make_dir("./test-rconfig.dir/global-vault-overflow-inodes.dir"));
00441 
00442         out.open("./test-rconfig.dir/global-vault-overflow-inodes.dir/file-1.conf");
00443         assert(out.is_open());
00444         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00445         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00446         out << "vault-overflow-inodes 0" << std::endl;
00447         out.close();
00448 
00449         out.open("./test-rconfig.dir/global-vault-overflow-inodes.dir/file-2.conf");
00450         assert(out.is_open());
00451         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00452         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00453         out << "vault-overflow-inodes 51" << std::endl;
00454         out.close();
00455 
00456         out.open("./test-rconfig.dir/global-vault-overflow-inodes.dir/file-3.conf");
00457         assert(out.is_open());
00458         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00459         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00460         out << "vault-overflow-inodes 25" << std::endl;
00461         out.close();
00462 
00463         //
00464         // Test global vault-selection-behavior command
00465         //
00466         assert(make_dir("./test-rconfig.dir/global-vault-selection-behavior.dir"));
00467 
00468         out.open("./test-rconfig.dir/global-vault-selection-behavior.dir/file-1.conf");
00469         assert(out.is_open());
00470         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00471         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00472         out << "vault-selection-behavior lolksjdf" << std::endl;
00473         out.close();
00474 
00475         out.open("./test-rconfig.dir/global-vault-selection-behavior.dir/file-2.conf");
00476         assert(out.is_open());
00477         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00478         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00479         out << "vault-selection-behavior max-free" << std::endl;
00480         out.close();
00481 
00482         //
00483         // Test job commands
00484         //
00485         assert(make_dir("./test-rconfig.dir/job.dir"));
00486 
00487         out.open("./test-rconfig.dir/job.dir/exclude-file-1");
00488         assert(out.is_open());
00489         out.close();
00490 
00491         out.open("./test-rconfig.dir/job.dir/exclude-file-2");
00492         assert(out.is_open());
00493         out.close();
00494 
00495         out.open("./test-rconfig.dir/job.dir/exclude-file-3");
00496         assert(out.is_open());
00497         out.close();
00498 
00499         out.open("./test-rconfig.dir/job.dir/file-1.conf");
00500         assert(out.is_open());
00501         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00502         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00503         out << "<default>" << std::endl;
00504         out << std::endl << std::endl;
00505         out << "        booga-booga!" << std::endl;
00506         out << "</default>" << std::endl;
00507         out.close();
00508 
00509         out.open("./test-rconfig.dir/job.dir/file-2.conf");
00510         assert(out.is_open());
00511         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00512         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00513         out << std::endl;
00514         out << "include-job file-2.1.conf" << std::endl;
00515         out.close();
00516 
00517         out.open("./test-rconfig.dir/job.dir/file-2.1.conf");
00518         out << std::endl << std::endl << std::endl;
00519         assert(out.is_open());
00520         out << "booga-booga again!" << std::endl;
00521         out.close();
00522 
00523         out.open("./test-rconfig.dir/job.dir/file-3.conf");
00524         assert(out.is_open());
00525         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00526         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00527         out << "<default>" << std::endl << std::endl;
00528         out << "        include file-3.1.conf" << std::endl;
00529         out << "</default>" << std::endl;
00530         out.close();
00531 
00532         out.open("./test-rconfig.dir/job.dir/file-3.1.conf");
00533         assert(out.is_open());
00534         out << "booga?" << std::endl;
00535         out.close();
00536 
00537         out.open("./test-rconfig.dir/job.dir/file-4.conf");
00538         assert(out.is_open());
00539         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00540         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00541         out << "<default>" << std::endl;
00542         out << "        archive-path    groupname/\"literal-text\"/jobname" << std::endl;
00543         out << "</default>" << std::endl;
00544         out.close();
00545 
00546         out.open("./test-rconfig.dir/job.dir/file-5.conf");
00547         assert(out.is_open());
00548         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00549         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00550         out << "<default>" << std::endl;
00551         out << "        exclude-from ../excludes.dir/excludes.group-A.file-1" << std::endl;
00552         out << "</default>" << std::endl;
00553         out.close();
00554 
00555         out.open("./test-rconfig.dir/job.dir/file-6.conf");
00556         assert(out.is_open());
00557         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00558         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00559         out << "<default>" << std::endl;
00560         out << "        exclude-from ../excludes.dir/excludes.group-A.*" << std::endl;
00561         out << "        rsync-connection-type local" << std::endl;
00562         out << "        path /var/spool" << std::endl;
00563         out << "</default>" << std::endl;
00564         out << "<job>" << std::endl;
00565         out << "        exclude-from ../excludes.dir/excludes.group-B.file-2" << std::endl;
00566         out << "        hostname gus-A" << std::endl;
00567         out << "</job>" << std::endl;
00568         out << "<default>" << std::endl;
00569         out << "        exclude-from ../excludes.dir/excludes.group-B.file-1" << std::endl;
00570         out << "        rsync-connection-type local" << std::endl;
00571         out << "        path /var/spool" << std::endl;
00572         out << "</default>" << std::endl;
00573         out << "<job>" << std::endl;
00574         out << "        exclude-from ../excludes.dir/excludes.group-A.file-3" << std::endl;
00575         out << "        hostname gus-B" << std::endl;
00576         out << "</job>" << std::endl;
00577         out.close();
00578 
00579         out.open("./test-rconfig.dir/job.dir/file-7.conf");
00580         assert(out.is_open());
00581         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00582         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00583         out << "<default>" << std::endl;
00584         out << "        groupname group-A" << std::endl;
00585         out << "        hostname        host-A" << std::endl;
00586         out << "        rsync-behavior clear" << std::endl;
00587         out << "        rsync-behavior * = fail" << std::endl;
00588         out << "        rsync-behavior 5 = ok" << std::endl;
00589         out << "        rsync-connection-type   server" << std::endl;
00590         out << "        rsync-hardlink off" << std::endl;
00591         out << "        rsync-options --some -options for-rsync" << std::endl;
00592         out << "        rsync-remote-user alice" << std::endl;
00593         out << "        rsync-remote-port       4338" << std::endl;
00594         out << "        path /var/spool" << std::endl;
00595         out << "</default>" << std::endl;
00596         out << "<job>" << std::endl;
00597         out << "        jobname         job-A" << std::endl;
00598         out << "        rsync-behavior reset" << std::endl;
00599         out << "        rsync-connection-type   local" << std::endl;
00600         out << "        rsync-hardlink on" << std::endl;
00601         out << "        <rsync-options>" << std::endl;
00602         out << "                some more" << std::endl;
00603         out << "                options for" << std::endl;
00604         out << "                        rsync" << std::endl;
00605         out << "        </rsync-options>" << std::endl;
00606         out << "        rsync-remote-user" << std::endl;
00607         out << "        rsync-remote-port" << std::endl;
00608         out << "</job>" << std::endl;
00609         out << "<job>" << std::endl;
00610         out << "        hostname host-B" << std::endl;
00611         out << "</job>" << std::endl;
00612         out.close();
00613 
00614         out.open("./test-rconfig.dir/job.dir/file-8.conf");
00615         assert(out.is_open());
00616         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00617         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00618         out << "<default>" << std::endl;
00619         out << "        jobname job-A" << std::endl;
00620         out << "</default>" << std::endl;
00621         out.close();
00622 
00623         out.open("./test-rconfig.dir/job.dir/file-9.conf");
00624         assert(out.is_open());
00625         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00626         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00627         out << "<job>" << std::endl;
00628         out << "        rsync-connection-type local" << std::endl;
00629         out << "        archive-path jobname" << std::endl;
00630         out << "        path    /var/spool" << std::endl;
00631         out << "</job>" << std::endl;
00632         out.close();
00633 
00634         out.open("./test-rconfig.dir/job.dir/file-10.conf");
00635         assert(out.is_open());
00636         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00637         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00638         out << "<job>" << std::endl;
00639         out << "        rsync-connection-type local" << std::endl;
00640         out << "        archive-path groupname" << std::endl;
00641         out << "        path    /var/spool" << std::endl;
00642         out << "</job>" << std::endl;
00643         out.close();
00644 
00645         out.open("./test-rconfig.dir/job.dir/file-11.conf");
00646         assert(out.is_open());
00647         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00648         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00649         out << "<job>" << std::endl;
00650         out << "        rsync-connection-type local" << std::endl;
00651         out << "        archive-path hostname" << std::endl;
00652         out << "        path    /var/spool" << std::endl;
00653         out << "</job>" << std::endl;
00654         out.close();
00655 
00656         out.open("./test-rconfig.dir/job.dir/file-12.conf");
00657         assert(out.is_open());
00658         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00659         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00660         out << "<default>" << std::endl;
00661         out << "        rsync-connection-type local" << std::endl;
00662         out << "        path /var/spool" << std::endl;
00663         out << "</default>" << std::endl;
00664         out << "<job>" << std::endl;
00665         out << "        archive-path permutation" << std::endl;
00666         out << "</job>" << std::endl;
00667         out << "<job>" << std::endl;
00668         out << "        jobname job-A" << std::endl;
00669         out << "        archive-path permutation/jobname" << std::endl;
00670         out << "</job>" << std::endl;
00671         out.close();
00672 
00673         out.open("./test-rconfig.dir/job.dir/file-13.conf");
00674         assert(out.is_open());
00675         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00676         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00677         out << "<default>" << std::endl;
00678         out << "        rsync-connection-type local" << std::endl;
00679         out << "        path /var/spool" << std::endl;
00680         out << "        clear rsync-behavior" << std::endl;
00681         out << "        clear archive-path" << std::endl;
00682         out << "        archive-path pathname" << std::endl;
00683         out << "</default>" << std::endl;
00684         out << "<job>" << std::endl;
00685         out << "</job>" << std::endl;
00686         out << "<job>" << std::endl;
00687         out << "        clear paths" << std::endl;
00688         out << "        path /etc" << std::endl;
00689         out << "</job>" << std::endl;
00690         out.close();
00691 
00692         out.open("./test-rconfig.dir/job.dir/file-14.conf");
00693         assert(out.is_open());
00694         out << "log-dir ./test-rconfig.dir/log.dir" << std::endl;
00695         out << "vault ./test-rconfig.dir/vaults/vault-1" << std::endl;
00696         out << "<default>" << std::endl;
00697         out << "        path /var/spool" << std::endl;
00698         out << "</default>" << std::endl;
00699         out << "<job>" << std::endl;
00700         out << "        hostname local-default" << std::endl;
00701         out << "        rsync-connection-type local" << std::endl;
00702         out << "</job>" << std::endl;
00703         out << "<job>" << std::endl;
00704         out << "        hostname local-port" << std::endl;
00705         out << "        rsync-connection-type local" << std::endl;
00706         out << "        rsync-remote-port 1234" << std::endl;
00707         out << "</job>" << std::endl;
00708         out << "<job>" << std::endl;
00709         out << "        hostname remote-default" << std::endl;
00710         out << "        rsync-connection-type remote" << std::endl;
00711         out << "</job>" << std::endl;
00712         out << "<job>" << std::endl;
00713         out << "        hostname remote-port" << std::endl;
00714         out << "        rsync-connection-type remote" << std::endl;
00715         out << "        rsync-remote-port 1234" << std::endl;
00716         out << "</job>" << std::endl;
00717         out << "<job>" << std::endl;
00718         out << "        hostname server-default" << std::endl;
00719         out << "        rsync-connection-type server" << std::endl;
00720         out << "</job>" << std::endl;
00721         out << "<job>" << std::endl;
00722         out << "        hostname server-port" << std::endl;
00723         out << "        rsync-connection-type server" << std::endl;
00724         out << "        rsync-remote-port 1234" << std::endl;
00725         out << "</job>" << std::endl;
00726         out.close();
00727 }
00728 

Generated on Mon Jul 12 12:02:54 2004 for rvm by doxygen 1.3.6