Config: Add support for a Self.all proxy object

This commit is contained in:
Ali Saidi
2011-07-10 12:56:08 -05:00
parent 83f91db2cc
commit 9751a1d3e7
3 changed files with 30 additions and 1 deletions

View File

@@ -184,6 +184,13 @@ class AnyProxy(BaseProxy):
def path(self):
return 'any'
class AllProxy(BaseProxy):
def find(self, obj):
return obj.find_all(self._pdesc.ptype)
def path(self):
return 'all'
def isproxy(obj):
if isinstance(obj, (BaseProxy, params.EthernetAddr)):
return True
@@ -201,6 +208,10 @@ class ProxyFactory(object):
def __getattr__(self, attr):
if attr == 'any':
return AnyProxy(self.search_self, self.search_up)
elif attr == 'all':
if self.search_up:
assert("Parant.all is not supported")
return AllProxy(self.search_self, self.search_up)
else:
return AttrProxy(self.search_self, self.search_up, attr)