def delete(self, resource, **kwargs): db = self.application.db try: identifier = int(resource.identifier) except ValueError: raise exceptions.NotFound() try: db.remove_user(id=identifier) self.log.info("Removed user with id {}".format(identifier)) except db_exceptions.NotFound: raise exceptions.NotFound() except db_exceptions.UnsupportedOperation: raise exceptions.Unable()
def delete(self, resource, **kwargs): """Stop the container.""" identifier = resource.identifier container_manager = self.application.container_manager container = yield container_manager.find_container(url_id=identifier) if not container: raise exceptions.NotFound() try: yield self.application.reverse_proxy.unregister(container.urlpath) except Exception: # If we can't remove the reverse proxy, we cannot do much more # than log the problem and keep going, because we want to stop # the container regardless. self.log.exception( "Could not remove reverse proxy for id {}".format(identifier)) try: yield container_manager.stop_and_remove_container( container.docker_id) except Exception: self.log.exception( "Could not stop and remove container for id {}".format( identifier))
def delete(self, resource, **kwargs): db = self.application.db try: db.revoke_access_by_id(resource.identifier) except db_exceptions.NotFound: raise exceptions.NotFound()
def retrieve(self, resource, **kwargs): """Return the representation of the running container.""" container_manager = self.application.container_manager container = yield container_manager.find_container( url_id=resource.identifier, user_name=self.current_user.name) if container is None: self.log.warning("Could not find container for id {}".format( resource.identifier)) raise exceptions.NotFound() return resource.fill( dict( name=container.name, image_name=container.image_name, mapping_id=container.mapping_id, ))
def create(self, resource, **kwargs): db = self.application.db acc_user = db.get_user(id=int(resource.user_id)) if acc_user is None: raise BadRepresentation() volume = (resource.volume_source + ":" + resource.volume_target + ":" + resource.volume_mode) if resource.volume_target == "" or resource.volume_source == "": volume = None try: id = db.grant_access( resource.image_name, acc_user.name, resource.allow_home, True, volume, ) except db_exceptions.NotFound: raise exceptions.NotFound() resource.identifier = id