/*
* JBoss, Home of Professional Open Source.
* Copyright 2012, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.as.controller.client.helpers.standalone;
import java.util.UUID;
/**
* Encapsulates the results of performing a configuration modification on an individual
* server.
*
* @author Brian Stansberry
*/
public interface ServerUpdateActionResult {
public enum Result {
/**
* Indicates the action was not executed because some problem with
* the overall update plan halted plan execution before this
* action was attempted.
*/
NOT_EXECUTED,
/**
* The action was successfully executed; server configuration was
* modified and any deployment changes were initiated
* in a running server.
*/
EXECUTED,
/**
* Indicates a successful outcome for an action that is part of an
* update plan that is organized around a server restart. The
* server configuration was successfully modified but the ability to
* effect changes in a running server is unknown, as completing the action
* requires restarting the server.
*/
CONFIGURATION_MODIFIED_REQUIRES_RESTART,
/**
* The action failed to complete successfully. See
* {@link ServerUpdateActionResult#getDeploymentException()} for possible details.
*/
FAILED,
/**
* The action completed successfully, but was rolled back due to a
* problem with some other action in the overall deployment plan.
*/
ROLLED_BACK;
}
/**
* Gets the unique ID of the deployment action.
*
* @return the ID. Will not be <code>null</code>
*/
UUID getUpdateActionId();
/**
* Gets the result of the action's modification to the server's configuration.
* @return the result. Will not be <code>null</code>
*/
Result getResult();
/**
* Gets the exception, if any, that occurred while executing this action.
*
* @return the exception, or <code>null</code> if no exception occurred
*/
Throwable getDeploymentException();
/**
* If the {@link #getResult() result was {@link Result#ROLLED_BACK} or
* {@link Result#FAILED} and the update plan allows rollback,
* gets the result of rolling back the action.
*
* @return the result of rolling back the action, or {@code null} if the
* action was not rolled back.
*/
ServerUpdateActionResult getRollbackResult();
}