def match(self, resource, info): if info is None: return False k = self.data.get('key') if '.' not in k: vf = ValueFilter(self.data) vf.annotate = False return vf(info) # access key matching prefix, sk = k.split('.', 1) vf = ValueFilter(self.matcher_config) vf.annotate = False # annotation merging with previous respecting block operators k_matched = [] for v in info.get(prefix, ()): if vf.match(v): k_matched.append(v) for k in k_matched: k['c7n:match-type'] = 'credential' self.merge_annotation(resource, self.matched_annotation_key, k_matched) return bool(k_matched)
def match(self, info): if info is None: return False k = self.data.get('key') if '.' not in k: vf = ValueFilter(self.data) vf.annotate = False return vf(info) prefix, sk = k.split('.', 1) vf = ValueFilter(self.matcher_config) vf.annotate = False for v in info.get(prefix, ()): if vf.match(v): return True