From ad4cc7bdaf8214d50c1f0999052a455b8bddd3c9 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Fri, 24 Aug 2012 18:19:55 -0400 Subject: [PATCH] cc-3936: Assigned MDATA_KEY_OWNER_ID to new file events. --- python_apps/media-monitor2/media/monitor/events.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/python_apps/media-monitor2/media/monitor/events.py b/python_apps/media-monitor2/media/monitor/events.py index 43ae883f8..a3515a4ff 100644 --- a/python_apps/media-monitor2/media/monitor/events.py +++ b/python_apps/media-monitor2/media/monitor/events.py @@ -2,6 +2,7 @@ import os import abc import media.monitor.pure as mmp +import media.monitor.owners as owners from media.monitor.pure import LazyProperty from media.monitor.metadata import Metadata from media.monitor.log import Loggable @@ -12,6 +13,8 @@ class PathChannel(object): self.signal = signal self.path = path +# TODO : Move this to it's file. Also possible unsingleton and use it as a +# simple module just like m.m.owners class EventRegistry(object): """ This class's main use is to keep track all events with a cookie attribute. @@ -56,6 +59,7 @@ class BaseEvent(Loggable): self._raw_event = raw_event self.path = os.path.normpath(raw_event.pathname) else: self.path = raw_event + self.owner = owners.get_owner() self._pack_hook = lambda: None # no op # into another event @@ -90,6 +94,7 @@ class BaseEvent(Loggable): try: self._pack_hook() ret = self.pack() + owners.remove_file_owner(self.path) return ret except BadSongFile as e: return [e] @@ -102,6 +107,14 @@ class BaseEvent(Loggable): # We don't transfer the _pack_hook over to the new event return self + def assign_owner(self,req): + """ + Packs self.owner to req if the owner is valid. I.e. it's not -1. This + method is used by various events that would like to pass owner as a + parameter. NewFile for example. + """ + if self.owner != -1: req['MDATA_KEY_OWNER_ID'] + class FakePyinotify(object): """ sometimes we must create our own pyinotify like objects to @@ -125,6 +138,7 @@ class NewFile(BaseEvent, HasMetaData): """ req_dict = self.metadata.extract() req_dict['mode'] = u'create' + self.assign_owner(req_dict) req_dict['MDATA_KEY_FILEPATH'] = unicode( self.path ) return [req_dict]