docs: public void handleUpdateDeployment(String jsonp,
              HttpServletRequest request,
              HttpServletResponse response, AuthenticationResult ar)
              throws IOException, ServletException {
          String deployment = request.getParameter("deployment");
          if (deployment == null || deployment.length() == 0) {
              response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, "Failed to get deployment information."));
              response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
              return;
          }
          try {
              DeploymentType newDeployment = m_mapper.readValue(deployment, DeploymentType.class);
              if (newDeployment == null) {
                  response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, "Failed to parse deployment information."));
                  return;
              }
  
              DeploymentType currentDeployment = this.getDeployment();
              if (currentDeployment.getUsers() != null) {
                  newDeployment.setUsers(currentDeployment.getUsers());
              }
              // reset the host count so that it wont fail the deployment checks
              newDeployment.getCluster().setHostcount(currentDeployment.getCluster().getHostcount());
  
              String dep = CatalogUtil.getDeployment(newDeployment);
              if (dep == null || dep.trim().length() <= 0) {
                  response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, "Failed to build deployment information."));
                  return;
              }
              Object[] params = new Object[]{null, dep};
              SyncCallback cb = new SyncCallback();
              httpClientInterface.callProcedure(request.getRemoteHost(), ar, BatchTimeoutOverrideType.NO_TIMEOUT, cb, "@UpdateApplicationCatalog", params);
              cb.waitForResponse();
              ClientResponseImpl r = ClientResponseImpl.class.cast(cb.getResponse());
              if (r.getStatus() == ClientResponse.SUCCESS) {
                  response.getWriter().print(buildClientResponse(jsonp, ClientResponse.SUCCESS, "Deployment Updated."));
              } else {
                  response.getWriter().print(HTTPClientInterface.asJsonp(jsonp, r.toJSONString()));
              }
          } catch (JsonParseException e) {
              response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
              response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, "Unparsable JSON"));
          } catch (Exception ex) {
              m_log.error("Failed to update deployment from API", ex);
              response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
              response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, Throwables.getStackTraceAsString(ex)));
          }
      }