blob: e19f8f6354012c81d6a504a3df8a37977943e186 [file] [log] [blame]
/**
* 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.controller;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.google.common.collect.Multimap;
import org.apache.ambari.server.state.DesiredConfig;
import org.apache.ambari.server.state.SecurityType;
import org.apache.ambari.server.state.State;
import org.apache.ambari.server.state.ClusterHealthReport;
public class ClusterResponse {
private final Long clusterId;
private final String clusterName;
private final Set<String> hostNames;
private final String desiredStackVersion;
private Map<String, DesiredConfig> desiredConfigs;
private Map<String, Collection<ServiceConfigVersionResponse>> desiredServiceConfigVersions;
private String provisioningState;
/**
* The cluster's security.
* <p/>
* See {@link org.apache.ambari.server.state.SecurityType} for relevant values.
*/
private String securityType;
private Integer totalHosts;
private ClusterHealthReport clusterHealthReport;
private Map<String, String> credentialStoreServiceProperties = null;
public ClusterResponse(Long clusterId, String clusterName,
State provisioningState, SecurityType securityType, Set<String> hostNames, Integer totalHosts,
String desiredStackVersion, ClusterHealthReport clusterHealthReport) {
super();
this.clusterId = clusterId;
this.clusterName = clusterName;
this.hostNames = hostNames;
this.totalHosts = totalHosts;
this.desiredStackVersion = desiredStackVersion;
this.clusterHealthReport = clusterHealthReport;
if (null != provisioningState) {
this.provisioningState = provisioningState.name();
}
if (null == securityType) {
this.securityType = SecurityType.NONE.name();
} else {
this.securityType = securityType.name();
}
}
/**
* @return the clusterId
*/
public Long getClusterId() {
return clusterId;
}
/**
* @return the clusterName
*/
public String getClusterName() {
return clusterName;
}
/**
* @return the host names
*/
public Set<String> getHostNames() {
return hostNames;
}
/**
* Gets whether the cluster is still initializing or has finished with its
* deployment requests.
*
* @return either {@code INIT} or {@code INSTALLED}, never {@code null}.
*/
public String getProvisioningState() {
return provisioningState;
}
/**
* Gets the cluster's security type.
* <p/>
* See {@link org.apache.ambari.server.state.SecurityType} for relevant values.
*
* @return the cluster's security type
*/
public String getSecurityType() {
return securityType;
}
/**
* Sets the cluster's security type.
* <p/>
* See {@link org.apache.ambari.server.state.SecurityType} for relevant values.
*
* @param securityType a String declaring the cluster's security type
*/
public void setSecurityType(String securityType) {
this.securityType = securityType;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{"
+ " clusterName=" + clusterName
+ ", clusterId=" + clusterId
+ ", provisioningState=" + provisioningState
+ ", desiredStackVersion=" + desiredStackVersion
+ ", totalHosts=" + totalHosts
+ ", hosts=[");
if (hostNames != null) {
int i = 0;
for (String hostName : hostNames) {
if (i != 0) {
sb.append(",");
}
++i;
sb.append(hostName);
}
}
sb.append("]"
+ ", clusterHealthReport= " + clusterHealthReport
+ "}");
return sb.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ClusterResponse that = (ClusterResponse) o;
if (clusterId != null ?
!clusterId.equals(that.clusterId) : that.clusterId != null) {
return false;
}
if (clusterName != null ?
!clusterName.equals(that.clusterName) : that.clusterName != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = clusterId != null ? clusterId.intValue() : 0;
result = 71 * result + (clusterName != null ? clusterName.hashCode() : 0);
return result;
}
/**
* @return the desiredStackVersion
*/
public String getDesiredStackVersion() {
return desiredStackVersion;
}
/**
* @param configs
*/
public void setDesiredConfigs(Map<String, DesiredConfig> configs) {
desiredConfigs = configs;
}
/**
* @return the desired configs
*/
public Map<String, DesiredConfig> getDesiredConfigs() {
return desiredConfigs;
}
/**
* @return total number of hosts in the cluster
*/
public Integer getTotalHosts() {
return totalHosts;
}
/**
* @return cluster health report
*/
public ClusterHealthReport getClusterHealthReport() {
return clusterHealthReport;
}
public Map<String, Collection<ServiceConfigVersionResponse>> getDesiredServiceConfigVersions() {
return desiredServiceConfigVersions;
}
public void setDesiredServiceConfigVersions(Map<String, Collection<ServiceConfigVersionResponse>> desiredServiceConfigVersions) {
this.desiredServiceConfigVersions = desiredServiceConfigVersions;
}
public void setCredentialStoreServiceProperties(Map<String, String> credentialServiceProperties) {
this.credentialStoreServiceProperties = credentialServiceProperties;
}
public Map<String, String> getCredentialStoreServiceProperties() {
return credentialStoreServiceProperties;
}
}