def _cache_count_NT4(**kwargs): nt4 = FreeNAS_NT4() domains = nt4.get_domains() for d in domains: workgroup = d print "w: %s" % workgroup print "u: %ld" % _cachelen(FreeNAS_UserCache(dir=workgroup)) print "g: %ld" % _cachelen(FreeNAS_GroupCache(dir=workgroup)) print "du: %ld" % _cachelen(FreeNAS_NT4_UserCache(dir=workgroup)) print "dg: %ld" % _cachelen(FreeNAS_NT4_GroupCache(dir=workgroup)) print "\n"
def _cache_check_NT4(**kwargs): if not ('args' in kwargs and kwargs['args']): return valid = {} nt4 = FreeNAS_NT4() domains = nt4.get_domains() for d in domains: workgroup = d valid[workgroup] = True for arg in kwargs['args']: key = val = None if arg.startswith("u="): key = "u" val = arg.partition("u=")[2] elif arg.startswith("g="): key = "g" val = arg.partition("g=")[2] elif arg.startswith("du="): key = "du" val = arg.partition("du=")[2] elif arg.startswith("dg="): key = "dg" val = arg.partition("dg=")[2] else: continue if key in ('u', 'g'): parts = val.split('\\') if len(parts) < 2: continue workgroup = parts[0] if workgroup not in valid: continue ucache = FreeNAS_UserCache(dir=workgroup) gcache = FreeNAS_GroupCache(dir=workgroup) ducache = FreeNAS_Directory_UserCache(dir=workgroup) dgcache = FreeNAS_Directory_GroupCache(dir=workgroup) if key == 'u': if ucache and val in ucache and ucache[val]: print "%s: %s" % (val, ucache[val]) elif key == 'g': if gcache and val in gcache and gcache[val]: print "%s: %s" % (val, gcache[val]) elif key in ('du', 'dg'): for workgroup in valid.keys(): ucache = FreeNAS_UserCache(dir=workgroup) gcache = FreeNAS_GroupCache(dir=workgroup) ducache = FreeNAS_Directory_UserCache(dir=workgroup) dgcache = FreeNAS_Directory_GroupCache(dir=workgroup) if key == 'du': if ducache and val in ducache and ducache[val]: print "%s: %s" % (val, ducache[val]) elif key == 'dg': if dgcache and val in dgcache and dgcache[val]: print "%s: %s" % (val, dgcache[val])