internal static XDR Create() { XDR request = new XDR(); RpcCall.GetInstance(unchecked ((int)(0x8000004c)), Nfs3Constant.Program, Nfs3Constant .Version, Nfs3Constant.NFSPROC3.Create.GetValue(), new CredentialsNone(), new VerifierNone ()).Write(request); SetAttr3 objAttr = new SetAttr3(); CREATE3Request createReq = new CREATE3Request(new FileHandle("/"), "out-of-order-write" + Runtime.CurrentTimeMillis(), 0, objAttr, 0); createReq.Serialize(request); return(request); }
/// <exception cref="System.Exception"/> public virtual void TestSetattr() { HdfsFileStatus status = nn.GetRpcServer().GetFileInfo(testdir); long dirId = status.GetFileId(); XDR xdr_req = new XDR(); FileHandle handle = new FileHandle(dirId); SetAttr3 symAttr = new SetAttr3(0, 1, 0, 0, null, null, EnumSet.Of(SetAttr3.SetAttrField .Uid)); SETATTR3Request req = new SETATTR3Request(handle, symAttr, false, null); req.Serialize(xdr_req); // Attempt by an unprivileged user should fail. SETATTR3Response response1 = nfsd.Setattr(xdr_req.AsReadOnlyWrap(), securityHandlerUnpriviledged , new IPEndPoint("localhost", 1234)); NUnit.Framework.Assert.AreEqual("Incorrect return code", Nfs3Status.Nfs3errAcces, response1.GetStatus()); // Attempt by a priviledged user should pass. SETATTR3Response response2 = nfsd.Setattr(xdr_req.AsReadOnlyWrap(), securityHandler , new IPEndPoint("localhost", 1234)); NUnit.Framework.Assert.AreEqual("Incorrect return code", Nfs3Status.Nfs3Ok, response2 .GetStatus()); }