From 970ea7a91946be6a8c941b0ebafd34fdb7ca4f44 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 9 Jul 2018 10:01:06 -0400 Subject: core/various: python3 compat, prepare for python2 -> python3 see https://review.gluster.org/#/c/19788/, https://review.gluster.org/#/c/19871/, https://review.gluster.org/#/c/19952/, https://review.gluster.org/#/c/20104/, https://review.gluster.org/#/c/20162/, https://review.gluster.org/#/c/20185/, https://review.gluster.org/#/c/20207/, https://review.gluster.org/#/c/20227/, https://review.gluster.org/#/c/20307/, https://review.gluster.org/#/c/20320/, https://review.gluster.org/#/c/20332/, https://review.gluster.org/#/c/20364/, and https://review.gluster.org/#/c/20441/ Fixes some overlooked string.join()s: + AFAICT extras/profiler/glusterfs-profiler, extras/prot_filter.py, extras/rebalance.py, and extras/volfilter.py would only manifest at runtime. + xlators/experimental/fdl/src/gen_recon.py is a build-time error when using python3 during the build, thus was not noticed previously when building with python2. + extras/create_new_xlator/generate_xlator.py seems to be example code and does not affect the build or runtime AFAICT Note: Fedora packaging guidelines and SUSE rpmlint require explicit shebangs; popular practices like #!/usr/bin/env python and #!/usr/bin/python are not allowed; they must be #!/usr/bin/python2 or #!/usr/bin/python3 Note: Selected small fixes from 2to3 utility. Specifically apply, basestring, funcattrs, has_key, idioms, map, numliterals, raise, set_literal, types, urllib, and zip have already been applied. Also version agnostic imports for urllib, cpickle, socketserver, _thread, queue, etc., suggested by Aravinda in https://review.gluster.org/#/c/19767/1 Note: these 2to3 fixes report no changes are necessary: asserts, buffer, exec, execfile, exitfunc, filter, getcwdu, imports2, input, intern, itertools, metaclass, methodattrs, ne, next, nonzero, operator, paren, raw_input, reduce, reload, renames, repr, standarderror, sys_exc, throw, tuple_params, xreadlines. Change-Id: Ia1fe2958d136f4303e30f7e7e86b6fe7d7b52c81 updates: #411 Signed-off-by: Kaleb S. KEITHLEY --- extras/create_new_xlator/generate_xlator.py | 14 +++++++------- extras/profiler/glusterfs-profiler | 2 +- extras/prot_filter.py | 5 ++--- extras/rebalance.py | 8 ++++---- extras/volfilter.py | 4 ++-- 5 files changed, 16 insertions(+), 17 deletions(-) (limited to 'extras') diff --git a/extras/create_new_xlator/generate_xlator.py b/extras/create_new_xlator/generate_xlator.py index 67e2e9c6e17..2746e90893d 100755 --- a/extras/create_new_xlator/generate_xlator.py +++ b/extras/create_new_xlator/generate_xlator.py @@ -38,9 +38,9 @@ def get_param(names, types): # Convert two separate tuples to one of (name, type) sub-tuples. as_tuples = list(zip(types, names)) # Convert each sub-tuple into a "type name" string. - as_strings = list(map(string.join, as_tuples)) + as_strings = [' '.join(item) for item in as_tuples] # Join all of those into one big string. - return string.join(as_strings, ",\n\t") + return ',\n\t'.join(as_strings) def generate(tmpl, name, table): @@ -56,16 +56,16 @@ def generate(tmpl, name, table): sdict = {} #Parameters are (t1, var1), (t2, var2)... #Args are (var1, var2,...) - sdict["@WIND_ARGS@"] = string.join(w_arg_names, ", ") - sdict["@UNWIND_ARGS@"] = string.join(u_arg_names, ", ") - sdict["@ERROR_ARGS@"] = string.join(list(map(get_error_arg, u_arg_types)), ", ") + sdict["@WIND_ARGS@"] = ', '.join(w_arg_names) + sdict["@UNWIND_ARGS@"] = ', '.join(u_arg_names) + sdict["@ERROR_ARGS@"] = ', '.join(list(map(get_error_arg, u_arg_types))) sdict["@WIND_PARAMS@"] = get_param(w_arg_names, w_arg_types) sdict["@UNWIND_PARAMS@"] = get_param(u_arg_names, u_arg_types) sdict["@FUNC_PARAMS@"] = get_param(fn_arg_names, fn_arg_types) sdict["@NAME@"] = name sdict["@FOP_PREFIX@"] = fop_prefix - sdict["@RET_TYPE@"] = string.join(ret_type, "") - sdict["@RET_VAR@"] = string.join(ret_var, "") + sdict["@RET_TYPE@"] = ''.join(ret_type) + sdict["@RET_VAR@"] = ''.join(ret_var) for old, new in sdict.items(): tmpl = tmpl.replace(old, new) diff --git a/extras/profiler/glusterfs-profiler b/extras/profiler/glusterfs-profiler index 9c76d5b379c..5f5e4ed8dbd 100755 --- a/extras/profiler/glusterfs-profiler +++ b/extras/profiler/glusterfs-profiler @@ -291,7 +291,7 @@ class Texttable: s = "%s%s%s" % (horiz, [horiz, self._char_corner][self._has_vlines()], horiz) # build the line - l = string.join([horiz*n for n in self._width], s) + l = s.join([horiz*n for n in self._width]) # add border if needed if self._has_border(): l = "%s%s%s%s%s\n" % (self._char_corner, horiz, l, horiz, diff --git a/extras/prot_filter.py b/extras/prot_filter.py index 3baa27c3f6d..1dcc639d0a0 100755 --- a/extras/prot_filter.py +++ b/extras/prot_filter.py @@ -67,7 +67,7 @@ def load (path): xlator.xl_type = text[1] continue if text[0] == "option": - xlator.opts[text[1]] = string.join(text[2:]) + xlator.opts[text[1]] = ''.join(text[2:]) continue if text[0] == "subvolumes": for sv in text[1:]: @@ -94,8 +94,7 @@ def generate (graph, last, stream=sys.stdout): for k, v in last.opts.items(): print(" option %s %s" % (k, v), file=stream) if last.subvols: - print(" subvolumes %s" % string.join( - [ sv.name for sv in last.subvols ]), file=stream) + print(" subvolumes %s" % ''.join([ sv.name for sv in last.subvols ]), file=stream) print("end-volume", file=stream) def push_filter (graph, old_xl, filt_type, opts={}): diff --git a/extras/rebalance.py b/extras/rebalance.py index 0023f9970a8..6dd364b9028 100755 --- a/extras/rebalance.py +++ b/extras/rebalance.py @@ -47,12 +47,12 @@ def generate_stanza (vf, all_xlators, cur_subvol): for sv in cur_subvol.subvols: generate_stanza(vf, all_xlators, sv) sv_list.append(sv.name) - vf.write("volume %s\n"%cur_subvol.name) - vf.write(" type %s\n"%cur_subvol.type) + vf.write("volume %s\n" % cur_subvol.name) + vf.write(" type %s\n" % cur_subvol.type) for kvpair in cur_subvol.opts.items(): - vf.write(" option %s %s\n"%kvpair) + vf.write(" option %s %s\n" % kvpair) if sv_list: - vf.write(" subvolumes %s\n"%string.join(sv_list)) + vf.write(" subvolumes %s\n" % ''.join(sv_list)) vf.write("end-volume\n\n") diff --git a/extras/volfilter.py b/extras/volfilter.py index ea4bf22a440..5558a1beff4 100644 --- a/extras/volfilter.py +++ b/extras/volfilter.py @@ -108,7 +108,7 @@ def load (path): xlator.type = text[1] continue if text[0] == "option": - xlator.opts[text[1]] = string.join(text[2:]) + xlator.opts[text[1]] = ''.join(text[2:]) continue if text[0] == "subvolumes": for sv in text[1:]: @@ -135,7 +135,7 @@ def generate (graph, last, stream=sys.stdout): for k, v in last.opts.items(): print(" option %s %s" % (k, v), file=stream) if last.subvols: - print(" subvolumes %s" % string.join( + print(" subvolumes %s" % ''.join( [ sv.name for sv in last.subvols ]), file=stream) print("end-volume", file=stream) -- cgit