/// <exception cref="Org.Apache.Hadoop.Yarn.Exceptions.YarnException"/> /// <exception cref="System.IO.IOException"/> public virtual UseSharedCacheResourceResponse Use(UseSharedCacheResourceRequest request ) { UseSharedCacheResourceResponse response = recordFactory.NewRecordInstance <UseSharedCacheResourceResponse >(); UserGroupInformation callerUGI; try { callerUGI = UserGroupInformation.GetCurrentUser(); } catch (IOException ie) { Log.Info("Error getting UGI ", ie); throw RPCUtil.GetRemoteException(ie); } string fileName = this.store.AddResourceReference(request.GetResourceKey(), new SharedCacheResourceReference (request.GetAppId(), callerUGI.GetShortUserName())); if (fileName != null) { response.SetPath(GetCacheEntryFilePath(request.GetResourceKey(), fileName)); this.metrics.IncCacheHitCount(); } else { this.metrics.IncCacheMissCount(); } return(response); }
/// <exception cref="Org.Apache.Hadoop.Yarn.Exceptions.YarnException"/> public override Path Use(ApplicationId applicationId, string resourceKey) { Path resourcePath = null; UseSharedCacheResourceRequest request = Org.Apache.Hadoop.Yarn.Util.Records.NewRecord <UseSharedCacheResourceRequest>(); request.SetAppId(applicationId); request.SetResourceKey(resourceKey); try { UseSharedCacheResourceResponse response = this.scmClient.Use(request); if (response != null && response.GetPath() != null) { resourcePath = new Path(response.GetPath()); } } catch (Exception e) { // Just catching IOException isn't enough. // RPC call can throw ConnectionException. // We don't handle different exceptions separately at this point. throw new YarnException(e); } return(resourcePath); }
/// <exception cref="Com.Google.Protobuf.ServiceException"/> public virtual YarnServiceProtos.UseSharedCacheResourceResponseProto Use(RpcController controller, YarnServiceProtos.UseSharedCacheResourceRequestProto proto) { UseSharedCacheResourceRequestPBImpl request = new UseSharedCacheResourceRequestPBImpl (proto); try { UseSharedCacheResourceResponse response = real.Use(request); return(((UseSharedCacheResourceResponsePBImpl)response).GetProto()); } catch (YarnException e) { throw new ServiceException(e); } catch (IOException e) { throw new ServiceException(e); } }