def stop(self): from customer import supplier_connector from userid import my_id for sc in supplier_connector.connectors(my_id.getLocalID()).values(): sc.automat('shutdown') # TODO: disconnect other suppliers return True
def health_check(self): from customer import supplier_connector from userid import my_id for sc in supplier_connector.connectors(my_id.getLocalIDURL()).values(): # at least one supplier must be online to consider my customer service to be healthy if sc.state in ['CONNECTED', ]: return True return False
def isSomeConnecting(self, *args, **kwargs): """ Condition method. """ from customer import supplier_connector for one_supplier_connector in supplier_connector.connectors(customer_idurl=self.target_customer_idurl).values(): if one_supplier_connector.state not in ['CONNECTED', 'DISCONNECTED', 'NO_SERVICE', ]: return True return False
def stop(self): from twisted.internet import reactor # @UnresolvedImport from customer import supplier_connector from userid import my_id from main import events events.remove_subscriber(self._on_identity_url_changed, 'identity-url-changed') events.remove_subscriber(self._on_my_keys_synchronized, 'my-keys-synchronized') for sc in supplier_connector.connectors(my_id.getLocalID()).values(): reactor.callLater(0, sc.automat, 'shutdown') # @UndefinedVariable # TODO: disconnect other suppliers return True
def _on_identity_url_changed(self, evt): from logs import lg from userid import id_url from contacts import contactsdb from customer import supplier_connector old_idurl = id_url.field(evt.data['old_idurl']) for customer_idurl, suppliers_list in contactsdb.all_suppliers( as_dict=True).items(): if old_idurl == customer_idurl: customer_idurl.refresh() lg.info('found customer family idurl rotated : %r -> %r' % ( evt.data['old_idurl'], evt.data['new_idurl'], )) for supplier_pos, supplier_idurl in enumerate(suppliers_list): if old_idurl == supplier_idurl: supplier_idurl.refresh() lg.info( 'found supplier idurl rotated for customer family %r at position %r : %r -> %r' % ( customer_idurl, supplier_pos, evt.data['old_idurl'], evt.data['new_idurl'], )) for customer_idurl, sc_dict in supplier_connector.connectors( as_dict=True).items(): if old_idurl == customer_idurl: customer_idurl.refresh() lg.info( 'found customer idurl rotated in supplier_connector.connectors() : %r -> %r' % ( evt.data['old_idurl'], evt.data['new_idurl'], )) for supplier_idurl, sc in sc_dict.items(): if old_idurl == supplier_idurl: supplier_idurl.refresh() sc.customer_idurl.refresh() sc.supplier_idurl.refresh() lg.info( 'found supplier idurl rotated in %r for customer %r : %r -> %r' % ( sc, customer_idurl, evt.data['old_idurl'], evt.data['new_idurl'], ))
def stop(self): from customer import supplier_connector for sc in supplier_connector.connectors().values(): sc.automat('shutdown') return True