You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by sa...@apache.org on 2019/05/17 17:02:52 UTC

[pulsar] branch master updated: Misc fixes for state querying via pulsar admin (#4293)

This is an automated email from the ASF dual-hosted git repository.

sanjeevrk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 3ea6edc  Misc fixes for state querying via pulsar admin (#4293)
3ea6edc is described below

commit 3ea6edc628461512c809026261a916de8b7cd0f9
Author: Sanjeev Kulkarni <sa...@gmail.com>
AuthorDate: Fri May 17 10:02:47 2019 -0700

    Misc fixes for state querying via pulsar admin (#4293)
---
 .../java/org/apache/pulsar/broker/admin/impl/FunctionsBase.java   | 2 +-
 .../org/apache/pulsar/client/admin/internal/FunctionsImpl.java    | 3 +--
 .../src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java   | 2 +-
 .../java/org/apache/pulsar/common/functions/FunctionState.java    | 8 ++++++--
 .../apache/pulsar/functions/worker/rest/api/ComponentImpl.java    | 4 ++++
 5 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/FunctionsBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/FunctionsBase.java
index 86a0877..21ecd2e 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/FunctionsBase.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/FunctionsBase.java
@@ -260,7 +260,7 @@ public class FunctionsBase extends AdminResource implements Supplier<WorkerServi
     @GET
     @ApiOperation(
         value = "Fetch the current state associated with a Pulsar Function",
-        response = String.class
+        response = FunctionState.class
     )
     @ApiResponses(value = {
         @ApiResponse(code = 400, message = "Invalid request"),
diff --git a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java
index 8b7dee4..2cb916d 100644
--- a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java
+++ b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java
@@ -471,8 +471,7 @@ public class FunctionsImpl extends ComponentResource implements Functions {
             if (!response.getStatusInfo().equals(Response.Status.OK)) {
                 throw getApiException(response);
             }
-            String value = response.readEntity(String.class);
-            return new Gson().fromJson(value, new TypeToken<FunctionState>() {}.getType());
+            return response.readEntity(FunctionState.class);
         } catch (Exception e) {
             throw getApiException(e);
         }
diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
index 406c6c4..eab62d8 100644
--- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
+++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
@@ -815,7 +815,7 @@ public class CmdFunctions extends CmdBase {
                     FunctionState functionState = admin.functions()
                                                        .getFunctionState(tenant, namespace, functionName, key);
                     Gson gson = new GsonBuilder().setPrettyPrinting().create();
-                    gson.toJson(functionState);
+                    System.out.println(gson.toJson(functionState));
                 } catch (PulsarAdminException pae) {
                     if (pae.getStatusCode() == 404 && watch) {
                         System.err.println(pae.getMessage());
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/functions/FunctionState.java b/pulsar-common/src/main/java/org/apache/pulsar/common/functions/FunctionState.java
index 5062247..15bcda0 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/functions/FunctionState.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/functions/FunctionState.java
@@ -23,9 +23,13 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.*;
 
 @Getter
-@AllArgsConstructor
+@Setter
+@Data
+@EqualsAndHashCode
 @ToString
-@JsonInclude(JsonInclude.Include.USE_DEFAULTS)
+@Builder(toBuilder=true)
+@NoArgsConstructor
+@AllArgsConstructor
 @JsonIgnoreProperties(ignoreUnknown = true)
 public class FunctionState {
     private String key;
diff --git a/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/ComponentImpl.java b/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/ComponentImpl.java
index d9804e5..2dba1cd 100644
--- a/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/ComponentImpl.java
+++ b/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/ComponentImpl.java
@@ -1478,6 +1478,10 @@ public abstract class ComponentImpl {
             }
         } catch (RestException e) {
             throw e;
+        } catch (org.apache.bookkeeper.clients.exceptions.NamespaceNotFoundException e) {
+            log.error("Error while getFunctionState request @ /{}/{}/{}/{}",
+                    tenant, namespace, functionName, key, e);
+            throw new RestException(Status.NOT_FOUND, e.getMessage());
         } catch (Exception e) {
             log.error("Error while getFunctionState request @ /{}/{}/{}/{}",
                     tenant, namespace, functionName, key, e);