/**
* 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.HashMap;
import java.util.Map;
/**
* This class encapsulates a configuration update request.
* The configuration properties are grouped at service level. It is assumed that
* different components of a service don't overload same property name.
*/
public class ConfigurationRequest {
private String clusterName;
private String type;
private String tag;
private Long version;
private String serviceConfigVersionNote;
private Map<String, String> configs;
private boolean selected = true;
private Map<String, Map<String, String>> configsAttributes;
private boolean includeProperties;
public ConfigurationRequest() {
configs = new HashMap<>();
configsAttributes = new HashMap<>();
}
public ConfigurationRequest(String clusterName,
String type,
String tag,
Map<String, String> configs,
Map<String, Map<String, String>> configsAttributes) {
this.clusterName = clusterName;
this.configs = configs;
this.type = type;
this.tag = tag;
this.configs = configs;
this.configsAttributes = configsAttributes;
this.includeProperties = (type != null && tag != null);
}
/**
* @return the type
*/
public String getType() {
return type;
}
/**
* @param type the type to set
*/
public void setType(String type) {
this.type = type;
}
/**
* @return the versionTag
*/
public String getVersionTag() {
return tag;
}
/**
* @param versionTag the versionTag to set
*/
public void setVersionTag(String versionTag) {
this.tag = versionTag;
}
/**
* @return the configs
*/
public Map<String, String> getProperties() {
return configs;
}
/**
* @param configs the configs to set
*/
public void setProperties(Map<String, String> configs) {
this.configs = configs;
}
/**
* @return the clusterName
*/
public String getClusterName() {
return clusterName;
}
/**
* @param clusterName the clusterName to set
*/
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
/**
* Sets if the configuration is selected
* @param selected <code>true</code> if the configuration is selected.
*/
public void setSelected(boolean selected) {
this.selected = selected;
}
/**
* Gets if the configuration is to be selected.
* @return <code>true</code> if the configuration is selected.
*/
public boolean isSelected() {
return selected;
}
/**
* Set whether properties should be included.
*
* @param includeProperties whether properties should be included
*/
public void setIncludeProperties(boolean includeProperties) {
this.includeProperties = includeProperties;
}
/**
* Determine whether properties should be included.
*
* @return true if properties should be included; false otherwise
*/
public boolean includeProperties() {
return this.includeProperties;
}
/**
* @return Attributes of configs
*/
public Map<String, Map<String, String>> getPropertiesAttributes() {
return configsAttributes;
}
public void setPropertiesAttributes(
Map<String, Map<String, String>> configsAttributes) {
this.configsAttributes = configsAttributes;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public String getServiceConfigVersionNote() {
return serviceConfigVersionNote;
}
public void setServiceConfigVersionNote(String serviceConfigVersionNote) {
this.serviceConfigVersionNote = serviceConfigVersionNote;
}
}