def __init__( self, __src: Optional[Mapping[str, object]] = None, ) -> None: super().__init__() self._current = {} self._invalid = collections.defaultdict(list) self._lock = asyncio.Lock() if __src is not None: self._update_converted(__src) # Mark a pre-populated vault to be usable instantly, # or trigger the initial authentication for an empty vault. self._ready = aiotoggles.Toggle(bool(self))
async def test_ignored_for_same_priority_peer_when_already_on( k8s_mocked, caplog, assert_logs, settings, peering_resource, peering_namespace): event = bodies.RawEvent( type='ADDED', # irrelevant object={ 'metadata': {'name': 'name', 'namespace': peering_namespace}, # for matching 'status': { 'higher-prio': { 'priority': 100, 'lifetime': 10, 'lastseen': '2020-12-31T23:59:59' }, }, }) settings.peering.name = 'name' settings.peering.priority = 100 conflicts_found = aiotoggles.Toggle(True) k8s_mocked.sleep.return_value = 1 # as if interrupted by stream pressure caplog.set_level(0) assert conflicts_found.is_on() await process_peering_event( raw_event=event, conflicts_found=conflicts_found, autoclean=False, namespace=peering_namespace, resource=peering_resource, identity='id', settings=settings, ) assert conflicts_found.is_on() assert k8s_mocked.sleep.call_count == 1 assert 9 < k8s_mocked.sleep.call_args[0][0][0] < 10 assert not k8s_mocked.patch.called assert_logs([ "Possibly conflicting operators", ], prohibited=[ "Pausing all operators, including self", "Pausing operations in favour of", "Resuming operations after the pause", ])
async def test_resumes_immediately_on_expiration_of_blocking_peers( k8s_mocked, caplog, assert_logs, settings, priority, peering_resource, peering_namespace): event = bodies.RawEvent( type='ADDED', # irrelevant object={ 'metadata': {'name': 'name', 'namespace': peering_namespace}, # for matching 'status': { 'higher-prio': { 'priority': priority, 'lifetime': 10, 'lastseen': '2020-12-31T23:59:59' }, }, }) settings.peering.name = 'name' settings.peering.priority = 100 conflicts_found = aiotoggles.Toggle(True) k8s_mocked.sleep.return_value = None # as if finished sleeping uninterrupted caplog.set_level(0) assert conflicts_found.is_on() await process_peering_event( raw_event=event, conflicts_found=conflicts_found, autoclean=False, namespace=peering_namespace, resource=peering_resource, identity='id', settings=settings, ) assert conflicts_found.is_on() assert k8s_mocked.sleep.call_count == 1 assert 9 < k8s_mocked.sleep.call_args[0][0][0] < 10 assert k8s_mocked.patch.called