Esempio n. 1
0
def main():
    host = UniDomain.host()
    db = dbmcache.dbmNode(dbpath=host.config.cachedir)
    #FIXME: host/princ?
    dbmcache.update_dbm(host, db)
    db.close()

    db = dbmcache.dbmNode(dbpath=host.config.cachedir)
    print(db)
    keys = db.keys()
    keys.remove("__created__")

    print("verify existance of homedirectories under base \'%s\' " % BASEDIR)
    for uid in keys:
        dir, uidNumber = db[uid]
        dir = "%s/%s" % (BASEDIR, dir)
        if not uidNumber == "__removed__":
            uidNumber = int(uidNumber)
            if not os.access(dir, os.F_OK):
                create_home(dir, uid, uidNumber)
            else:
                os.chown(dir, uidNumber, 0)
                os.chmod(dir, 0700)
                # shutil.rmtree(dir)
        else: 
            print("%s is removed from ldap, remove %s" % (uid,dir))
            try:
                shutil.rmtree(dir)
            except OSError: pass
Esempio n. 2
0
def main():
    roger = UniDomain.janitor(KEYTAB=KEYTAB)
    urenew.aklog()
    sync_DB(roger)

    db = dbmcache.dbmNode(dbpath=roger.config["cachedir"])
    pts = afslib.ProtectionServer()
    vos = afslib.VolumeServer()

    print(vos)
    print(db)

    keys = db.keys()
    keys.remove("__created__")
    for uid in keys:
        print "\n>>>>", "-" * 40, uid, "-" * 40, "<<<<\n"
        user = (uid, db.uDB[uid], "%s%s" % (AFSHOME_basepath, db.hDB[uid]))
        if not db.uDB[uid] == "__removed__":
            if not uid in pts.user.keys():
                print("%s must be created in pts " % uid)
                afslib.setup_user(pts,
                                  vos,
                                  user,
                                  AFSHOME_fileserver,
                                  quota=DEFAULT_QUOTA)
            else:
                print("%s already exists in pts, skip. " % uid)
        else:
            if not uid in pts.user.keys():
                print("%s already removed from pts, skip. " % uid)
            else:
                print("%s must be removed from pts and mountpathes." % uid)
                afslib.disable_user(pts, vos, user, AFSHOME_fileserver)
    print "\n", "AFS sync has terminated."
Esempio n. 3
0
def main():
    roger = UniDomain.janitor(KEYTAB=KEYTAB)
    urenew.aklog()
    sync_DB(roger)

    db = dbmcache.dbmNode(dbpath=roger.config["cachedir"])
    pts = afslib.ProtectionServer()
    vos = afslib.VolumeServer()

    print(vos)
    print(db)

    keys = db.keys()
    keys.remove("__created__")
    for uid in keys:
        print "\n>>>>", "-"*40, uid, "-"*40, "<<<<\n"
        user = (uid, db.uDB[uid], "%s%s" % (AFSHOME_basepath, db.hDB[uid]) )
        if not db.uDB[uid] == "__removed__":
            if not uid in pts.user.keys():
                print("%s must be created in pts " % uid)
                afslib.setup_user(pts, vos, user, AFSHOME_fileserver, quota=DEFAULT_QUOTA)
            else:
                print("%s already exists in pts, skip. " % uid)
        else:
            if not uid in pts.user.keys():
                print("%s already removed from pts, skip. " % uid)
            else:
                print("%s must be removed from pts and mountpathes." % uid)
                afslib.disable_user(pts, vos, user, AFSHOME_fileserver)
    print "\n","AFS sync has terminated."
Esempio n. 4
0
def serv_forever(SCANDIR=SCANDIR):
    while True:
        userlist = os.listdir(SCANDIR)
        if userlist:
            roger = UniDomain.janitor(KEYTAB=KEYTAB)
            if __debug__: logging.debug(userlist)
            queue = Queue()
            [ Worker(roger, queue).start() for i in range(MAXTHREAD) ]
            [ queue.put("%s/%s" % (SCANDIR, uid)) for uid in userlist ]
            logging.info("(%s) processing queue (%d items) ... " % (datetime.now(), len(userlist)) ) 
            while not queue.empty():  
                sleep(SLEEPTIME)
            logging.info("(%s) queue done." % datetime.now() ) 
            roger = None
            sleep(10)
            os.system("killall kadmin")
        sleep(SLEEPTIME)
Esempio n. 5
0
def serv_forever(SCANDIR=SCANDIR):
    while True:
        userlist = os.listdir(SCANDIR)
        if userlist:
            roger = UniDomain.janitor(KEYTAB=KEYTAB)
            if __debug__: logging.debug(userlist)
            queue = Queue()
            [Worker(roger, queue).start() for i in range(MAXTHREAD)]
            [queue.put("%s/%s" % (SCANDIR, uid)) for uid in userlist]
            logging.info("(%s) processing queue (%d items) ... " %
                         (datetime.now(), len(userlist)))
            while not queue.empty():
                sleep(SLEEPTIME)
            logging.info("(%s) queue done." % datetime.now())
            roger = None
            sleep(10)
            os.system("killall kadmin")
        sleep(SLEEPTIME)
#!/usr/bin/env python2
#coding: utf-8

import sys
import UniDomain.UniDomain as UniDomain
import UniDomain.afslib.afslib as afslib
import UniDomain.afslib.urenew as urenew


KEYTAB = "/root/janitor/janitor.keytab"
roger = UniDomain.janitor(KEYTAB=KEYTAB)
urenew.aklog()
print("reading volume location database, please be patient ... ")
vos = afslib.VolumeServer()

print vos
print "Fileservers : %s " % str(vos.fileserv)

vos.cleanup_orphaned()


Esempio n. 7
0

import UniDomain.UniDomain as UniDomain
import UniDomain.dbmcache as dbmcache



host = UniDomain.host()
db = dbmcache.dbmNode(dbpath=host.config["cachedir"])



Esempio n. 8
0
#!/usr/bin/env python2
#coding: utf-8

import sys
import UniDomain.UniDomain as UniDomain
import UniDomain.afslib.afslib as afslib
import UniDomain.afslib.urenew as urenew

KEYTAB = "/root/janitor/janitor.keytab"
roger = UniDomain.janitor(KEYTAB=KEYTAB)
urenew.aklog()
print("reading volume location database, please be patient ... ")
vos = afslib.VolumeServer()

print vos
print "Fileservers : %s " % str(vos.fileserv)

vos.cleanup_orphaned()