This is an automated email from the ASF dual-hosted git repository.
imaxon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new e43ac71 [ASTERIXDB-2972][RT] Properly set UDF distribution host
e43ac71 is described below
commit e43ac7185e4cda19db6b7a22fed7d594e6ee0354
Author: Ian Maxon <[email protected]>
AuthorDate: Thu Dec 2 11:25:53 2021 -0800
[ASTERIXDB-2972][RT] Properly set UDF distribution host
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Set the download host for UDF distribution to be
the node that recieved the UDF
- Fix incorrect message response class for error
conditions during UDF deployment
Change-Id: I7de293d236909da67c98306250d4bda5e65f7110
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/13587
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Dmitry Lychagin <[email protected]>
---
.../asterix/api/http/server/AbstractNCUdfServlet.java | 13 ++-----------
.../asterix/app/message/AbstractInternalRequestMessage.java | 13 +++++++++++--
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java
index 5a3cde6..9c8cc5e 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java
@@ -18,7 +18,6 @@
*/
package org.apache.asterix.api.http.server;
-import static
org.apache.asterix.api.http.server.ServletConstants.HYRACKS_CONNECTION_ATTR;
import static
org.apache.asterix.common.functions.ExternalFunctionLanguage.JAVA;
import static
org.apache.asterix.common.functions.ExternalFunctionLanguage.PYTHON;
@@ -41,8 +40,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.common.utils.Pair;
import org.apache.hyracks.api.application.INCServiceContext;
-import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.apache.hyracks.api.exceptions.IFormattedException;
+import org.apache.hyracks.control.common.controllers.NCConfig;
import org.apache.hyracks.control.common.work.SynchronizableWork;
import org.apache.hyracks.control.nc.NodeControllerService;
import org.apache.hyracks.http.api.IServletResponse;
@@ -134,19 +133,11 @@ public abstract class AbstractNCUdfServlet extends
AbstractServlet {
}
URI createDownloadURI(Path file) throws Exception {
+ String host =
appCtx.getServiceContext().getAppConfig().getString(NCConfig.Option.PUBLIC_ADDRESS);
String path = paths[0].substring(0, servletPathLengths[0]) +
GET_UDF_DIST_ENDPOINT + '/' + file.getFileName();
- String host = getHyracksClientConnection().getHost();
return new URI(httpServerProtocol.toString(), null, host,
httpServerPort, path, null, null);
}
- IHyracksClientConnection getHyracksClientConnection() throws Exception {
// NOSONAR
- IHyracksClientConnection hcc = (IHyracksClientConnection)
ctx.get(HYRACKS_CONNECTION_ATTR);
- if (hcc == null) {
- throw new RuntimeDataException(ErrorCode.PROPERTY_NOT_SET,
HYRACKS_CONNECTION_ATTR);
- }
- return hcc;
- }
-
private boolean isNotAttribute(InterfaceHttpData field) {
return field == null ||
!field.getHttpDataType().equals(InterfaceHttpData.HttpDataType.Attribute);
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
index ce95f5b..7d58e4e 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
@@ -80,8 +80,7 @@ public abstract class AbstractInternalRequestMessage
implements ICcAddressedMess
final RuntimeDataException rejectionReason =
ExecuteStatementRequestMessage.getRejectionReason(ccSrv,
nodeRequestId);
if (rejectionReason != null) {
- ExecuteStatementRequestMessage.sendRejection(rejectionReason,
messageBroker, requestMessageId,
- nodeRequestId);
+ sendRejection(rejectionReason, messageBroker, requestMessageId,
nodeRequestId);
return;
}
CCExtensionManager ccExtMgr = (CCExtensionManager)
ccAppCtx.getExtensionManager();
@@ -120,4 +119,14 @@ public abstract class AbstractInternalRequestMessage
implements ICcAddressedMess
protected abstract Statement produceStatement();
+ private void sendRejection(Exception reason, CCMessageBroker
messageBroker, long requestMessageId,
+ String requestNodeId) {
+ InternalRequestResponse msg = new
InternalRequestResponse(requestMessageId);
+ msg.setError(reason);
+ try {
+ messageBroker.sendApplicationMessageToNC(msg, requestNodeId);
+ } catch (Exception e) {
+ LOGGER.log(Level.WARN, e.toString(), e);
+ }
+ }
}