def directoryservice(self, name): """Temporary wrapper to serialize DS connectors""" if name == 'AD': ds = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) workgroups = [] domains = ds.get_domains() for d in domains: if 'nETBIOSName' in d: netbiosname = d['nETBIOSName'] workgroups.append(netbiosname) ds.workgroups = workgroups elif name == 'LDAP': ds = FreeNAS_LDAP(flags=FLAGS_DBINIT) else: raise ValueError('Unknown ds name {0}'.format(name)) data = {} for i in ('netbiosname', 'keytab_file', 'keytab_principal', 'domainname', 'use_default_domain', 'dchost', 'basedn', 'binddn', 'bindpw', 'userdn', 'groupdn', 'ssl', 'certfile', 'id', 'ad_idmap_backend', 'ds_type', 'krb_realm', 'krbname', 'kpwdname', 'krb_kdc', 'krb_admin_server', 'krb_kpasswd_server', 'workgroups'): if hasattr(ds, i): data[i] = getattr(ds, i) return data
def _cache_keys_ActiveDirectory(**kwargs): ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] print "w: %s" % workgroup ucache = FreeNAS_UserCache(dir=workgroup) if ucache: for key in ucache.keys(): print "u key: %s" % key gcache = FreeNAS_GroupCache(dir=workgroup) if gcache: for key in gcache.keys(): print "g key: %s" % key ducache = FreeNAS_Directory_UserCache(dir=workgroup) if ducache: for key in ducache.keys(): print "du key: %s" % key dgcache = FreeNAS_Directory_GroupCache(dir=workgroup) if dgcache: for key in dgcache.keys(): print "dg key: %s" % key
def _cache_rawdump_ActiveDirectory(**kwargs): ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] print "w: %s" % workgroup ucache = FreeNAS_UserCache(dir=workgroup) if ucache: for key in ucache.keys(): print "u: %s=%s" % (key, ucache[key]) gcache = FreeNAS_GroupCache(dir=workgroup) if gcache: for key in gcache.keys(): print "g: %s=%s" % (key, gcache[key]) ducache = FreeNAS_Directory_UserCache(dir=workgroup) if ducache: for key in ducache.keys(): print "du: %s=%s" % (key, ducache[key]) dgcache = FreeNAS_Directory_GroupCache(dir=workgroup) if dgcache: for key in dgcache.keys(): print "dg: %s=%s" % (key, dgcache[key])
def directoryservice(self, name): """Temporary rapper to serialize DS connectors""" if name == 'AD': ds = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) workgroups = [] domains = ds.get_domains() for d in domains: if 'nETBIOSName' in d: netbiosname = d['nETBIOSName'] workgroups.append(netbiosname) ds.workgroups = workgroups elif name == 'LDAP': ds = FreeNAS_LDAP(flags=FLAGS_DBINIT) else: raise ValueError('Unknown ds name {0}'.format(name)) data = {} for i in ( 'netbiosname', 'keytab_file', 'keytab_principal', 'domainname', 'use_default_domain', 'dchost', 'basedn', 'binddn', 'bindpw', 'userdn', 'groupdn', 'ssl', 'certfile', 'id', 'ad_idmap_backend', 'ds_type', 'krb_realm', 'krbname', 'kpwdname', 'krb_kdc', 'krb_admin_server', 'krb_kpasswd_server', 'workgroups' ): if hasattr(ds, i): data[i] = getattr(ds, i) return data
def _cache_rawdump_ActiveDirectory(**kwargs): ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] print "w: %s" % workgroup ucache = FreeNAS_UserCache(dir=workgroup) if ucache: for key in ucache.keys(): print "u: %s=%s" % (key, ucache[key]) gcache = FreeNAS_GroupCache(dir=workgroup) if gcache: for key in gcache.keys(): print "g: %s=%s" % (key, gcache[key]) ducache = FreeNAS_Directory_UserCache(dir=workgroup) if ducache: for key in ducache.keys(): print "du: %s=%s" % (key, ducache[key]) dgcache = FreeNAS_Directory_GroupCache(dir=workgroup) if dgcache: for key in dgcache.keys(): print "dg: %s=%s" % (key, dgcache[key])
def _cache_keys_ActiveDirectory(**kwargs): ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] print "w: %s" % workgroup ucache = FreeNAS_UserCache(dir=workgroup) if ucache: for key in ucache.keys(): print "u key: %s" % key gcache = FreeNAS_GroupCache(dir=workgroup) if gcache: for key in gcache.keys(): print "g key: %s" % key ducache = FreeNAS_Directory_UserCache(dir=workgroup) if ducache: for key in ducache.keys(): print "du key: %s" % key dgcache = FreeNAS_Directory_GroupCache(dir=workgroup) if dgcache: for key in dgcache.keys(): print "dg key: %s" % key
def _cache_count_ActiveDirectory(**kwargs): ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] 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_Directory_UserCache(dir=workgroup)) print "dg: %ld" % _cachelen(FreeNAS_Directory_GroupCache(dir=workgroup)) print "\n"
def _cache_count_ActiveDirectory(**kwargs): ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] 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_Directory_UserCache(dir=workgroup)) print "dg: %ld" % _cachelen( FreeNAS_Directory_GroupCache(dir=workgroup)) print "\n"
def _cache_check_ActiveDirectory(**kwargs): if not kwargs.has_key('args') and kwargs['args']: return valid = {} ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] 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 not valid.has_key(workgroup): 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 ucache.has_key(val) and ucache[val]: print "%s: %s" % (val, ucache[val]) elif key == 'g': if gcache and gcache.has_key(val) 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 ducache.has_key(val) and ducache[val]: print "%s: %s" % (val, ducache[val]) elif key == 'dg': if dgcache and dgache.has_key(val) and dgcache[val]: print "%s: %s" % (val, dgcache[val])
def _cache_check_ActiveDirectory(**kwargs): if 'args' not in kwargs and kwargs['args']: return valid = {} ad = FreeNAS_ActiveDirectory(flags=FLAGS_DBINIT) domains = ad.get_domains() for d in domains: workgroup = d['nETBIOSName'] 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])