Source code for sjsclient.context

# -*- coding: utf-8 -*-

from sjsclient import base
from sjsclient import exceptions
from sjsclient import utils


[docs]class Context(base.Resource): """A Spark context.""" def __repr__(self): return "<Context: %s>" % self.name
[docs] def delete(self): """Delete context.""" return self.manager.delete(self.name)
[docs]class ContextManager(base.ResourceManager): """Manage :class:`Context` resources.""" base_path = "contexts" resource_class = Context def _create_resource(self, data): return self.resource_class(self, dict(name=data))
[docs] def create(self, name, params=None): """Create a Spark context. :param name: Descriptive name of context :param params: Dictionary of context parameters :rtype: :class:`Context` """ url = utils.urljoin(self.base_path, name) self.client._post(url, params=params) return self._create_resource(name)
[docs] def delete(self, name): """Delete a specific Context. :param name: The name of the :class:`Context` to delete. """ url = self.base_path url = utils.urljoin(url, name) resp = self.client._delete(url) return resp
[docs] def get(self, name): """Get a specific Context. :param name: The name of the :class:`Context` to get. :rtype: :class:`Context` """ if name not in [x.name for x in self.list()]: msg = "Context {} not found.".format(name) raise exceptions.NotFoundException(msg) return self._create_resource(name)