works on sqlalchemy storage

This commit is contained in:
2014-11-10 09:13:44 +01:00
parent c75867720f
commit 4217508f3f
12 changed files with 446 additions and 166 deletions

View File

@ -168,7 +168,7 @@ class OptionDescription(BaseOption, StorageOptionDescription):
return True
#consistencies is something like [('_cons_not_equal', (opt1, opt2))]
if isinstance(option, DynSymLinkOption):
consistencies = self._cache_consistencies.get(option._opt)
consistencies = self._cache_consistencies.get(option._impl_getopt())
else:
consistencies = self._cache_consistencies.get(option)
if consistencies is not None:
@ -177,7 +177,7 @@ class OptionDescription(BaseOption, StorageOptionDescription):
#all_cons_opts[0] is the option where func is set
if isinstance(option, DynSymLinkOption):
subpath = '.'.join(option._dyn.split('.')[:-1])
namelen = len(option._opt.impl_getname())
namelen = len(option._impl_getopt().impl_getname())
suffix = option.impl_getname()[namelen:]
opts = []
for opt in all_cons_opts:
@ -361,6 +361,9 @@ class SynDynOptionDescription(object):
def impl_getpaths(self, include_groups=False, _currpath=None):
return _impl_getpaths(self, include_groups, _currpath)
def _impl_getopt(self):
return self._opt
def _impl_getpaths(klass, include_groups, _currpath):
"""returns a list of all paths in klass, recursively