Browse Source

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

Myroslav Papirkovskyy 11 years ago
parent
commit
68f0473739
46 changed files with 386 additions and 295 deletions
  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));