| /** |
| * 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 org.apache.ambari.server.state.AutoDeployInfo; |
| import org.apache.ambari.server.state.BulkCommandDefinition; |
| import org.apache.ambari.server.state.ComponentInfo; |
| import org.apache.ambari.server.state.CustomCommandDefinition; |
| |
| import java.util.ArrayList; |
| import java.util.Collections; |
| import java.util.List; |
| |
| /** |
| * Stack service component response. |
| */ |
| public class StackServiceComponentResponse { |
| /** |
| * stack name |
| */ |
| private String stackName; |
| |
| /** |
| * stack version |
| */ |
| private String stackVersion; |
| |
| /** |
| * service name |
| */ |
| private String serviceName; |
| |
| /** |
| * component name |
| */ |
| private String componentName; |
| |
| /** |
| * component display name |
| */ |
| private String componentDisplayName; |
| |
| /** |
| * component category |
| */ |
| private String componentCategory; |
| |
| /** |
| * is component a client component |
| */ |
| private boolean isClient; |
| |
| /** |
| * is component a master component |
| */ |
| private boolean isMaster; |
| |
| /** |
| * cardinality requirement |
| */ |
| private String cardinality; |
| |
| /** |
| * does the component need to advertise a version |
| */ |
| private boolean versionAdvertised; |
| |
| /** |
| * Whether the component can be decommissioned. |
| * */ |
| private String decommissionAllowed; |
| |
| /** |
| * auto deploy information |
| */ |
| private AutoDeployInfo autoDeploy; |
| |
| /** |
| * The names of the custom commands defined for the component. |
| */ |
| private List<String> customCommands; |
| |
| /** |
| * Enabled for auto start or not. |
| */ |
| private boolean recoveryEnabled; |
| |
| private String bulkCommandsDisplayName; |
| private String bulkCommandMasterComponentName; |
| private boolean hasBulkCommands; |
| |
| /** |
| * Whether the component can be reassigned to a different node. |
| * */ |
| private String reassignAllowed; |
| |
| /** |
| * Constructor. |
| * |
| * @param component |
| * the component to generate the response from (not {@code null}). |
| */ |
| public StackServiceComponentResponse(ComponentInfo component) { |
| componentName = component.getName(); |
| componentDisplayName = component.getDisplayName(); |
| componentCategory = component.getCategory(); |
| isClient = component.isClient(); |
| isMaster = component.isMaster(); |
| cardinality = component.getCardinality(); |
| versionAdvertised = component.isVersionAdvertised(); |
| decommissionAllowed = component.getDecommissionAllowed(); |
| autoDeploy = component.getAutoDeploy(); |
| recoveryEnabled = component.isRecoveryEnabled(); |
| hasBulkCommands = componentHasBulkCommands(component); |
| bulkCommandsDisplayName = getBulkCommandsDisplayName(component); |
| bulkCommandMasterComponentName = getBulkCommandsMasterComponentName(component); |
| reassignAllowed = component.getReassignAllowed(); |
| |
| // the custom command names defined for this component |
| List<CustomCommandDefinition> definitions = component.getCustomCommands(); |
| if (null == definitions || definitions.size() == 0) { |
| customCommands = Collections.emptyList(); |
| } else { |
| customCommands = new ArrayList<String>(definitions.size()); |
| for (CustomCommandDefinition command : definitions) { |
| customCommands.add(command.getName()); |
| } |
| } |
| } |
| |
| /** |
| * Get bulk command master component name |
| * |
| * @param component |
| * the component to generate the response from (not {@code null}). |
| * @return master component name |
| */ |
| private String getBulkCommandsMasterComponentName(ComponentInfo component) { |
| BulkCommandDefinition o = component.getBulkCommandDefinition(); |
| if (o == null) { |
| return ""; |
| } else { |
| return o.getMasterComponent(); |
| } |
| } |
| |
| /** |
| * Get the display name shown on the user interface which bulk commands are grouped under |
| * |
| * @param component |
| * the component to generate the response from (not {@code null}). |
| * @return display name of the bulk command group |
| */ |
| private String getBulkCommandsDisplayName(ComponentInfo component) { |
| BulkCommandDefinition o = component.getBulkCommandDefinition(); |
| if (o == null) { |
| return ""; |
| } else { |
| return o.getDisplayName(); |
| } |
| } |
| |
| /** |
| * Determine if the component has bulk commands |
| * |
| * @param component |
| * the component to generate the response from (not {@code null}). |
| * @return boolean |
| */ |
| private boolean componentHasBulkCommands(ComponentInfo component) { |
| BulkCommandDefinition o = component.getBulkCommandDefinition(); |
| if (o == null) { |
| return false; |
| } else { |
| return o.getDisplayName() != null && !o.getDisplayName().trim().isEmpty(); |
| } |
| } |
| |
| /** |
| * Get stack name. |
| * |
| * @return stack name |
| */ |
| public String getStackName() { |
| return stackName; |
| } |
| |
| /** |
| * Set stack name. |
| * |
| * @param stackName stack name |
| */ |
| public void setStackName(String stackName) { |
| this.stackName = stackName; |
| } |
| |
| /** |
| * Get stack version. |
| * |
| * @return stack version |
| */ |
| public String getStackVersion() { |
| return stackVersion; |
| } |
| |
| /** |
| * Set stack version. |
| * |
| * @param stackVersion stack version |
| */ |
| public void setStackVersion(String stackVersion) { |
| this.stackVersion = stackVersion; |
| } |
| |
| /** |
| * Get service name. |
| * |
| * @return service name |
| */ |
| public String getServiceName() { |
| return serviceName; |
| } |
| |
| /** |
| * Set service name. |
| * |
| * @param serviceName service name |
| */ |
| public void setServiceName(String serviceName) { |
| this.serviceName = serviceName; |
| } |
| |
| /** |
| * Get component name. |
| * |
| * @return component name |
| */ |
| public String getComponentName() { |
| return componentName; |
| } |
| |
| /** |
| * Set component name. |
| * |
| * @param componentName component name |
| */ |
| public void setComponentName(String componentName) { |
| this.componentName = componentName; |
| } |
| |
| /** |
| * Get component display name. |
| * |
| * @return component display name |
| */ |
| |
| public String getComponentDisplayName() { |
| return componentDisplayName; |
| } |
| |
| /** |
| * Set component display name. |
| * |
| * @param componentDisplayName component display name |
| */ |
| public void setComponentDisplayName(String componentDisplayName) { |
| this.componentDisplayName = componentDisplayName; |
| } |
| |
| /** |
| * Get component category. |
| * |
| * @return component category |
| */ |
| public String getComponentCategory() { |
| return componentCategory; |
| } |
| |
| /** |
| * Set the component category. |
| * |
| * @param componentCategory component category |
| */ |
| public void setComponentCategory(String componentCategory) { |
| this.componentCategory = componentCategory; |
| } |
| |
| /** |
| * Determine whether the component is a client component. |
| * |
| * @return whether the component is a client component |
| */ |
| public boolean isClient() { |
| return isClient; |
| } |
| |
| /** |
| * Set whether the component is a client component. |
| * |
| * @param isClient whether the component is a client |
| */ |
| public void setClient(boolean isClient) { |
| this.isClient = isClient; |
| } |
| |
| /** |
| * Determine whether the component is a master component. |
| * |
| * @return whether the component is a master component |
| */ |
| public boolean isMaster() { |
| return isMaster; |
| } |
| |
| /** |
| * Set whether the component is a master component. |
| * |
| * @param isMaster whether the component is a master |
| */ |
| public void setMaster(boolean isMaster) { |
| this.isMaster = isMaster; |
| } |
| |
| /** |
| * Get cardinality requirement of component. |
| * |
| * @return component cardinality requirement |
| */ |
| public String getCardinality() { |
| return cardinality; |
| } |
| |
| /** |
| * Set component cardinality requirement. |
| * |
| * @param cardinality cardinality requirement |
| */ |
| public void setCardinality(String cardinality) { |
| this.cardinality = cardinality; |
| } |
| |
| |
| /** |
| * Get whether the components needs to advertise a version. |
| * |
| * @return Whether the components needs to advertise a version |
| */ |
| public boolean isVersionAdvertised() { |
| return versionAdvertised; |
| } |
| |
| /** |
| * Set whether the component needs to advertise a version. |
| * |
| * @param versionAdvertised whether the component needs to advertise a version |
| */ |
| public void setVersionAdvertised(boolean versionAdvertised) { |
| this.versionAdvertised = versionAdvertised; |
| } |
| |
| /** |
| * Get whether the components can be decommissioned. |
| * |
| * @return Whether the components can be decommissioned |
| */ |
| public boolean isDecommissionAlllowed() { |
| if (decommissionAllowed != null && decommissionAllowed.equals("true")) { |
| return true; |
| } else { |
| return false; |
| } |
| } |
| |
| /** |
| * Set whether the component can be decommissioned. |
| * |
| * @param decommissionAllowed whether the component can be decommissioned |
| */ |
| public void setDecommissionAllowed(String decommissionAllowed) { |
| this.decommissionAllowed = decommissionAllowed; |
| } |
| |
| /** |
| * Get whether the components can be reassigned. |
| * |
| * @return Whether the components can be reassigned |
| */ |
| public boolean isReassignAlllowed() { |
| if (reassignAllowed != null && reassignAllowed.equals("true")) { |
| return true; |
| } else { |
| return false; |
| } |
| } |
| |
| /** |
| * Set whether the component can be reassigned. |
| * |
| * @param reassignAllowed whether the component can be reassigned |
| */ |
| public void setReassignAllowed(String reassignAllowed) { |
| this.reassignAllowed = reassignAllowed; |
| } |
| |
| /** |
| * Get whether auto start is enabled. |
| * |
| * @return True or false. |
| */ |
| public boolean isRecoveryEnabled() { |
| return recoveryEnabled; |
| } |
| |
| /** |
| * Set whether auto start is enabled. |
| * |
| * @param recoveryEnabled True or false. |
| */ |
| public void setRecoveryEnabled(boolean recoveryEnabled) { |
| this.recoveryEnabled = recoveryEnabled; |
| } |
| |
| |
| /** |
| * Get auto deploy information. |
| * |
| * @return auto deploy information |
| */ |
| public AutoDeployInfo getAutoDeploy() { |
| return autoDeploy; |
| } |
| |
| /** |
| * Set auto deploy information. |
| * |
| * @param autoDeploy auto deploy info |
| */ |
| public void setAutoDeploy(AutoDeployInfo autoDeploy) { |
| this.autoDeploy = autoDeploy; |
| } |
| |
| /** |
| * Gets the names of all of the custom commands for this component. |
| * |
| * @return the commands or an empty list (never {@code null}). |
| */ |
| public List<String> getCustomCommands() { |
| return customCommands; |
| } |
| |
| public boolean hasBulkCommands(){ |
| return hasBulkCommands; |
| } |
| |
| public String getBulkCommandsDisplayName(){ |
| return bulkCommandsDisplayName == null ? "":bulkCommandsDisplayName; |
| } |
| |
| public String getBulkCommandsMasterComponentName(){ |
| return bulkCommandMasterComponentName == null ? "":bulkCommandMasterComponentName; |
| } |
| } |