Changeset 5178

Show
Ignore:
Timestamp:
04/24/09 17:35:03 (7 months ago)
Author:
solj
Message:

Python 2to3 updates for the Client tools

Signed-off-by: Sol Jerome <solj@…>

Location:
trunk/bcfg2/src/lib/Client
Files:
9 modified

Legend:

Unmodified
Added
Removed
  • trunk/bcfg2/src/lib/Client/Frame.py

    r4999 r5178  
    55__revision__ = '$Revision$' 
    66 
    7 import logging, time, types 
     7import logging 
     8import time 
    89import Bcfg2.Client.Tools 
    910 
     
    2829                ret.append(entry) 
    2930        except: 
     31            print("Error while reading input") 
    3032            continue 
    3133    return ret 
     
    5759        for driver in drivers[:]: 
    5860            if driver not in Bcfg2.Client.Tools.drivers and \ 
    59                    isinstance(driver, types.StringType): 
     61                   isinstance(driver, str): 
    6062                self.logger.error("Tool driver %s is not available" % driver) 
    6163                drivers.remove(driver) 
     
    6365        tclass = {} 
    6466        for tool in drivers: 
    65             if not isinstance(tool, types.StringType): 
     67            if not isinstance(tool, str): 
    6668                tclass[time.time()] = tool 
    6769            tool_class = "Bcfg2.Client.Tools.%s" % tool 
     
    7678                                  exc_info=1) 
    7779 
    78         for tool in tclass.values(): 
     80        for tool in list(tclass.values()): 
    7981            try: 
    8082                self.tools.append(tool(self.logger, setup, config)) 
     
    136138        elif name in self.__dict__: 
    137139            return self.__dict__[name] 
    138         raise AttributeError, name 
     140        raise AttributeError(name) 
    139141 
    140142    def Inventory(self): 
    141         '''Verify all entries, find extra entries, and build up workqueues''' 
     143        ''' 
     144           Verify all entries, 
     145           find extra entries, 
     146           and build up workqueues 
     147        ''' 
    142148        # initialize all states 
    143149        for struct in self.config.getchildren(): 
     
    158164                self.removal = self.extra 
    159165            elif self.setup['remove'] == 'services': 
    160                 self.removal = [entry for entry in self.extra if entry.tag == 'Service'] 
     166                self.removal = [entry for entry in self.extra \ 
     167                                if entry.tag == 'Service'] 
    161168            elif self.setup['remove'] == 'packages': 
    162                 self.removal = [entry for entry in self.extra if entry.tag == 'Package'] 
    163  
    164         candidates = [entry for entry in self.states if not self.states[entry]] 
    165         self.whitelist = [entry for entry in self.states if not self.states[entry]] 
    166         # Need to process decision stuff early, so that dryrun mode works with it 
     169                self.removal = [entry for entry in self.extra \ 
     170                                if entry.tag == 'Package'] 
     171 
     172        candidates = [entry for entry in self.states \ 
     173                      if not self.states[entry]] 
     174        self.whitelist = [entry for entry in self.states \ 
     175                          if not self.states[entry]] 
     176        # Need to process decision stuff early so that dryrun mode works with it 
    167177        if self.setup['decision'] == 'whitelist': 
    168178            dwl = self.setup['decision_list'] 
     
    172182                self.logger.info("In whitelist mode: suppressing installation of:") 
    173183                self.logger.info(["%s:%s" % (e.tag, e.get('name')) for e in w_to_rem]) 
    174                 self.whitelist = [x for x in self.whitelist if x not in w_to_rem] 
     184                self.whitelist = [x for x in self.whitelist \ 
     185                                  if x not in w_to_rem] 
    175186 
    176187        elif self.setup['decision'] == 'blacklist': 
     
    305316        '''Conditionally print tracing information''' 
    306317        self.logger.info('\nPhase: %s' % phase) 
    307         self.logger.info('Correct entries:\t%d' % self.states.values().count(True)) 
    308         self.logger.info('Incorrect entries:\t%d' % self.states.values().count(False)) 
    309         if phase == 'final' and self.states.values().count(False): 
     318        self.logger.info('Correct entries:\t%d' % list(self.states.values()).count(True)) 
     319        self.logger.info('Incorrect entries:\t%d' % list(self.states.values()).count(False)) 
     320        if phase == 'final' and list(self.states.values()).count(False): 
    310321            self.logger.info(["%s:%s" % (entry.tag, entry.get('name')) for \ 
    311322                              entry in self.states if not self.states[entry]]) 
    312         self.logger.info('Total managed entries:\t%d' % len(self.states.values())) 
     323        self.logger.info('Total managed entries:\t%d' % len(list(self.states.values()))) 
    313324        self.logger.info('Unmanaged entries:\t%d' % len(self.extra)) 
    314325        if phase == 'final' and self.setup['extra']: 
     
    318329        self.logger.info("") 
    319330 
    320         if ((self.states.values().count(False) == 0) and not self.extra): 
     331        if ((list(self.states.values()).count(False) == 0) and not self.extra): 
    321332            self.logger.info('All entries correct.') 
    322333 
     
    346357        '''Generate XML summary of execution statistics''' 
    347358        feedback = Bcfg2.Client.XML.Element("upload-statistics") 
    348         stats = Bcfg2.Client.XML.SubElement(feedback, \ 
    349                                             'Statistics', total=str(len(self.states)), 
    350                                             client_version=__revision__, version='2.0', 
     359        stats = Bcfg2.Client.XML.SubElement(feedback, 
     360                                            'Statistics', 
     361                                            total=str(len(self.states)), 
     362                                            client_version=__revision__, 
     363                                            version='2.0', 
    351364                                            revision=self.config.get('revision', '-1')) 
    352         good = len([key for key, val in self.states.iteritems() if val]) 
     365        good = len([key for key, val in list(self.states.items()) if val]) 
    353366        stats.set('good', str(good)) 
    354         if len([key for key, val in self.states.iteritems() if not val]) == 0: 
     367        if len([key for key, val in list(self.states.items()) if not val]) == 0: 
    355368            stats.set('state', 'clean') 
    356369        else: 
     
    369382        timeinfo = Bcfg2.Client.XML.Element("OpStamps") 
    370383        feedback.append(stats) 
    371         for (event, timestamp) in self.times.iteritems(): 
     384        for (event, timestamp) in list(self.times.items()): 
    372385            timeinfo.set(event, str(timestamp)) 
    373386        stats.append(timeinfo) 
  • trunk/bcfg2/src/lib/Client/Tools/Encap.py

    r4991 r5178  
    33__revision__ = '$Revision$' 
    44 
    5 import Bcfg2.Client.Tools, glob, re 
     5import glob 
     6import re 
     7import Bcfg2.Client.Tools 
    68 
    79class Encap(Bcfg2.Client.Tools.PkgTool): 
     
    2628                self.installed[match.group('name')] = match.group('version') 
    2729            else: 
    28                 print "Failed to split name %s" % pkg 
     30                print("Failed to split name %s" % pkg) 
    2931        self.logger.debug("Encap.py: RefreshPackages: self.installed.keys() are:") 
    30         self.logger.debug("%s" % self.installed.keys()) 
     32        self.logger.debug("%s" % list(self.installed.keys())) 
    3133 
    3234    def VerifyPackage(self, entry, _): 
  • trunk/bcfg2/src/lib/Client/Tools/POSIX.py

    r4991 r5178  
    55from stat import S_IWGRP, S_IRGRP, S_IXOTH, S_IWOTH, S_IROTH, ST_MODE, S_ISDIR 
    66from stat import S_IFREG, ST_UID, ST_GID, S_ISREG, S_IFDIR, S_ISLNK, ST_MTIME 
    7  
    8 import binascii, difflib, grp, os, pwd, string, logging, time 
     7import binascii 
     8import difflib 
     9import grp 
     10import logging 
     11import os 
     12import pwd 
     13import string 
     14import time 
    915import Bcfg2.Client.Tools 
    1016 
    1117def calcPerms(initial, perms): 
    1218    '''This compares ondisk permissions with specified ones''' 
    13     pdisp = [{1:S_ISVTX, 2:S_ISGID, 4:S_ISUID}, {1:S_IXUSR, 2:S_IWUSR, 4:S_IRUSR}, 
    14              {1:S_IXGRP, 2:S_IWGRP, 4:S_IRGRP}, {1:S_IXOTH, 2:S_IWOTH, 4:S_IROTH}] 
     19    pdisp = [{1:S_ISVTX, 2:S_ISGID, 4:S_ISUID}, 
     20             {1:S_IXUSR, 2:S_IWUSR, 4:S_IRUSR}, 
     21             {1:S_IXGRP, 2:S_IWGRP, 4:S_IRGRP}, 
     22             {1:S_IXOTH, 2:S_IWOTH, 4:S_IROTH}] 
    1523    tempperms = initial 
    1624    if len(perms) == 3: 
     
    1826    pdigits = [int(perms[digit]) for digit in range(4)] 
    1927    for index in range(4): 
    20         for (num, perm) in pdisp[index].iteritems(): 
     28        for (num, perm) in list(pdisp[index].items()): 
    2129            if pdigits[index] & num: 
    2230                tempperms |= perm 
     
    2634 
    2735def normUid(entry): 
    28     '''This takes a user name or uid and returns the corresponding uid or False''' 
     36    ''' 
     37       This takes a user name or uid and 
     38       returns the corresponding uid or False 
     39    ''' 
    2940    try: 
    3041        try: 
     
    3748 
    3849def normGid(entry): 
    39     '''This takes a group name or gid and returns the corresponding gid or False''' 
     50    ''' 
     51       This takes a group name or gid and 
     52       returns the corresponding gid or False 
     53    ''' 
    4054    try: 
    4155        try: 
     
    6377    '''POSIX File support code''' 
    6478    name = 'POSIX' 
    65     __handles__ = [('ConfigFile', None), ('Directory', None), ('Permissions', None), \ 
    66                    ('SymLink', None)] 
     79    __handles__ = [('ConfigFile', None), ('Directory', None), 
     80                   ('Permissions', None), ('SymLink', None)] 
    6781    __req__ = {'ConfigFile': ['name', 'owner', 'group', 'perms'], 
    6882               'Directory': ['name', 'owner', 'group', 'perms'], 
     
    135149            group = str(ondisk[ST_GID]) 
    136150        except (OSError, KeyError): 
    137             self.logger.error('User/Group resolution failed for path %s' % (entry.get('name'))) 
     151            self.logger.error('User/Group resolution failed for path %s' % \ 
     152                              entry.get('name')) 
    138153            owner = 'root' 
    139154            group = '0' 
     
    159174                if ex_ents: 
    160175                    pruneTrue = False 
    161                     self.logger.debug("Directory %s contains extra entries:" % entry.get('name')) 
     176                    self.logger.debug("Directory %s contains extra entries:" % \ 
     177                                      entry.get('name')) 
    162178                    self.logger.debug(ex_ents) 
    163179                    nqtext = entry.get('qtext', '') + '\n' 
     
    172188            if owner != str(normUid(entry)): 
    173189                entry.set('current_owner', owner) 
    174                 self.logger.debug("%s %s ownership wrong" % (entry.tag, entry.get('name'))) 
     190                self.logger.debug("%s %s ownership wrong" % \ 
     191                                  (entry.tag, entry.get('name'))) 
    175192                nqtext = entry.get('qtext', '') + '\n' 
    176193                nqtext += "%s owner wrong. is %s should be %s" % \ 
     
    214231            fmode = os.lstat(entry.get('name')) 
    215232            if not S_ISDIR(fmode[ST_MODE]): 
    216                 self.logger.debug("Found a non-directory entry at %s" % (entry.get('name'))) 
     233                self.logger.debug("Found a non-directory entry at %s" % \ 
     234                                  (entry.get('name'))) 
    217235                try: 
    218236                    os.unlink(entry.get('name')) 
     
    222240                    return False 
    223241            else: 
    224                 self.logger.debug("Found a pre-existing directory at %s" % (entry.get('name'))) 
     242                self.logger.debug("Found a pre-existing directory at %s" % \ 
     243                                  (entry.get('name'))) 
    225244                exists = True 
    226245        except OSError: 
     
    235254                except: 
    236255                    self.logger.debug('Creating parent path for directory %s' % (entry.get('name'))) 
    237                     for idx in xrange(len(parent.split('/')[:-1])): 
     256                    for idx in range(len(parent.split('/')[:-1])): 
    238257                        current = '/'+'/'.join(parent.split('/')[1:2+idx]) 
    239258                        try: 
     
    255274                os.mkdir(entry.get('name')) 
    256275            except OSError: 
    257                 self.logger.error('Failed to create directory %s' % (entry.get('name'))) 
     276                self.logger.error('Failed to create directory %s' % \ 
     277                                  (entry.get('name'))) 
    258278                return False 
    259279        if entry.get('prune', 'false') == 'true' and entry.get("qtest"): 
     
    281301            return True 
    282302        except (OSError, KeyError): 
    283             self.logger.error('Permission fixup failed for %s' % (entry.get('name'))) 
     303            self.logger.error('Permission fixup failed for %s' % \ 
     304                              (entry.get('name'))) 
    284305            return False 
    285306 
     
    317338        else: 
    318339            if entry.text == None: 
    319                 self.logger.error("Cannot verify incomplete ConfigFile %s" % (entry.get('name'))) 
     340                self.logger.error("Cannot verify incomplete ConfigFile %s" % \ 
     341                                  (entry.get('name'))) 
    320342                return False 
    321343            tempdata = entry.text 
     
    325347            content = open(entry.get('name')).read() 
    326348        except IOError, error: 
    327             self.logger.error("Failed to read %s: %s" % (error.filename, error.strerror)) 
    328             return False 
    329         # comparison should be done with fingerprints or md5sum so it would be faster 
    330         # for big binary files 
     349            self.logger.error("Failed to read %s: %s" % \ 
     350                              (error.filename, error.strerror)) 
     351            return False 
     352        # comparison should be done with fingerprints or 
     353        # md5sum so it would be faster for big binary files 
    331354        contentStatus = content == tempdata 
    332355        if not contentStatus: 
     
    344367                    rawdiff.append(x) 
    345368                    if now - start > 5 and not longtime: 
    346                         self.logger.info("Diff of %s taking a long time" % (entry.get('name'))) 
     369                        self.logger.info("Diff of %s taking a long time" % \ 
     370                                         (entry.get('name'))) 
    347371                        longtime = True 
    348372                    elif now - start > 30: 
    349                         self.logger.error("Diff of %s took too long; giving up" % (entry.get('name'))) 
     373                        self.logger.error("Diff of %s took too long; giving up" % \ 
     374                                          (entry.get('name'))) 
    350375                        do_diff = False 
    351376                        break 
     
    451476                self.logger.info("Failed to open %s for writing" % (entry.get('name'))) 
    452477            else: 
    453                 print err 
    454             return False 
     478                print(err) 
     479            return False 
  • trunk/bcfg2/src/lib/Client/Tools/RPMng.py

    r5168 r5178  
    88import rpmtools 
    99import Bcfg2.Client.Tools 
    10  
    11 try: 
    12     set 
    13 except NameError: 
    14     from sets import Set as set 
    1510 
    1611class RPMng(Bcfg2.Client.Tools.PkgTool): 
     
    6055                               'kernel-modules', 'kernel-debug', 'kernel-unsupported', 
    6156                               'kernel-source', 'kernel-devel', 'kernel-default', 
    62                                'kernel-largesmp-devel', 'kernel-largesmp', 'kernel-xen',  
     57                               'kernel-largesmp-devel', 'kernel-largesmp', 'kernel-xen', 
    6358                               'gpg-pubkey'] 
    6459        if 'gpg-pubkey' not in self.installOnlyPkgs: 
     
    132127            e.g. 
    133128 
    134             self.installed['foo'] = [ {'name':'foo', 'epoch':None,  
    135                                        'version':'1', 'release':2,  
     129            self.installed['foo'] = [ {'name':'foo', 'epoch':None, 
     130                                       'version':'1', 'release':2, 
    136131                                       'arch':'i386'}, 
    137                                       {'name':'foo', 'epoch':None,  
    138                                        'version':'1', 'release':2,  
     132                                      {'name':'foo', 'epoch':None, 
     133                                       'version':'1', 'release':2, 
    139134                                       'arch':'x86_64'} ] 
    140135        ''' 
     
    147142            self.installed.setdefault(nevra['name'], []).append(nevra) 
    148143        if self.setup['debug']: 
    149             print "The following package instances are installed:" 
    150             for name, instances in self.installed.iteritems(): 
     144            print("The following package instances are installed:") 
     145            for name, instances in list(self.installed.items()): 
    151146                self.logger.debug("    " + name) 
    152147                for inst in instances: 
     
    172167                                         'pkg': <Package Element Object>, 
    173168                                         'modlist': [ <filename>, ... ], 
    174                                          'verify' : [ <rpm --verify results> ]   
     169                                         'verify' : [ <rpm --verify results> ] 
    175170                                       }, ...... 
    176171                                  } 
     
    185180            # We have an old style no Instance entry. Convert it to new style. 
    186181            instance = Bcfg2.Client.XML.SubElement(entry, 'Package') 
    187             for attrib in entry.attrib.keys(): 
     182            for attrib in list(entry.attrib.keys()): 
    188183                instance.attrib[attrib] = entry.attrib[attrib] 
    189184            if self.pkg_checks == 'true' and entry.get('pkg_checks', 'true') == 'true': 
     
    217212                        if inst.tag == 'Package' and len(self.installed[entry.get('name')]) > 1: 
    218213                            self.logger.error("WARNING: Multiple instances of package %s are installed." % \ 
    219                                                                              (entry.get('name'))) 
     214                                              (entry.get('name'))) 
    220215                        for pkg in self.installed[entry.get('name')]: 
    221216                            if inst.get('version') == 'any' or self.pkg_vr_equal(inst, pkg) \ 
     
    359354                        if instance_fail == True: 
    360355                            self.logger.debug("*** Instance %s failed RPM verification ***" % \ 
    361                                                                            self.str_evra(inst)) 
     356                                              self.str_evra(inst)) 
    362357                            qtext_versions = qtext_versions + 'R(%s) ' % self.str_evra(inst) 
    363358                            self.modlists[entry] = modlist 
     
    418413                entry.set('version', bcfg2_versions) 
    419414            entry.set('qtext', "Install Package %s Instance(s) %s? (y/N) " % \ 
    420                                                         (entry.get('name'), qtext_versions)) 
     415                      (entry.get('name'), qtext_versions)) 
    421416 
    422417            return False 
     
    509504            else: 
    510505                self.logger.debug('Installed Action for %s %s is to not install' % \ 
    511                                                      (inst_status.get('pkg').get('name'), 
    512                                                       self.str_evra(instance))) 
     506                                  (inst_status.get('pkg').get('name'), 
     507                                   self.str_evra(instance))) 
    513508 
    514509        elif inst_status.get('version_fail', False) == True: 
     
    518513            else: 
    519514                self.logger.debug('Version Fail Action for %s %s is to not upgrade' % \ 
    520                                                      (inst_status.get('pkg').get('name'), 
    521                                                       self.str_evra(instance))) 
     515                                  (inst_status.get('pkg').get('name'), 
     516                                   self.str_evra(instance))) 
    522517 
    523518        elif inst_status.get('verify_fail', False) == True and self.name == "RPMng": 
     
    859854        extras = [] 
    860855 
    861         for (name, instances) in self.installed.iteritems(): 
     856        for (name, instances) in list(self.installed.items()): 
    862857            if name not in packages: 
    863858                extra_entry = Bcfg2.Client.XML.Element('Package', name=name, type=self.pkgtype) 
     
    897892                    # Extra package. 
    898893                    self.logger.info("Extra InstallOnlyPackage %s %s." % \ 
    899                                                (name, self.str_evra(installed_inst))) 
     894                                     (name, self.str_evra(installed_inst))) 
    900895                    tmp_entry = Bcfg2.Client.XML.SubElement(extra_entry, 'Instance', \ 
    901896                                     version = installed_inst.get('version'), \ 
     
    916911                if not_found: 
    917912                    self.logger.info("Extra Normal Package Instance %s %s" % \ 
    918                                                         (name, self.str_evra(installed_inst))) 
     913                                     (name, self.str_evra(installed_inst))) 
    919914                    tmp_entry = Bcfg2.Client.XML.SubElement(extra_entry, 'Instance', \ 
    920915                                     version = installed_inst.get('version'), \ 
  • trunk/bcfg2/src/lib/Client/Tools/RcUpdate.py

    r5148 r5178  
    11'''This is rc-update support''' 
    2 __revision__ = '$Revision$' 
     2__revision__ = '$Revision: 4991 $' 
    33 
    4 import Bcfg2.Client.Tools, Bcfg2.Client.XML, commands, os 
     4import os 
     5import Bcfg2.Client.Tools 
     6import Bcfg2.Client.XML 
    57 
    68class RcUpdate(Bcfg2.Client.Tools.SvcTool): 
     
    1618        Assumes we run in the "default" runlevel. 
    1719        ''' 
    18         # mrj - i think this should be: 
    19         # rc = self.cmd.run('/bin/rc-status | \ 
    20         #                    grep %s | \ 
    21         #                    grep started"' % entry.attrib['name']) 
    22         # 
    23         # ...but as i can't figure out a way to 
    24         #    test that right now, i'll do the one  
    25         #    that works in python's interactive interpreter. 
    26         rc = commands.getoutput('/bin/rc-status -s | grep %s | grep started' % \ 
    27                                 entry.get('name')) 
    28         status = len(rc) > 0 
     20        rc, output = self.cmd.run('/bin/rc-status | grep %s | grep started' % \ 
     21                                  entry.attrib['name']) 
     22        status = rc > 0 
    2923 
    3024        if not status: 
     
    6054        '''Locate extra rc-update Services''' 
    6155        allsrv = [line.split()[0] for line in \ 
    62                   self.cmd.run("/bin/rc-status -s | grep started")[1]] 
     56                  self.cmd.run("/bin/rc-status | grep started")[1]] 
    6357        self.logger.debug('Found active services:') 
    6458        self.logger.debug(allsrv) 
  • trunk/bcfg2/src/lib/Client/Tools/YUMng.py

    r5159 r5178  
    22__revision__ = '$Revision: $' 
    33 
     4import ConfigParser 
     5import copy 
     6import os.path 
     7import sys 
     8import yum 
    49import Bcfg2.Client.XML 
    510import Bcfg2.Client.Tools.RPMng 
    6 import ConfigParser, sys, os.path, copy 
    7  
    8 import yum 
    9  
    10 try: 
    11     set 
    12 except NameError: 
    13     from sets import Set as set 
    1411 
    1512YAD = True 
     
    8279                    # installed but out of date 
    8380                    data.update(self.yum_avail[entry.get('name')]) 
    84                 for (arch, (epoch, vers, rel)) in data.iteritems(): 
     81                for (arch, (epoch, vers, rel)) in list(data.items()): 
    8582                    Bcfg2.Client.XML.SubElement(entry, "Instance", 
    8683                                                name=entry.get('name'), 
  • trunk/bcfg2/src/lib/Client/Tools/__init__.py

    r5167 r5178  
    184184 
    185185class PkgTool(Tool): 
    186     '''PkgTool provides a one-pass install with fallback for use with packaging systems''' 
     186    ''' 
     187       PkgTool provides a one-pass install with 
     188       fallback for use with packaging systems 
     189    ''' 
    187190    pkgtool = ('echo %s', ('%s', ['name'])) 
    188191    pkgtype = 'echo' 
     
    201204 
    202205    def Install(self, packages, states): 
    203         '''Run a one-pass install, followed by single pkg installs in case of failure''' 
     206        ''' 
     207           Run a one-pass install, followed by 
     208           single pkg installs in case of failure 
     209        ''' 
    204210        self.logger.info("Trying single pass package install for pkgtype %s" % \ 
    205211                         self.pkgtype) 
     
    216222            # set all package states to true and flush workqueues 
    217223            pkgnames = [pkg.get('name') for pkg in packages] 
    218             for entry in [entry for entry in states.keys() 
     224            for entry in [entry for entry in list(states.keys()) 
    219225                          if entry.tag == 'Package' 
    220226                          and entry.get('type') == self.pkgtype 
     
    257263        '''Find extra packages''' 
    258264        packages = [entry.get('name') for entry in self.getSupportedEntries()] 
    259         extras = [data for data in self.installed.iteritems() \ 
     265        extras = [data for data in list(self.installed.items()) \ 
    260266                  if data[0] not in packages] 
    261267        return [Bcfg2.Client.XML.Element('Package', name=name, \ 
  • trunk/bcfg2/src/lib/Client/Tools/rpmtools.py

    r4999 r5178  
    2121__revision__ = '$Revision$' 
    2222 
    23 import rpm, optparse, pwd, grp 
    24 import sys, os, md5, stat 
     23import grp 
     24import md5 
     25import optparse 
     26import os 
     27import pwd 
     28import rpm 
     29import stat 
     30import sys 
    2531 
    2632# Determine what prelink tools we have available. 
     
    191197            del(kwargs['epoch']) 
    192198 
    193     keywords = [ key for key in kwargs.keys() \ 
     199    keywords = [ key for key in list(kwargs.keys()) \ 
    194200                         if key in ('name', 'epoch', 'version', 'release', 'arch')] 
    195201    keywords_len = len(keywords) 
     
    229235            del(kwargs['epoch']) 
    230236 
    231     keywords = [ key for key in kwargs.keys() \ 
     237    keywords = [ key for key in list(kwargs.keys()) \ 
    232238                         if key in ('name', 'epoch', 'version', 'release', 'arch')] 
    233239    keywords_len = len(keywords) 
     
    341347    """ 
    342348    if vflags & RPMVERIFY_MD5: 
    343         print 'RPMVERIFY_MD5' 
     349        print('RPMVERIFY_MD5') 
    344350    if vflags & RPMVERIFY_FILESIZE: 
    345         print 'RPMVERIFY_FILESIZE' 
     351        print('RPMVERIFY_FILESIZE') 
    346352    if vflags & RPMVERIFY_LINKTO: 
    347         print 'RPMVERIFY_LINKTO' 
     353        print('RPMVERIFY_LINKTO') 
    348354    if vflags & RPMVERIFY_USER: 
    349         print 'RPMVERIFY_USER' 
     355        print('RPMVERIFY_USER') 
    350356    if vflags & RPMVERIFY_GROUP: 
    351         print 'RPMVERIFY_GROUP' 
     357        print('RPMVERIFY_GROUP') 
    352358    if vflags & RPMVERIFY_MTIME: 
    353         print 'RPMVERIFY_MTIME' 
     359        print('RPMVERIFY_MTIME') 
    354360    if vflags & RPMVERIFY_MODE: 
    355         print 'RPMVERIFY_MODE' 
     361        print('RPMVERIFY_MODE') 
    356362    if vflags & RPMVERIFY_RDEV: 
    357         print 'RPMVERIFY_RDEV' 
     363        print('RPMVERIFY_RDEV') 
    358364    if vflags & RPMVERIFY_CONTEXTS: 
    359         print 'RPMVERIFY_CONTEXTS' 
     365        print('RPMVERIFY_CONTEXTS') 
    360366    if vflags & RPMVERIFY_READLINKFAIL: 
    361         print 'RPMVERIFY_READLINKFAIL' 
     367        print('RPMVERIFY_READLINKFAIL') 
    362368    if vflags & RPMVERIFY_READFAIL: 
    363         print 'RPMVERIFY_READFAIL' 
     369        print('RPMVERIFY_READFAIL') 
    364370    if vflags & RPMVERIFY_LSTATFAIL: 
    365         print 'RPMVERIFY_LSTATFAIL' 
     371        print('RPMVERIFY_LSTATFAIL') 
    366372    if vflags & RPMVERIFY_LGETFILECONFAIL: 
    367         print 'RPMVERIFY_LGETFILECONFAIL' 
     373        print('RPMVERIFY_LGETFILECONFAIL') 
    368374 
    369375def debug_file_flags(fflags): 
     
    372378    """ 
    373379    if fflags & rpm.RPMFILE_CONFIG: 
    374         print 'rpm.RPMFILE_CONFIG' 
     380        print('rpm.RPMFILE_CONFIG') 
    375381 
    376382    if fflags & rpm.RPMFILE_DOC: 
    377         print 'rpm.RPMFILE_DOC' 
     383        print('rpm.RPMFILE_DOC') 
    378384 
    379385    if fflags & rpm.RPMFILE_ICON: 
    380         print 'rpm.RPMFILE_ICON' 
     386        print('rpm.RPMFILE_ICON') 
    381387 
    382388    if fflags & rpm.RPMFILE_MISSINGOK: 
    383         print 'rpm.RPMFILE_MISSINGOK' 
     389        print('rpm.RPMFILE_MISSINGOK') 
    384390 
    385391    if fflags & rpm.RPMFILE_NOREPLACE: 
    386         print 'rpm.RPMFILE_NOREPLACE' 
     392        print('rpm.RPMFILE_NOREPLACE') 
    387393 
    388394    if fflags & rpm.RPMFILE_GHOST: 
    389         print 'rpm.RPMFILE_GHOST' 
     395        print('rpm.RPMFILE_GHOST') 
    390396 
    391397    if fflags & rpm.RPMFILE_LICENSE: 
    392         print 'rpm.RPMFILE_LICENSE' 
     398        print('rpm.RPMFILE_LICENSE') 
    393399 
    394400    if fflags & rpm.RPMFILE_README: 
    395         print 'rpm.RPMFILE_README' 
     401        print('rpm.RPMFILE_README') 
    396402 
    397403    if fflags & rpm.RPMFILE_EXCLUDE: 
    398         print 'rpm.RPMFILE_EXLUDE' 
     404        print('rpm.RPMFILE_EXLUDE') 
    399405 
    400406    if fflags & rpm.RPMFILE_UNPATCHED: 
    401         print 'rpm.RPMFILE_UNPATCHED' 
     407        print('rpm.RPMFILE_UNPATCHED') 
    402408 
    403409    if fflags & rpm.RPMFILE_PUBKEY: 
    404         print 'rpm.RPMFILE_PUBKEY' 
     410        print('rpm.RPMFILE_PUBKEY') 
    405411 
    406412def rpm_verify_file(fileinfo, rpmlinktos, omitmask): 
     
    790796            #print 'rpm.RPMCALLBACK_UNKNOWN' 
    791797        else: 
    792             print 'ERROR - Fell through callBack' 
     798            print('ERROR - Fell through callBack') 
    793799     
    794800        #print reason, amount, total, key, client_data 
     
    817823        if len(idx_list) > 1 and not 'allmatches' in erase_flags: 
    818824            #pass 
    819             print 'ERROR - Multiple package match for erase', pkgspec 
     825            print('ERROR - Multiple package match for erase', pkgspec) 
    820826        else: 
    821827            for idx in idx_list: 
     
    899905            result_string = result_string + '.' 
    900906   
    901     print result_string + '  ' + filetype + ' ' + filename 
     907    print(result_string + '  ' + filetype + ' ' + filename) 
    902908    sys.stdout.flush() 
    903909 
     
    10921098    elif options.list: 
    10931099        for p in rpmpackagelist(main_ts): 
    1094             print p 
     1100            print(p) 
    10951101 
    10961102    elif options.erase: 
     
    10981104            rpm_erase([cmdline_pkgspec], rpm_options) 
    10991105        else: 
    1100             print 'You must specify the "--name" option' 
     1106            print('You must specify the "--name" option') 
  • trunk/bcfg2/src/lib/Client/XML.py

    r4835 r5178  
    3131 
    3232        except ImportError: 
    33             print "Failed to load lxml, xml.etree and elementtree.ElementTree" 
    34             print "Cannot continue" 
    35             raise SystemExit, 1 
     33            print("Failed to load lxml, xml.etree and elementtree.ElementTree") 
     34            print("Cannot continue") 
     35            raise SystemExit(1) 
    3636 
    3737len([Element, SubElement, XML, tostring, ParseError])