def _manage_flags(self): """ Manage automatic relation flags. Internal use only. """ already_joined = is_flag_set(self.expand_name('joined')) hook_name = hookenv.hook_name() rel_hook = hook_name.startswith(self.endpoint_name + '-relation-') departed_hook = rel_hook and hook_name.endswith('-departed') toggle_flag(self.expand_name('joined'), self.is_joined) if departed_hook: set_flag(self.expand_name('departed')) elif self.is_joined: clear_flag(self.expand_name('departed')) if already_joined and not rel_hook: # skip checking relation data outside hooks for this relation # to save on API calls to the controller (unless we didn't have # the joined flag before, since then we might migrating to Endpoints) return for unit in self.all_units: for key, value in unit.received.items(): data_key = 'endpoint.{}.{}.{}.{}'.format( self.endpoint_name, unit.relation.relation_id, unit.unit_name, key) if data_changed(data_key, value): set_flag(self.expand_name('changed')) set_flag(self.expand_name('changed.{}'.format(key))) self.manage_flags()
def _manage_flags(self): super()._manage_flags() toggle_flag(self.expand_name('endpoint.{endpoint_name}.has_requests'), self.all_requests) toggle_flag(self.expand_name('endpoint.{endpoint_name}.new_requests'), self.new_requests)
def _manage_flags(self): super()._manage_flags() toggle_flag(self.expand_name('endpoint.{endpoint_name}.has_responses'), self.responses) toggle_flag(self.expand_name('endpoint.{endpoint_name}.all_responses'), len(self.responses) == len(self.requests))