Esempio n. 1
0
 def cancel(self, sn=None, criteria=None):
     """
     Cancel by serial number or user defined property.
     :param sn: An RMI serial number.
     :type sn: str
     :param criteria: The criteria used to match the
         *data* property on an RMI request.
     :type criteria: dict
     :return: The list of cancelled serial numbers.
     :rtype: list
     :raise Exception, on (sn) not found.
     :see: gofer.rmi.criteria
     """
     sn_list = []
     cancelled = []
     tracker = Tracker()
     if sn:
         sn_list = [sn]
     if criteria:
         b = Builder()
         criteria = b.build(criteria)
         sn_list = tracker.find(criteria)
     for sn in sn_list:
         _sn = tracker.cancel(sn)
         if _sn:
             cancelled.append(_sn)
     return cancelled
Esempio n. 2
0
File: rmi.py Progetto: roshan/gofer
class Cancelled:
    """
    A callable added to the Context and used
    by plugin methods to check for cancellation.
    :ivar tracker: The cancellation tracker.
    :type tracker: Tracker
    """

    def __init__(self, sn):
        """
        :param sn: Serial number.
        :type sn: str
        """
        self.sn = sn
        self.tracker = Tracker()

    def __call__(self):
        return self.tracker.cancelled(self.sn)

    def __del__(self):
        try:
            self.tracker.remove(self.sn)
        except KeyError:
            # already cleaned up
            pass
Esempio n. 3
0
 def __init__(self, sn):
     """
     :param sn: Serial number.
     :type sn: str
     """
     self.sn = sn
     self.tracker = Tracker()
Esempio n. 4
0
 def cancel(self, sn=None, criteria=None):
     """
     Cancel by serial number or user defined property.
     :param sn: An RMI serial number.
     :type sn: str
     :param criteria: The criteria used to match the
         *data* property on an RMI request.
     :type criteria: dict
     :return: The list of cancelled serial numbers.
     :rtype: list
     :raise Exception, on (sn) not found.
     :see: gofer.rmi.criteria
     """
     sn_list = []
     cancelled = []
     tracker = Tracker()
     if sn:
         sn_list = [sn]
     if criteria:
         b = Builder()
         criteria = b.build(criteria)
         sn_list = tracker.find(criteria)
     for sn in sn_list:
         _sn = tracker.cancel(sn)
         if _sn:
             cancelled.append(_sn)
     return cancelled
Esempio n. 5
0
 def __init__(self, sn):
     """
     :param sn: The current request serial number.
     :type sn: str
     """
     self.sn = sn
     self.tracker = Tracker()
Esempio n. 6
0
class Cancelled(object):
    """
    A callable added to the Context and used
    by plugin methods to check for cancellation.
    :ivar sn: The current request serial number.
    :type sn: str
    :ivar tracker: The cancellation tracker.
    :type tracker: Tracker
    """

    def __init__(self, sn):
        """
        :param sn: The current request serial number.
        :type sn: str
        """
        self.sn = sn
        self.tracker = Tracker()

    def __call__(self):
        return self.tracker.cancelled(self.sn)

    def __del__(self):
        try:
            self.tracker.remove(self.sn)
        except KeyError:
            # already cleaned up
            pass
Esempio n. 7
0
 def _put(self, request, jnl_path):
     """
     Enqueue the request.
     :param request: An AMQP request.
     :type request: Document
     :param jnl_path: Path to the associated journal file.
     :type jnl_path: str
     """
     request.ts = time()
     tracker = Tracker()
     tracker.add(request.sn, request.data)
     self.journal[request.sn] = jnl_path
     self.queue.put(request)
Esempio n. 8
0
 def _put(self, request, jnl_path):
     """
     Enqueue the request.
     :param request: An AMQP request.
     :type request: Document
     :param jnl_path: Path to the associated journal file.
     :type jnl_path: str
     """
     request.ts = time()
     tracker = Tracker()
     tracker.add(request.sn, request.data)
     self.journal[request.sn] = jnl_path
     self.queue.put(request)
Esempio n. 9
0
File: rmi.py Progetto: roshan/gofer
 def __init__(self, sn):
     """
     :param sn: Serial number.
     :type sn: str
     """
     self.sn = sn
     self.tracker = Tracker()
Esempio n. 10
0
 def __init__(self, sn):
     """
     :param sn: The current request serial number.
     :type sn: str
     """
     self.sn = sn
     self.tracker = Tracker()