devyeony opened a new pull request, #5035:
URL: https://github.com/apache/zeppelin/pull/5035

   > This PR is a rebased version of 
[#5022](https://github.com/apache/zeppelin/pull/5022)
   > The previous PR was automatically closed because the branch was deleted, 
so I recreated the branch and opened this new PR.  
   
   ### What is this PR for?
   This PR fixes the issue that occurs when `zeppelin.jobmanager.enable` is set 
to `false`. In this case, the server sends no response, causing the Job Manager 
page in both classic and new UIs to show an infinite loading indicator. This 
behavior confuses users and gives the impression that the page is broken.
   
   To improve user experience, this PR introduces explicit server-side handling 
that returns an explicit "not allowed" response when the Job Manager is 
disabled via configuration. Additionally, both classic and new UIs have been 
updated to properly handle this response and display a user-friendly message: 
**"Job Manager is disabled in the current configuration."**
   
   This change ensures users are informed about the disabled state instead of 
encountering an endless loading screen.
   
   
   ### What type of PR is it?
   Improvement
   
   
   ### Todos
   * [x] Implement server-side forbidden response when Job Manager is disabled
   * [x] Add `JOB_MANAGER_DISABLED` WebSocket message and corresponding 
handling in both Classic and New UI
   * [x] Add unit and integration tests covering the new behavior
   
   **Note:** 
   * Although REST API tests have been implemented, the current frontend (both 
Classic and New UI) interacts with the Job Manager primarily through WebSocket 
communication. Therefore, the functional verification and actual handling of 
the "Job Manager disabled" scenario have been focused on the WebSocket path. 
The REST API tests are prepared to ensure future compatibility if the REST 
endpoints are used.
   * In the user-request handling method, a ForbiddenException triggers sending 
a clear error message to the client so the UI can inform the user that the Job 
Manager is disabled. However, during broadcast events where no direct client 
request is involved, the exception is logged at debug level and silently 
skipped to avoid unnecessary noise or client interruptions.
   
   
   ### What is the Jira issue?
   [[ZEPPELIN-6216]](https://issues.apache.org/jira/browse/ZEPPELIN-6216)
   
   
   ### How should this be tested?
   * Automated tests have been added to cover the new behavior when the Job 
Manager is disabled:
     * Unit tests in `JobManagerServiceTest` verify that forbidden exceptions 
are thrown.
     * REST API tests in `NotebookRestApiTest` check that HTTP 403 responses 
with appropriate messages are returned.
     * WebSocket and server event handling tests in `NotebookServerTest` ensure 
no unexpected exceptions occur and proper notification messages are sent.
   * Manual testing steps:
     1. Set `zeppelin.jobmanager.enable` to `false` via `ZeppelinConfiguration`.
     2. Access the Job Manager page in both classic and new UI.
     3. Confirm that instead of infinite loading, a clear message stating 
**"Job Manager is disabled in the current configuration."** is displayed.
   
   
   ### Screenshots (if appropriate)
   * AS-IS (New UI)
   <img width="862" height="362" alt="AS-IS NEW UI" 
src="https://github.com/user-attachments/assets/e2a1288f-5952-4ea0-a31b-a267f49f171e";
 />
   
   * AS-IS (Classic UI)
   <img width="864" height="424" alt="AS-IS CLASSIC UI" 
src="https://github.com/user-attachments/assets/bc111aff-e95c-4427-a266-af7f9f600407";
 />
   
   * TO-BE (New UI)
   <img width="870" height="305" alt="TO-BE NEW UI" 
src="https://github.com/user-attachments/assets/0555e5dc-2ee8-4000-b1eb-c7d2259e96b1";
 />
   
   * TO-BE (Classic UI)
   <img width="875" height="275" alt="TO-BE CLASSIC UI" 
src="https://github.com/user-attachments/assets/e0a87e98-fde8-467b-9df3-d9ada39deb36";
 />
   
   
   ### Questions:
   * Does the license files need to update? No
   * Is there breaking changes for older versions? No
   * Does this needs documentation? No


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscr...@zeppelin.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to