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);
+        }
+    }
 }

Reply via email to