summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2013-03-13 01:21:10 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-06-29 16:28:47 +0200
commitb7e747903d9a777d2487878200ce84175dafe837 (patch)
tree3dda45b84f034a21fc6b33b7cccc1a69991a62d2
parent321e1d752c220f11465cf047c8af322a03eff9f8 (diff)
downloadbcfg2-b7e747903d9a777d2487878200ce84175dafe837.tar.gz
bcfg2-b7e747903d9a777d2487878200ce84175dafe837.tar.bz2
bcfg2-b7e747903d9a777d2487878200ce84175dafe837.zip
Plugins/Packages/Portage: use keywords/use config everywhere
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Portage.py47
1 files changed, 24 insertions, 23 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py b/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py
index 02bcfa5a2..8629699ca 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py
@@ -62,28 +62,6 @@ class PortageCollection(Collection):
if not self.portage:
_import_portage(self)
- # get global use flags
- self.portage.settings.unlock()
- self.portage.settings['USE'] = ''
- if 'gentoo-use-flags' in self.metadata.Probes:
- self.portage.settings['USE'] = \
- self.metadata.Probes['gentoo-use-flags']
-
- # add package flags (accept_keywords, use)
- if hasattr(self.metadata, 'PkgVars'):
- for k in self.metadata.PkgVars['keywords']:
- keyword = metadata.PkgVars['keywords'][k]
- self.portage.settings._keywords_manager.pkeywordsdict[k] = \
- {k: tuple(keyword)}
-
-
- for u in self.metadata.PkgVars['use']:
- use = metadata.PkgVars['use'][u]
- self.portage.settings._use_manager._pusedict[u] = \
- {u: tuple(use)}
-
- self.portage.settings.lock()
-
# calculate deps
setconfig = self.portage._sets.load_default_config(
self.portage.settings,
@@ -126,7 +104,6 @@ class PortageCollection(Collection):
try:
name = entry.get('name')
- # TODO: handle package specific accept keywords
pkgs = self.porttree.dep_bestmatch(name)
except self.portage.exception.AmbiguousPackageName as e:
self.logger.error("Packages: AmbiguousPackageName: %s" % e)
@@ -192,10 +169,34 @@ class PortageCollection(Collection):
portage.db[portage.root]['vartree'].settings = portage.settings
portage.db[portage.root]['vartree'].dbapi.settings = portage.settings
+ def _set_portage_config(self):
+ # get global use flags
+ self.portage.settings.unlock()
+ self.portage.settings['USE'] = ''
+ if 'gentoo-use-flags' in self.metadata.Probes:
+ self.portage.settings['USE'] = \
+ self.metadata.Probes['gentoo-use-flags']
+
+ # add package flags (accept_keywords, use)
+ if hasattr(self.metadata, 'PkgVars'):
+ for k in self.metadata.PkgVars['keywords']:
+ keyword = metadata.PkgVars['keywords'][k]
+ self.portage.settings._keywords_manager.pkeywordsdict[k] = \
+ {k: tuple(keyword)}
+
+
+ for u in self.metadata.PkgVars['use']:
+ use = metadata.PkgVars['use'][u]
+ self.portage.settings._use_manager._pusedict[u] = \
+ {u: tuple(use)}
+
+ self.portage.settings.lock()
+
def _import_portage(self, portage, emerge, porttree):
self.portage = portage
self.emerge = emerge
self.porttree = porttree
+ self._set_portage_config()
for s in self.sources:
if isinstance(s, PortageSource):