Ejemplo n.º 1
0
 def start(self):
     from twisted.internet.defer import Deferred
     from logs import lg
     from main import listeners
     from storage import keys_synchronizer
     from storage import index_synchronizer
     from storage import backup_fs
     self.starting_deferred = Deferred()
     self.starting_deferred.addErrback(
         lambda err: lg.warn('service %r was not started: %r' %
                             (self.service_name, err.getErrorMessage()
                              if err else 'unknown reason')))
     if keys_synchronizer.is_synchronized(
     ) and index_synchronizer.is_synchronized():
         if not self.starting_deferred.called:
             self.starting_deferred.callback(True)
         if listeners.is_populate_requered('private_file'):
             listeners.populate_later().remove('private_file')
             backup_fs.populate_private_files()
     else:
         lg.warn(
             'can not start service_my_data right now, keys_synchronizer.is_synchronized=%r index_synchronizer.is_synchronized=%r'
             % (keys_synchronizer.is_synchronized(),
                index_synchronizer.is_synchronized()))
     return self.starting_deferred
Ejemplo n.º 2
0
 def start(self):
     from twisted.internet.defer import Deferred
     from transport import callback
     from main import events
     from main import listeners
     from p2p import online_status
     from p2p import p2p_service
     from p2p import p2p_connector
     from p2p import network_connector
     from p2p import ratings
     p2p_service.init()
     online_status.init()
     ratings.init()
     self._starting_defer = Deferred()
     p2p_connector.A('init')
     p2p_connector.A().addStateChangedCallback(
         self._on_p2p_connector_switched)
     network_connector.A().addStateChangedCallback(
         self._on_network_connector_switched)
     callback.append_inbox_callback(self._on_inbox_packet_received)
     callback.append_inbox_callback(p2p_service.inbox)
     events.add_subscriber(self._on_identity_url_changed, 'identity-url-changed')
     events.add_subscriber(self._on_my_identity_url_changed, 'my-identity-url-changed')
     if listeners.is_populate_requered('online_status'):
         listeners.populate_later().remove('online_status')
         online_status.populate_online_statuses()
     return True
Ejemplo n.º 3
0
 def start(self):
     from storage import backup_fs
     from storage import backup_control
     from storage import backup_matrix
     from storage import backup_monitor
     from main.config import conf
     from main import control
     from main import events
     from main import listeners
     from transport import callback
     from p2p import p2p_connector
     backup_fs.init()
     backup_control.init()
     backup_matrix.init()
     backup_matrix.SetBackupStatusNotifyCallback(control.on_backup_stats)
     backup_matrix.SetLocalFilesNotifyCallback(control.on_read_local_files)
     backup_monitor.A('init')
     backup_monitor.A('restart')
     conf().addConfigNotifier('services/backups/keep-local-copies-enabled',
                        self._on_keep_local_copies_modified)
     conf().addConfigNotifier('services/backups/wait-suppliers-enabled',
                        self._on_wait_suppliers_modified)
     p2p_connector.A().addStateChangedCallback(
         self._on_p2p_connector_state_changed, 'INCOMMING?', 'CONNECTED')
     p2p_connector.A().addStateChangedCallback(
         self._on_p2p_connector_state_changed, 'MY_IDENTITY', 'CONNECTED')
     callback.append_inbox_callback(self._on_inbox_packet_received)
     events.add_subscriber(self._on_my_identity_rotated, 'my-identity-rotated')
     events.add_subscriber(self._on_key_erased, 'key-erased')
     if listeners.is_populate_requered('remote_version'):
         listeners.populate_later().remove('remote_version')
         backup_matrix.populate_remote_versions()
     return True
Ejemplo n.º 4
0
 def _do_open_known_shares(self):
     from crypt import my_keys
     from main import listeners
     from access import shared_access_coordinator
     from storage import backup_fs
     known_offline_shares = []
     for key_id in my_keys.known_keys():
         if not key_id.startswith('share_'):
             continue
         active_share = shared_access_coordinator.get_active_share(key_id)
         if active_share:
             continue
         known_offline_shares.append(key_id)
     to_be_opened = []
     for _, _, itemInfo in backup_fs.IterateIDs():
         if not itemInfo.key_id:
             continue
         if itemInfo.key_id in to_be_opened:
             continue
         if itemInfo.key_id not in known_offline_shares:
             continue
         to_be_opened.append(itemInfo.key_id)
     for key_id in to_be_opened:
         active_share = shared_access_coordinator.SharedAccessCoordinator(key_id, log_events=True, publish_events=False, )
         active_share.automat('restart')
         if listeners.is_populate_requered('shared_file'):
             listeners.populate_later().remove('shared_file')
             backup_fs.populate_shared_files(key_id=key_id)
 def start(self):
     from transport import callback
     from main import listeners
     from crypt import my_keys
     from access import key_ring
     key_ring.init()
     callback.add_outbox_callback(self._on_outbox_packet_sent)
     callback.append_inbox_callback(self._on_inbox_packet_received)
     if listeners.is_populate_requered('key'):
         listeners.populate_later().remove('key')
         my_keys.populate_keys()
     return True
Ejemplo n.º 6
0
 def _on_my_storage_ready(self, evt):
     from logs import lg
     from main import listeners
     from services import driver
     from storage import backup_fs
     if self.starting_deferred:
         if not self.starting_deferred.called:
             self.starting_deferred.callback(True)
         self.starting_deferred = None
         if listeners.is_populate_requered('private_file'):
             listeners.populate_later().remove('private_file')
             backup_fs.populate_private_files()
     if driver.is_enabled('service_my_data'):
         if not driver.is_started('service_my_data'):
             lg.info('my storage is ready, starting service_my_data()')
             driver.start_single('service_my_data')
Ejemplo n.º 7
0
 def start(self):
     from chat import message_database
     from chat import message_keeper
     from main import events
     from main import listeners
     message_database.init()
     message_keeper.init()
     events.add_subscriber(self.on_key_registered, 'key-registered')
     events.add_subscriber(self.on_key_renamed, 'key-renamed')
     events.add_subscriber(self.on_key_generated, 'key-generated')
     if listeners.is_populate_requered('conversation'):
         listeners.populate_later().remove('conversation')
         message_database.populate_conversations()
     if listeners.is_populate_requered('message'):
         listeners.populate_later().remove('message')
         message_database.populate_messages()
     return True
Ejemplo n.º 8
0
def load_contacts():
    """
    Load all my contacts from disk.
    """
    load_suppliers(all_customers=True)
    if _SuppliersChangedCallback is not None:
        _SuppliersChangedCallback([], suppliers())
    load_customers()
    if _CustomersChangedCallback is not None:
        _CustomersChangedCallback([], customers())
    load_correspondents()
    if _CorrespondentsChangedCallback is not None:
        _CorrespondentsChangedCallback([], correspondents())
    AddContactsChangedCallback(on_contacts_changed)
    if listeners.is_populate_requered('correspondent'):
        listeners.populate_later().remove('correspondent')
        populate_correspondents()