async def _load_adversaries(self, plugin): for filename in glob.iglob('%s/adversaries/**/*.yml' % plugin.data_dir, recursive=True): for adv in self.strip_yml(filename): adversary = Adversary.load(adv) adversary.access = plugin.access await self.store(adversary)
async def _construct_adversary_for_op(self, adversary_id): adv = await self.get_service('data_svc').locate( 'adversaries', match=dict(adversary_id=adversary_id)) if adv: return copy.deepcopy(adv[0]) return Adversary.load( dict(adversary_id='ad-hoc', name='ad-hoc', description='an empty adversary profile', atomic_ordering=[]))
async def _construct_and_dump_adversary(self, adversary_id: str): adv = await self.services['data_svc'].locate( 'adversaries', match=dict(adversary_id=adversary_id)) if not adv: adv = Adversary.load( dict(adversary_id='ad-hoc', name='ad-hoc', description='an empty adversary profile', atomic_ordering=[])) else: adv = adv[0] return AdversarySchema().dump(adv)
async def load_adversary_file(self, filename, access): for adv in self.strip_yml(filename): adversary = Adversary.load(adv) adversary.access = access await self.store(adversary)
def expected_new_adversary_dump(new_adversary_payload): adversary = Adversary.load(new_adversary_payload) return adversary.schema.dump(adversary)
def expected_new_duplicate_id_adversary_dump( new_adversary_duplicate_id_payload): payload = new_adversary_duplicate_id_payload.copy() payload.pop('id') adversary = Adversary.load(payload) return adversary.schema.dump(adversary)