package ee.elinyo.teamcity.plugins.ansible.agent;
import jetbrains.buildServer.agent.AgentBuildRunnerInfo;
import jetbrains.buildServer.agent.BuildAgentConfiguration;
import jetbrains.buildServer.agent.artifacts.ArtifactsWatcher;
import jetbrains.buildServer.agent.runner.CommandLineBuildService;
import jetbrains.buildServer.agent.runner.CommandLineBuildServiceFactory;
import org.jetbrains.annotations.NotNull;
import com.intellij.openapi.util.SystemInfo;
import ee.elinyo.teamcity.plugins.ansible.common.AnsibleRunnerConstants;
public class AnsibleRunServiceFactory implements CommandLineBuildServiceFactory, AgentBuildRunnerInfo {
private ArtifactsWatcher artifactsWatcher;
public AnsibleRunServiceFactory(@NotNull ArtifactsWatcher artifactsWatcher) {
this.artifactsWatcher = artifactsWatcher;
}
@Override
public String getType() {
return AnsibleRunnerConstants.RUN_TYPE;
}
@Override
public boolean canRun(BuildAgentConfiguration agentConfiguration) {
return SystemInfo.isLinux;
}
@Override
public CommandLineBuildService createService() {
return new AnsibleRunService(artifactsWatcher);
}
@Override
public AgentBuildRunnerInfo getBuildRunnerInfo() {
return this;
}
}