def __init__(self, account_id, folder_name, folder_id, email_address, provider_name, poll_frequency, syncmanager_lock, refresh_flags_max, retry_fail_classes): bind_context(self, 'foldersyncengine', account_id, folder_id) self.account_id = account_id self.folder_name = folder_name self.folder_id = folder_id self.poll_frequency = poll_frequency self.syncmanager_lock = syncmanager_lock self.refresh_flags_max = refresh_flags_max self.retry_fail_classes = retry_fail_classes self.state = None self.provider_name = provider_name with mailsync_session_scope() as db_session: account = db_session.query(Account).get(self.account_id) self.throttled = account.throttled self.namespace_id = account.namespace.id assert self.namespace_id is not None, "namespace_id is None" self.state_handlers = { 'initial': self.initial_sync, 'initial uidinvalid': self.resync_uids, 'poll': self.poll, 'poll uidinvalid': self.resync_uids, 'finish': lambda self: 'finish', } Greenlet.__init__(self) self.heartbeat_status = HeartbeatStatusProxy(self.account_id, self.folder_id, self.folder_name, email_address, self.provider_name)
def __init__( self, account_id, namespace_id, email_address, folder_id, folder_name, provider_name, poll_frequency=1, scope=None, ): self.account_id = account_id self.namespace_id = namespace_id self.provider_name = provider_name self.poll_frequency = poll_frequency self.scope = scope self.log = logger.new(account_id=account_id) self.shutdown = event.Event() self.heartbeat_status = HeartbeatStatusProxy(self.account_id, folder_id, folder_name, email_address, provider_name) Greenlet.__init__(self)
def proxy_for(account_id, folder_id, email='*****@*****.**', provider='gmail', device_id=0): return HeartbeatStatusProxy(account_id=account_id, folder_id=folder_id, folder_name="Inbox", email_address=email, provider_name=provider, device_id=device_id)
def setup_heartbeats(self): self.heartbeat_status = HeartbeatStatusProxy( self.account_id, self.folder_id, self.folder_name, self.email_address, self.provider_name, )
def __init__(self, account_id, namespace_id, folder_name, email_address, provider_name, syncmanager_lock): with session_scope(namespace_id) as db_session: try: folder = db_session.query(Folder). \ filter(Folder.name == folder_name, Folder.account_id == account_id).one() except NoResultFound: raise MailsyncError( u"Missing Folder '{}' on account {}".format( folder_name, account_id)) self.folder_id = folder.id self.folder_role = folder.canonical_name # Metric flags for sync performance self.is_initial_sync = folder.initial_sync_end is None self.is_first_sync = folder.initial_sync_start is None self.is_first_message = self.is_first_sync bind_context(self, 'foldersyncengine', account_id, self.folder_id) self.account_id = account_id self.namespace_id = namespace_id self.folder_name = folder_name if self.folder_name.lower() == 'inbox': self.poll_frequency = INBOX_POLL_FREQUENCY else: self.poll_frequency = DEFAULT_POLL_FREQUENCY self.syncmanager_lock = syncmanager_lock self.state = None self.provider_name = provider_name self.last_fast_refresh = None self.flags_fetch_results = {} self.conn_pool = connection_pool(self.account_id) self.state_handlers = { 'initial': self.initial_sync, 'initial uidinvalid': self.resync_uids, 'poll': self.poll, 'poll uidinvalid': self.resync_uids, } Greenlet.__init__(self) self.heartbeat_status = HeartbeatStatusProxy(self.account_id, self.folder_id, self.folder_name, email_address, self.provider_name)
def __init__(self, account_id, folder_name, folder_id, email_address, provider_name, syncmanager_lock): bind_context(self, 'foldersyncengine', account_id, folder_id) self.account_id = account_id self.folder_name = folder_name self.folder_id = folder_id if self.folder_name.lower() == 'inbox': self.poll_frequency = INBOX_POLL_FREQUENCY else: self.poll_frequency = DEFAULT_POLL_FREQUENCY self.syncmanager_lock = syncmanager_lock self.state = None self.provider_name = provider_name self.last_fast_refresh = None self.conn_pool = connection_pool(self.account_id) # Metric flags for sync performance self.is_initial_sync = False self.is_first_sync = False self.is_first_message = False with session_scope() as db_session: account = Account.get(self.account_id, db_session) self.namespace_id = account.namespace.id assert self.namespace_id is not None, "namespace_id is None" folder = Folder.get(self.folder_id, db_session) if folder: self.is_initial_sync = folder.initial_sync_end is None self.is_first_sync = folder.initial_sync_start is None self.is_first_message = self.is_first_sync self.state_handlers = { 'initial': self.initial_sync, 'initial uidinvalid': self.resync_uids, 'poll': self.poll, 'poll uidinvalid': self.resync_uids, } Greenlet.__init__(self) self.heartbeat_status = HeartbeatStatusProxy(self.account_id, self.folder_id, self.folder_name, email_address, self.provider_name)