Implementation of groups ob...
Benjamin Renard authored 10 years ago
|
1) #!/usr/bin/python
2) # -*- coding: utf-8 -*-
3)
4) import logging
5) import urllib
6) log = logging.getLogger(__name__)
7)
8) class GroupList(object):
9)
10) def __init__(self):
11) self.groups={}
12) self.lastChange=False
13)
14) def load(self,data):
15) if 'lastChange' in data:
16) self.lastChange=data['lastChange']
17) if 'groups' in data:
18) for g in data['groups']:
19) self.groups[g]=Group()
20) self.groups[g].load(data['groups'][g])
21)
22) def export(self):
23) groups={}
24) for uuid in self.groups:
25) groups[uuid]=self.groups[uuid].export()
26)
27) return {
28) 'lastChange': self.lastChange,
29) 'groups': groups
30) }
31)
32) def toJSON(self,pretty=False):
33) if pretty:
34) return json.dumps(self.export(),indent=4, separators=(',', ': '))
35) else:
36) return json.dumps(self.export())
37)
38) def sync(self,groups):
39) ret=GroupList()
40) if groups.lastChange<self.lastChange:
41) ret.lastChange=self.lastChange
42) else:
43) ret.lastChange=groups.lastChange
44) for uuid in groups.groups:
45) if uuid in self.groups:
46) ret.groups[uuid]=self.groups[uuid].sync(groups.groups[uuid])
47) else:
48) ret.groups[uuid]=groups.groups[uuid]
|