/** * 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.List; import java.util.Map; import java.util.Set; import org.apache.ambari.server.state.SecurityType; /** * Used for create Cluster */ public class ClusterRequest { private Long clusterId; // for GET private String clusterName; // for GET/CREATE/UPDATE private String stackVersion; // for CREATE/UPDATE private String provisioningState; // for GET/CREATE/UPDATE /** * The cluster's security type * <p/> * See {@link org.apache.ambari.server.state.SecurityType} for relevant values. */ private SecurityType securityType; // for GET/CREATE/UPDATE Set<String> hostNames; // CREATE/UPDATE private List<ConfigurationRequest> configs = null; private ServiceConfigVersionRequest serviceConfigVersionRequest = null; /** * The cluster session attributes. */ private final Map<String, Object> sessionAttributes; private String repositoryVersion = null; // ----- Constructors ------------------------------------------------------ public ClusterRequest(Long clusterId, String clusterName, String stackVersion, Set<String> hostNames) { this(clusterId, clusterName, null, null, stackVersion, hostNames); } public ClusterRequest(Long clusterId, String clusterName, String provisioningState, SecurityType securityType, String stackVersion, Set<String> hostNames) { this(clusterId, clusterName, provisioningState, securityType, stackVersion, hostNames, null); } public ClusterRequest(Long clusterId, String clusterName, String provisioningState, SecurityType securityType, String stackVersion, Set<String> hostNames, Map<String, Object> sessionAttributes) { super(); this.clusterId = clusterId; this.clusterName = clusterName; this.provisioningState = provisioningState; this.securityType = securityType; this.stackVersion = stackVersion; this.hostNames = hostNames; this.sessionAttributes = sessionAttributes; } // ----- ClusterRequest ---------------------------------------------------- /** * @return the clusterId */ public Long getClusterId() { return clusterId; } /** * @return the clusterName */ public String getClusterName() { return clusterName; } /** * Gets whether the cluster is still initializing or has finished with its * deployment requests. * * @return either {@code INIT} or {@code INSTALLED} or {@code null} if not set * on the request. */ public String getProvisioningState(){ return provisioningState; } /** * Sets whether the cluster is still initializing or has finished with its * deployment requests. * * @param provisioningState * either {@code INIT} or {@code INSTALLED}, or {@code null} if not * set on the request. */ public void setProvisioningState(String provisioningState) { this.provisioningState = provisioningState; } /** * Gets the cluster's security type. * <p/> * See {@link org.apache.ambari.server.state.SecurityType} for relevant values. * * @return a SecurityType declaring the security type; or {@code null} if not set set on the request */ public SecurityType getSecurityType() { return securityType; } /** * Sets the cluster's security type. * <p/> * See {@link org.apache.ambari.server.state.SecurityType} for relevant values. * * @param securityType a SecurityType declaring the cluster's security type; or {@code null} if not * set on the request */ public void setSecurityType(SecurityType securityType) { this.securityType = securityType; } /** * @return the stackVersion */ public String getStackVersion() { return stackVersion; } /** * @param clusterId the clusterId to set */ public void setClusterId(Long clusterId) { this.clusterId = clusterId; } /** * @param clusterName the clusterName to set */ public void setClusterName(String clusterName) { this.clusterName = clusterName; } /** * @param stackVersion the stackVersion to set */ public void setStackVersion(String stackVersion) { this.stackVersion = stackVersion; } public Set<String> getHostNames() { return hostNames; } public void setHostNames(Set<String> hostNames) { this.hostNames = hostNames; } /** * Sets the configs requests (if any). * * @param configRequests the list of configuration requests */ public void setDesiredConfig(List<ConfigurationRequest> configRequests) { configs = configRequests; } /** * Gets any configuration-based request (if any). * @return the list of configuration requests, * or <code>null</code> if none is set. */ public List<ConfigurationRequest> getDesiredConfig() { return configs; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{" + " clusterName=").append(clusterName) .append(", clusterId=").append(clusterId) .append(", provisioningState=").append(provisioningState) .append(", securityType=").append(securityType) .append(", stackVersion=").append(stackVersion) .append(", desired_scv=").append(serviceConfigVersionRequest) .append(", hosts=["); if (hostNames != null) { int i = 0; for (String hostName : hostNames) { if (i != 0) { sb.append(","); } ++i; sb.append(hostName); } } sb.append("] }"); return sb.toString(); } public ServiceConfigVersionRequest getServiceConfigVersionRequest() { return serviceConfigVersionRequest; } /** * Get the session attributes of this request. * * @return the session attributes; may be null */ public Map<String, Object> getSessionAttributes() { return sessionAttributes; } public void setServiceConfigVersionRequest(ServiceConfigVersionRequest serviceConfigVersionRequest) { this.serviceConfigVersionRequest = serviceConfigVersionRequest; } /** * @param version the repo version to use */ public void setRepositoryVersion(String version) { repositoryVersion = version; } /** * @return the repo version to use */ public String getRepositoryVersion() { return repositoryVersion; } }