http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/rest/BootStrapResource.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/rest/BootStrapResource.java b/ambari-server/src/main/java/org/apache/ambari/server/api/rest/BootStrapResource.java index 5672598..f2f0a95 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/rest/BootStrapResource.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/rest/BootStrapResource.java @@ -45,7 +45,6 @@ import org.apache.commons.logging.LogFactory; import com.google.inject.Inject; -@Path("/bootstrap") public class BootStrapResource { private static BootStrapImpl bsImpl;
http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/rest/HealthCheck.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/rest/HealthCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/api/rest/HealthCheck.java index 2f31611..802f7eb 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/rest/HealthCheck.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/rest/HealthCheck.java @@ -28,7 +28,6 @@ import javax.ws.rs.core.MediaType; * or not */ -@Path("/check") public class HealthCheck { private static final String status = "RUNNING"; // This method is called if TEXT_PLAIN is request http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/rest/KdcServerReachabilityCheck.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/rest/KdcServerReachabilityCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/api/rest/KdcServerReachabilityCheck.java index 898e7e6..bb08a0a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/rest/KdcServerReachabilityCheck.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/rest/KdcServerReachabilityCheck.java @@ -36,7 +36,6 @@ import com.google.inject.Inject; * Service responsible for kerberos related resource requests. */ @StaticallyInject -@Path("/kdc_check/") public class KdcServerReachabilityCheck { private static final String REACHABLE = "REACHABLE"; private static final String UNREACHABLE = "UNREACHABLE"; http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AbstractVersionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AbstractVersionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AbstractVersionService.java new file mode 100644 index 0000000..81df575 --- /dev/null +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AbstractVersionService.java @@ -0,0 +1,352 @@ +/** + * 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.services; + +import org.apache.ambari.eventdb.webservice.WorkflowJsonService; +import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; +import org.apache.ambari.server.controller.spi.Resource; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import org.apache.ambari.server.api.rest.BootStrapResource; +import org.apache.ambari.server.api.rest.HealthCheck; +import org.apache.ambari.server.api.rest.KdcServerReachabilityCheck; + + +public abstract class AbstractVersionService { + + /** + * Handles /actions request. + * + * @return action service + */ + @Path("/actions") + public ActionService getActionService(@PathParam("apiVersion") String apiVersion) { + return new ActionService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /alert_targets request. + * + * @return alert targets service + */ + @Path("/alert_targets") + public AlertTargetService getAlertTargetService(@PathParam("apiVersion") String apiVersion) { + return new AlertTargetService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /privileges request. + * + * @return privileges service + */ + @Path("/privileges") + public AmbariPrivilegeService getAmbariPrivilegeService(@PathParam("apiVersion") String apiVersion) { + return new AmbariPrivilegeService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /blueprints request. + * + * @return blueprints service + */ + @Path("/blueprints") + public BlueprintService getBlueprintService(@PathParam("apiVersion") String apiVersion) { + return new BlueprintService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /clusters request. + * + * @return cluster service + */ + @Path("/clusters") + public ClusterService getClusterService(@PathParam("apiVersion") String apiVersion) { + return new ClusterService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /feeds request. + * TODO: Cleanup? + * + * @return feed service + */ + @Path("/feeds") + public FeedService getFeedService(@PathParam("apiVersion") String apiVersion) { + return new FeedService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /groups request. + * + * @return group service + */ + @Path("/groups") + public GroupService getGroupService(@PathParam("apiVersion") String apiVersion) { + return new GroupService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /hosts request. + * + * @return host service + */ + @Path("/hosts") + public HostService getHostService(@PathParam("apiVersion") String apiVersion) { + return new HostService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /instances request. + * TODO: Cleanup? + * + * @return instance service + */ + @Path("/instances") + public InstanceService getInstanceService(@PathParam("apiVersion") String apiVersion) { + return new InstanceService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /kerberos_descriptors request. + * + * @return kerberos descriptor service + */ + @Path("/kerberos_descriptors") + public KerberosDescriptorService getKerberosDescriptorService(@PathParam("apiVersion") String apiVersion) { + return new KerberosDescriptorService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /keys request. + * + * @return key service + */ + @Path("/keys") + public KeyService getKeyService(@PathParam("apiVersion") String apiVersion) { + return new KeyService(); + } + + /** + * Handles /ldap_sync_events request. + * + * @return Ldap sync event service + */ + @Path("/ldap_sync_events") + public LdapSyncEventService getLdapSyncEventService(@PathParam("apiVersion") String apiVersion) { + return new LdapSyncEventService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /logout request. + * + * @return logout service + */ + @Path("/logout") + public LogoutService getLogoutService(@PathParam("apiVersion") String apiVersion) { + return new LogoutService(); + } + + /** + * Handles /permissions request. + * + * @return permission service + */ + @Path("/permissions") + public PermissionService getPermissionService(@PathParam("apiVersion") String apiVersion) { + return new PermissionService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /persist request. + * + * @return persist service + */ + @Path("/persist") + public PersistKeyValueService getPersistKeyValueService(@PathParam("apiVersion") String apiVersion) { + return new PersistKeyValueService(); + } + + /** + * Handles /remoteclusters request + * + * @return remote clusters service + */ + @Path("/remoteclusters") + public RemoteClustersService getRemoteClustersService(@PathParam("apiVersion") String apiVersion) { + return new RemoteClustersService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /requests request. + * + * @return request service + */ + @Path("/requests") + public RequestService getRequestService(@PathParam("apiVersion") String apiVersion) { + return new RequestService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /settings request. + * + * @return request service + */ + @Path("/settings") + public SettingService getSettingService(@PathParam("apiVersion") String apiVersion) { + return new SettingService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /authorizations request. + * + * @return role authorization service + */ + @Path("/authorizations") + public RoleAuthorizationService getRoleAuthorizationService(@PathParam("apiVersion") String apiVersion) { + return new RoleAuthorizationService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /services request. + * + * @return root service service + */ + @Path("/services") + public RootServiceService getRootServiceService(@PathParam("apiVersion") String apiVersion) { + return new RootServiceService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /targets request. + * TODO: Cleanup? + * + * @return target cluster service + */ + @Path("/targets") + public TargetClusterService getTargetClusterService(@PathParam("apiVersion") String apiVersion) { + return new TargetClusterService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /users request. + * + * @return user service + */ + @Path("/users") + public UserService getUserService(@PathParam("apiVersion") String apiVersion) { + return new UserService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /version_definitions request. + * + * @return version definition service + */ + @Path("/version_definitions") + public VersionDefinitionService getVersionDefinitionService(@PathParam("apiVersion") String apiVersion) { + return new VersionDefinitionService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /views request. + * + * @return view service + */ + @Path("/views") + public ViewService getViewService(@PathParam("apiVersion") String apiVersion) { + return new ViewService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /view/urls request. + * + * @return view urls service + */ + @Path("/view/urls") + public ViewUrlsService getViewUrlsService(@PathParam("apiVersion") String apiVersion) { + return new ViewUrlsService(ApiVersion.valueOf(apiVersion)); + } + + /** + * Handles /stacks request. + * + * @return stacks service + */ + @Path("/stacks") + public StacksService getStacksService(@PathParam("apiVersion") String apiVersion) { + return new StacksService(ApiVersion.valueOf(apiVersion)); + } + + + /** + * Handles /bootstrap request. + * + * @return bootstrap service + */ + @Path("/bootstrap") + public BootStrapResource getBootStrapResource(@PathParam("apiVersion") String apiVersion) { + return new BootStrapResource(); + } + + + /** + * Handles /check request. + * + * @return health check service + */ + @Path("/check") + public HealthCheck getHealthCheck(@PathParam("apiVersion") String apiVersion) { + return new HealthCheck(); + } + + /** + * Handles /kdc_check request. + * + * @return kdc server reachability service + */ + @Path("/kdc_check") + public KdcServerReachabilityCheck getKdcServerReachabilityCheck(@PathParam("apiVersion") String apiVersion) { + return new KdcServerReachabilityCheck(); + } + + /** + * Handles /kdc_check request. + * + * @return kdc server reachability service + */ + @Path("/jobhistory") + public WorkflowJsonService getWorkflowJsonService(@PathParam("apiVersion") String apiVersion) { + return new WorkflowJsonService(); + } + +} http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActionService.java index 0126d3f..70b95f2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActionService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActionService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -38,9 +39,12 @@ import java.util.Collections; /** * Service responsible for action definition resource requests. */ -@Path("/actions/") public class ActionService extends BaseService { + public ActionService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Handles: GET /actions/{actionName} * Get a specific action definition. http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutService.java index a0c3386..a84a6c1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutService.java @@ -18,6 +18,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.GET; @@ -39,7 +40,8 @@ public class ActiveWidgetLayoutService extends BaseService { private final String userName; - public ActiveWidgetLayoutService(String userName) { + public ActiveWidgetLayoutService(ApiVersion apiVersion, String userName) { + super(apiVersion); this.userName = userName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertDefinitionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertDefinitionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertDefinitionService.java index e002c38..3c9de2f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertDefinitionService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertDefinitionService.java @@ -33,6 +33,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -42,7 +43,8 @@ public class AlertDefinitionService extends BaseService { private String clusterName = null; - AlertDefinitionService(String clusterName) { + AlertDefinitionService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); this.clusterName = clusterName; } @@ -100,7 +102,7 @@ public class AlertDefinitionService extends BaseService { /** * Create a request schedule resource instance * @param clusterName - * @param requestScheduleId + * @param definitionId * @return */ private ResourceInstance createResourceInstance(String clusterName, http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertGroupService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertGroupService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertGroupService.java index a4bfcf3..07d3a42 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertGroupService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertGroupService.java @@ -33,6 +33,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -51,7 +52,8 @@ public class AlertGroupService extends BaseService { * * @param clusterName */ - AlertGroupService(String clusterName) { + AlertGroupService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); m_clusterName = clusterName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertHistoryService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertHistoryService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertHistoryService.java index 4ebe1f6..9675e05 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertHistoryService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertHistoryService.java @@ -30,6 +30,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -52,7 +53,8 @@ public class AlertHistoryService extends BaseService { * @param hostName * the host name, or {@code null} to return history across all hosts. */ - AlertHistoryService(String clusterName, String serviceName, String hostName) { + AlertHistoryService(ApiVersion apiVersion, String clusterName, String serviceName, String hostName) { + super(apiVersion); this.clusterName = clusterName; this.serviceName = serviceName; this.hostName = hostName; http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertNoticeService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertNoticeService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertNoticeService.java index 26731fb..e185443 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertNoticeService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertNoticeService.java @@ -30,6 +30,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -45,7 +46,8 @@ public class AlertNoticeService extends BaseService { * @param clusterName * the cluster name (not {@code null}). */ - AlertNoticeService(String clusterName) { + AlertNoticeService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); this.clusterName = clusterName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertService.java index 184cbf1..541bed5 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertService.java @@ -30,6 +30,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -41,7 +42,8 @@ public class AlertService extends BaseService { private String serviceName = null; private String hostName = null; - AlertService(String clusterName, String serviceName, String hostName) { + AlertService(ApiVersion apiVersion, String clusterName, String serviceName, String hostName) { + super(apiVersion); this.clusterName = clusterName; this.serviceName = serviceName; this.hostName = hostName; http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertTargetService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertTargetService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertTargetService.java index 2e00491..ec7c295 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertTargetService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AlertTargetService.java @@ -33,6 +33,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.state.alert.AlertTarget; @@ -40,9 +41,12 @@ import org.apache.ambari.server.state.alert.AlertTarget; * The {@link AlertTargetService} handles CRUD operation requests for alert * targets. */ -@Path("/alert_targets/") public class AlertTargetService extends BaseService { + public AlertTargetService(ApiVersion apiVersion) { + super(apiVersion); + } + @GET @Produces("text/plain") public Response getTargets(@Context HttpHeaders headers, http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java index c54fe3f..54a1fe7 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java @@ -44,6 +44,8 @@ import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.ParentObjectNotFoundException; import org.apache.ambari.server.StackAccessException; import org.apache.ambari.server.configuration.Configuration; +import org.apache.ambari.server.controller.AmbariManagementController; +import org.apache.ambari.server.controller.AmbariServer; import org.apache.ambari.server.controller.RootServiceResponseFactory.Services; import org.apache.ambari.server.controller.utilities.PropertyHelper; import org.apache.ambari.server.customactions.ActionDefinition; @@ -55,6 +57,7 @@ import org.apache.ambari.server.metadata.AmbariServiceAlertDefinitions; import org.apache.ambari.server.orm.dao.AlertDefinitionDAO; import org.apache.ambari.server.orm.dao.MetainfoDAO; import org.apache.ambari.server.orm.entities.AlertDefinitionEntity; +import org.apache.ambari.server.orm.entities.ClusterVersionEntity; import org.apache.ambari.server.orm.entities.MetainfoEntity; import org.apache.ambari.server.stack.StackDirectory; import org.apache.ambari.server.stack.StackManager; @@ -218,6 +221,8 @@ public class AmbariMetaInfo { */ private StackManager stackManager; + private AmbariManagementController controller; + private Configuration conf; /** @@ -241,6 +246,7 @@ public class AmbariMetaInfo { serverVersionFile = new File(serverVersionFilePath); customActionRoot = new File(conf.getCustomActionDefinitionPath()); + controller = AmbariServer.getController(); } /** @@ -523,14 +529,15 @@ public class AmbariMetaInfo { } public ServiceInfo getService(String stackName, String version, String serviceName) throws AmbariException { - ServiceInfo service = getStack(stackName, version).getService(serviceName); + StackInfo stackInfo = getStack(stackName, version); + ServiceInfo serviceInfo = stackInfo.getService(serviceName); - if (service == null) { + if (serviceInfo == null) { throw new StackAccessException("stackName=" + stackName + ", stackVersion=" + version + ", serviceName=" + serviceName); } - return service; + return serviceInfo; } public Collection<String> getMonitoringServiceNames(String stackName, String version) http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariPrivilegeService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariPrivilegeService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariPrivilegeService.java index db28f4f..9f8b0ba 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariPrivilegeService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariPrivilegeService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.Path; @@ -27,8 +28,10 @@ import java.util.Collections; /** * Service responsible for Ambari privilege resource requests. */ -@Path("/privileges/") public class AmbariPrivilegeService extends PrivilegeService { + public AmbariPrivilegeService(ApiVersion apiVersion) { + super(apiVersion); + } // ----- PrivilegeService -------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java index 139cf43..64263b5 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java @@ -27,6 +27,7 @@ import org.apache.ambari.server.api.services.parsers.RequestBodyParser; import org.apache.ambari.server.api.services.serializers.CsvSerializer; import org.apache.ambari.server.api.services.serializers.JsonSerializer; import org.apache.ambari.server.api.services.serializers.ResultSerializer; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.audit.request.RequestAuditLogger; import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.utils.RetryHelper; @@ -41,6 +42,7 @@ import javax.ws.rs.core.UriInfo; import java.util.Iterator; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import com.google.inject.Inject; @@ -51,6 +53,12 @@ public abstract class BaseService { public final static MediaType MEDIA_TYPE_TEXT_CSV_TYPE = new MediaType("text", "csv"); /** + * Regex for checking API version from the request URI + */ + public static final Pattern API_VERSION_REGEX = Pattern.compile("^(/api/)(v[0-9\\.]+)"); + + + /** * Logger instance. */ protected final static Logger LOG = LoggerFactory.getLogger(BaseService.class); @@ -67,6 +75,15 @@ public abstract class BaseService { protected static RequestAuditLogger requestAuditLogger; + /** + * Api version + */ + protected ApiVersion m_apiVersion; + + public BaseService(ApiVersion apiVersion) { + m_apiVersion = apiVersion; + } + public static void init(RequestAuditLogger instance) { requestAuditLogger = instance; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/BlueprintService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BlueprintService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BlueprintService.java index f40f858..c782311 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BlueprintService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BlueprintService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -39,9 +40,12 @@ import java.util.Collections; * any cluster specific information. Updates are not permitted as blueprints are * immutable. */ -@Path("/blueprints/") public class BlueprintService extends BaseService { + public BlueprintService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Handles: GET /blueprints * Get all blueprints. http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterKerberosDescriptorService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterKerberosDescriptorService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterKerberosDescriptorService.java index 1452118..364a932 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterKerberosDescriptorService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterKerberosDescriptorService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.GET; @@ -53,7 +54,8 @@ public class ClusterKerberosDescriptorService extends BaseService { * * @param clusterName cluster id */ - public ClusterKerberosDescriptorService(String clusterName) { + public ClusterKerberosDescriptorService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); this.clusterName = clusterName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterPrivilegeService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterPrivilegeService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterPrivilegeService.java index 11b4a46..86debb9 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterPrivilegeService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterPrivilegeService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import java.util.HashMap; @@ -42,7 +43,8 @@ public class ClusterPrivilegeService extends PrivilegeService { * * @param clusterName the cluster name */ - public ClusterPrivilegeService(String clusterName) { + public ClusterPrivilegeService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); this.clusterName = clusterName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java index 072c4a2..829efd8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java @@ -35,6 +35,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.AmbariServer; import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.state.Clusters; @@ -43,7 +44,6 @@ import org.apache.ambari.server.state.Clusters; /** * Service responsible for cluster resource requests. */ -@Path("/clusters/") public class ClusterService extends BaseService { /** @@ -57,7 +57,8 @@ public class ClusterService extends BaseService { /** * Construct a ClusterService. */ - public ClusterService() { + public ClusterService(ApiVersion apiVersion) { + super(apiVersion); clusters = AmbariServer.getController().getClusters(); } @@ -66,7 +67,8 @@ public class ClusterService extends BaseService { * * @param clusters the clusters utilities */ - protected ClusterService(Clusters clusters) { + protected ClusterService(ApiVersion apiVersion, Clusters clusters) { + super(apiVersion); this.clusters = clusters; } @@ -326,7 +328,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/hosts") public HostService getHostHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new HostService(clusterName); + return new HostService(m_apiVersion, clusterName); } /** @@ -339,7 +341,20 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/services") public ServiceService getServiceHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new ServiceService(clusterName); + return new ServiceService(m_apiVersion, clusterName); + } + + /** + * Get the service groups sub-resource + * + * @param request the request + * @param clusterName cluster id + * + * @return the service groups service + */ + @Path("{clusterName}/servicegroups") + public ServiceGroupService getServiceGroupHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { + return new ServiceGroupService(m_apiVersion, clusterName); } /** @@ -352,7 +367,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/configurations") public ConfigurationService getConfigurationHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new ConfigurationService(clusterName); + return new ConfigurationService(m_apiVersion, clusterName); } /** @@ -365,7 +380,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/requests") public RequestService getRequestHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new RequestService(clusterName); + return new RequestService(m_apiVersion, clusterName); } /** @@ -379,7 +394,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/host_components") public HostComponentService getHostComponentHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new HostComponentService(clusterName, null); + return new HostComponentService(m_apiVersion, clusterName, null); } /** @@ -393,7 +408,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/kerberos_identities") public HostKerberosIdentityService getHostKerberosIdentityHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new HostKerberosIdentityService(clusterName, null); + return new HostKerberosIdentityService(m_apiVersion, clusterName, null); } /** @@ -407,7 +422,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/components") public ComponentService getComponentHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new ComponentService(clusterName, null); + return new ComponentService(m_apiVersion, clusterName, null); } /** @@ -420,7 +435,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/workflows") public WorkflowService getWorkflowHandler(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new WorkflowService(clusterName); + return new WorkflowService(m_apiVersion, clusterName); } /** @@ -433,7 +448,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/config_groups") public ConfigGroupService getConfigGroupService(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new ConfigGroupService(clusterName); + return new ConfigGroupService(m_apiVersion, clusterName); } /** @@ -447,7 +462,7 @@ public class ClusterService extends BaseService { @Path("{clusterName}/request_schedules") public RequestScheduleService getRequestScheduleService (@Context javax.ws.rs.core.Request request, @PathParam ("clusterName") String clusterName) { - return new RequestScheduleService(clusterName); + return new RequestScheduleService(m_apiVersion, clusterName); } /** @@ -461,7 +476,7 @@ public class ClusterService extends BaseService { @Path("{clusterName}/alert_definitions") public AlertDefinitionService getAlertDefinitionService( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new AlertDefinitionService(clusterName); + return new AlertDefinitionService(m_apiVersion, clusterName); } /** @@ -477,7 +492,7 @@ public class ClusterService extends BaseService { public AlertGroupService getAlertGroups( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new AlertGroupService(clusterName); + return new AlertGroupService(m_apiVersion, clusterName); } /** @@ -492,7 +507,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/privileges") public PrivilegeService getPrivilegeService(@Context javax.ws.rs.core.Request request, @PathParam ("clusterName") String clusterName) { - return new ClusterPrivilegeService(clusterName); + return new ClusterPrivilegeService(m_apiVersion, clusterName); } /** @@ -506,7 +521,7 @@ public class ClusterService extends BaseService { @Path("{clusterName}/alerts") public AlertService getAlertService( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new AlertService(clusterName, null, null); + return new AlertService(m_apiVersion, clusterName, null, null); } /** @@ -523,7 +538,7 @@ public class ClusterService extends BaseService { public AlertHistoryService getAlertHistoryService( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new AlertHistoryService(clusterName, null, null); + return new AlertHistoryService(m_apiVersion, clusterName, null, null); } /** @@ -540,7 +555,7 @@ public class ClusterService extends BaseService { public AlertNoticeService getAlertNoticeService( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new AlertNoticeService(clusterName); + return new AlertNoticeService(m_apiVersion, clusterName); } /** @@ -556,7 +571,7 @@ public class ClusterService extends BaseService { @Path("{clusterName}/stack_versions") public ClusterStackVersionService getClusterStackVersionService(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new ClusterStackVersionService(clusterName); + return new ClusterStackVersionService(m_apiVersion, clusterName); } /** @@ -571,7 +586,7 @@ public class ClusterService extends BaseService { public UpgradeService getUpgradeService( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new UpgradeService(clusterName); + return new UpgradeService(m_apiVersion, clusterName); } /** @@ -586,7 +601,7 @@ public class ClusterService extends BaseService { public UpgradeSummaryService getUpgradeSummaryService( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new UpgradeSummaryService(clusterName); + return new UpgradeSummaryService(m_apiVersion, clusterName); } /** @@ -599,7 +614,7 @@ public class ClusterService extends BaseService { */ @Path("{clusterName}/rolling_upgrades_check") public PreUpgradeCheckService getPreUpgradeCheckService(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new PreUpgradeCheckService(clusterName); + return new PreUpgradeCheckService(m_apiVersion, clusterName); } /** @@ -609,7 +624,7 @@ public class ClusterService extends BaseService { public WidgetLayoutService getWidgetLayoutService(@Context javax.ws.rs.core.Request request, @PathParam ("clusterName") String clusterName) { - return new WidgetLayoutService(clusterName); + return new WidgetLayoutService(m_apiVersion, clusterName); } /** @@ -619,7 +634,7 @@ public class ClusterService extends BaseService { public WidgetService getWidgetService(@Context javax.ws.rs.core.Request request, @PathParam ("clusterName") String clusterName) { - return new WidgetService(clusterName); + return new WidgetService(m_apiVersion, clusterName); } /** @@ -633,7 +648,7 @@ public class ClusterService extends BaseService { public CredentialService getCredentials( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new CredentialService(clusterName); + return new CredentialService(m_apiVersion, clusterName); } /** @@ -648,7 +663,7 @@ public class ClusterService extends BaseService { public ClusterKerberosDescriptorService getCompositeKerberosDescriptor( @Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new ClusterKerberosDescriptorService(clusterName); + return new ClusterKerberosDescriptorService(m_apiVersion, clusterName); } /** @@ -662,7 +677,7 @@ public class ClusterService extends BaseService { @Path("{clusterName}/logging") public LoggingService getLogging(@Context javax.ws.rs.core.Request request, @PathParam("clusterName") String clusterName) { - return new LoggingService(clusterName); + return new LoggingService(m_apiVersion, clusterName); } // ----- helper methods ---------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java index e3150b0..3880bbc 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java @@ -32,6 +32,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -48,7 +49,8 @@ public class ClusterStackVersionService extends BaseService { * * @param clusterName name of the cluster */ - public ClusterStackVersionService(String clusterName) { + public ClusterStackVersionService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); this.clusterName = clusterName; } @@ -102,7 +104,7 @@ public class ClusterStackVersionService extends BaseService { final Map<Resource.Type, String> mapIds = new HashMap<Resource.Type, String>(); mapIds.put(Resource.Type.Cluster, clusterName); mapIds.put(Resource.Type.ClusterStackVersion, stackVersion); - return new RepositoryVersionService(mapIds); + return new RepositoryVersionService(m_apiVersion, mapIds); } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/CompatibleRepositoryVersionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/CompatibleRepositoryVersionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/CompatibleRepositoryVersionService.java index 12d6433..6e4d202 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/CompatibleRepositoryVersionService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/CompatibleRepositoryVersionService.java @@ -30,6 +30,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -47,7 +48,8 @@ public class CompatibleRepositoryVersionService extends BaseService { * * @param parentProperties extra properties to be inserted into created resource */ - public CompatibleRepositoryVersionService(Map<Resource.Type, String> parentProperties) { + public CompatibleRepositoryVersionService(ApiVersion apiVersion, Map<Resource.Type, String> parentProperties) { + super(apiVersion); parentKeyProperties = parentProperties; } @@ -94,7 +96,7 @@ public class CompatibleRepositoryVersionService extends BaseService { mapIds.putAll(parentKeyProperties); mapIds.put(Resource.Type.CompatibleRepositoryVersion, repositoryVersionId); - return new OperatingSystemService(mapIds); + return new OperatingSystemService(m_apiVersion, mapIds); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java index e7e0029..2fca698 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java @@ -20,6 +20,7 @@ package org.apache.ambari.server.api.services; import com.google.inject.Inject; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.controller.spi.ClusterController; import org.apache.ambari.server.controller.spi.Resource; @@ -56,7 +57,8 @@ public class ComponentService extends BaseService { * @param clusterName cluster id * @param serviceName service id */ - public ComponentService(String clusterName, String serviceName) { + public ComponentService(ApiVersion apiVersion, String clusterName, String serviceName) { + super(apiVersion); m_clusterName = clusterName; m_serviceName = serviceName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigGroupService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigGroupService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigGroupService.java index 39f1f55..46ce7c3 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigGroupService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigGroupService.java @@ -18,6 +18,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -47,7 +48,8 @@ public class ConfigGroupService extends BaseService { * Constructor * @param m_clusterName */ - public ConfigGroupService(String m_clusterName) { + public ConfigGroupService(ApiVersion apiVersion, String m_clusterName) { + super(apiVersion); this.m_clusterName = m_clusterName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigurationService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigurationService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigurationService.java index cfbfc7f..83a12f9 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigurationService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ConfigurationService.java @@ -28,6 +28,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import java.util.HashMap; @@ -47,13 +48,14 @@ public class ConfigurationService extends BaseService { * * @param clusterName cluster id */ - public ConfigurationService(String clusterName) { + public ConfigurationService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); m_clusterName = clusterName; } @Path("service_config_versions") public ServiceConfigVersionService getServiceConfigVersionService() { - return new ServiceConfigVersionService(m_clusterName); + return new ServiceConfigVersionService(m_apiVersion, m_clusterName); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/CredentialService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/CredentialService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/CredentialService.java index 01f8e8f..7604397 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/CredentialService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/CredentialService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -42,7 +43,8 @@ public class CredentialService extends BaseService { private final String clusterName; - public CredentialService(String clusterName) { + public CredentialService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); this.clusterName = clusterName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/FeedService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/FeedService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/FeedService.java index 6741303..5919f1d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/FeedService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/FeedService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -37,9 +38,12 @@ import java.util.Collections; /** * DR feed service. */ -@Path("/feeds/") public class FeedService extends BaseService { + public FeedService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Handles: GET /feeds/{feedName} * Get a specific feed. @@ -134,7 +138,7 @@ public class FeedService extends BaseService { */ @Path("{feedName}/instances") public InstanceService getHostHandler(@PathParam("feedName") String feedName) { - return new InstanceService(feedName); + return new InstanceService(m_apiVersion, feedName); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupPrivilegeService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupPrivilegeService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupPrivilegeService.java index 290d488..5afd459 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupPrivilegeService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupPrivilegeService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.servlet.http.HttpServletResponse; @@ -35,7 +36,8 @@ public class GroupPrivilegeService extends PrivilegeService { private final String groupName; - public GroupPrivilegeService(String groupName) { + public GroupPrivilegeService(ApiVersion apiVersion, String groupName) { + super(apiVersion); this.groupName = groupName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupService.java index 7ecd87f..bf24cf1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/GroupService.java @@ -29,6 +29,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import java.util.Collections; @@ -36,8 +37,11 @@ import java.util.Collections; /** * Service responsible for user groups requests. */ -@Path("/groups/") public class GroupService extends BaseService { + public GroupService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Gets all groups. * Handles: GET /groups requests. @@ -127,7 +131,7 @@ public class GroupService extends BaseService { */ @Path("{groupName}/members") public MemberService getMemberHandler(@PathParam("groupName") String groupName) { - return new MemberService(groupName); + return new MemberService(m_apiVersion, groupName); } /** @@ -137,7 +141,7 @@ public class GroupService extends BaseService { public PrivilegeService getPrivilegeService(@Context javax.ws.rs.core.Request request, @PathParam ("groupName") String groupName) { - return new GroupPrivilegeService(groupName); + return new GroupPrivilegeService(m_apiVersion, groupName); } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostComponentService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostComponentService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostComponentService.java index 4990ad7..4631e63 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostComponentService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostComponentService.java @@ -32,6 +32,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.controller.spi.Resource; @@ -55,7 +56,8 @@ public class HostComponentService extends BaseService { * @param clusterName cluster id * @param hostName host id */ - public HostComponentService(String clusterName, String hostName) { + public HostComponentService(ApiVersion apiVersion, String clusterName, String hostName) { + super(apiVersion); m_clusterName = clusterName; m_hostName = hostName; } @@ -249,6 +251,7 @@ public class HostComponentService extends BaseService { Map<Resource.Type,String> mapIds = new HashMap<Resource.Type, String>(); mapIds.put(Resource.Type.Cluster, clusterName); mapIds.put(Resource.Type.Host, hostName); + mapIds.put(Resource.Type.Service, null); mapIds.put(Resource.Type.HostComponent, hostComponentName); return createResource(Resource.Type.HostComponent, mapIds); @@ -259,6 +262,7 @@ public class HostComponentService extends BaseService { Map<Resource.Type,String> mapIds = new HashMap<Resource.Type, String>(); mapIds.put(Resource.Type.Cluster, m_clusterName); mapIds.put(Resource.Type.Host, m_hostName); + mapIds.put(Resource.Type.Service, null); mapIds.put(Resource.Type.Component, hostComponentName); http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostKerberosIdentityService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostKerberosIdentityService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostKerberosIdentityService.java index 624a335..5c0ffca 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostKerberosIdentityService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostKerberosIdentityService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.GET; @@ -55,7 +56,8 @@ public class HostKerberosIdentityService extends BaseService { * @param clusterName cluster name * @param hostName host name */ - public HostKerberosIdentityService(String clusterName, String hostName) { + public HostKerberosIdentityService(ApiVersion apiVersion, String clusterName, String hostName) { + super(apiVersion); this.clusterName = clusterName; this.hostName = hostName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java index 0ce29ae..c8225a8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java @@ -34,12 +34,12 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** * Service responsible for hosts resource requests. */ -@Path("/hosts/") public class HostService extends BaseService { /** @@ -50,7 +50,8 @@ public class HostService extends BaseService { /** * Constructor. */ - public HostService() { + public HostService(ApiVersion apiVersion) { + super(apiVersion); } /** @@ -58,7 +59,8 @@ public class HostService extends BaseService { * * @param clusterName cluster id */ - public HostService(String clusterName) { + public HostService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); m_clusterName = clusterName; } @@ -211,7 +213,7 @@ public class HostService extends BaseService { */ @Path("{hostName}/host_components") public HostComponentService getHostComponentHandler(@PathParam("hostName") String hostName) { - return new HostComponentService(m_clusterName, hostName); + return new HostComponentService(m_apiVersion, m_clusterName, hostName); } /** @@ -222,7 +224,7 @@ public class HostService extends BaseService { */ @Path("{hostName}/kerberos_identities") public HostKerberosIdentityService getHostKerberosIdentityHandler(@PathParam("hostName") String hostName) { - return new HostKerberosIdentityService(m_clusterName, hostName); + return new HostKerberosIdentityService(m_apiVersion, m_clusterName, hostName); } /** @@ -233,7 +235,7 @@ public class HostService extends BaseService { */ @Path("{hostName}/alerts") public AlertService getAlertHandler(@PathParam("hostName") String hostName) { - return new AlertService(m_clusterName, null, hostName); + return new AlertService(m_apiVersion, m_clusterName, null, hostName); } /** @@ -251,7 +253,7 @@ public class HostService extends BaseService { @Context javax.ws.rs.core.Request request, @PathParam("hostName") String hostName) { - return new AlertHistoryService(m_clusterName, null, hostName); + return new AlertHistoryService(m_apiVersion, m_clusterName, null, hostName); } /** @@ -268,7 +270,7 @@ public class HostService extends BaseService { public HostStackVersionService getHostStackVersionService(@Context javax.ws.rs.core.Request request, @PathParam("hostName") String hostName) { - return new HostStackVersionService(hostName, m_clusterName); + return new HostStackVersionService(m_apiVersion, hostName, m_clusterName); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostStackVersionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostStackVersionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostStackVersionService.java index f449052..331c920 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostStackVersionService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostStackVersionService.java @@ -31,6 +31,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -52,7 +53,8 @@ public class HostStackVersionService extends BaseService { * * @param hostName name of the host */ - public HostStackVersionService(String hostName, String clusterName) { + public HostStackVersionService(ApiVersion apiVersion, String hostName, String clusterName) { + super(apiVersion); this.hostName = hostName; this.clusterName = clusterName; } @@ -116,7 +118,7 @@ public class HostStackVersionService extends BaseService { final Map<Resource.Type, String> stackVersionProperties = new HashMap<Resource.Type, String>(); stackVersionProperties.put(Resource.Type.Host, hostName); stackVersionProperties.put(Resource.Type.HostStackVersion, stackVersionId); - return new RepositoryVersionService(stackVersionProperties); + return new RepositoryVersionService(m_apiVersion, stackVersionProperties); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/InstanceService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/InstanceService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/InstanceService.java index e771ccc..62531f1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/InstanceService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/InstanceService.java @@ -31,6 +31,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import java.util.HashMap; @@ -39,7 +40,6 @@ import java.util.Map; /** * Service responsible for instances resource requests. */ -@Path("/instances/") public class InstanceService extends BaseService { /** @@ -50,7 +50,8 @@ public class InstanceService extends BaseService { /** * Constructor. */ - public InstanceService() { + public InstanceService(ApiVersion apiVersion) { + super(apiVersion); } /** @@ -58,7 +59,8 @@ public class InstanceService extends BaseService { * * @param feedName feed id */ - public InstanceService(String feedName) { + public InstanceService(ApiVersion apiVersion, String feedName) { + super(apiVersion); m_feedName = feedName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/JobService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/JobService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/JobService.java index ab4b635..94a21c3 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/JobService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/JobService.java @@ -31,6 +31,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -48,7 +49,8 @@ public class JobService extends BaseService { * @param workflowId * workflow id */ - public JobService(String clusterName, String workflowId) { + public JobService(ApiVersion apiVersion, String clusterName, String workflowId) { + super(apiVersion); this.clusterName = clusterName; this.workflowId = workflowId; } @@ -95,7 +97,7 @@ public class JobService extends BaseService { @Path("{jobId}/taskattempts") public TaskAttemptService getTaskAttemptHandler( @PathParam("jobId") String jobId) { - return new TaskAttemptService(clusterName, workflowId, jobId); + return new TaskAttemptService(m_apiVersion, clusterName, workflowId, jobId); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/KerberosDescriptorService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/KerberosDescriptorService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/KerberosDescriptorService.java index 91e1dc5..a14bb2c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/KerberosDescriptorService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/KerberosDescriptorService.java @@ -1,6 +1,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -33,9 +34,12 @@ import java.util.Collections; * limitations under the License. */ -@Path("/kerberos_descriptors/") public class KerberosDescriptorService extends BaseService { + public KerberosDescriptorService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Handles: GET /kerberos_descriptors * Get all kerberos descriptors. http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/KeyService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/KeyService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/KeyService.java index 6d2d22f..bd44374 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/KeyService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/KeyService.java @@ -30,7 +30,6 @@ import javax.xml.bind.JAXBException; import java.io.IOException; import java.util.Collection; -@Path("/keys/") public class KeyService { private static final Logger log = LoggerFactory.getLogger(KeyService.class); private static PersistKeyValueImpl persistKeyVal; http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/LdapSyncEventService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/LdapSyncEventService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/LdapSyncEventService.java index bf4bcff..3b50c42 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/LdapSyncEventService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/LdapSyncEventService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -37,8 +38,11 @@ import java.util.Collections; /** * Service responsible for ldap sync event resource requests. */ -@Path("/ldap_sync_events/") public class LdapSyncEventService extends BaseService { + public LdapSyncEventService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Handles: GET /ldap_sync_events/{eventId} * Get a specific view. http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/LoggingService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/LoggingService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/LoggingService.java index c93f7bd..75e5fb0 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/LoggingService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/LoggingService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.services.serializers.ResultSerializer; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.AmbariManagementController; import org.apache.ambari.server.controller.AmbariServer; import org.apache.ambari.server.controller.internal.ResourceImpl; @@ -58,11 +59,13 @@ public class LoggingService extends BaseService { private final String clusterName; - public LoggingService(String clusterName) { - this(clusterName, new DefaultControllerFactory(), new LoggingRequestHelperFactoryImpl()); + public LoggingService(ApiVersion apiVersion, String clusterName) { + this(apiVersion, clusterName, new DefaultControllerFactory(), new LoggingRequestHelperFactoryImpl()); } - public LoggingService(String clusterName, ControllerFactory controllerFactory, LoggingRequestHelperFactory helperFactory) { + public LoggingService(ApiVersion apiVersion, String clusterName, ControllerFactory controllerFactory, + LoggingRequestHelperFactory helperFactory) { + super(apiVersion); this.clusterName = clusterName; this.controllerFactory = controllerFactory; this.helperFactory = helperFactory; http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/LogoutService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/LogoutService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/LogoutService.java index 02403f9..4e1e831 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/LogoutService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/LogoutService.java @@ -37,7 +37,6 @@ import org.springframework.security.core.context.SecurityContextHolder; * Service performing logout of current user */ @StaticallyInject -@Path("/logout") public class LogoutService { @Inject http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/MemberService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/MemberService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/MemberService.java index 28e53e6..8b01ea3 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/MemberService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/MemberService.java @@ -33,6 +33,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -49,7 +50,8 @@ public class MemberService extends BaseService { * * @param groupName name of the group */ - public MemberService(String groupName) { + public MemberService(ApiVersion apiVersion, String groupName) { + super(apiVersion); this.groupName = groupName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/OperatingSystemService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/OperatingSystemService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/OperatingSystemService.java index 531f964..0ea548d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/OperatingSystemService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/OperatingSystemService.java @@ -47,6 +47,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -64,7 +65,8 @@ public class OperatingSystemService extends BaseService { * * @param parentKeyProperties extra properties to be inserted into created resource */ - public OperatingSystemService(Map<Resource.Type, String> parentKeyProperties) { + public OperatingSystemService(ApiVersion apiVersion, Map<Resource.Type, String> parentKeyProperties) { + super(apiVersion); this.parentKeyProperties = parentKeyProperties; } @@ -108,7 +110,7 @@ public class OperatingSystemService extends BaseService { final Map<Resource.Type, String> mapIds = new HashMap<Resource.Type, String>(); mapIds.putAll(parentKeyProperties); mapIds.put(Resource.Type.OperatingSystem, osType); - return new RepositoryService(mapIds); + return new RepositoryService(m_apiVersion, mapIds); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/PermissionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PermissionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PermissionService.java index 3a1a875..3ddb53f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PermissionService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PermissionService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; import javax.ws.rs.DELETE; @@ -38,9 +39,12 @@ import java.util.Collections; /** * Service responsible for permission resource requests. */ -@Path("/permissions/") public class PermissionService extends BaseService { + public PermissionService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Handles: GET /permissions/{permissionID} * Get a specific permission. @@ -142,7 +146,7 @@ public class PermissionService extends BaseService { @Path("{permissionId}/authorizations") public RoleAuthorizationService getRoleAuthorizations( @Context javax.ws.rs.core.Request request, @PathParam("permissionId") String permissionId) { - return new RoleAuthorizationService(permissionId); + return new RoleAuthorizationService(m_apiVersion, permissionId); } // ----- helper methods ---------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/PersistKeyValueService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PersistKeyValueService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PersistKeyValueService.java index 83217c5..fa12be6 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PersistKeyValueService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PersistKeyValueService.java @@ -40,7 +40,6 @@ import org.apache.commons.logging.LogFactory; import com.google.inject.Inject; -@Path("/persist/") public class PersistKeyValueService { private static PersistKeyValueImpl persistKeyVal; private static Log LOG = LogFactory.getLog(PersistKeyValueService.class); http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/PreUpgradeCheckService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PreUpgradeCheckService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PreUpgradeCheckService.java index 0525b3a..d834227 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PreUpgradeCheckService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PreUpgradeCheckService.java @@ -27,6 +27,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import org.apache.ambari.server.controller.spi.Resource; /** @@ -44,7 +45,8 @@ public class PreUpgradeCheckService extends BaseService { * * @param clusterName cluster name */ - public PreUpgradeCheckService(String clusterName) { + public PreUpgradeCheckService(ApiVersion apiVersion, String clusterName) { + super(apiVersion); this.clusterName = clusterName; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/PrivilegeService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PrivilegeService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PrivilegeService.java index 2caa5d2..2f52ae7 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/PrivilegeService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/PrivilegeService.java @@ -19,6 +19,7 @@ package org.apache.ambari.server.api.services; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.util.ApiVersion; import javax.ws.rs.DELETE; import javax.ws.rs.GET; @@ -38,6 +39,10 @@ import javax.ws.rs.core.UriInfo; */ public abstract class PrivilegeService extends BaseService { + public PrivilegeService(ApiVersion apiVersion) { + super(apiVersion); + } + /** * Handles: GET /privileges/{privilegeID} * Get a specific privilege. http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/services/RecommendationService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/RecommendationService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/RecommendationService.java deleted file mode 100644 index 23248b3..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/RecommendationService.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * 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.services; - -import java.util.HashMap; -import java.util.Map; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; - -import org.apache.ambari.server.api.resources.ResourceInstance; -import org.apache.ambari.server.controller.spi.Resource; - -/** - * Service responsible for preparing recommendations for host-layout and - * configurations. - */ -@Path("/stacks/{stackName}/versions/{stackVersion}/recommendations") -public class RecommendationService extends BaseService { - - /** - * Returns host-layout recommendations for list of hosts and services. - * - * @param body http body - * @param headers http headers - * @param ui uri info - * @param stackName stack name - * @param stackVersion stack version - * @return recommendations for host-layout - */ - @POST - @Produces(MediaType.TEXT_PLAIN) - public Response getRecommendation(String body, @Context HttpHeaders headers, @Context UriInfo ui, - @PathParam("stackName") String stackName, @PathParam("stackVersion") String stackVersion) { - - return handleRequest(headers, body, ui, Request.Type.POST, - createRecommendationResource(stackName, stackVersion)); - } - - ResourceInstance createRecommendationResource(String stackName, String stackVersion) { - Map<Resource.Type, String> mapIds = new HashMap<Resource.Type, String>(); - mapIds.put(Resource.Type.Stack, stackName); - mapIds.put(Resource.Type.StackVersion, stackVersion); - - return createResource(Resource.Type.Recommendation, mapIds); - } - -}