You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2017/10/02 16:51:05 UTC
ambari git commit: AMBARI-22036 : Update services API to explicitly
take stack id as a parameter (mradhakrishnan)
Repository: ambari
Updated Branches:
refs/heads/branch-feature-AMBARI-14714 4a278c1ce -> 1a076807f
AMBARI-22036 : Update services API to explicitly take stack id as a parameter (mradhakrishnan)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1a076807
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1a076807
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1a076807
Branch: refs/heads/branch-feature-AMBARI-14714
Commit: 1a076807ff449fffcb4ffc33fb9ec3f250c0bcd9
Parents: 4a278c1
Author: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
Authored: Mon Oct 2 09:50:08 2017 -0700
Committer: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
Committed: Mon Oct 2 09:50:08 2017 -0700
----------------------------------------------------------------------
.../server/api/services/AmbariMetaInfo.java | 6 ++--
.../server/controller/ServiceRequest.java | 30 +++++++++++++++++---
.../internal/ServiceResourceProvider.java | 25 +++++++++++++---
.../apache/ambari/server/state/StackInfo.java | 4 +--
.../ambari/server/topology/AmbariContext.java | 2 +-
5 files changed, 53 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/1a076807/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 843b032..fd15105 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
@@ -552,12 +552,12 @@ public class AmbariMetaInfo {
return getService(stackId.getStackName(), stackId.getStackVersion(), service.getName());
}
- public ServiceInfo getService(String stackName, String version, String serviceDisplayName) throws AmbariException {
- ServiceInfo service = getStack(stackName, version).getService(serviceDisplayName);
+ public ServiceInfo getService(String stackName, String version, String serviceName) throws AmbariException {
+ ServiceInfo service = getStack(stackName, version).getService(serviceName);
if (service == null) {
throw new StackAccessException("stackName=" + stackName + ", stackVersion=" +
- version + ", serviceDisplayName=" + serviceDisplayName);
+ version + ", serviceName=" + serviceName);
}
return service;
http://git-wip-us.apache.org/repos/asf/ambari/blob/1a076807/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java
index b084582..59a700e 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java
@@ -18,6 +18,7 @@
package org.apache.ambari.server.controller;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
+import org.apache.ambari.server.state.StackId;
import io.swagger.annotations.ApiModelProperty;
@@ -32,6 +33,8 @@ public class ServiceRequest {
private String credentialStoreEnabled; // CREATE/UPDATE/GET
private String credentialStoreSupported; //GET
+ private StackId desiredStackId;
+
private Long desiredRepositoryVersionId;
/**
* Short-lived object that gets set while validating a request
@@ -39,8 +42,8 @@ public class ServiceRequest {
private RepositoryVersionEntity resolvedRepository;
public ServiceRequest(String clusterName, String serviceGroupName, String serviceName,
- Long desiredRepositoryVersionId, String desiredState) {
- this(clusterName, serviceGroupName, serviceName, serviceName, desiredRepositoryVersionId, desiredState, null);
+ Long desiredRepositoryVersionId, String desiredState, StackId desiredStackId) {
+ this(clusterName, serviceGroupName, serviceName, serviceName, desiredRepositoryVersionId, desiredState, null,desiredStackId );
}
public ServiceRequest(String clusterName,
@@ -49,7 +52,8 @@ public class ServiceRequest {
String serviceDisplayName,
Long desiredRepositoryVersionId,
String desiredState,
- String credentialStoreEnabled) {
+ String credentialStoreEnabled,
+ StackId desiredStackId) {
this.clusterName = clusterName;
this.serviceGroupName = serviceGroupName;
this.serviceName = serviceName;
@@ -63,6 +67,7 @@ public class ServiceRequest {
// Credential store supported cannot be changed after
// creation since it comes from the stack definition.
// We can update credential store enabled alone.
+ this.desiredStackId = desiredStackId;
}
/**
@@ -155,6 +160,22 @@ public class ServiceRequest {
@ApiModelProperty(name = "credential_store_supporteds")
public void setCredentialStoreSupported(String credentialStoreSupported) { this.credentialStoreSupported = credentialStoreSupported; }
+
+ /***
+ *
+ * @return associated stackid with the service
+ */
+ public StackId getDesiredStackId() {
+ return desiredStackId;
+ }
+
+ /***
+ * @param desiredStackId associated with the service
+ */
+ public void setDesiredStackId(StackId desiredStackId) {
+ this.desiredStackId = desiredStackId;
+ }
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@@ -164,7 +185,8 @@ public class ServiceRequest {
+ ", desiredState=" + desiredState
+ ", maintenanceState=" + maintenanceState
+ ", credentialStoreEnabled=" + credentialStoreEnabled
- + ", credentialStoreSupported=" + credentialStoreSupported);
+ + ", credentialStoreSupported=" + credentialStoreSupported
+ + ", desiredStackId=" + desiredStackId);
return sb.toString();
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/1a076807/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
index ad0f4ec7..f8eb878 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
@@ -427,6 +427,7 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider
private ServiceRequest getRequest(Map<String, Object> properties) {
String desiredRepoId = (String) properties.get(SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID);
+ String stackid = (String) properties.get(SERVICE_DESIRED_STACK_PROPERTY_ID);
ServiceRequest svcRequest = new ServiceRequest(
(String) properties.get(SERVICE_CLUSTER_NAME_PROPERTY_ID),
@@ -435,7 +436,8 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider
(String) properties.get(SERVICE_SERVICE_DISPLAY_NAME_PROPERTY_ID),
null == desiredRepoId ? null : Long.valueOf(desiredRepoId),
(String) properties.get(SERVICE_SERVICE_STATE_PROPERTY_ID),
- (String) properties.get(SERVICE_CREDENTIAL_STORE_ENABLED_PROPERTY_ID));
+ (String) properties.get(SERVICE_CREDENTIAL_STORE_ENABLED_PROPERTY_ID),
+ null == stackid ? null : new StackId(stackid));
Object o = properties.get(SERVICE_MAINTENANCE_STATE_PROPERTY_ID);
if (null != o) {
@@ -478,7 +480,7 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider
throw new AmbariException("Could not find any repository on the request.");
}
- Service s = cluster.addService(sg, request.getServiceName(), request.getServiceDisplayName(), repositoryVersion);
+ Service s = cluster.addService(sg, request.getServiceName(), request.getServiceName(), repositoryVersion);
if (repositoryVersion.getType() != RepositoryType.STANDARD
&& cluster.getProvisioningState() == State.INIT) {
throw new AmbariException(String.format(
@@ -1087,10 +1089,13 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider
final String serviceGroupName = request.getServiceGroupName();
final String serviceName = request.getServiceName();
final String serviceDisplayName = request.getServiceDisplayName();
+ final StackId desiredStackId = request.getDesiredStackId();
Validate.notNull(clusterName, "Cluster name should be provided when creating a service");
Validate.notNull(serviceGroupName, "Service group name should be provided when creating a service");
Validate.notEmpty(serviceName, "Service name should be provided when creating a service");
Validate.notEmpty(serviceDisplayName, "Service display name should be provided when creating a service");
+ //Todo Add after UI is ready
+ //Validate.notNull(desiredStackId, "Service display name should be provided when creating a service");
if (LOG.isDebugEnabled()) {
LOG.debug("Received a createService request, clusterId={}, serviceName={}, request={}", clusterName, serviceName, request);
@@ -1142,13 +1147,24 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider
if (null == desiredRepositoryVersion) {
Set<Long> repoIds = new HashSet<>();
- for (Service service : cluster.getServices().values()) {
- RepositoryVersionEntity serviceRepo = service.getDesiredRepositoryVersion();
+ if(desiredStackId != null) {
+ //Todo : How to filter out the right repoversion entity based on the stack id?
+ List<RepositoryVersionEntity> list = repositoryVersionDAO.findByStack(desiredStackId);
+ RepositoryVersionEntity serviceRepo = list.remove(0);
if (null != serviceRepo.getParentId()) {
repoIds.add(serviceRepo.getParentId());
} else {
repoIds.add(serviceRepo.getId());
}
+ } else { //Todo : Remove after UI is ready
+ for (Service service : cluster.getServices().values()) {
+ RepositoryVersionEntity serviceRepo = service.getDesiredRepositoryVersion();
+ if (null != serviceRepo.getParentId()) {
+ repoIds.add(serviceRepo.getParentId());
+ } else {
+ repoIds.add(serviceRepo.getId());
+ }
+ }
}
LOG.info("{} was not specified; the following repository ids were found: {}",
@@ -1175,6 +1191,7 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider
}
StackId stackId = repositoryVersion.getStackId();
+ //StackId stackId = desiredStackId; //Todo Replace after UI is ready
request.setResolvedRepository(repositoryVersion);
http://git-wip-us.apache.org/repos/asf/ambari/blob/1a076807/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
index 4b4e43d..ab0e368 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
@@ -172,10 +172,10 @@ public class StackInfo implements Comparable<StackInfo>, Validable {
return services;
}
- public ServiceInfo getService(String serviceDisplayName) {
+ public ServiceInfo getService(String serviceName) {
Collection<ServiceInfo> services = getServices();
for (ServiceInfo service : services) {
- if (service.getName().equals(serviceDisplayName)) {
+ if (service.getName().equals(serviceName)) {
return service;
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/1a076807/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
index 57e1160..5af2a86 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
@@ -329,7 +329,7 @@ public class AmbariContext {
for (String service : services) {
String credentialStoreEnabled = topology.getBlueprint().getCredentialStoreEnabled(service);
serviceRequests.add(new ServiceRequest(clusterName, null, service, service,
- repositoryVersionId, null, credentialStoreEnabled));
+ repositoryVersionId, null, credentialStoreEnabled, null));
for (String component : topology.getBlueprint().getComponents(service)) {
String recoveryEnabled = topology.getBlueprint().getRecoveryEnabled(service, component);