package org.deploymentobjects.core.application; import static org.junit.Assert.assertEquals; import java.util.Random; import org.deploymentobjects.core.domain.model.configuration.ConfigurationManagement; import org.deploymentobjects.core.domain.model.configuration.NfsMount; import org.deploymentobjects.core.domain.model.environment.EnvironmentRepository; import org.deploymentobjects.core.domain.model.environment.Host; import org.deploymentobjects.core.domain.model.environment.Hypervisor; import org.deploymentobjects.core.domain.model.environment.Role; import org.deploymentobjects.core.domain.model.environment.Host.Type; import org.deploymentobjects.core.domain.model.execution.Dispatchable; import org.deploymentobjects.core.domain.model.execution.ExitCode; import org.deploymentobjects.core.domain.model.execution.Job; import org.deploymentobjects.core.domain.shared.EventPublisher; import org.deploymentobjects.core.domain.shared.EventStore; import org.deploymentobjects.core.infrastructure.configuration.Puppet; import org.deploymentobjects.core.infrastructure.execution.JschDispatch; import org.deploymentobjects.core.infrastructure.persistence.zookeeper.ZookeeperEnvironmentRepository; import org.deploymentobjects.core.infrastructure.persistence.zookeeper.ZookeeperEventStore; import org.deploymentobjects.core.infrastructure.persistence.zookeeper.ZookeeperPersistence; import org.junit.Test; public class CreateEnvironmentWithRolesIntegrationTest { @Test public void testScenario() throws Exception { ZookeeperPersistence persistence = new ZookeeperPersistence("ino:2181"); EventStore eventStore = new ZookeeperEventStore(persistence); EventPublisher publisher = new EventPublisher(eventStore); EnvironmentRepository repo = ZookeeperEnvironmentRepository.factory( persistence, publisher); Dispatchable dispatch = new JschDispatch(publisher, "root"); ConfigurationManagement configMgt = new Puppet(publisher, new Host( "puppetmaster1", "peoplemerge.com", "192.168.0.7"), dispatch); Hypervisor hypervisor = new Hypervisor.Builder(publisher, "ino", new NfsMount("192.168.0.4", "/media"), dispatch).withUserName("root").build(); Random randomGenerator = new Random(); CreateEnvironmentCommand command = new CreateEnvironmentCommand.Builder( "jenkins" + randomGenerator.nextInt(1000000), "peoplemerge.com", repo, publisher).withEventStore(eventStore) .withNodes(1, Type.SMALL, hypervisor, new Role("standard")) .withConfigurationManagement(configMgt).withDispatch(dispatch) .build(); Job saga = command.create(); //System.out.println("saga: " + saga); ExitCode exit = saga.execute(); assertEquals(ExitCode.SUCCESS, exit); System.out.println("event store: " + eventStore); System.out.println("repo: " + repo); } /* * @Test public void createClusterWithRoles() throws Exception { * * CreateEnvironmentCommand command = new CreateEnvironmentCommand.Builder( * "mock1", ZookeeperEnvironmentRepository.factory( new * ZookeeperPersistence("ino:2181"))).withNodes(1, Type.SMALL, new * Hypervisor("root", "kowalski", new NfsMount()), new * Role("standard")).withConfigurationManagement( new Puppet(new * Host("puppetmaster1", "peoplemerge.com", * "192.168.0.7"))).withDispatch( new JschDispatch("root")).build(); * ExitCode exit = command.execute(); assertEquals(ExitCode.SUCCESS, exit); * * } */ }