Examples of DockerContainer


Examples of brooklyn.entity.container.docker.DockerContainer

            if (added == null) {
                throw new NoMachinesAvailableException(String.format("Failed to create container at %s", dockerHost.getDockerHostName()));
            } else {
                Entities.start(added, ImmutableList.of(machine));
            }
            DockerContainer dockerContainer = (DockerContainer) added;

            // Save the container attributes
            ((EntityLocal) dockerContainer).setAttribute(DockerContainer.IMAGE_ID, imageId);
            ((EntityLocal) dockerContainer).setAttribute(DockerContainer.IMAGE_NAME, imageName);
            ((EntityLocal) dockerContainer).setAttribute(DockerContainer.HARDWARE_ID, hardwareId);

            // Link the container to the entity
            ((EntityLocal) entity).setAttribute(DockerContainer.CONTAINER, dockerContainer);
            ((EntityLocal) entity).setAttribute(DockerContainer.CONTAINER_ID, dockerContainer.getContainerId());

            return dockerContainer.getDynamicLocation();
        } finally {
            releaseMutex(CONTAINER_MUTEX);
        }
    }
View Full Code Here

Examples of brooklyn.entity.container.docker.DockerContainer

        acquireMutex(CONTAINER_MUTEX, "Releasing container " + machine);
        try {
            LOG.info("Releasing {}", machine);

            DynamicCluster cluster = dockerHost.getDockerContainerCluster();
            DockerContainer container = machine.getOwner();
            if (cluster.removeMember(container)) {
                LOG.info("Docker Host {}: member {} released", dockerHost.getDockerHostName(), machine);
            } else {
                LOG.warn("Docker Host {}: member {} not found for release", dockerHost.getDockerHostName(), machine);
            }

            // Now close and unmange the container
            try {
                machine.close();
                container.stop();
            } catch (Exception e) {
                LOG.warn("Error stopping container: " + container, e);
                Exceptions.propagateIfFatal(e);
            } finally {
                Entities.unmanage(container);
View Full Code Here

Examples of org.eclipse.orion.server.docker.server.DockerContainer

      DockerServer dockerServer = getDockerServer();

      // check if the user is already attached to a docker container
      if (dockerServer.isAttachedDockerContainer(user)) {
        // stop the container
        DockerContainer dockerContainer = dockerServer.getDockerContainer(user);
        if (dockerContainer.getStatusCode() == DockerResponse.StatusCode.OK) {
          dockerContainer = dockerServer.stopDockerContainer(dockerContainer.getId());
          if (dockerContainer.getStatusCode() == DockerResponse.StatusCode.STOPPED) {
            if (logger.isInfoEnabled()) {
              logger.info("Stopped Docker Container " + dockerContainer.getIdShort() + " for user " + user);
            }
          }
        }

        // detach the connection for the user
        dockerServer.detachDockerContainer(user);
      }

      // make sure the image for the user has been created
      String userBase = user + "-base";
      DockerImage dockerImage = dockerServer.getDockerImage(userBase);
      if (dockerImage.getStatusCode() != DockerResponse.StatusCode.OK) {

        // user does not have a image, create one
        dockerImage = dockerServer.createDockerUserBaseImage(user);
        if (dockerImage.getStatusCode() != DockerResponse.StatusCode.CREATED) {
          return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_BAD_REQUEST, dockerImage.getStatusMessage(), null));
        }
        if (logger.isInfoEnabled()) {
          logger.info("Created Docker Image " + userBase + " for user " + user);
        }
      }

      // get the volume (workspace root) for the user
      String volume = getDockerVolume(user);

      // get the container for the user
      DockerContainer dockerContainer = dockerServer.getDockerContainer(user);
      if (dockerContainer.getStatusCode() != DockerResponse.StatusCode.OK) {

        // user does not have a container, create one
        dockerContainer = dockerServer.createDockerContainer(userBase, user, volume);
        if (dockerContainer.getStatusCode() != DockerResponse.StatusCode.CREATED) {
          return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_BAD_REQUEST, dockerContainer.getStatusMessage(), null));
        }
        if (logger.isInfoEnabled()) {
          logger.info("Created Docker Container " + dockerContainer.getIdShort() + " for user " + user);
        }

        // if the user does not have a bashrc, create one
        createBashrc(user);
      }

      // get the exposed ports from the docker image
      List<String> portNumbers = new ArrayList<String>();
      for (String port : dockerImage.getPorts()) {
        if (port.contains("/tcp")) {
          port = port.substring(0, port.indexOf("/tcp"));
        }
        portNumbers.add(port);
      }

      // start the container for the user
      dockerContainer = dockerServer.startDockerContainer(user, volume, portNumbers);
      if (dockerContainer.getStatusCode() == DockerResponse.StatusCode.STARTED) {
        if (logger.isInfoEnabled()) {
          logger.info("Started Docker Container " + dockerContainer.getIdShort() + " for user " + user);
        }
      } else if (dockerContainer.getStatusCode() == DockerResponse.StatusCode.RUNNING) {
        if (logger.isInfoEnabled()) {
          logger.info("Docker Container " + dockerContainer.getIdShort() + " for user " + user + " is already running");
        }
      } else {
        return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_BAD_REQUEST, dockerContainer.getStatusMessage(), null));
      }

      // attach to the container for the user
      String originURL = request.getRequestURL().toString();
      DockerResponse dockerResponse = dockerServer.attachDockerContainer(user, originURL);
      if (dockerResponse.getStatusCode() != DockerResponse.StatusCode.ATTACHED) {
        return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_BAD_REQUEST, dockerContainer.getStatusMessage(), null));
      }
      if (logger.isInfoEnabled()) {
        logger.info("Attach Docker Container " + dockerContainer.getIdShort() + " for user " + user + " successful");
      }

      JSONObject jsonObject = new JSONObject();
      jsonObject.put(DockerContainer.ATTACH_WS, dockerResponse.getStatusMessage());
      OrionServlet.writeJSONResponse(request, response, jsonObject);
View Full Code Here

Examples of org.eclipse.orion.server.docker.server.DockerContainer

    String user = request.getRemoteUser();

    DockerServer dockerServer = getDockerServer();

    // get the container for the user
    DockerContainer dockerContainer = dockerServer.getDockerContainer(user);
    if (dockerContainer.getStatusCode() == DockerResponse.StatusCode.NO_SUCH_CONTAINER) {
      if (logger.isDebugEnabled()) {
        logger.debug("Docker Container for user " + user + " is not running, no need to stop it.");
      }
      return true;
    }

    // detach if we have an open connection for the user
    if (dockerServer.isAttachedDockerContainer(user)) {
      // stop the running container
      dockerContainer = dockerServer.stopDockerContainer(dockerContainer.getId());
      if (dockerContainer.getStatusCode() != DockerResponse.StatusCode.STOPPED) {
        return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_BAD_REQUEST, dockerContainer.getStatusMessage(), null));
      } else {
        if (logger.isInfoEnabled()) {
          logger.info("Stopped Docker Container " + dockerContainer.getIdShort() + " for user " + user);
        }
      }
      dockerServer.detachDockerContainer(user);
    }
View Full Code Here

Examples of org.eclipse.orion.server.docker.server.DockerContainer

  }

  private boolean handleDockerContainerRequest(HttpServletRequest request, HttpServletResponse response, String string) throws ServletException {
    try {
      DockerServer dockerServer = getDockerServer();
      DockerContainer dockerContainer = dockerServer.getDockerContainer(string);
      switch (dockerContainer.getStatusCode()) {
        case SERVER_ERROR :
          response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, dockerContainer.getStatusMessage());
          return false;
        case NO_SUCH_IMAGE :
          JSONObject jsonObject = new JSONObject();
          jsonObject.put(DockerContainer.IMAGE, dockerContainer.getStatusMessage());
          OrionServlet.writeJSONResponse(request, response, jsonObject);
          return true;
        case CONNECTION_REFUSED :
          jsonObject = new JSONObject();
          jsonObject.put(DockerContainer.IMAGE, dockerContainer.getStatusMessage());
          OrionServlet.writeJSONResponse(request, response, jsonObject);
          return true;
        case OK :
          jsonObject = new JSONObject();
          jsonObject.put(DockerContainer.ID, dockerContainer.getIdShort());
          jsonObject.put(DockerContainer.IMAGE, dockerContainer.getImage());
          jsonObject.put(DockerContainer.COMMAND, dockerContainer.getCommand());
          jsonObject.put(DockerContainer.CREATED, dockerContainer.getCreated());
          jsonObject.put(DockerContainer.STATUS, dockerContainer.getStatus());
          jsonObject.put(DockerContainer.PORTS, dockerContainer.getPorts());
          jsonObject.put(DockerContainer.NAME, dockerContainer.getName());
          OrionServlet.writeJSONResponse(request, response, jsonObject);
          return true;
        default :
          return false;
      }
View Full Code Here

Examples of org.eclipse.orion.server.docker.server.DockerContainer

  public void testCreateDockerContainer() throws URISyntaxException {
    URI dockerLocationURI = new URI(dockerLocation);
    DockerServer dockerServer = new DockerServer(dockerLocationURI, dockerLocationURI, dockerPortStart, dockerPortEnd, dockerUserId, dockerGroupId);

    // create the container
    DockerContainer dockerContainer = dockerServer.createDockerContainer("orion-base", "user", null);
    assertEquals(dockerContainer.getStatusMessage(), DockerResponse.StatusCode.CREATED, dockerContainer.getStatusCode());
    System.out.println("Created Docker Container: Container Id " + dockerContainer.getId() + " Name " + dockerContainer.getName());

    // delete the container
    //DockerResponse dockerResponse = dockerServer.deleteDockerContainer(containerName);
    //assertEquals(dockerResponse.getStatusMessage(), DockerResponse.StatusCode.DELETED, dockerResponse.getStatusCode());
    //System.out.println("Deleted Docker Container: Container Id " + dockerContainer.getId());
View Full Code Here

Examples of org.eclipse.orion.server.docker.server.DockerContainer

    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());
    System.out.println("Docker Container " + containerName + " status is " + dockerContainer.getStatus());

    // delete the container
    dockerResponse = dockerServer.deleteDockerContainer(containerName);
    assertEquals(dockerResponse.getStatusMessage(), DockerResponse.StatusCode.DELETED, dockerResponse.getStatusCode());
    System.out.println("Docker Container " + containerName + " status is deleted");
View Full Code Here

Examples of org.eclipse.orion.server.docker.server.DockerContainer

   * @throws URISyntaxException
   */
  public void testGetDockerContainer() throws URISyntaxException {
    URI dockerLocationURI = new URI(dockerLocation);
    DockerServer dockerServer = new DockerServer(dockerLocationURI, dockerLocationURI, dockerPortStart, dockerPortEnd, dockerUserId, dockerGroupId);
    DockerContainer dockerContainer = dockerServer.getDockerContainer("admin");
    assertEquals(dockerContainer.getStatusMessage(), DockerResponse.StatusCode.OK, dockerContainer.getStatusCode());

    dockerContainer = dockerServer.getDockerContainer("doesnotexist");
    assertEquals(dockerContainer.getStatusMessage(), DockerResponse.StatusCode.NO_SUCH_CONTAINER, dockerContainer.getStatusCode());
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.