URI dockerLocationURI = new URI(dockerLocation);
DockerServer dockerServer = new DockerServer(dockerLocationURI, dockerLocationURI, dockerPortStart, dockerPortEnd, dockerUserId, dockerGroupId);
// make sure docker is running
DockerVersion dockerVersion = dockerServer.getDockerVersion();
assertEquals(dockerVersion.getStatusMessage(), DockerResponse.StatusCode.OK, dockerVersion.getStatusCode());
System.out.println("Docker Server " + dockerLocation + " is running version " + dockerVersion.getVersion());
// make sure the container does not exist
DockerContainer dockerContainer = dockerServer.getDockerContainer(containerName);
assertEquals(dockerContainer.getStatusMessage(), DockerResponse.StatusCode.NO_SUCH_CONTAINER, dockerContainer.getStatusCode());
System.out.println("Docker Container " + containerName + " does not exist");
// create the container
dockerContainer = dockerServer.createDockerContainer("orion-base", containerName, null);
assertEquals(dockerContainer.getStatusMessage(), DockerResponse.StatusCode.CREATED, dockerContainer.getStatusCode());
System.out.println("Docker Container " + containerName + " status is " + dockerContainer.getStatus());
// start the container
dockerContainer = dockerServer.startDockerContainer(dockerContainer.getId(), null, null);
assertEquals(dockerContainer.getStatusMessage(), DockerResponse.StatusCode.STARTED, dockerContainer.getStatusCode());
System.out.println("Docker Container " + containerName + " status is " + dockerContainer.getStatus());
// attach to the container and run some commands
String command = "cat /etc/lsb-release\n";
DockerResponse dockerResponse = dockerServer.attachDockerContainer(dockerContainer.getId(), command);
assertEquals(dockerVersion.getStatusMessage(), DockerResponse.StatusCode.OK, dockerVersion.getStatusCode());
System.out.println(dockerResponse.getStatusMessage());
command = "ls\n";
dockerResponse = dockerServer.attachDockerContainer(dockerContainer.getId(), command);
assertEquals(dockerVersion.getStatusMessage(), DockerResponse.StatusCode.OK, dockerVersion.getStatusCode());
System.out.println(dockerResponse.getStatusMessage());
command = "ls OrionContent\n";
dockerResponse = dockerServer.attachDockerContainer(dockerContainer.getId(), command);
assertEquals(dockerVersion.getStatusMessage(), DockerResponse.StatusCode.OK, dockerVersion.getStatusCode());
System.out.println(dockerResponse.getStatusMessage());
// stop the container
dockerContainer = dockerServer.stopDockerContainer(dockerContainer.getId());
assertEquals(dockerContainer.getStatusMessage(), DockerResponse.StatusCode.STOPPED, dockerContainer.getStatusCode());