Skip to content

Commit 382a1ae

Browse files
committed
add delimiter argument to gufi_query_distributed
1 parent 9aea064 commit 382a1ae

File tree

3 files changed

+59
-53
lines changed

3 files changed

+59
-53
lines changed

scripts/gufi_query_distributed

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ def subtree_cmd(args, filename, idx, target):
8181
cmd = [
8282
args.gufi_query,
8383
'-n', str(args.threads),
84+
'-d', str(args.delim),
8485
'-y', str(args.level),
8586
'-D', filename,
8687
]
@@ -96,6 +97,7 @@ def top_cmd(args, target):
9697
cmd = [
9798
args.gufi_query,
9899
'-n', str(args.threads),
100+
'-d', str(args.delim),
99101
'-z', str(args.level - 1),
100102
]
101103

@@ -123,6 +125,10 @@ def parse_args():
123125
type=gufi_common.get_positive,
124126
default=1)
125127

128+
parser.add_argument('--delim', '-d', metavar='c',
129+
type=gufi_common.get_char,
130+
default=b'\x1e')
131+
126132
for flag in SQL_FLAGS:
127133
parser.add_argument('-{0}'.format(flag), metavar='SQL', type=str)
128134

test/regression/gufi_distributed.expected

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Splitting 4 paths into 5 groups of max size 1
1616
Waiting for slurm jobs to complete
1717

1818
# Query Index
19-
$ gufi_query_distributed --sbatch "sbatch" --gufi_query "gufi_query" --threads 2 slurm "hostfile" 1 "search2/prefix" -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;"
19+
$ gufi_query_distributed --sbatch "sbatch" --gufi_query "gufi_query" --threads 2 --delim "|" slurm "hostfile" 1 "search2/prefix" -S "SELECT rpath(sname, sroll), mtime FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;"
2020
Splitting 4 paths into 5 groups of max size 1
2121
Range 0: 1 path on localhost
2222
directory directory
@@ -37,29 +37,29 @@ cat the following slurm job output files to get complete results:
3737

3838
# combine output files
3939
$ cat slurm.fake-0.out slurm.fake-1.out slurm.fake-2.out slurm.fake-3.out slurm.fake-4.out
40-
prefix2
41-
prefix2/.hidden
42-
prefix2/1KB
43-
prefix2/1MB
44-
prefix2/directory
45-
prefix2/directory/executable
46-
prefix2/directory/readonly
47-
prefix2/directory/subdirectory
48-
prefix2/directory/subdirectory/directory_symlink
49-
prefix2/directory/subdirectory/repeat_name
50-
prefix2/directory/writable
51-
prefix2/empty_directory
52-
prefix2/file_symlink
53-
prefix2/leaf_directory
54-
prefix2/leaf_directory/leaf_file1
55-
prefix2/leaf_directory/leaf_file2
56-
prefix2/old_file
57-
prefix2/repeat_name
58-
prefix2/unusual#? directory ,
59-
prefix2/unusual#? directory ,/unusual, name?#
40+
prefix2/.hidden|10
41+
prefix2/1KB|1024
42+
prefix2/1MB|1048576
43+
prefix2/directory/executable|1
44+
prefix2/directory/readonly|2
45+
prefix2/directory/subdirectory/directory_symlink|4
46+
prefix2/directory/subdirectory/repeat_name|5
47+
prefix2/directory/subdirectory|6
48+
prefix2/directory/writable|3
49+
prefix2/directory|7
50+
prefix2/empty_directory|8
51+
prefix2/file_symlink|9
52+
prefix2/leaf_directory/leaf_file1|11
53+
prefix2/leaf_directory/leaf_file2|12
54+
prefix2/leaf_directory|13
55+
prefix2/old_file|0
56+
prefix2/repeat_name|14
57+
prefix2/unusual#? directory ,/unusual, name?#|15
58+
prefix2/unusual#? directory ,|16
59+
prefix2|17
6060

6161
# Diff original index results against the combined results
62-
$ diff <("gufi_query" -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort) <(cat slurm.fake-0.out slurm.fake-1.out slurm.fake-2.out slurm.fake-3.out slurm.fake-4.out | sort | sed 's/search2\/prefix/search\/prefix/g')
62+
$ diff <("gufi_query" -d "|" -S "SELECT rpath(sname, sroll), mtime FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;" "prefix" | sort) <(cat slurm.fake-0.out slurm.fake-1.out slurm.fake-2.out slurm.fake-3.out slurm.fake-4.out | sort | sed 's/search2\/prefix/search\/prefix/g')
6363

6464
# Diff original index results against querying the new index from a single node
6565
$ diff <(gufi_query -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort) <(gufi_query -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "search2/prefix" | sort | sed 's/search2\/prefix/search\/prefix/g')
@@ -103,7 +103,7 @@ prefix/unusual#? directory ,
103103
prefix/unusual#? directory ,/unusual, name?#
104104

105105
# Diff original index results against the trace files
106-
$ diff <(gufi_query -d " " -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort | sed 's/search\///g') <(cat traces.0.0 traces.1.0 traces.2.0 traces.3.0 traces.0 | awk -F'|' '{ print $1 }' | sort)
106+
$ diff <(gufi_query -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort | sed 's/search\///g') <(cat traces.0.0 traces.1.0 traces.2.0 traces.3.0 traces.0 | awk -F'|' '{ print $1 }' | sort)
107107

108108
# Use existing group files (path_list.4 does not exist)
109109
$ gufi_dir2index_distributed --sbatch "sbatch" --gufi_dir2index "gufi_dir2index" --use-existing-group-files slurm "hostfile" 1 "prefix" "search2" 2>/dev/null
@@ -136,7 +136,7 @@ Splitting 4 paths into 5 groups of max size 1
136136
Waiting for ssh jobs to complete
137137

138138
# Query Index
139-
$ gufi_query_distributed --ssh "ssh" --gufi_query "gufi_query" --threads 2 ssh "hostfile" 1 "search2/prefix" -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" --output_prefix "output"
139+
$ gufi_query_distributed --ssh "ssh" --gufi_query "gufi_query" --threads 2 --delim "|" ssh "hostfile" 1 "search2/prefix" -S "SELECT rpath(sname, sroll), mtime FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;" --output_prefix "output"
140140
Splitting 4 paths into 5 groups of max size 1
141141
Range 0: 1 path on localhost
142142
directory directory
@@ -152,29 +152,29 @@ cat "output.*" to get complete results
152152

153153
# combine output files
154154
$ cat output.localhost.0.0 output.127.0.0.1.1.0 output.localhost.2.0 output.127.0.0.1.3.0 output.127.0.0.1.top.0 output.localhost.0.1 output.127.0.0.1.1.1 output.localhost.2.1 output.127.0.0.1.3.1 output.127.0.0.1.top.1
155-
prefix2
156-
prefix2/.hidden
157-
prefix2/1KB
158-
prefix2/1MB
159-
prefix2/directory
160-
prefix2/directory/executable
161-
prefix2/directory/readonly
162-
prefix2/directory/subdirectory
163-
prefix2/directory/subdirectory/directory_symlink
164-
prefix2/directory/subdirectory/repeat_name
165-
prefix2/directory/writable
166-
prefix2/empty_directory
167-
prefix2/file_symlink
168-
prefix2/leaf_directory
169-
prefix2/leaf_directory/leaf_file1
170-
prefix2/leaf_directory/leaf_file2
171-
prefix2/old_file
172-
prefix2/repeat_name
173-
prefix2/unusual#? directory ,
174-
prefix2/unusual#? directory ,/unusual, name?#
155+
prefix2/.hidden|10
156+
prefix2/1KB|1024
157+
prefix2/1MB|1048576
158+
prefix2/directory/executable|1
159+
prefix2/directory/readonly|2
160+
prefix2/directory/subdirectory/directory_symlink|4
161+
prefix2/directory/subdirectory/repeat_name|5
162+
prefix2/directory/subdirectory|6
163+
prefix2/directory/writable|3
164+
prefix2/directory|7
165+
prefix2/empty_directory|8
166+
prefix2/file_symlink|9
167+
prefix2/leaf_directory/leaf_file1|11
168+
prefix2/leaf_directory/leaf_file2|12
169+
prefix2/leaf_directory|13
170+
prefix2/old_file|0
171+
prefix2/repeat_name|14
172+
prefix2/unusual#? directory ,/unusual, name?#|15
173+
prefix2/unusual#? directory ,|16
174+
prefix2|17
175175

176176
# Diff original index results against the combined results
177-
$ diff <("gufi_query" -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort) <(cat output.localhost.0.0 output.127.0.0.1.1.0 output.localhost.2.0 output.127.0.0.1.3.0 output.127.0.0.1.top.0 output.localhost.0.1 output.127.0.0.1.1.1 output.localhost.2.1 output.127.0.0.1.3.1 output.127.0.0.1.top.1 | sort | sed 's/search2\/prefix/search\/prefix/g')
177+
$ diff <("gufi_query" -d "|" -S "SELECT rpath(sname, sroll), mtime FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;" "prefix" | sort) <(cat output.localhost.0.0 output.127.0.0.1.1.0 output.localhost.2.0 output.127.0.0.1.3.0 output.127.0.0.1.top.0 output.localhost.0.1 output.127.0.0.1.1.1 output.localhost.2.1 output.127.0.0.1.3.1 output.127.0.0.1.top.1 | sort | sed 's/search2\/prefix/search\/prefix/g')
178178

179179
# Diff original index results against querying the new index from a single node
180180
$ diff <(gufi_query -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort) <(gufi_query -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "search2/prefix" | sort | sed 's/search2\/prefix/search\/prefix/g')
@@ -218,7 +218,7 @@ prefix/unusual#? directory ,
218218
prefix/unusual#? directory ,/unusual, name?#
219219

220220
# Diff original index results against the trace files
221-
$ diff <(gufi_query -d " " -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort | sed 's/search\///g') <(cat traces.0.0 traces.1.0 traces.2.0 traces.3.0 traces.0 | awk -F'|' '{ print $1 }' | sort)
221+
$ diff <(gufi_query -d "|" -S "SELECT rpath(sname, sroll) FROM vrsummary;" -E "SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;" "prefix" | sort | sed 's/search\///g') <(cat traces.0.0 traces.1.0 traces.2.0 traces.3.0 traces.0 | awk -F'|' '{ print $1 }' | sort)
222222

223223
# Use existing group files (path_list.4 does not exist)
224224
$ gufi_dir2index_distributed --ssh "ssh" --gufi_dir2index "gufi_dir2index" --use-existing-group-files ssh "hostfile" 1 "prefix" "search2" 2>/dev/null | tail -n 9

test/regression/gufi_distributed.sh.in

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ trace_files() {
149149
cleanup() {
150150
# shellcheck disable=SC2207
151151
traces=($(trace_files))
152-
rm -rf "${SEARCH2}" "${HOSTFILE}" "${groups[@]}" "${slurm_files[@]}" "${ssh_files[@]}" "${traces[@]}"
152+
rm -rf "${SEARCH2}" "${HOSTFILE}" "${groups[@]}" "${slurm_files[@]}" "slurm.fake-5.out" "${ssh_files[@]}" "${traces[@]}"
153153
}
154154

155155
cleanup_exit() {
@@ -182,15 +182,15 @@ run_no_sort "${GUFI_DIR2INDEX_DISTRIBUTED} --sbatch \"${SBATCH_FAKE}\" --gufi_di
182182
rm -rf "${slurm_files[@]}"
183183

184184
echo "# Query Index"
185-
run_no_sort "${GUFI_QUERY_DISTRIBUTED} --sbatch \"${SBATCH_FAKE}\" --gufi_query \"${GUFI_QUERY}\" --threads ${THREADS} slurm \"${HOSTFILE}\" ${DISTRIBUTED_LEVEL} \"${INDEXROOT2}\" -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\""
185+
run_no_sort "${GUFI_QUERY_DISTRIBUTED} --sbatch \"${SBATCH_FAKE}\" --gufi_query \"${GUFI_QUERY}\" --threads ${THREADS} --delim \"${DELIM}\" slurm \"${HOSTFILE}\" ${DISTRIBUTED_LEVEL} \"${INDEXROOT2}\" -S \"SELECT rpath(sname, sroll), mtime FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;\""
186186

187187
echo "# combine output files"
188188
# shellcheck disable=SC2145
189189
run_sort "cat ${slurm_files[@]}" | @SED@ "s/${INDEXROOT2//\//\\/}/prefix2/g"
190190

191191
echo "# Diff original index results against the combined results"
192192
# shellcheck disable=SC2145,SC2153
193-
run_no_sort "@DIFF@ <(\"${GUFI_QUERY}\" -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort) <(cat ${slurm_files[@]} | sort | sed 's/${INDEXROOT2//\//\\/}/${INDEXROOT//\//\\/}/g')"
193+
run_no_sort "@DIFF@ <(\"${GUFI_QUERY}\" -d \"${DELIM}\" -S \"SELECT rpath(sname, sroll), mtime FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;\" \"${INDEXROOT}\" | sort) <(cat ${slurm_files[@]} | sort | sed 's/${INDEXROOT2//\//\\/}/${INDEXROOT//\//\\/}/g')"
194194

195195
echo "# Diff original index results against querying the new index from a single node"
196196
run_no_sort "@DIFF@ <(${GUFI_QUERY} -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort) <(${GUFI_QUERY} -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT2}\" | sort | sed 's/${INDEXROOT2//\//\\/}/${INDEXROOT//\//\\/}/g')"
@@ -208,7 +208,7 @@ run_sort "cat ${traces[@]} | @AWK@ -F'${DELIM}' '{ print \$1 }'"
208208

209209
echo "# Diff original index results against the trace files"
210210
# shellcheck disable=SC2145,SC2153
211-
run_no_sort "@DIFF@ <(${GUFI_QUERY} -d \" \" -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort | @SED@ 's/${SEARCH//\//\\/}\\///g') <(cat ${traces[@]} | @AWK@ -F'${DELIM}' '{ print \$1 }' | sort)"
211+
run_no_sort "@DIFF@ <(${GUFI_QUERY} -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort | @SED@ 's/${SEARCH//\//\\/}\\///g') <(cat ${traces[@]} | @AWK@ -F'${DELIM}' '{ print \$1 }' | sort)"
212212

213213
echo "# Use existing group files (path_list.4 does not exist)"
214214
run_no_sort "${GUFI_DIR2INDEX_DISTRIBUTED} --sbatch \"${SBATCH_FAKE}\" --gufi_dir2index \"${GUFI_DIR2INDEX}\" --use-existing-group-files slurm \"${HOSTFILE}\" ${DISTRIBUTED_LEVEL} \"${SRCDIR}\" \"${SEARCH2}\" 2>/dev/null"
@@ -227,15 +227,15 @@ echo "# Index Source Tree"
227227
run_no_sort "${GUFI_DIR2INDEX_DISTRIBUTED} --ssh \"${SSH_FAKE}\" --gufi_dir2index \"${GUFI_DIR2INDEX}\" ssh \"${HOSTFILE}\" ${DISTRIBUTED_LEVEL} \"${SRCDIR}\" \"${SEARCH2}\" 2>/dev/null"
228228

229229
echo "# Query Index"
230-
run_no_sort "${GUFI_QUERY_DISTRIBUTED} --ssh \"${SSH_FAKE}\" --gufi_query \"${GUFI_QUERY}\" --threads ${THREADS} ssh \"${HOSTFILE}\" ${DISTRIBUTED_LEVEL} \"${INDEXROOT2}\" -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" --output_prefix \"output\""
230+
run_no_sort "${GUFI_QUERY_DISTRIBUTED} --ssh \"${SSH_FAKE}\" --gufi_query \"${GUFI_QUERY}\" --threads ${THREADS} --delim \"${DELIM}\" ssh \"${HOSTFILE}\" ${DISTRIBUTED_LEVEL} \"${INDEXROOT2}\" -S \"SELECT rpath(sname, sroll), mtime FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;\" --output_prefix \"output\""
231231

232232
echo "# combine output files"
233233
# shellcheck disable=SC2145
234234
run_sort "cat ${ssh_files[@]}" | @SED@ "s/${INDEXROOT2//\//\\/}/prefix2/g"
235235

236236
echo "# Diff original index results against the combined results"
237237
# shellcheck disable=SC2145,SC2153
238-
run_no_sort "@DIFF@ <(\"${GUFI_QUERY}\" -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort) <(cat ${ssh_files[@]} | sort | sed 's/${INDEXROOT2//\//\\/}/${INDEXROOT//\//\\/}/g')"
238+
run_no_sort "@DIFF@ <(\"${GUFI_QUERY}\" -d \"${DELIM}\" -S \"SELECT rpath(sname, sroll), mtime FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name, mtime FROM vrpentries;\" \"${INDEXROOT}\" | sort) <(cat ${ssh_files[@]} | sort | sed 's/${INDEXROOT2//\//\\/}/${INDEXROOT//\//\\/}/g')"
239239

240240
echo "# Diff original index results against querying the new index from a single node"
241241
run_no_sort "@DIFF@ <(${GUFI_QUERY} -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort) <(${GUFI_QUERY} -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT2}\" | sort | sed 's/${INDEXROOT2//\//\\/}/${INDEXROOT//\//\\/}/g')"
@@ -251,7 +251,7 @@ run_sort "cat ${traces[@]} | @AWK@ -F'${DELIM}' '{ print \$1 }'"
251251

252252
echo "# Diff original index results against the trace files"
253253
# shellcheck disable=SC2145,SC2153
254-
run_no_sort "@DIFF@ <(${GUFI_QUERY} -d \" \" -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort | @SED@ 's/${SEARCH//\//\\/}\\///g') <(cat ${traces[@]} | @AWK@ -F'${DELIM}' '{ print \$1 }' | sort)"
254+
run_no_sort "@DIFF@ <(${GUFI_QUERY} -d \"${DELIM}\" -S \"SELECT rpath(sname, sroll) FROM vrsummary;\" -E \"SELECT rpath(sname, sroll) || '/' || name FROM vrpentries;\" \"${INDEXROOT}\" | sort | @SED@ 's/${SEARCH//\//\\/}\\///g') <(cat ${traces[@]} | @AWK@ -F'${DELIM}' '{ print \$1 }' | sort)"
255255

256256
echo "# Use existing group files (path_list.4 does not exist)"
257257
run_no_sort "${GUFI_DIR2INDEX_DISTRIBUTED} --ssh \"${SSH_FAKE}\" --gufi_dir2index \"${GUFI_DIR2INDEX}\" --use-existing-group-files ssh \"${HOSTFILE}\" ${DISTRIBUTED_LEVEL} \"${SRCDIR}\" \"${SEARCH2}\" 2>/dev/null | tail -n 9"

0 commit comments

Comments
 (0)