2
2
#
3
3
# A rewrite of getcluster(1) in Python
4
4
#
5
-
5
+ from __future__ import print_function , absolute_import
6
6
FALLBACKFILE = "/etc/cluster.fallback"
7
7
LOCALFILE = "/etc/cluster.local"
8
8
CLUSTERFILE = "/etc/cluster"
@@ -27,10 +27,10 @@ debugMode = os.getenv('DEBUG_GETCLUSTER', 'no') == 'yes'
27
27
28
28
def debug (msg , * args ):
29
29
if debugMode :
30
- print >> sys . stderr , "D:" , msg % (args )
30
+ print ( "D:" , msg % (args ), file = sys . stderr )
31
31
32
32
def perror (msg , * args ):
33
- print >> sys . stderr , ( "%s: " + msg ) % ((sys .argv [0 ],) + args )
33
+ print (( "%s: " + msg ) % ((sys .argv [0 ],) + args ), file = sys . stderr )
34
34
35
35
def merge (list1 , list2 ):
36
36
rv = [] + list1
@@ -40,23 +40,34 @@ def merge(list1, list2):
40
40
return rv
41
41
42
42
def cleanup (l ):
43
- return filter (lambda x : cluster_re .match (x ), map (lambda x : x .rstrip (), l ))
43
+ return [x for x in [x .rstrip () for x in l ] if cluster_re .match (x )]
44
+
45
+ def cmp (x , y ):
46
+ """
47
+ Replacement for built-in function cmp that was removed in Python 3
48
+
49
+ Compare the two objects x and y and return an integer according to
50
+ the outcome. The return value is negative if x < y, zero if x == y
51
+ and strictly positive if x > y.
52
+ """
53
+
54
+ return (x > y ) - (x < y )
44
55
45
56
def vercmp (v1 , v2 ):
46
- v1l = map (int , map ( lambda x : 0 if x is None else x , version_re .search (v1 ).groups ()))
47
- v2l = map (int , map ( lambda x : 0 if x is None else x , version_re .search (v2 ).groups ()))
57
+ v1l = list ( map (int , [ 0 if x is None else x for x in version_re .search (v1 ).groups ()] ))
58
+ v2l = list ( map (int , [ 0 if x is None else x for x in version_re .search (v2 ).groups ()] ))
48
59
return cmp (v1l , v2l )
49
60
50
61
51
62
def output_var (var , val , bourne = False , plaintext = False ):
52
63
val = val .replace ("'" , "'\\ ''" )
53
64
var = var .upper ()
54
65
if bourne :
55
- print "%s='%s' ; export %s" % (var , val , var )
66
+ print ( "%s='%s' ; export %s" % (var , val , var ) )
56
67
elif plaintext :
57
- print "%s %s" % (var , val )
68
+ print ( "%s %s" % (var , val ) )
58
69
else :
59
- print "setenv %s '%s' ;" % (var , val )
70
+ print ( "setenv %s '%s' ;" % (var , val ) )
60
71
61
72
def main ():
62
73
parser = OptionParser (usage = '%prog [options] version' , add_help_option = False )
@@ -141,7 +152,7 @@ def main():
141
152
perror ("No cluster information available for %s" , options .hostname )
142
153
# Sort everything into a hash, with varnames as keys and lists of lists as values
143
154
cdata = {}
144
- for i in map ( lambda x : x .split (' ' ), merge (merge (local , data ), fallback )) :
155
+ for i in [ x .split (' ' ) for x in merge (merge (local , data ), fallback )] :
145
156
var = i .pop (0 )
146
157
if var not in cdata :
147
158
cdata [var ] = []
0 commit comments