MCPcopy Create free account
hub / github.com/apache/impala / ResolveRequestPool

Method ResolveRequestPool

be/src/scheduling/request-pool-service.cc:155–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

153}
154
155Status RequestPoolService::ResolveRequestPool(const TQueryCtx& ctx,
156 string* resolved_pool) {
157 if (default_pool_only_) {
158 *resolved_pool = DEFAULT_POOL_NAME;
159 return Status::OK();
160 }
161 string user = GetEffectiveUser(ctx.session);
162 if (user.empty()) {
163 if (FLAGS_require_username) return Status(ERROR_USER_NOT_SPECIFIED);
164 // Fall back to a 'default' user if not set so that queries can still run.
165 VLOG_RPC << "No user specified: using user=default";
166 user = DEFAULT_USER;
167 }
168
169 const string& requested_pool = ctx.client_request.query_options.request_pool;
170 TResolveRequestPoolParams params;
171 params.__set_user(user);
172 params.__set_requested_pool(requested_pool);
173 TResolveRequestPoolResult result;
174 int64_t start_time = MonotonicMillis();
175 Status status = JniUtil::CallJniMethod(
176 jni_request_pool_service_, resolve_request_pool_id_, params, &result);
177 resolve_pool_ms_metric_->Update(MonotonicMillis() - start_time);
178
179 if (result.status.status_code != TErrorCode::OK) {
180 return Status(boost::algorithm::join(result.status.error_msgs, "; "));
181 }
182 if (!result.has_access) {
183 return Status(Substitute(ERROR_USER_NOT_ALLOWED_IN_POOL, user,
184 requested_pool, result.resolved_pool));
185 }
186 *resolved_pool = result.resolved_pool;
187 return Status::OK();
188}
189
190Status RequestPoolService::GetPoolConfig(const string& pool_name,
191 TPoolConfig* pool_config) {

Callers 3

AddPoolConfigurationMethod · 0.80

Calls 8

OKFunction · 0.85
MonotonicMillisFunction · 0.85
CallJniMethodFunction · 0.85
joinFunction · 0.85
SubstituteFunction · 0.85
StatusClass · 0.70
emptyMethod · 0.45
UpdateMethod · 0.45

Tested by

no test coverage detected