Files
apex.ermnvldmr.com/ci/scripts/init-node/tests/provision_fakes.py
T

39 lines
1.1 KiB
Python

from provisioning.security import SecurityError
class SecurityBoundary:
"""Isolate firewall/service effects while exercising the durable coordinator."""
def __init__(self):
self.active = False
self.fail_activation = False
self.fail_restore = False
def preflight(self):
return {}
def snapshot(self, plan, port, address):
return {'phase': 'prepared', 'was_active': self.active}
def activate(self, state, persist):
self.active = True
state['phase'] = 'active'
persist(state)
if self.fail_activation:
raise SecurityError('activation failed')
def finalize(self, state, persist):
self.verify(state)
state['phase'] = 'final'
persist(state)
def verify(self, state):
if not self.active:
raise SecurityError('security stopped')
def restore(self, state, persist):
self.active = state['was_active']
state['cleanup'] = 'pending' if self.fail_restore else 'complete'
persist(state)
if self.fail_restore:
raise SecurityError('cleanup pending')