package org.arquillian.cube.openshift.impl.client;
import org.arquillian.cube.spi.event.CreateCube;
import org.arquillian.cube.spi.event.CubeControlEvent;
import org.arquillian.cube.spi.event.DestroyCube;
import org.arquillian.cube.spi.event.StartCube;
import org.arquillian.cube.spi.event.StopCube;
import org.jboss.arquillian.core.api.Event;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.core.api.annotation.Observes;
import org.jboss.arquillian.test.spi.event.suite.AfterSuite;
import org.jboss.arquillian.test.spi.event.suite.BeforeSuite;
public class OpenShiftSuiteLifecycleController {
@Inject
private Event<CubeControlEvent> controlEvent;
public void startAutoContainers(@Observes(precedence = 99) BeforeSuite event,
CubeOpenShiftConfiguration openshiftConfiguration) {
for (String cubeId : openshiftConfiguration.getAutoStartContainers()) {
controlEvent.fire(new CreateCube(cubeId));
controlEvent.fire(new StartCube(cubeId));
}
}
public void stopAutoContainers(@Observes(precedence = -99) AfterSuite event,
CubeOpenShiftConfiguration openshiftConfiguration) {
String[] autostart = openshiftConfiguration.getAutoStartContainers();
for (int i = autostart.length - 1; i > -1; i--) {
String cubeId = autostart[i];
controlEvent.fire(new StopCube(cubeId));
controlEvent.fire(new DestroyCube(cubeId));
}
}
}