From: <ta...@us...> - 2013-11-16 11:24:34
|
Revision: 8725 http://gfarm.svn.sourceforge.net/gfarm/?rev=8725&view=rev Author: tatebe Date: 2013-11-16 11:24:23 +0000 (Sat, 16 Nov 2013) Log Message: ----------- merge r8724 from the 2.5 branch - -D option to specify a domainname of a file replica to be deleted Revision Links: -------------- http://gfarm.svn.sourceforge.net/gfarm/?rev=8724&view=rev Modified Paths: -------------- gfarm_v2/branches/2.6/gftool/gfrm/gfrm_simple.c Property Changed: ---------------- gfarm_v2/branches/2.6/ Property changes on: gfarm_v2/branches/2.6 ___________________________________________________________________ Modified: svn:mergeinfo - /gfarm_v2/branches/2.4:5271,5275-5281,5290,5329 /gfarm_v2/branches/2.5:7212,7214,7216-7217,7225,7246,7252,7254-7256,7260,7286,7509,7560-7561,7564,7573,7593-7596,7608,7619-7620,7633,7650,7655,7663,7677,7680,7700,7717,7725,7728,7732,7736,7780,7796,7813,7852,7855,7876,7897,7908,7918,7922,7924,7929,7933,7941-7942,7946-7948,7950,7954,7983,7997,8005,8008,8011,8014,8017,8028,8035-8037,8040,8043,8050,8053,8057-8058,8072,8078,8083,8095,8097,8106,8116-8118,8122,8137,8149,8154,8163,8167,8180-8181,8189,8192,8196,8227,8232,8236,8241,8245,8280,8294-8295,8310,8313,8333,8336,8339,8342-8347,8350,8413-8414,8417,8420,8423,8429-8430,8436,8439,8454,8505,8520,8533,8599,8605,8614,8654,8657,8669,8681,8689,8695,8700 /gfarm_v2/branches/2.5.7:6801,6804,6989,6998-6999,7572,7945,8115 /gfarm_v2/trunk:5598-5599,5616-5624,5626-5628,5641-5647,5650,5653,5657-5666,5669-5670,5673-5674,5683-5685,5693,5695-5696,5699,5704-5711,5717,5719-5720,5726-5727,5729-5730,5739,5746-5751,5775,5793,5799,5806,5808-5809,5815-5818,5821,5825,5827-5831,5839-5842,5844-5849,5851,5863-5864,5868,5870,5872-5878,5881,5884-5886,5889,5897,5913,5915,5924,5928,5930,5932,5934,5937,5942-5948,5959,5966-5972,5974-5975,5980,5994,5997-5998,6001-6007,6012-6013,6016,6019-6022,6024-6029,6031-6032,6034,6040,6042-6047,6053,6062-6063,6065,6067,6070,6073,6077-6079,6081,6083-6084,6086,6089,6091,6093,6095,6101,6103,6107-6108,6111,6115-6118,6120,6122,6129,6131-6137,6139,6141-6142,6144-6150,6152-6157,6159,6161,6166,6168,6173,6175,6177-6179,6181-6185,6188,6190-6193,6196,6214,6217-6218,6220-6223,6230-6232,6238-6239,6242,6247-6248,6250,6252,6255,6257-6258,6263,6265,6268,6271-6273,6276-6278,6282,6286-6287,6289,6292-6296,6298,6304-6306,6309-6310,6314-6315,6331-6333,6335,6340,6354,6361,6377,6380,6394-6397,6406,6413-6414,6420,6423-6427,6437,6448,6451-6452,6455,6458-6459,6469-6470,6476,6486,6553,6567,6571,6575,6577,6580-6581,6604,6614,6616,6630,6638,6645,6700,6741,6747,6754,6756,6758,6762,6764,6766,6768,6770,6778,6807,6810,6815,6823,6825,6836-6837,6839,6852,6854,6856,6865,6879,6926,6928,6939,6945-6946,6948-6952,6956,7008,7012,7015,7097,7099,7101,7103,7122,7167,7178,7181,7185,7200,7218-7222,7228-7229,7233,7236,7239,7242,7249,7529-7530,7532,7536,7566,7578,7597,7601,7659,7664,7666,7672,7674,7686,7697,7705,7709,7713,7721,7747,7751,7755,7758,7762-7763,7768,7775,7788,7798-7799,7801,7806,7827,7831,7836,7842,7847,7866,7878,7881,7884,7888,7892,7914,7916,7936,7967,7971,7979,7993,8001,8020,8024,8029,8046,8048,8141,8158,8240,8255,8380,8540,8567,8715 + /gfarm_v2/branches/2.4:5271,5275-5281,5290,5329 /gfarm_v2/branches/2.5:7212,7214,7216-7217,7225,7246,7252,7254-7256,7260,7286,7509,7560-7561,7564,7573,7593-7596,7608,7619-7620,7633,7650,7655,7663,7677,7680,7700,7717,7725,7728,7732,7736,7780,7796,7813,7852,7855,7876,7897,7908,7918,7922,7924,7929,7933,7941-7942,7946-7948,7950,7954,7983,7997,8005,8008,8011,8014,8017,8028,8035-8037,8040,8043,8050,8053,8057-8058,8072,8078,8083,8095,8097,8106,8116-8118,8122,8137,8149,8154,8163,8167,8180-8181,8189,8192,8196,8227,8232,8236,8241,8245,8280,8294-8295,8310,8313,8333,8336,8339,8342-8347,8350,8413-8414,8417,8420,8423,8429-8430,8436,8439,8454,8505,8520,8533,8599,8605,8614,8654,8657,8669,8681,8689,8695,8700,8724 /gfarm_v2/branches/2.5.7:6801,6804,6989,6998-6999,7572,7945,8115 /gfarm_v2/trunk:5598-5599,5616-5624,5626-5628,5641-5647,5650,5653,5657-5666,5669-5670,5673-5674,5683-5685,5693,5695-5696,5699,5704-5711,5717,5719-5720,5726-5727,5729-5730,5739,5746-5751,5775,5793,5799,5806,5808-5809,5815-5818,5821,5825,5827-5831,5839-5842,5844-5849,5851,5863-5864,5868,5870,5872-5878,5881,5884-5886,5889,5897,5913,5915,5924,5928,5930,5932,5934,5937,5942-5948,5959,5966-5972,5974-5975,5980,5994,5997-5998,6001-6007,6012-6013,6016,6019-6022,6024-6029,6031-6032,6034,6040,6042-6047,6053,6062-6063,6065,6067,6070,6073,6077-6079,6081,6083-6084,6086,6089,6091,6093,6095,6101,6103,6107-6108,6111,6115-6118,6120,6122,6129,6131-6137,6139,6141-6142,6144-6150,6152-6157,6159,6161,6166,6168,6173,6175,6177-6179,6181-6185,6188,6190-6193,6196,6214,6217-6218,6220-6223,6230-6232,6238-6239,6242,6247-6248,6250,6252,6255,6257-6258,6263,6265,6268,6271-6273,6276-6278,6282,6286-6287,6289,6292-6296,6298,6304-6306,6309-6310,6314-6315,6331-6333,6335,6340,6354,6361,6377,6380,6394-6397,6406,6413-6414,6420,6423-6427,6437,6448,6451-6452,6455,6458-6459,6469-6470,6476,6486,6553,6567,6571,6575,6577,6580-6581,6604,6614,6616,6630,6638,6645,6700,6741,6747,6754,6756,6758,6762,6764,6766,6768,6770,6778,6807,6810,6815,6823,6825,6836-6837,6839,6852,6854,6856,6865,6879,6926,6928,6939,6945-6946,6948-6952,6956,7008,7012,7015,7097,7099,7101,7103,7122,7167,7178,7181,7185,7200,7218-7222,7228-7229,7233,7236,7239,7242,7249,7529-7530,7532,7536,7566,7578,7597,7601,7659,7664,7666,7672,7674,7686,7697,7705,7709,7713,7721,7747,7751,7755,7758,7762-7763,7768,7775,7788,7798-7799,7801,7806,7827,7831,7836,7842,7847,7866,7878,7881,7884,7888,7892,7914,7916,7936,7967,7971,7979,7993,8001,8020,8024,8029,8046,8048,8141,8158,8240,8255,8380,8540,8567,8715 Modified: gfarm_v2/branches/2.6/gftool/gfrm/gfrm_simple.c =================================================================== --- gfarm_v2/branches/2.6/gftool/gfrm/gfrm_simple.c 2013-11-16 09:51:51 UTC (rev 8724) +++ gfarm_v2/branches/2.6/gftool/gfrm/gfrm_simple.c 2013-11-16 11:24:23 UTC (rev 8725) @@ -15,7 +15,7 @@ char *program_name = "gfrm"; struct options { - char *host; + char *host, *domain; int force; int noexecute; int recursive; @@ -28,8 +28,8 @@ static void usage(void) { - fprintf(stderr, "Usage: %s [-r] [-n] [-f] [-h hostname] file...\n", - program_name); + fprintf(stderr, "Usage: %s [-r] [-n] [-f] [-h hostname] " + "[-D domainname] file...\n", program_name); exit(EXIT_FAILURE); } @@ -76,6 +76,29 @@ } static gfarm_error_t +gfs_replica_remove_by_domain(const char *path, const char *domain) +{ + const char *host; + int i, flags = 0; + struct gfs_replica_info *ri; + gfarm_error_t e, e_save = GFARM_ERR_NO_ERROR; + + e = gfs_replica_info_by_name(path, flags, &ri); + if (e != GFARM_ERR_NO_ERROR) + return (e); + for (i = 0; i < gfs_replica_info_number(ri); ++i) { + host = gfs_replica_info_nth_host(ri, i); + if (gfarm_host_is_in_domain(host, domain)) { + e = gfs_replica_remove_by_file(path, host); + if (e_save == GFARM_ERR_NO_ERROR) + e_save = e; + } + } + gfs_replica_info_free(ri); + return (e_save); +} + +static gfarm_error_t remove_files(gfarm_stringlist *files, gfarm_stringlist *dirs, struct options *options) { @@ -87,10 +110,12 @@ if (options->noexecute) printf("%s\n", file); - else if (options->host == NULL) + else if (options->host != NULL) + e = gfs_replica_remove_by_file(file, options->host); + else if (options->domain != NULL) + e = gfs_replica_remove_by_domain(file, options->domain); + else e = gfs_unlink(file); - else - e = gfs_replica_remove_by_file(file, options->host); if (e != GFARM_ERR_NO_ERROR && (!options->force || @@ -104,7 +129,7 @@ } } - if (options->host != NULL) + if (options->host != NULL || options->domain != NULL) goto skip_directory_remove; /* remove directories only if the -h option is not specified */ for (i = 0; i < gfarm_stringlist_length(dirs); i++) { @@ -150,7 +175,8 @@ struct options options; gfarm_error_t (*op_dir_before)(char *, struct gfs_stat *, void *); - options.host = NULL; + options.host = + options.domain = NULL; options.force = options.noexecute = options.recursive = 0; if (argc > 0) @@ -158,8 +184,11 @@ e = gfarm_initialize(&argc, &argv); error_check(e); - while ((c = getopt(argc, argv, "fh:nr?")) != -1) { + while ((c = getopt(argc, argv, "D:fh:nr?")) != -1) { switch (c) { + case 'D': + options.domain = optarg; + break; case 'f': options.force = 1; break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |