diff options
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins')
22 files changed, 58 insertions, 58 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/AWSTags.py b/src/lib/Bcfg2/Server/Plugins/AWSTags.py index 556805bde..d823a3986 100644 --- a/src/lib/Bcfg2/Server/Plugins/AWSTags.py +++ b/src/lib/Bcfg2/Server/Plugins/AWSTags.py @@ -26,7 +26,7 @@ class AWSTagPattern(object): def get_groups(self, tags): """ Get groups that apply to the given tag set """ - for key, value in tags.items(): + for key, value in list(tags.items()): name_match = self.name.search(key) if name_match: if self.value is not None: diff --git a/src/lib/Bcfg2/Server/Plugins/Bundler.py b/src/lib/Bcfg2/Server/Plugins/Bundler.py index 4f5a79465..bbdf62866 100644 --- a/src/lib/Bcfg2/Server/Plugins/Bundler.py +++ b/src/lib/Bcfg2/Server/Plugins/Bundler.py @@ -58,7 +58,7 @@ class Bundler(Plugin, def HandleEvent(self, event): XMLDirectoryBacked.HandleEvent(self, event) self.bundles = dict([(b.bundle_name, b) - for b in self.entries.values()]) + for b in list(self.entries.values())]) def validate_structures(self, metadata, structures): """ Translate <Path glob='...'/> entries into <Path name='...'/> @@ -66,7 +66,7 @@ class Bundler(Plugin, for struct in structures: for pathglob in struct.xpath("//Path[@glob]"): for plugin in self.core.plugins_by_type(Generator): - for match in fnmatch.filter(plugin.Entries['Path'].keys(), + for match in fnmatch.filter(list(plugin.Entries['Path'].keys()), pathglob.get("glob")): lxml.etree.SubElement(pathglob.getparent(), "Path", name=match) diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py index 84309b5dd..2a452f345 100644 --- a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py +++ b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py @@ -50,9 +50,9 @@ class CfgCheetahGenerator(CfgGenerator): def get_data(self, entry, metadata): template = Template(self.data.decode(Bcfg2.Options.setup.encoding), compilerSettings=self.settings) - for key, val in get_template_data( + for key, val in list(get_template_data( entry, metadata, self.name, - default=DefaultCheetahDataProvider()).items(): + default=DefaultCheetahDataProvider()).items()): setattr(template, key, val) return template.respond() get_data.__doc__ = CfgGenerator.get_data.__doc__ diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py index 44d980967..e4013a347 100644 --- a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py +++ b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py @@ -10,7 +10,7 @@ import Bcfg2.Options import Bcfg2.Server.Plugin from Bcfg2.Server.Plugin import PluginExecutionError # pylint: disable=W0622 -from Bcfg2.Compat import u_str, unicode, b64encode, any, walk_packages +from Bcfg2.Compat import u_str, str, b64encode, any, walk_packages # pylint: enable=W0622 try: @@ -511,7 +511,7 @@ class CfgDefaultInfo(CfgInfo): __init__.__doc__ = CfgInfo.__init__.__doc__.split(".. -----")[0] def bind_info_to_entry(self, entry, _): - for key, value in Bcfg2.Server.Plugin.default_path_metadata().items(): + for key, value in list(Bcfg2.Server.Plugin.default_path_metadata().items()): entry.attrib[key] = value bind_info_to_entry.__doc__ = CfgInfo.bind_info_to_entry.__doc__ @@ -527,7 +527,7 @@ class CfgEntrySet(Bcfg2.Server.Plugin.EntrySet): def set_debug(self, debug): rv = Bcfg2.Server.Plugin.EntrySet.set_debug(self, debug) - for entry in self.entries.values(): + for entry in list(self.entries.values()): entry.set_debug(debug) return rv @@ -648,7 +648,7 @@ class CfgEntrySet(Bcfg2.Server.Plugin.EntrySet): data = b64encode(data) else: try: - if not isinstance(data, unicode): + if not isinstance(data, str): if not isinstance(data, str): data = data.decode('utf-8') data = u_str(data, Bcfg2.Options.setup.encoding) @@ -688,7 +688,7 @@ class CfgEntrySet(Bcfg2.Server.Plugin.EntrySet): :returns: list of Cfg handler classes """ rv = [] - for ent in self.entries.values(): + for ent in list(self.entries.values()): if (isinstance(ent, handler_type) and (not ent.__specific__ or ent.specific.matches(metadata))): rv.append(ent) @@ -786,7 +786,7 @@ class CfgEntrySet(Bcfg2.Server.Plugin.EntrySet): verifiers_by_class[cls] = [verifier] else: verifiers_by_class[cls].append(verifier) - for verifiers in verifiers_by_class.values(): + for verifiers in list(verifiers_by_class.values()): verifier = self.best_matching(metadata, verifiers) verifier.verify_entry(entry, metadata, data) diff --git a/src/lib/Bcfg2/Server/Plugins/Deps.py b/src/lib/Bcfg2/Server/Plugins/Deps.py index 1872e68af..7288698db 100644 --- a/src/lib/Bcfg2/Server/Plugins/Deps.py +++ b/src/lib/Bcfg2/Server/Plugins/Deps.py @@ -65,7 +65,7 @@ class Deps(Bcfg2.Server.Plugin.PrioDir, # tuples of (PriorityStructFile, element) for each # matching element and the structfile that contains it matching = [] - for deps in self.entries.values(): + for deps in list(self.entries.values()): el = deps.find("/%s[name='%s']" % (entry.tag, entry.get("name"))) if el: diff --git a/src/lib/Bcfg2/Server/Plugins/Ldap.py b/src/lib/Bcfg2/Server/Plugins/Ldap.py index 770419ba5..cb82d962e 100644 --- a/src/lib/Bcfg2/Server/Plugins/Ldap.py +++ b/src/lib/Bcfg2/Server/Plugins/Ldap.py @@ -210,7 +210,7 @@ class LdapConnection(Debuggable): self.conn = ldap.initialize(self.get_uri()) if self.options is not None: - for (option, value) in self.options.items(): + for (option, value) in list(self.options.items()): self.conn.set_option(option, value) if self.binddn is not None and self.bindpw is not None: diff --git a/src/lib/Bcfg2/Server/Plugins/Metadata.py b/src/lib/Bcfg2/Server/Plugins/Metadata.py index b912d3725..bdefd4b45 100644 --- a/src/lib/Bcfg2/Server/Plugins/Metadata.py +++ b/src/lib/Bcfg2/Server/Plugins/Metadata.py @@ -959,7 +959,7 @@ class Metadata(Bcfg2.Server.Plugin.Metadata, def HandleEvent(self, event): """Handle update events for data files.""" - for handles, event_handler in self.handlers.items(): + for handles, event_handler in list(self.handlers.items()): if handles(event): # clear the entire cache when we get an event for any # metadata file @@ -968,7 +968,7 @@ class Metadata(Bcfg2.Server.Plugin.Metadata, # clear out the list of category suppressions that # have been warned about, since this may change when # clients.xml or groups.xml changes. - for group in self.groups.values(): + for group in list(self.groups.values()): group.warned = [] event_handler(event) @@ -1120,7 +1120,7 @@ class Metadata(Bcfg2.Server.Plugin.Metadata, self.groups[grpname].category): categories[self.groups[grpname].category] = grpname groups.update(newgroups) - for grpname, predicates in self.negated_groups.items(): + for grpname, predicates in list(self.negated_groups.items()): if grpname not in groups: continue if any(p(client, groups, categories) for p in predicates): @@ -1289,16 +1289,16 @@ class Metadata(Bcfg2.Server.Plugin.Metadata, def get_all_group_names(self): """ return a list of all group names """ all_groups = set() - all_groups.update(self.groups.keys()) - all_groups.update(self.group_membership.keys()) - all_groups.update(self.negated_groups.keys()) - for grp in self.clientgroups.values(): + all_groups.update(list(self.groups.keys())) + all_groups.update(list(self.group_membership.keys())) + all_groups.update(list(self.negated_groups.keys())) + for grp in list(self.clientgroups.values()): all_groups.update(grp) return all_groups def get_all_groups_in_category(self, category): """ return a list of names of groups in the given category """ - return set([g.name for g in self.groups.values() + return set([g.name for g in list(self.groups.values()) if g.category == category]) def get_client_names_by_profiles(self, profiles): diff --git a/src/lib/Bcfg2/Server/Plugins/POSIXCompat.py b/src/lib/Bcfg2/Server/Plugins/POSIXCompat.py index cf53c5866..1cd5e059e 100644 --- a/src/lib/Bcfg2/Server/Plugins/POSIXCompat.py +++ b/src/lib/Bcfg2/Server/Plugins/POSIXCompat.py @@ -24,5 +24,5 @@ class POSIXCompat(Bcfg2.Server.Plugin.Plugin, for goal in goals: for entry in goal.getchildren(): - if entry.tag == 'Path' and 'mode' in entry.keys(): + if entry.tag == 'Path' and 'mode' in list(entry.keys()): entry.set('perms', entry.get('mode')) diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Pac.py b/src/lib/Bcfg2/Server/Plugins/Packages/Pac.py index e3432c934..9d019b46a 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Pac.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Pac.py @@ -160,7 +160,7 @@ class PacSource(Source): pkg = parse_db_file(tar.extractfile(tarinfo)) packages[prefix].update(pkg) - for pkg in packages.values(): + for pkg in list(packages.values()): pkgname = pkg['%NAME%'][0] self.pkgnames.add(pkgname) bdeps[barch][pkgname] = [] diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Pkgng.py b/src/lib/Bcfg2/Server/Plugins/Packages/Pkgng.py index 5248ad896..230be2ccd 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Pkgng.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Pkgng.py @@ -87,10 +87,10 @@ class PkgngSource(Source): self.logger.error("Packages: Failed to read file %s" % fname) raise for line in packagesite.readlines(): - pkg = json.loads(unicode(line, errors='ignore')) + pkg = json.loads(str(line, errors='ignore')) pkgname = pkg['name'] self.pkgnames.add(pkgname) if 'deps' in pkg: - bdeps[barch][pkgname] = pkg['deps'].keys() + bdeps[barch][pkgname] = list(pkg['deps'].keys()) self.process_files(bdeps, dict()) read_files.__doc__ = Source.read_files.__doc__ diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py index 574dbd851..d6529eb20 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py @@ -310,7 +310,7 @@ class Source(Debuggable): # pylint: disable=R0902 opts = xsource.findall("Options") for el in opts: repoopts = dict([(k, v) - for k, v in el.attrib.items() + for k, v in list(el.attrib.items()) if k != "clientonly" and k != "serveronly"]) if el.get("clientonly", "false").lower() == "false": self.server_options.update(repoopts) diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py index acb11f1ab..6732f4179 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py @@ -405,7 +405,7 @@ class YumCollection(Collection): mainopts['debuglevel'] = "2" try: - for opt, val in Bcfg2.Options.setup.yum_options.items(): + for opt, val in list(Bcfg2.Options.setup.yum_options.items()): if opt not in self.option_blacklist: mainopts[opt] = val except ConfigParser.NoSectionError: @@ -486,7 +486,7 @@ class YumCollection(Collection): opts = source.server_options else: opts = source.client_options - for opt, val in opts.items(): + for opt, val in list(opts.items()): config.set(reponame, opt, val) if raw: @@ -805,7 +805,7 @@ class YumCollection(Collection): packages[pkg[0]].append(pkg) except KeyError: packages[pkg[0]] = [pkg] - for name, instances in packages.items(): + for name, instances in list(packages.items()): pkgattrs = dict(type=self.ptype, origin='Packages', name=name) diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py index 89cc23090..93e8092b4 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py @@ -290,16 +290,16 @@ class HelperSubcommand(Bcfg2.Options.Subcommand): except ValueError: self.logger.error("Error decoding JSON input: %s" % sys.exc_info()[1]) - print(json.dumps(self.fallback)) + print((json.dumps(self.fallback))) return 2 try: - print(json.dumps(self._run(setup, data))) + print((json.dumps(self._run(setup, data)))) except: # pylint: disable=W0702 self.logger.error("Unexpected error running %s: %s" % (self.__class__.__name__.lower(), sys.exc_info()[1]), exc_info=1) - print(json.dumps(self.fallback)) + print((json.dumps(self.fallback))) return 2 return 0 @@ -388,7 +388,7 @@ class CLI(Bcfg2.Options.CommandRegistry): def __init__(self): Bcfg2.Options.CommandRegistry.__init__(self) - self.register_commands(globals().values(), parent=HelperSubcommand) + self.register_commands(list(globals().values()), parent=HelperSubcommand) parser = Bcfg2.Options.get_parser("Bcfg2 yum helper", components=[self]) parser.add_options(self.subcommand_options) diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py index 1a9673891..eb8322ad6 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py @@ -166,7 +166,7 @@ class Packages(Bcfg2.Server.Plugin.Plugin, def set_debug(self, debug): rv = Bcfg2.Server.Plugin.Plugin.set_debug(self, debug) self.sources.set_debug(debug) - for collection in self.collections.values(): + for collection in list(self.collections.values()): collection.set_debug(debug) return rv set_debug.__doc__ = Bcfg2.Server.Plugin.Plugin.set_debug.__doc__ @@ -366,7 +366,7 @@ class Packages(Bcfg2.Server.Plugin.Plugin, gkey = hash(tuple(groups)) if gkey not in gcache: gcache[gkey] = collection.get_groups(groups) - for pkgs in gcache[gkey].values(): + for pkgs in list(gcache[gkey].values()): base.update(pkgs) # essential pkgs are those marked as such by the distribution diff --git a/src/lib/Bcfg2/Server/Plugins/Pkgmgr.py b/src/lib/Bcfg2/Server/Plugins/Pkgmgr.py index 7c6ab0ed7..436fdbcec 100644 --- a/src/lib/Bcfg2/Server/Plugins/Pkgmgr.py +++ b/src/lib/Bcfg2/Server/Plugins/Pkgmgr.py @@ -20,7 +20,7 @@ class FuzzyDict(dict): if mdata: return dict.__getitem__(self, mdata.groupdict()['name']) else: - print("got non-string key %s" % str(key)) + print(("got non-string key %s" % str(key))) return dict.__getitem__(self, key) def __contains__(self, key): @@ -29,7 +29,7 @@ class FuzzyDict(dict): if mdata: return dict.__contains__(self, mdata.groupdict()['name']) else: - print("got non-string key %s" % str(key)) + print(("got non-string key %s" % str(key))) return dict.__contains__(self, key) def get(self, key, default=None): @@ -66,7 +66,7 @@ class PNode(object): pdict['Package'] = set() for child in data.getchildren(): attrs = set(data.attrib.keys()).difference( - child.attrib.keys() + ['name']) + list(child.attrib.keys()) + ['name']) for attr in attrs: try: child.set(attr, data.get(attr)) @@ -284,7 +284,7 @@ class Pkgmgr(Bcfg2.Server.Plugin.PrioDir): def HandlesEntry(self, entry, metadata): return ( entry.tag == 'Package' and - entry.get('name').split(':')[0] in self.Entries['Package'].keys()) + entry.get('name').split(':')[0] in list(self.Entries['Package'].keys())) def HandleEntry(self, entry, metadata): self.BindEntry(entry, metadata) diff --git a/src/lib/Bcfg2/Server/Plugins/Probes.py b/src/lib/Bcfg2/Server/Plugins/Probes.py index 270bfa62d..1d9603798 100644 --- a/src/lib/Bcfg2/Server/Plugins/Probes.py +++ b/src/lib/Bcfg2/Server/Plugins/Probes.py @@ -10,7 +10,7 @@ import lxml.etree import Bcfg2.Server import Bcfg2.Server.Cache import Bcfg2.Server.Plugin -from Bcfg2.Compat import unicode, any # pylint: disable=W0622 +from Bcfg2.Compat import str, any # pylint: disable=W0622 import Bcfg2.Server.FileMonitor from Bcfg2.Logger import Debuggable from Bcfg2.Server.Statistics import track_statistics @@ -178,7 +178,7 @@ class DBProbeStore(ProbeStore, Bcfg2.Server.Plugin.DatabaseBacked): Bcfg2.Server.Cache.expire("Probes", "probedata", hostname) self._datacache[hostname] = ClientProbeDataSet() expire_metadata = False - for probe, pdata in data.items(): + for probe, pdata in list(data.items()): self._datacache[hostname][probe] = pdata try: record, created = ProbesDataModel.objects.get_or_create( @@ -196,7 +196,7 @@ class DBProbeStore(ProbeStore, Bcfg2.Server.Plugin.DatabaseBacked): record.save() expire_metadata = True qset = ProbesDataModel.objects.filter( - hostname=hostname).exclude(probe__in=data.keys()) + hostname=hostname).exclude(probe__in=list(data.keys())) if len(qset): qset.delete() expire_metadata = True @@ -283,7 +283,7 @@ class XMLProbeStore(ProbeStore): Bcfg2.Server.Cache.expire("Probes", "probedata", hostname) self._datacache[hostname] = ClientProbeDataSet() expire_metadata = False - for probe, pdata in data.items(): + for probe, pdata in list(data.items()): olddata = self._datacache[hostname].get(probe, ProbeData('')) self._datacache[hostname][probe] = pdata expire_metadata |= olddata != data @@ -308,7 +308,7 @@ class ProbeData(str): # pylint: disable=E0012,R0924 ProbeData objects as XML, JSON, or YAML data """ def __new__(cls, data): # prevent double encoding utf-8 in python3 - if isinstance(data, unicode) and not isinstance(data, str): + if isinstance(data, str) and not isinstance(data, str): return str.__new__(cls, data.encode('utf-8')) else: return str.__new__(cls, data) diff --git a/src/lib/Bcfg2/Server/Plugins/Properties.py b/src/lib/Bcfg2/Server/Plugins/Properties.py index e6549b714..2ea383249 100644 --- a/src/lib/Bcfg2/Server/Plugins/Properties.py +++ b/src/lib/Bcfg2/Server/Plugins/Properties.py @@ -288,7 +288,7 @@ class Properties(Bcfg2.Server.Plugin.Plugin, def get_additional_data(self, metadata): rv = dict() - for fname, pfile in self.entries.items(): + for fname, pfile in list(self.entries.items()): rv[fname] = pfile.get_additional_data(metadata) return rv get_additional_data.__doc__ = \ diff --git a/src/lib/Bcfg2/Server/Plugins/PuppetENC.py b/src/lib/Bcfg2/Server/Plugins/PuppetENC.py index e2d8a058f..c5795c69b 100644 --- a/src/lib/Bcfg2/Server/Plugins/PuppetENC.py +++ b/src/lib/Bcfg2/Server/Plugins/PuppetENC.py @@ -41,7 +41,7 @@ class PuppetENC(Bcfg2.Server.Plugin.Plugin, def _run_encs(self, metadata): """ Run all Puppet ENCs """ cache = dict(groups=[], params=dict()) - for enc in self.entries.keys(): + for enc in list(self.entries.keys()): epath = os.path.join(self.data, enc) self.debug_log("PuppetENC: Running ENC %s for %s" % (enc, metadata.hostname)) @@ -73,8 +73,8 @@ class PuppetENC(Bcfg2.Server.Plugin.Plugin, cache['groups'].extend(groups) else: self.debug_log("ENC %s adding groups to %s: %s" % - (enc, metadata.hostname, groups.keys())) - for group, params in groups.items(): + (enc, metadata.hostname, list(groups.keys()))) + for group, params in list(groups.items()): cache['groups'].append(group) if params: cache['params'].update(params) diff --git a/src/lib/Bcfg2/Server/Plugins/Rules.py b/src/lib/Bcfg2/Server/Plugins/Rules.py index cf659251c..776a905ca 100644 --- a/src/lib/Bcfg2/Server/Plugins/Rules.py +++ b/src/lib/Bcfg2/Server/Plugins/Rules.py @@ -29,7 +29,7 @@ class Rules(Bcfg2.Server.Plugin.PrioDir): self._regex_cache = dict() def HandlesEntry(self, entry, metadata): - for src in self.entries.values(): + for src in list(self.entries.values()): for candidate in src.XMLMatch(metadata).xpath("//%s" % entry.tag): if self._matches(entry, metadata, candidate): return True diff --git a/src/lib/Bcfg2/Server/Plugins/SSHbase.py b/src/lib/Bcfg2/Server/Plugins/SSHbase.py index 08acc4d8d..ecdb6d9ed 100644 --- a/src/lib/Bcfg2/Server/Plugins/SSHbase.py +++ b/src/lib/Bcfg2/Server/Plugins/SSHbase.py @@ -226,7 +226,7 @@ class SSHbase(Bcfg2.Server.Plugin.Plugin, if pubk.endswith('.pub')] pubkeys.sort() for pubkey in pubkeys: - for entry in sorted(self.entries[pubkey].entries.values(), + for entry in sorted(list(self.entries[pubkey].entries.values()), key=lambda e: (e.specific.hostname or e.specific.group)): specific = entry.specific @@ -421,9 +421,9 @@ class SSHbase(Bcfg2.Server.Plugin.Plugin, self.entries[entry.get('name')].bind_entry(entry, metadata) is_bound = True except Bcfg2.Server.Plugin.PluginExecutionError: - print("Failed to bind %s: %s") % ( + print(("Failed to bind %s: %s") % ( lxml.etree.tostring(entry), - sys.exc_info()[1]) + sys.exc_info()[1])) def GenerateHostKeyPair(self, client, filename): """Generate new host key pair for client.""" @@ -497,7 +497,7 @@ class SSHbase(Bcfg2.Server.Plugin.Plugin, try: open(filename, 'w').write(entry['text']) if log: - print("Wrote file %s" % filename) + print(("Wrote file %s" % filename)) except KeyError: self.logger.error("Failed to pull %s. This file does not " "currently exist on the client" % diff --git a/src/lib/Bcfg2/Server/Plugins/TemplateHelper.py b/src/lib/Bcfg2/Server/Plugins/TemplateHelper.py index ff67571fa..030f4d74a 100644 --- a/src/lib/Bcfg2/Server/Plugins/TemplateHelper.py +++ b/src/lib/Bcfg2/Server/Plugins/TemplateHelper.py @@ -31,9 +31,9 @@ class HelperModule(Debuggable): self.defaults = [] default_prov = DefaultTemplateDataProvider() - self.reserved_defaults = default_prov.get_template_data( + self.reserved_defaults = list(default_prov.get_template_data( lxml.etree.Element("Path", name="/dummy"), - None, None).keys() + ["path"] + None, None).keys()) + ["path"] def HandleEvent(self, event=None): """ HandleEvent is called whenever the FAM registers an event. @@ -119,12 +119,12 @@ class TemplateHelper(Plugin, Connector, DirectoryBacked, TemplateDataProvider): def get_additional_data(self, _): return dict([(h._module_name, h) # pylint: disable=W0212 - for h in self.entries.values()]) + for h in list(self.entries.values())]) def get_template_data(self, *_): rv = dict() source = dict() - for helper in self.entries.values(): + for helper in list(self.entries.values()): for key in helper.defaults: if key not in rv: rv[key] = getattr(helper, key) diff --git a/src/lib/Bcfg2/Server/Plugins/Trigger.py b/src/lib/Bcfg2/Server/Plugins/Trigger.py index 12672de7d..807b196d7 100644 --- a/src/lib/Bcfg2/Server/Plugins/Trigger.py +++ b/src/lib/Bcfg2/Server/Plugins/Trigger.py @@ -46,6 +46,6 @@ class Trigger(Bcfg2.Server.Plugin.Plugin, def end_client_run(self, metadata): args = [metadata.hostname, '-p', metadata.profile, '-g', ':'.join([g for g in metadata.groups])] - for notifier in self.entries.keys(): + for notifier in list(self.entries.keys()): npath = os.path.join(self.data, notifier) self.async_run([npath] + args) |