소스 검색

AMBARI-6380. Provide API support for sending POST request with special header that will be treated as GET (mpapirkovskyy)

Myroslav Papirkovskyy 11 년 전
부모
커밋
68f0473739
46개의 변경된 파일386개의 추가작업 그리고 295개의 파일을 삭제
  1. 79 0
      ambari-server/src/main/java/org/apache/ambari/server/api/MethodOverrideFilter.java
  2. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ActionService.java
  3. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/BlueprintService.java
  4. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java
  5. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java
  6. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigGroupService.java
  7. 2 2
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigurationService.java
  8. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/FeedService.java
  9. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/HostComponentService.java
  10. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java
  11. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/InstanceService.java
  12. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/JobService.java
  13. 6 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/RequestScheduleService.java
  14. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/RequestService.java
  15. 18 18
      ambari-server/src/main/java/org/apache/ambari/server/api/services/RootServiceService.java
  16. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java
  17. 29 29
      ambari-server/src/main/java/org/apache/ambari/server/api/services/Stacks2Service.java
  18. 39 32
      ambari-server/src/main/java/org/apache/ambari/server/api/services/StacksService.java
  19. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/TargetClusterService.java
  20. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/TaskAttemptService.java
  21. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/TaskService.java
  22. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/UserService.java
  23. 2 2
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewExternalSubResourceService.java
  24. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewInstanceService.java
  25. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewService.java
  26. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewVersionService.java
  27. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/api/services/WorkflowService.java
  28. 3 0
      ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
  29. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/ActionServiceTest.java
  30. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/BlueprintServiceTest.java
  31. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterServiceTest.java
  32. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/ComponentServiceTest.java
  33. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/ConfigGroupServiceTest.java
  34. 2 2
      ambari-server/src/test/java/org/apache/ambari/server/api/services/ConfigurationServiceTest.java
  35. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/FeedServiceTest.java
  36. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/HostComponentServiceTest.java
  37. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/HostServiceTest.java
  38. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/InstanceServiceTest.java
  39. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/JobServiceTest.java
  40. 14 14
      ambari-server/src/test/java/org/apache/ambari/server/api/services/RootServiceServiceTest.java
  41. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/ServiceServiceTest.java
  42. 28 28
      ambari-server/src/test/java/org/apache/ambari/server/api/services/Stacks2ServiceTest.java
  43. 28 28
      ambari-server/src/test/java/org/apache/ambari/server/api/services/StacksServiceTest.java
  44. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/TargetClusterServiceTest.java
  45. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/TaskAttemptServiceTest.java
  46. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/api/services/WorkflowServiceTest.java

+ 79 - 0
ambari-server/src/main/java/org/apache/ambari/server/api/MethodOverrideFilter.java

@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.api;
+
+import org.springframework.http.HttpMethod;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class MethodOverrideFilter implements Filter {
+  private static final String HEADER_NAME = "X-Http-Method-Override";
+  //limit override to GET method only (no need for others now)
+  private static final List<String> ALLOWED_METHODS = new ArrayList<String>(){{
+    add("GET");
+  }};
+
+  @Override
+  public void init(FilterConfig filterConfig) throws ServletException {
+
+  }
+
+  @Override
+  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+    if (request instanceof HttpServletRequest) {
+      HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+
+      String method = httpServletRequest.getHeader(HEADER_NAME);
+      if (method != null) {
+        if (ALLOWED_METHODS.contains(method.toUpperCase())) {
+          final HttpMethod httpMethod = HttpMethod.valueOf(method.toUpperCase());
+          HttpServletRequestWrapper requestWrapper = new HttpServletRequestWrapper(httpServletRequest){
+            @Override
+            public String getMethod() {
+              return httpMethod.toString();
+            }
+          };
+
+          chain.doFilter(requestWrapper, response);
+          return;
+        } else {
+          HttpServletResponse httpResponse = (HttpServletResponse) response;
+          httpResponse.sendError(400, "Incorrect HTTP method for override: "+ method + ". Allowed values: "+ ALLOWED_METHODS);
+        }
+      }
+    }
+    chain.doFilter(request, response);
+  }
+
+  @Override
+  public void destroy() {
+
+  }
+}

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ActionService.java

@@ -53,10 +53,10 @@ public class ActionService extends BaseService {
   @GET
   @Path("{actionName}")
   @Produces("text/plain")
-  public Response getActionDefinition(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getActionDefinition(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("actionName") String actionName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createActionDefinitionResource(actionName));
+    return handleRequest(headers, body, ui, Request.Type.GET, createActionDefinitionResource(actionName));
   }
 
   /**
@@ -69,8 +69,8 @@ public class ActionService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getActionDefinitions(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createActionDefinitionResource(null));
+  public Response getActionDefinitions(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createActionDefinitionResource(null));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/BlueprintService.java

@@ -52,8 +52,8 @@ public class BlueprintService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getBlueprints(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createBlueprintResource(null));
+  public Response getBlueprints(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createBlueprintResource(null));
   }
 
   /**
@@ -68,10 +68,10 @@ public class BlueprintService extends BaseService {
   @GET
   @Path("{blueprintName}")
   @Produces("text/plain")
-  public Response getBlueprint(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getBlueprint(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("blueprintName") String blueprintName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createBlueprintResource(blueprintName));
+    return handleRequest(headers, body, ui, Request.Type.GET, createBlueprintResource(blueprintName));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java

@@ -44,10 +44,10 @@ public class ClusterService extends BaseService {
   @GET
   @Path("{clusterName}")
   @Produces("text/plain")
-  public Response getCluster(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getCluster(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("clusterName") String clusterName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createClusterResource(clusterName));
+    return handleRequest(headers, body, ui, Request.Type.GET, createClusterResource(clusterName));
   }
 
   /**
@@ -60,8 +60,8 @@ public class ClusterService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getClusters(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createClusterResource(null));
+  public Response getClusters(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createClusterResource(null));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java

@@ -63,10 +63,10 @@ public class ComponentService extends BaseService {
   @GET
   @Path("{componentName}")
   @Produces("text/plain")
-  public Response getComponent(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getComponent(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                                @PathParam("componentName") String componentName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createComponentResource(m_clusterName, m_serviceName, componentName));
   }
 
@@ -80,8 +80,8 @@ public class ComponentService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getComponents(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getComponents(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createComponentResource(m_clusterName, m_serviceName, null));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigGroupService.java

@@ -61,9 +61,9 @@ public class ConfigGroupService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getConfigGroups(@Context HttpHeaders headers,
+  public Response getConfigGroups(String body, @Context HttpHeaders headers,
                                   @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createConfigGroupResource(m_clusterName, null));
   }
 
@@ -76,9 +76,9 @@ public class ConfigGroupService extends BaseService {
   @GET
   @Path("{groupId}")
   @Produces("text/plain")
-  public Response getConfigGroup(@Context HttpHeaders headers,
+  public Response getConfigGroup(String body, @Context HttpHeaders headers,
           @Context UriInfo ui, @PathParam("groupId") String groupId) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createConfigGroupResource(m_clusterName, groupId));
   }
 

+ 2 - 2
ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigurationService.java

@@ -60,8 +60,8 @@ public class ConfigurationService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getConfigurations(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createConfigurationResource(m_clusterName));
+  public Response getConfigurations(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createConfigurationResource(m_clusterName));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/FeedService.java

@@ -52,10 +52,10 @@ public class FeedService extends BaseService {
   @GET
   @Path("{feedName}")
   @Produces("text/plain")
-  public Response getFeed(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getFeed(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("feedName") String feedName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createFeedResource(feedName));
+    return handleRequest(headers, body, ui, Request.Type.GET, createFeedResource(feedName));
   }
 
   /**
@@ -68,8 +68,8 @@ public class FeedService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getFeeds(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createFeedResource(null));
+  public Response getFeeds(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createFeedResource(null));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/HostComponentService.java

@@ -73,7 +73,7 @@ public class HostComponentService extends BaseService {
   @GET
   @Path("{hostComponentName}")
   @Produces("text/plain")
-  public Response getHostComponent(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getHostComponent(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                                    @PathParam("hostComponentName") String hostComponentName) {
 
     //todo: needs to be refactored when properly handling exceptions
@@ -83,7 +83,7 @@ public class HostComponentService extends BaseService {
       return Response.status(400).entity(s).build();
     }
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createHostComponentResource(m_clusterName, m_hostName, hostComponentName));
   }
 
@@ -97,8 +97,8 @@ public class HostComponentService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getHostComponents(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getHostComponents(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createHostComponentResource(m_clusterName, m_hostName, null));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java

@@ -74,10 +74,10 @@ public class HostService extends BaseService {
   @GET
   @Path("{hostName}")
   @Produces("text/plain")
-  public Response getHost(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getHost(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                           @PathParam("hostName") String hostName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createHostResource(m_clusterName, hostName, ui));
   }
 
@@ -91,8 +91,8 @@ public class HostService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getHosts(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createHostResource(m_clusterName, null, ui));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/InstanceService.java

@@ -75,10 +75,10 @@ public class InstanceService extends BaseService {
   @GET
   @Path("{instanceID}")
   @Produces("text/plain")
-  public Response getInstance(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getInstance(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                           @PathParam("instanceID") String instanceID) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createInstanceResource(m_feedName, instanceID, ui));
   }
 
@@ -92,8 +92,8 @@ public class InstanceService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getInstances(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getInstances(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createInstanceResource(m_feedName, null, ui));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/JobService.java

@@ -67,9 +67,9 @@ public class JobService extends BaseService {
   @GET
   @Path("{jobId}")
   @Produces("text/plain")
-  public Response getJob(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getJob(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("jobId") String jobId) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createJobResource(clusterName, workflowId, jobId));
   }
 
@@ -84,8 +84,8 @@ public class JobService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getJobs(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getJobs(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createJobResource(clusterName, workflowId, null));
   }
 

+ 6 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/RequestScheduleService.java

@@ -62,9 +62,10 @@ public class RequestScheduleService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getRequestSchedules(@Context HttpHeaders headers,
+  public Response getRequestSchedules(String body,
+                                      @Context HttpHeaders headers,
                                       @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createRequestSchedule(m_clusterName, null));
   }
 
@@ -77,10 +78,11 @@ public class RequestScheduleService extends BaseService {
   @GET
   @Path("{requestScheduleId}")
   @Produces("text/plain")
-  public Response getRequestSchedule(@Context HttpHeaders headers,
+  public Response getRequestSchedule(String body,
+                                     @Context HttpHeaders headers,
                                      @Context UriInfo ui,
                                      @PathParam("requestScheduleId") String requestScheduleId) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createRequestSchedule(m_clusterName, requestScheduleId));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/RequestService.java

@@ -72,10 +72,10 @@ public class RequestService extends BaseService {
   @GET
   @Path("{requestId}")
   @Produces("text/plain")
-  public Response getRequest(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getRequest(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("requestId") String requestId) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createRequestResource(m_clusterName, requestId));
   }
 
@@ -90,8 +90,8 @@ public class RequestService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getRequests(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getRequests(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createRequestResource(m_clusterName, null));
   }
 

+ 18 - 18
ambari-server/src/main/java/org/apache/ambari/server/api/services/RootServiceService.java

@@ -39,30 +39,30 @@ public class RootServiceService extends BaseService {
   
   @GET
   @Produces("text/plain")
-  public Response getServices(@Context HttpHeaders headers, @Context UriInfo ui) {
+  public Response getServices(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createServiceResource(null));
   }
   
   @GET
   @Path("{serviceName}")
   @Produces("text/plain")
-  public Response getService(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getService(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createServiceResource(serviceName));
   }
 
   @GET
   @Path("{serviceName}/components/{componentName}/hostComponents")
   @Produces("text/plain")
-  public Response getRootHostComponents(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getRootHostComponents(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("serviceName") String serviceName,
       @PathParam("componentName") String componentName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createHostComponentResource(serviceName, null, componentName));
   }
   
@@ -70,19 +70,19 @@ public class RootServiceService extends BaseService {
   @GET
   @Path("{serviceName}/hosts/")
   @Produces("text/plain")
-  public Response getRootHosts(@Context HttpHeaders headers, @Context UriInfo ui) {
+  public Response getRootHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createHostResource(null));
   }
   
   @GET
   @Path("{serviceName}/hosts/{hostName}")
   @Produces("text/plain")
-  public Response getRootHost(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getRootHost(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("hostName") String hostName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createHostResource(hostName));
   }
   
@@ -95,23 +95,23 @@ public class RootServiceService extends BaseService {
   @GET
   @Path("{serviceName}/hosts/{hostName}/hostComponents/")
   @Produces("text/plain")
-  public Response getRootHostComponent(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getRootHostComponent(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("serviceName") String serviceName,
       @PathParam("hostName") String hostName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createHostComponentResource(serviceName, hostName, null));
   }
   
   @GET
   @Path("{serviceName}/hosts/{hostName}/hostComponents/{hostComponent}")
   @Produces("text/plain")
-  public Response getRootHostComponent(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getRootHostComponent(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("serviceName") String serviceName,
       @PathParam("hostName") String hostName,
       @PathParam("hostComponent") String hostComponent) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createHostComponentResource(serviceName, hostName, hostComponent));
   }
   
@@ -129,21 +129,21 @@ public class RootServiceService extends BaseService {
   @GET
   @Path("{serviceName}/components/")
   @Produces("text/plain")
-  public Response getServiceComponents(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getServiceComponents(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createServiceComponentResource(serviceName, null));
   }
   
   @GET
   @Path("{serviceName}/components/{componentName}")
   @Produces("text/plain")
-  public Response getServiceComponent(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getServiceComponent(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("serviceName") String serviceName,
       @PathParam("componentName") String componentName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createServiceComponentResource(serviceName, componentName));
   }
   

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java

@@ -56,10 +56,10 @@ public class ServiceService extends BaseService {
   @GET
   @Path("{serviceName}")
   @Produces("text/plain")
-  public Response getService(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getService(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createServiceResource(m_clusterName, serviceName));
   }
 
@@ -73,8 +73,8 @@ public class ServiceService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getServices(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getServices(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createServiceResource(m_clusterName, null));
   }
 

+ 29 - 29
ambari-server/src/main/java/org/apache/ambari/server/api/services/Stacks2Service.java

@@ -43,40 +43,40 @@ public class Stacks2Service extends BaseService {
 
   @GET
   @Produces("text/plain")
-  public Response getStacks(@Context HttpHeaders headers, @Context UriInfo ui) {
+  public Response getStacks(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
       createStackResource(null));
   }
 
   @GET
   @Path("{stackName}")
   @Produces("text/plain")
-  public Response getStack(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getStack(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("stackName") String stackName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackResource(stackName));
   }
 
   @GET
   @Path("{stackName}/versions")
   @Produces("text/plain")
-  public Response getStackVersions(@Context HttpHeaders headers,
+  public Response getStackVersions(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackVersionResource(stackName, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}")
   @Produces("text/plain")
-  public Response getStackVersion(@Context HttpHeaders headers,
+  public Response getStackVersion(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackVersionResource(stackName, stackVersion));
   }
 
@@ -84,25 +84,25 @@ public class Stacks2Service extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/operatingSystems/{osType}/repositories")
   @Produces("text/plain")
-  public Response getRepositories(@Context HttpHeaders headers,
+  public Response getRepositories(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("osType") String osType) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createRepositoryResource(stackName, stackVersion, osType, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}/operatingSystems/{osType}/repositories/{repoId}")
   @Produces("text/plain")
-  public Response getRepository(@Context HttpHeaders headers,
+  public Response getRepository(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("osType") String osType,
       @PathParam("repoId") String repoId) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createRepositoryResource(stackName, stackVersion, osType, repoId));
   }
   
@@ -123,36 +123,36 @@ public class Stacks2Service extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/stackServices")
   @Produces("text/plain")
-  public Response getStackServices(@Context HttpHeaders headers,
+  public Response getStackServices(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackServiceResource(stackName, stackVersion, null));
   }
   
   @GET
   @Path("{stackName}/versions/{stackVersion}/stackServices/{serviceName}")
   @Produces("text/plain")
-  public Response getStackService(@Context HttpHeaders headers,
+  public Response getStackService(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackServiceResource(stackName, stackVersion, serviceName));
   }
-  
+
   
   @GET
   @Path("{stackName}/versions/{stackVersion}/stackServices/{serviceName}/configurations")
   @Produces("text/plain")
-  public Response getStackConfigurations(@Context HttpHeaders headers,
+  public Response getStackConfigurations(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackConfigurationResource(stackName, stackVersion, serviceName, null));
   }
   
@@ -160,38 +160,38 @@ public class Stacks2Service extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/stackServices/{serviceName}/configurations/{propertyName}")
   @Produces("text/plain")
-  public Response getStackConfiguration(@Context HttpHeaders headers,
+  public Response getStackConfiguration(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("serviceName") String serviceName,
       @PathParam("propertyName") String propertyName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackConfigurationResource(stackName, stackVersion, serviceName, propertyName));
   }
   
   @GET
   @Path("{stackName}/versions/{stackVersion}/stackServices/{serviceName}/serviceComponents")
   @Produces("text/plain")
-  public Response getServiceComponents(@Context HttpHeaders headers,
+  public Response getServiceComponents(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackServiceComponentResource(stackName, stackVersion, serviceName, null));
   }
   
   @GET
   @Path("{stackName}/versions/{stackVersion}/stackServices/{serviceName}/serviceComponents/{componentName}")
   @Produces("text/plain")
-  public Response getServiceComponent(@Context HttpHeaders headers,
+  public Response getServiceComponent(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("serviceName") String serviceName,
       @PathParam("componentName") String componentName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackServiceComponentResource(stackName, stackVersion, serviceName, componentName));
   }
   
@@ -199,23 +199,23 @@ public class Stacks2Service extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/operatingSystems")
   @Produces("text/plain")
-  public Response getOperatingSystems(@Context HttpHeaders headers,
+  public Response getOperatingSystems(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createOperatingSystemResource(stackName, stackVersion, null));
   }
   
   @GET
   @Path("{stackName}/versions/{stackVersion}/operatingSystems/{osType}")
   @Produces("text/plain")
-  public Response getOperatingSystem(@Context HttpHeaders headers,
+  public Response getOperatingSystem(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("stackName") String stackName,
       @PathParam("stackVersion") String stackVersion,
       @PathParam("osType") String osType) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createOperatingSystemResource(stackName, stackVersion, osType));
   }
   

+ 39 - 32
ambari-server/src/main/java/org/apache/ambari/server/api/services/StacksService.java

@@ -52,40 +52,43 @@ public class StacksService extends BaseService {
 
   @GET
   @Produces("text/plain")
-  public Response getStacks(@Context HttpHeaders headers, @Context UriInfo ui) {
+  public Response getStacks(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createStackResource(null));
   }
 
   @GET
   @Path("{stackName}")
   @Produces("text/plain")
-  public Response getStack(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getStack(String body, @Context HttpHeaders headers,
+                           @Context UriInfo ui,
                            @PathParam("stackName") String stackName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackResource(stackName));
   }
 
   @GET
   @Path("{stackName}/versions")
   @Produces("text/plain")
-  public Response getStackVersions(@Context HttpHeaders headers,
+  public Response getStackVersions(String body,
+                                   @Context HttpHeaders headers,
                                    @Context UriInfo ui, @PathParam("stackName") String stackName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackVersionResource(stackName, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}")
   @Produces("text/plain")
-  public Response getStackVersion(@Context HttpHeaders headers,
+  public Response getStackVersion(String body,
+                                  @Context HttpHeaders headers,
                                   @Context UriInfo ui, @PathParam("stackName") String stackName,
                                   @PathParam("stackVersion") String stackVersion) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackVersionResource(stackName, stackVersion));
   }
 
@@ -93,25 +96,27 @@ public class StacksService extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/operating_systems/{osType}/repositories")
   @Produces("text/plain")
-  public Response getRepositories(@Context HttpHeaders headers,
+  public Response getRepositories(String body,
+                                  @Context HttpHeaders headers,
                                   @Context UriInfo ui, @PathParam("stackName") String stackName,
                                   @PathParam("stackVersion") String stackVersion,
                                   @PathParam("osType") String osType) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createRepositoryResource(stackName, stackVersion, osType, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}/operating_systems/{osType}/repositories/{repoId}")
   @Produces("text/plain")
-  public Response getRepository(@Context HttpHeaders headers,
+  public Response getRepository(String body,
+                                @Context HttpHeaders headers,
                                 @Context UriInfo ui, @PathParam("stackName") String stackName,
                                 @PathParam("stackVersion") String stackVersion,
                                 @PathParam("osType") String osType,
                                 @PathParam("repoId") String repoId) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createRepositoryResource(stackName, stackVersion, osType, repoId));
   }
 
@@ -132,23 +137,23 @@ public class StacksService extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/services")
   @Produces("text/plain")
-  public Response getStackServices(@Context HttpHeaders headers,
+  public Response getStackServices(String body, @Context HttpHeaders headers,
                                    @Context UriInfo ui, @PathParam("stackName") String stackName,
                                    @PathParam("stackVersion") String stackVersion) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackServiceResource(stackName, stackVersion, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}/services/{serviceName}")
   @Produces("text/plain")
-  public Response getStackService(@Context HttpHeaders headers,
+  public Response getStackService(String body, @Context HttpHeaders headers,
                                   @Context UriInfo ui, @PathParam("stackName") String stackName,
                                   @PathParam("stackVersion") String stackVersion,
                                   @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackServiceResource(stackName, stackVersion, serviceName));
   }
 
@@ -156,12 +161,13 @@ public class StacksService extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/services/{serviceName}/configurations")
   @Produces("text/plain")
-  public Response getStackConfigurations(@Context HttpHeaders headers,
+  public Response getStackConfigurations(String body,
+                                         @Context HttpHeaders headers,
                                          @Context UriInfo ui, @PathParam("stackName") String stackName,
                                          @PathParam("stackVersion") String stackVersion,
                                          @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackConfigurationResource(stackName, stackVersion, serviceName, null));
   }
 
@@ -169,52 +175,53 @@ public class StacksService extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/services/{serviceName}/configurations/{propertyName}")
   @Produces("text/plain")
-  public Response getStackConfiguration(@Context HttpHeaders headers,
+  public Response getStackConfiguration(String body, @Context HttpHeaders headers,
                                         @Context UriInfo ui, @PathParam("stackName") String stackName,
                                         @PathParam("stackVersion") String stackVersion,
                                         @PathParam("serviceName") String serviceName,
                                         @PathParam("propertyName") String propertyName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackConfigurationResource(stackName, stackVersion, serviceName, propertyName));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components")
   @Produces("text/plain")
-  public Response getServiceComponents(@Context HttpHeaders headers,
+  public Response getServiceComponents(String body,
+                                       @Context HttpHeaders headers,
                                        @Context UriInfo ui, @PathParam("stackName") String stackName,
                                        @PathParam("stackVersion") String stackVersion,
                                        @PathParam("serviceName") String serviceName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackServiceComponentResource(stackName, stackVersion, serviceName, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components/{componentName}/dependencies")
   @Produces("text/plain")
-  public Response getServiceComponentDependencies(@Context HttpHeaders headers,
+  public Response getServiceComponentDependencies(String body, @Context HttpHeaders headers,
                                                   @Context UriInfo ui, @PathParam("stackName") String stackName,
                                                   @PathParam("stackVersion") String stackVersion,
                                                   @PathParam("serviceName") String serviceName,
                                                   @PathParam("componentName") String componentName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackServiceComponentDependencyResource(stackName, stackVersion, serviceName, componentName, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components/{componentName}/dependencies/{dependencyName}")
   @Produces("text/plain")
-  public Response getServiceComponentDependency(@Context HttpHeaders headers,
+  public Response getServiceComponentDependency(String body, @Context HttpHeaders headers,
                                       @Context UriInfo ui, @PathParam("stackName") String stackName,
                                       @PathParam("stackVersion") String stackVersion,
                                       @PathParam("serviceName") String serviceName,
                                       @PathParam("componentName") String componentName,
                                       @PathParam("dependencyName") String dependencyName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackServiceComponentDependencyResource(stackName, stackVersion, serviceName, componentName, dependencyName));
   }
 
@@ -223,13 +230,13 @@ public class StacksService extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components/{componentName}")
   @Produces("text/plain")
-  public Response getServiceComponent(@Context HttpHeaders headers,
+  public Response getServiceComponent(String body, @Context HttpHeaders headers,
                                       @Context UriInfo ui, @PathParam("stackName") String stackName,
                                       @PathParam("stackVersion") String stackVersion,
                                       @PathParam("serviceName") String serviceName,
                                       @PathParam("componentName") String componentName) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createStackServiceComponentResource(stackName, stackVersion, serviceName, componentName));
   }
 
@@ -237,23 +244,23 @@ public class StacksService extends BaseService {
   @GET
   @Path("{stackName}/versions/{stackVersion}/operating_systems")
   @Produces("text/plain")
-  public Response getOperatingSystems(@Context HttpHeaders headers,
+  public Response getOperatingSystems(String body, @Context HttpHeaders headers,
                                       @Context UriInfo ui, @PathParam("stackName") String stackName,
                                       @PathParam("stackVersion") String stackVersion) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createOperatingSystemResource(stackName, stackVersion, null));
   }
 
   @GET
   @Path("{stackName}/versions/{stackVersion}/operating_systems/{osType}")
   @Produces("text/plain")
-  public Response getOperatingSystem(@Context HttpHeaders headers,
+  public Response getOperatingSystem(String body, @Context HttpHeaders headers,
                                      @Context UriInfo ui, @PathParam("stackName") String stackName,
                                      @PathParam("stackVersion") String stackVersion,
                                      @PathParam("osType") String osType) {
 
-    return handleRequest(headers, null, new StackUriInfo(ui), Request.Type.GET,
+    return handleRequest(headers, body, new StackUriInfo(ui), Request.Type.GET,
         createOperatingSystemResource(stackName, stackVersion, osType));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/TargetClusterService.java

@@ -52,10 +52,10 @@ public class TargetClusterService extends BaseService {
   @GET
   @Path("{targetName}")
   @Produces("text/plain")
-  public Response getTargetCluster(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getTargetCluster(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                           @PathParam("targetName") String targetName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createTargetClusterResource(targetName));
+    return handleRequest(headers, body, ui, Request.Type.GET, createTargetClusterResource(targetName));
   }
 
   /**
@@ -68,8 +68,8 @@ public class TargetClusterService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getTargetClusters(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createTargetClusterResource(null));
+  public Response getTargetClusters(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createTargetClusterResource(null));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/TaskAttemptService.java

@@ -74,11 +74,11 @@ public class TaskAttemptService extends BaseService {
   @GET
   @Path("{taskAttemptId}")
   @Produces("text/plain")
-  public Response getTaskAttempt(@Context HttpHeaders headers,
+  public Response getTaskAttempt(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("taskAttemptId") String taskAttemptId) {
     return handleRequest(
         headers,
-        null,
+        body,
         ui,
         Request.Type.GET,
         createTaskAttemptResource(clusterName, workflowId, jobId, taskAttemptId));
@@ -97,9 +97,9 @@ public class TaskAttemptService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getTaskAttempts(@Context HttpHeaders headers,
+  public Response getTaskAttempts(String body, @Context HttpHeaders headers,
       @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createTaskAttemptResource(clusterName, workflowId, jobId, null));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/TaskService.java

@@ -70,10 +70,10 @@ public class TaskService extends BaseService {
   @GET
   @Path("{taskId}")
   @Produces("text/plain")
-  public Response getTask(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getTask(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                           @PathParam("taskId") String taskId) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createTaskResource(m_clusterName, m_requestId, taskId));
   }
 
@@ -88,8 +88,8 @@ public class TaskService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getComponents(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getComponents(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createTaskResource(m_clusterName, m_requestId, null));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/UserService.java

@@ -46,8 +46,8 @@ public class UserService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getUsers(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createUserResource(null));
+  public Response getUsers(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createUserResource(null));
   }
 
   /**
@@ -62,9 +62,9 @@ public class UserService extends BaseService {
   @GET
   @Path("{userName}")
   @Produces("text/plain")
-  public Response getUser(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getUser(String body, @Context HttpHeaders headers, @Context UriInfo ui,
       @PathParam("userName") String userName) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createUserResource(userName));
+    return handleRequest(headers, body, ui, Request.Type.GET, createUserResource(userName));
   }
 
   /**

+ 2 - 2
ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewExternalSubResourceService.java

@@ -88,8 +88,8 @@ public class ViewExternalSubResourceService  extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getResources(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getResources(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createResource(viewName, instanceName));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewInstanceService.java

@@ -81,10 +81,10 @@ public class ViewInstanceService extends BaseService {
   @GET
   @Path("{instanceName}")
   @Produces("text/plain")
-  public Response getService(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getService(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("instanceName") String instanceName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createResource(viewName, version, instanceName));
   }
 
@@ -99,8 +99,8 @@ public class ViewInstanceService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getServices(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getServices(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createResource(viewName, version,  null));
   }
 

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewService.java

@@ -54,10 +54,10 @@ public class ViewService extends BaseService {
   @GET
   @Path("{viewName}")
   @Produces("text/plain")
-  public Response getView(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getView(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                              @PathParam("viewName") String viewName) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createViewResource(viewName));
+    return handleRequest(headers, body, ui, Request.Type.GET, createViewResource(viewName));
   }
 
   /**
@@ -71,8 +71,8 @@ public class ViewService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getViews(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET, createViewResource(null));
+  public Response getViews(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET, createViewResource(null));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/ViewVersionService.java

@@ -74,10 +74,10 @@ public class ViewVersionService extends BaseService {
   @GET
   @Path("{version}")
   @Produces("text/plain")
-  public Response getVersions(@Context HttpHeaders headers, @Context UriInfo ui,
+  public Response getVersions(String body, @Context HttpHeaders headers, @Context UriInfo ui,
                           @PathParam("version") String version) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createResource(viewName, version));
+    return handleRequest(headers, body, ui, Request.Type.GET, createResource(viewName, version));
   }
 
   /**
@@ -91,9 +91,9 @@ public class ViewVersionService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getVersions(@Context HttpHeaders headers, @Context UriInfo ui) {
+  public Response getVersions(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
 
-    return handleRequest(headers, null, ui, Request.Type.GET, createResource(viewName, null));
+    return handleRequest(headers, body, ui, Request.Type.GET, createResource(viewName, null));
   }
 
   /**

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/api/services/WorkflowService.java

@@ -63,9 +63,9 @@ public class WorkflowService extends BaseService {
   @GET
   @Path("{workflowId}")
   @Produces("text/plain")
-  public Response getWorkflow(@Context HttpHeaders headers,
+  public Response getWorkflow(String body, @Context HttpHeaders headers,
       @Context UriInfo ui, @PathParam("workflowId") String workflowId) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createWorkflowResource(clusterName, workflowId));
   }
 
@@ -80,8 +80,8 @@ public class WorkflowService extends BaseService {
    */
   @GET
   @Produces("text/plain")
-  public Response getWorkflows(@Context HttpHeaders headers, @Context UriInfo ui) {
-    return handleRequest(headers, null, ui, Request.Type.GET,
+  public Response getWorkflows(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
+    return handleRequest(headers, body, ui, Request.Type.GET,
         createWorkflowResource(clusterName, null));
   }
 

+ 3 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java

@@ -34,6 +34,7 @@ import org.apache.ambari.server.agent.HeartBeatHandler;
 import org.apache.ambari.server.agent.rest.AgentResource;
 import org.apache.ambari.server.api.AmbariErrorHandler;
 import org.apache.ambari.server.api.AmbariPersistFilter;
+import org.apache.ambari.server.api.MethodOverrideFilter;
 import org.apache.ambari.server.api.rest.BootStrapResource;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.api.services.KeyService;
@@ -216,6 +217,8 @@ public class AmbariServer {
       //session-per-request strategy for api and agents
       root.addFilter(new FilterHolder(injector.getInstance(AmbariPersistFilter.class)), "/api/*", 1);
       root.addFilter(new FilterHolder(injector.getInstance(AmbariPersistFilter.class)), "/proxy/*", 1);
+      root.addFilter(new FilterHolder(new MethodOverrideFilter()), "/api/*", 1);
+      root.addFilter(new FilterHolder(new MethodOverrideFilter()), "/proxy/*", 1);
       agentroot.addFilter(new FilterHolder(injector.getInstance(AmbariPersistFilter.class)), "/agent/*", 1);
 
       agentroot.addFilter(SecurityFilter.class, "/*", 1);

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/ActionServiceTest.java

@@ -41,14 +41,14 @@ public class ActionServiceTest extends BaseServiceTest {
 
     //getActionDefinition
     ActionService service = new TestActionDefinitionService("actionName");
-    Method m = service.getClass().getMethod("getActionDefinition", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "actionName"};
+    Method m = service.getClass().getMethod("getActionDefinition", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "actionName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getActionDefinitions
     service = new TestActionDefinitionService(null);
-    m = service.getClass().getMethod("getActionDefinitions", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getActionDefinitions", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //createActionDefinition

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/BlueprintServiceTest.java

@@ -41,14 +41,14 @@ public class BlueprintServiceTest extends BaseServiceTest {
 
     //getBlueprint
     BlueprintService BlueprintService = new TestBlueprintService("blueprintName");
-    Method m = BlueprintService.getClass().getMethod("getBlueprint", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "blueprintName"};
+    Method m = BlueprintService.getClass().getMethod("getBlueprint", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "blueprintName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, BlueprintService, m, args, null));
 
     //getBlueprints
     BlueprintService = new TestBlueprintService(null);
-    m = BlueprintService.getClass().getMethod("getBlueprints", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = BlueprintService.getClass().getMethod("getBlueprints", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, BlueprintService, m, args, null));
 
     //createBlueprint

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterServiceTest.java

@@ -43,14 +43,14 @@ public class ClusterServiceTest extends BaseServiceTest {
 
     //getCluster
     ClusterService clusterService = new TestClusterService("clusterName");
-    Method m = clusterService.getClass().getMethod("getCluster", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "clusterName"};
+    Method m = clusterService.getClass().getMethod("getCluster", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "clusterName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, clusterService, m, args, null));
 
     //getClusters
     clusterService = new TestClusterService(null);
-    m = clusterService.getClass().getMethod("getClusters", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = clusterService.getClass().getMethod("getClusters", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, clusterService, m, args, null));
 
     //createCluster

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/ComponentServiceTest.java

@@ -43,14 +43,14 @@ public class ComponentServiceTest extends BaseServiceTest {
 
     //getComponent
     ComponentService service = new TestComponentService("clusterName", "serviceName", "componentName");
-    Method m = service.getClass().getMethod("getComponent", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "componentName"};
+    Method m = service.getClass().getMethod("getComponent", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "componentName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getComponents
     service = new TestComponentService("clusterName", "serviceName", null);
-    m = service.getClass().getMethod("getComponents", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getComponents", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //createComponent

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/ConfigGroupServiceTest.java

@@ -39,16 +39,16 @@ public class ConfigGroupServiceTest extends BaseServiceTest {
     ConfigGroupService configGroupService = new TestConfigGroupService
       ("clusterName", null);
     Method m = configGroupService.getClass().getMethod("getConfigGroups",
-      HttpHeaders.class, UriInfo.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo()};
+      String.class, HttpHeaders.class, UriInfo.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET,
       configGroupService, m, args, null));
 
     // Get Config Group
     configGroupService = new TestConfigGroupService("clusterName", "groupId");
     m = configGroupService.getClass().getMethod("getConfigGroup",
-      HttpHeaders.class, UriInfo.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "groupId"};
+      String.class, HttpHeaders.class, UriInfo.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "groupId"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET,
       configGroupService, m, args, null));
 

+ 2 - 2
ambari-server/src/test/java/org/apache/ambari/server/api/services/ConfigurationServiceTest.java

@@ -37,8 +37,8 @@ public class ConfigurationServiceTest extends BaseServiceTest {
 
     //getConfigurations
     ConfigurationService service = new TestConfigurationService("clusterName");
-    Method m = service.getClass().getMethod("getConfigurations", HttpHeaders.class, UriInfo.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo()};
+    Method m = service.getClass().getMethod("getConfigurations", String.class, HttpHeaders.class, UriInfo.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //createConfigurations

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/FeedServiceTest.java

@@ -43,14 +43,14 @@ public class FeedServiceTest extends BaseServiceTest {
 
     //getFeed
     FeedService feedService = new TestFeedService("feedName");
-    Method m = feedService.getClass().getMethod("getFeed", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "feedName"};
+    Method m = feedService.getClass().getMethod("getFeed", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "feedName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, feedService, m, args, null));
 
     //getFeeds
     feedService = new TestFeedService(null);
-    m = feedService.getClass().getMethod("getFeeds", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = feedService.getClass().getMethod("getFeeds", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, feedService, m, args, null));
 
     //createFeed

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/HostComponentServiceTest.java

@@ -42,14 +42,14 @@ public class HostComponentServiceTest extends BaseServiceTest {
 
     //getHostComponent
     HostComponentService componentService = new TestHostComponentService("clusterName", "serviceName", "componentName");
-    Method m = componentService.getClass().getMethod("getHostComponent", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "componentName"};
+    Method m = componentService.getClass().getMethod("getHostComponent", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "componentName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, componentService, m, args, null));
 
     //getHostComponents
     componentService = new TestHostComponentService("clusterName", "serviceName", null);
-    m = componentService.getClass().getMethod("getHostComponents", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = componentService.getClass().getMethod("getHostComponents", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, componentService, m, args, null));
 
     //createHostComponent

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/HostServiceTest.java

@@ -42,14 +42,14 @@ public class HostServiceTest extends BaseServiceTest {
 
     //getHost
     HostService service = new TestHostService("clusterName", "hostName");
-    Method m = service.getClass().getMethod("getHost", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "hostName"};
+    Method m = service.getClass().getMethod("getHost", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "hostName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getHosts
     service = new TestHostService("clusterName", null);
-    m = service.getClass().getMethod("getHosts", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getHosts", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //createHost

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/InstanceServiceTest.java

@@ -42,14 +42,14 @@ public class InstanceServiceTest extends BaseServiceTest {
 
     //getInstance
     InstanceService service = new TestInstanceService("clusterName", "instanceName");
-    Method m = service.getClass().getMethod("getInstance", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "instanceName"};
+    Method m = service.getClass().getMethod("getInstance", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "instanceName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getInstances
     service = new TestInstanceService("clusterName", null);
-    m = service.getClass().getMethod("getInstances", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getInstances", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //createInstance

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/JobServiceTest.java

@@ -40,17 +40,17 @@ public class JobServiceTest extends BaseServiceTest {
 
     // getJob
     JobService service = new TestJobService("clusterName", "jobId");
-    Method m = service.getClass().getMethod("getJob", HttpHeaders.class,
+    Method m = service.getClass().getMethod("getJob", String.class, HttpHeaders.class,
         UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "jobId"};
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "jobId"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m,
         args, null));
 
     // getJobs
     service = new TestJobService("clusterName", null);
-    m = service.getClass().getMethod("getJobs", HttpHeaders.class,
+    m = service.getClass().getMethod("getJobs", String.class, HttpHeaders.class,
         UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m,
         args, null));
 

+ 14 - 14
ambari-server/src/test/java/org/apache/ambari/server/api/services/RootServiceServiceTest.java

@@ -42,44 +42,44 @@ public class RootServiceServiceTest extends BaseServiceTest {
     
     //getServices
     RootServiceService service = new TestRootServiceService(null, null, null);
-    Method m = service.getClass().getMethod("getServices", HttpHeaders.class, UriInfo.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo()};
+    Method m = service.getClass().getMethod("getServices", String.class, HttpHeaders.class, UriInfo.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
     
     //getService
     service = new TestRootServiceService("AMBARI", null, null);
-    m = service.getClass().getMethod("getService", HttpHeaders.class, UriInfo.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "AMBARI"};
+    m = service.getClass().getMethod("getService", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "AMBARI"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
     
     //getServiceComponents
     service = new TestRootServiceService("AMBARI", null, null);
-    m = service.getClass().getMethod("getServiceComponents", HttpHeaders.class, UriInfo.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "AMBARI"};
+    m = service.getClass().getMethod("getServiceComponents", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "AMBARI"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
     
     //getServiceComponent
     service = new TestRootServiceService("AMBARI", "AMBARI_SERVER", null);
-    m = service.getClass().getMethod("getServiceComponent", HttpHeaders.class, UriInfo.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "AMBARI", "AMBARI_SERVER"};
+    m = service.getClass().getMethod("getServiceComponent", String.class, HttpHeaders.class, UriInfo.class, String.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "AMBARI", "AMBARI_SERVER"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
     
     //getRootHostComponents
     service = new TestRootServiceService("AMBARI", "AMBARI_SERVER", null);
-    m = service.getClass().getMethod("getRootHostComponents", HttpHeaders.class, UriInfo.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "AMBARI", "AMBARI_SERVER"};
+    m = service.getClass().getMethod("getRootHostComponents", String.class, HttpHeaders.class, UriInfo.class, String.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "AMBARI", "AMBARI_SERVER"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
     
     //getRootHosts
     service = new TestRootServiceService("AMBARI", "AMBARI_SERVER", null);
-    m = service.getClass().getMethod("getRootHosts", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getRootHosts", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
     
     //getRootHost
     service = new TestRootServiceService("AMBARI", "AMBARI_SERVER", "host1");
-    m = service.getClass().getMethod("getRootHost", HttpHeaders.class, UriInfo.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "host1"};
+    m = service.getClass().getMethod("getRootHost", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "host1"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
     
     

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/ServiceServiceTest.java

@@ -41,14 +41,14 @@ public class ServiceServiceTest extends BaseServiceTest {
 
     //getService
     ServiceService service = new TestServiceService("clusterName", "serviceName");
-    Method m = service.getClass().getMethod("getService", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "serviceName"};
+    Method m = service.getClass().getMethod("getService", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "serviceName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getServices
     service = new TestServiceService("clusterName", null);
-    m = service.getClass().getMethod("getServices", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getServices", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //createService

+ 28 - 28
ambari-server/src/test/java/org/apache/ambari/server/api/services/Stacks2ServiceTest.java

@@ -42,40 +42,40 @@ public class Stacks2ServiceTest extends BaseServiceTest {
 
     //getStack
     Stacks2Service service = new TestStacksService("stackName", null);
-    Method m = service.getClass().getMethod("getStack", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName"};
+    Method m = service.getClass().getMethod("getStack", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getStacks
     service = new TestStacksService(null, null);
-    m = service.getClass().getMethod("getStacks", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getStacks", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getStackVersion
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getStackVersion", HttpHeaders.class, UriInfo.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
+    m = service.getClass().getMethod("getStackVersion", String.class, HttpHeaders.class, UriInfo.class, String.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getStackVersions
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackVersions", HttpHeaders.class, UriInfo.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName"};
+    m = service.getClass().getMethod("getStackVersions", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getRepository
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getRepository", HttpHeaders.class, UriInfo.class, String.class,
+    m = service.getClass().getMethod("getRepository", String.class, HttpHeaders.class, UriInfo.class, String.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os", "repo-id"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os", "repo-id"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getRepositories
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getRepositories", HttpHeaders.class, UriInfo.class, String.class,
+    m = service.getClass().getMethod("getRepositories", String.class, HttpHeaders.class, UriInfo.class, String.class,
         String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // updateRepository
@@ -87,57 +87,57 @@ public class Stacks2ServiceTest extends BaseServiceTest {
 
     // getStackService
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackService", HttpHeaders.class, UriInfo.class, String.class,
+    m = service.getClass().getMethod("getStackService", String.class, HttpHeaders.class, UriInfo.class, String.class,
         String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackServices
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackServices", HttpHeaders.class, UriInfo.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
+    m = service.getClass().getMethod("getStackServices", String.class, HttpHeaders.class, UriInfo.class, String.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackConfiguration
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getStackConfiguration", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getStackConfiguration", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "property-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "property-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackConfigurations
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackConfigurations", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getStackConfigurations", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getServiceComponent
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getServiceComponent", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getServiceComponent", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "component-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "component-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getServiceComponents
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getServiceComponents", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getServiceComponents", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getOperationSystem
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getOperatingSystem", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getOperatingSystem", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os-type"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os-type"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getOperationSystems
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getOperatingSystems", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getOperatingSystems", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     return listInvocations;

+ 28 - 28
ambari-server/src/test/java/org/apache/ambari/server/api/services/StacksServiceTest.java

@@ -46,40 +46,40 @@ public class StacksServiceTest extends BaseServiceTest {
 
     // getStack
     StacksService service = new TestStacksService("stackName", null);
-    Method m = service.getClass().getMethod("getStack", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName"};
+    Method m = service.getClass().getMethod("getStack", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     //getStacks
     service = new TestStacksService(null, null);
-    m = service.getClass().getMethod("getStacks", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = service.getClass().getMethod("getStacks", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackVersion
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getStackVersion", HttpHeaders.class, UriInfo.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
+    m = service.getClass().getMethod("getStackVersion", String.class, HttpHeaders.class, UriInfo.class, String.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackVersions
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackVersions", HttpHeaders.class, UriInfo.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName"};
+    m = service.getClass().getMethod("getStackVersions", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getRepository
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getRepository", HttpHeaders.class, UriInfo.class, String.class,
+    m = service.getClass().getMethod("getRepository", String.class, HttpHeaders.class, UriInfo.class, String.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os", "repo-id"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os", "repo-id"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getRepositories
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getRepositories", HttpHeaders.class, UriInfo.class, String.class,
+    m = service.getClass().getMethod("getRepositories", String.class, HttpHeaders.class, UriInfo.class, String.class,
         String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // updateRepository
@@ -91,57 +91,57 @@ public class StacksServiceTest extends BaseServiceTest {
 
     // getStackService
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackService", HttpHeaders.class, UriInfo.class, String.class,
+    m = service.getClass().getMethod("getStackService", String.class, HttpHeaders.class, UriInfo.class, String.class,
         String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackServices
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackServices", HttpHeaders.class, UriInfo.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
+    m = service.getClass().getMethod("getStackServices", String.class, HttpHeaders.class, UriInfo.class, String.class, String.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackConfiguration
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getStackConfiguration", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getStackConfiguration", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "property-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "property-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getStackConfigurations
     service = new TestStacksService("stackName", null);
-    m = service.getClass().getMethod("getStackConfigurations", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getStackConfigurations", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getServiceComponent
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getServiceComponent", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getServiceComponent", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "component-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name", "component-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getServiceComponents
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getServiceComponents", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getServiceComponents", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "service-name"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getOperationSystem
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getOperatingSystem", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getOperatingSystem", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os-type"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion", "os-type"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     // getOperationSystems
     service = new TestStacksService("stackName", "stackVersion");
-    m = service.getClass().getMethod("getOperatingSystems", HttpHeaders.class, UriInfo.class,
+    m = service.getClass().getMethod("getOperatingSystems", String.class, HttpHeaders.class, UriInfo.class,
         String.class, String.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo(), "stackName", "stackVersion"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null));
 
     return listInvocations;

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/TargetClusterServiceTest.java

@@ -43,14 +43,14 @@ public class TargetClusterServiceTest extends BaseServiceTest {
 
     //getTargetCluster
     TargetClusterService targetClusterService = new TestTargetClusterService("targetClusterName");
-    Method m = targetClusterService.getClass().getMethod("getTargetCluster", HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "targetClusterName"};
+    Method m = targetClusterService.getClass().getMethod("getTargetCluster", String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "targetClusterName"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, targetClusterService, m, args, null));
 
     //getTargetClusters
     targetClusterService = new TestTargetClusterService(null);
-    m = targetClusterService.getClass().getMethod("getTargetClusters", HttpHeaders.class, UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    m = targetClusterService.getClass().getMethod("getTargetClusters", String.class, HttpHeaders.class, UriInfo.class);
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, targetClusterService, m, args, null));
 
     //createTargetCluster

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/TaskAttemptServiceTest.java

@@ -42,16 +42,16 @@ public class TaskAttemptServiceTest extends BaseServiceTest {
     TestTaskAttemptService service = new TestTaskAttemptService("clusterName",
         "workflowId", "jobId");
     Method m = service.getClass().getMethod("getTaskAttempt",
-        HttpHeaders.class, UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "jobId"};
+      String.class, HttpHeaders.class, UriInfo.class, String.class);
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "jobId"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m,
         args, null));
 
     // getTaskAttempts
     service = new TestTaskAttemptService("clusterName", "workflowId", "jobId");
-    m = service.getClass().getMethod("getTaskAttempts", HttpHeaders.class,
+    m = service.getClass().getMethod("getTaskAttempts", String.class, HttpHeaders.class,
         UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m,
         args, null));
 

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/api/services/WorkflowServiceTest.java

@@ -40,17 +40,17 @@ public class WorkflowServiceTest extends BaseServiceTest {
 
     // getWorkflow
     WorkflowService service = new TestWorkflowService("clusterName");
-    Method m = service.getClass().getMethod("getWorkflow", HttpHeaders.class,
+    Method m = service.getClass().getMethod("getWorkflow", String.class, HttpHeaders.class,
         UriInfo.class, String.class);
-    Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "jobId"};
+    Object[] args = new Object[] {null, getHttpHeaders(), getUriInfo(), "jobId"};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m,
         args, null));
 
     // getWorkflows
     service = new TestWorkflowService("clusterName");
-    m = service.getClass().getMethod("getWorkflows", HttpHeaders.class,
+    m = service.getClass().getMethod("getWorkflows", String.class, HttpHeaders.class,
         UriInfo.class);
-    args = new Object[] {getHttpHeaders(), getUriInfo()};
+    args = new Object[] {null, getHttpHeaders(), getUriInfo()};
     listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m,
         args, null));