/** * 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.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ambari.server.controller.internal.RequestOperationLevel; import org.apache.ambari.server.controller.internal.RequestResourceFilter; /** * Helper class to capture details used to create action or custom commands */ public class ExecuteActionRequest { private final String clusterName; private final String commandName; private final List<RequestResourceFilter> resourceFilters; private RequestOperationLevel operationLevel = null; private String actionName; private Map<String, String> parameters; private boolean exclusive; public ExecuteActionRequest(String clusterName, String commandName, String actionName, List<RequestResourceFilter> resourceFilters, RequestOperationLevel operationLevel, Map<String, String> parameters, boolean exclusive) { this(clusterName, commandName, parameters, exclusive); this.actionName = actionName; if (resourceFilters != null) { this.resourceFilters.addAll(resourceFilters); } this.operationLevel = operationLevel; } /** * Create an ExecuteActionRequest to execute a command. * No filters. */ public ExecuteActionRequest(String clusterName, String commandName, Map<String, String> parameters, boolean exclusive) { this.clusterName = clusterName; this.commandName = commandName; this.actionName = null; this.parameters = new HashMap<>(); if (parameters != null) { this.parameters.putAll(parameters); } this.resourceFilters = new ArrayList<>(); this.exclusive = exclusive; } public String getClusterName() { return clusterName; } public String getCommandName() { return commandName; } public String getActionName() { return actionName; } public List<RequestResourceFilter> getResourceFilters() { return resourceFilters; } public RequestOperationLevel getOperationLevel() { return operationLevel; } public Map<String, String> getParameters() { return parameters; } public boolean isExclusive() { return exclusive; } public void setExclusive(boolean isExclusive) { this.exclusive = isExclusive; } public Boolean isCommand() { return actionName == null || actionName.isEmpty(); } @Override public synchronized String toString() { return new StringBuilder() .append("isCommand :").append(isCommand()) .append(", action :").append(actionName) .append(", command :").append(commandName) .append(", inputs :").append(parameters) .append(", resourceFilters: ").append(resourceFilters) .append(", exclusive: ").append(exclusive) .append(", clusterName :").append(clusterName).toString(); } }