def testLock(t, env): """REPLAY a LOCK command FLAGS: replay all DEPEND: MKFILE CODE: RPLY5 """ c = env.c1 c.init_connection() # Create a file and partially lock it fh, stateid = c.create_confirm(t.code) res = c.lock_file(t.code, fh, stateid, 20, 100) check(res, msg="Locking file %s" % t.code) # Create and replay LOCK ops ops = c.use_obj(fh) lock_owner = exist_lock_owner4(res.lockid, 1) locker = locker4(FALSE, lock_owner=lock_owner) ops += [c.lock_op(WRITE_LT, FALSE, 0, 10, locker)] _replay(c, ops)
def testLockDenied(t, env): """REPLAY a LOCK command that fails FLAGS: replay all DEPEND: MKFILE CODE: RPLY6 """ c = env.c1 c.init_connection() # Create a file and lock it fh, stateid = c.create_confirm(t.code) res1 = c.lock_file(t.code, fh, stateid, 20, 100) check(res1, msg="Locking file %s for first owner" % t.code) res2 = c.lock_file(t.code, fh, stateid, 0, 10) check(res2, msg="Locking file %s for second owner" % t.code) # Create and replay LOCK ops ops = c.use_obj(fh) lock_owner = exist_lock_owner4(res1.lockid, 1) locker = locker4(FALSE, lock_owner=lock_owner) ops += [c.lock_op(WRITE_LT, FALSE, 0, 10, locker)] _replay(c, ops, NFS4ERR_DENIED)