package org.ovirt.engine.core.bll.provider; import java.util.Collections; import java.util.List; import org.ovirt.engine.core.bll.CommandBase; import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.ProviderParameters; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.compat.Guid; /** * Allows to test that the provider definition allows connecting to the provider and accessing it's API.<br> * In case of connection failure, an exception will be thrown. * * @param <P> * Parameter type. */ @NonTransactiveCommandAttribute public class TestProviderConnectivityCommand<P extends ProviderParameters> extends CommandBase<P> { public TestProviderConnectivityCommand(Guid commandId) { super(commandId); } public TestProviderConnectivityCommand(P parameters, CommandContext cmdContext) { super(parameters, cmdContext); } @Override protected void executeCommand() { ProviderProxy proxy = ProviderProxyFactory.getInstance().create(getParameters().getProvider()); proxy.testConnection(); setSucceeded(true); } @Override public List<PermissionSubject> getPermissionCheckSubjects() { return Collections.singletonList(new PermissionSubject(Guid.SYSTEM, VdcObjectType.System, ActionGroup.CREATE_STORAGE_POOL)); } }