From 6db7cd19b6ea4f9aea785e84c3c178fdc163ba08 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Fri, 13 Jan 2012 11:52:25 -0500 Subject: cherry-picked a2cc392 Switch to shallow rather than deep copies to improve performance --- src/lib/Server/Plugins/Base.py | 2 +- src/lib/Server/Plugins/Bundler.py | 2 +- src/lib/Server/Plugins/Metadata.py | 2 +- src/lib/Server/Plugins/Properties.py | 2 +- src/lib/Server/Plugins/Statistics.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/lib/Server/Plugins') diff --git a/src/lib/Server/Plugins/Base.py b/src/lib/Server/Plugins/Base.py index 5de57a87c..e8d798ae4 100644 --- a/src/lib/Server/Plugins/Base.py +++ b/src/lib/Server/Plugins/Base.py @@ -41,5 +41,5 @@ class Base(Bcfg2.Server.Plugin.Plugin, fragments = reduce(lambda x, y: x + y, [base.Match(metadata) for base in list(self.entries.values())], []) - [ret.append(copy.deepcopy(frag)) for frag in fragments] + [ret.append(copy.copy(frag)) for frag in fragments] return [ret] diff --git a/src/lib/Server/Plugins/Bundler.py b/src/lib/Server/Plugins/Bundler.py index 4b73a17d4..04aa3df71 100644 --- a/src/lib/Server/Plugins/Bundler.py +++ b/src/lib/Server/Plugins/Bundler.py @@ -24,7 +24,7 @@ class BundleFile(Bcfg2.Server.Plugin.StructFile): def get_xml_value(self, metadata): bundlename = os.path.splitext(os.path.basename(self.name))[0] bundle = lxml.etree.Element('Bundle', name=bundlename) - [bundle.append(copy.deepcopy(item)) for item in self.Match(metadata)] + [bundle.append(copy.copy(item)) for item in self.Match(metadata)] return bundle diff --git a/src/lib/Server/Plugins/Metadata.py b/src/lib/Server/Plugins/Metadata.py index 8afcd9c50..f837b1305 100644 --- a/src/lib/Server/Plugins/Metadata.py +++ b/src/lib/Server/Plugins/Metadata.py @@ -78,7 +78,7 @@ class XMLMetadataConfig(object): except lxml.etree.XMLSyntaxError: self.logger.error('Failed to parse %s' % (self.basefile)) return - self.basedata = copy.deepcopy(xdata) + self.basedata = copy.copy(xdata) included = [ent.get('href') for ent in \ xdata.findall('./{http://www.w3.org/2001/XInclude}include')] if included: diff --git a/src/lib/Server/Plugins/Properties.py b/src/lib/Server/Plugins/Properties.py index 9b44942cd..76945b3a0 100644 --- a/src/lib/Server/Plugins/Properties.py +++ b/src/lib/Server/Plugins/Properties.py @@ -74,4 +74,4 @@ class Properties(Bcfg2.Server.Plugin.Plugin, raise Bcfg2.Server.Plugin.PluginInitError def get_additional_data(self, _): - return copy.deepcopy(self.store.entries) + return copy.copy(self.store.entries) diff --git a/src/lib/Server/Plugins/Statistics.py b/src/lib/Server/Plugins/Statistics.py index 7251ab1b5..9dbbeec28 100644 --- a/src/lib/Server/Plugins/Statistics.py +++ b/src/lib/Server/Plugins/Statistics.py @@ -98,7 +98,7 @@ class StatisticsStore(object): newstat.set('time', asctime(localtime())) # Add statistic - node.append(copy.deepcopy(newstat)) + node.append(copy.copy(newstat)) # Set dirty self.dirty = 1 -- cgit v1.2.3-1-g7c22