package org.ovirt.engine.ui.uicommon.models.hosts;
import java.util.Collections;
import org.ovirt.engine.core.compat.*;
import org.ovirt.engine.ui.uicompat.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.core.common.vdscommands.*;
import org.ovirt.engine.core.common.queries.*;
import org.ovirt.engine.core.common.action.*;
import org.ovirt.engine.ui.frontend.*;
import org.ovirt.engine.ui.uicommon.*;
import org.ovirt.engine.ui.uicommon.models.*;
import org.ovirt.engine.core.common.*;
import org.ovirt.engine.ui.uicommon.models.clusters.*;
import org.ovirt.engine.ui.uicommon.models.common.*;
import org.ovirt.engine.ui.uicommon.models.configure.*;
import org.ovirt.engine.ui.uicommon.models.datacenters.*;
import org.ovirt.engine.ui.uicommon.models.tags.*;
import org.ovirt.engine.ui.uicompat.*;
import org.ovirt.engine.core.common.interfaces.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.core.common.queries.*;
import org.ovirt.engine.core.common.*;
import org.ovirt.engine.ui.uicommon.*;
import org.ovirt.engine.ui.uicommon.models.*;
@SuppressWarnings("unused")
public class ChangeHostClusterRM extends BaseRM
{
public ChangeHostClusterRM(HostListModel model, DataBag data)
{
super(model, data);
Transaction.Current.EnlistVolatile(this, EnlistmentOptions.None);
ConfigureLocalStorageModel configureLocalStorageModel = (ConfigureLocalStorageModel)getModel().getWindow();
//Remember an old cluster, to enable rollback.
VDS host = (VDS)getModel().getSelectedItem();
getData().setOldClusterId(host.getvds_group_id());
new AddStorageDomainRM(getModel(), getData());
}
@Override
public void Prepare(PreparingEnlistment preparingEnlistment)
{
ConfigureLocalStorageModel model = (ConfigureLocalStorageModel)getModel().getWindow();
if (!model.getDontChangeHostCluster())
{
VDS host = (VDS)getModel().getSelectedItem();
VdcReturnValueBase returnValue = Frontend.RunAction(VdcActionType.ChangeVDSCluster, new ChangeVDSClusterParameters(getData().getClusterId(), host.getvds_id()));
if (returnValue != null && returnValue.getSucceeded())
{
preparingEnlistment.Prepared();
}
else
{
preparingEnlistment.ForceRollback();
}
}
else
{
preparingEnlistment.Prepared();
}
}
@Override
public void Commit(Enlistment enlistment)
{
enlistment.Done();
}
@Override
public void Rollback(Enlistment enlistment)
{
}
@Override
public void InDoubt(Enlistment enlistment)
{
}
}