summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages/Source.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-03-25 11:19:11 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-03-25 11:19:11 -0400
commit432f448983ff27452d82d62314d91c942f31bce5 (patch)
treef7f0aeb5f20e928306a37407857afe822713f5cb /src/lib/Bcfg2/Server/Plugins/Packages/Source.py
parentfe7a3e9c7a7d66cccbd825465cefcf88165a0c3a (diff)
downloadbcfg2-432f448983ff27452d82d62314d91c942f31bce5.tar.gz
bcfg2-432f448983ff27452d82d62314d91c942f31bce5.tar.bz2
bcfg2-432f448983ff27452d82d62314d91c942f31bce5.zip
Packages: properly implemented deepcopy() for PackagesSources objects
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/Source.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Source.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py
index 985405e65..40c1f6676 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py
@@ -92,7 +92,8 @@ class SourceInitError(Exception):
REPO_RE = re.compile(r'(?:pulp/repos/|/RPMS\.|/)([^/]+)/?$')
-class Source(Bcfg2.Server.Plugin.Debuggable): # pylint: disable=R0902
+class Source(Bcfg2.Server.Plugin.Debuggable, # pylint: disable=R0902
+ Bcfg2.Server.Plugin.DeepcopyMixin):
""" ``Source`` objects represent a single <Source> tag in
``sources.xml``. Note that a single Source tag can itself
describe multiple repositories (if it uses the "url" attribute
@@ -128,6 +129,7 @@ class Source(Bcfg2.Server.Plugin.Debuggable): # pylint: disable=R0902
:raises: :class:`Bcfg2.Server.Plugins.Packages.Source.SourceInitError`
"""
Bcfg2.Server.Plugin.Debuggable.__init__(self)
+ Bcfg2.Server.Plugin.DeepcopyMixin.__init__(self)
#: The base filesystem path under which cache data for this
#: source should be stored
@@ -738,3 +740,6 @@ class Source(Bcfg2.Server.Plugin.Debuggable): # pylint: disable=R0902
if group in metadata.groups:
return True
return False
+
+ def _deepcopy_constructor_args(self):
+ return (self.basepath, self.xsource, dict(self.setup))