diff --git a/pymispgalaxies/api.py b/pymispgalaxies/api.py index de25579..a4a9ec2 100644 --- a/pymispgalaxies/api.py +++ b/pymispgalaxies/api.py @@ -173,6 +173,15 @@ class Cluster(): for value in self.cluster['values']: self.values.append(ClusterValue(value)) + def machinetags(self): + to_return = [] + for v in self.values: + to_return.append('misp-galaxy:{}="{}"'.format(self.type, v.value)) + return to_return + + def __str__(self): + return '\n'.join(self.machinetags()) + def _json(self): to_return = {'name': self.name, 'type': self.type, 'source': self.source, 'authors': self.authors, 'description': self.description, @@ -203,6 +212,9 @@ class Clusters(collections.Mapping): for c in self.clusters.values(): jsonschema.validate(c.cluster, loaded_schema) + def all_machinetags(self): + return [cluster.machinetags() for cluster in self.clusters.values()] + def __getitem__(self, name): return self.clusters[name] @@ -215,5 +227,5 @@ class Clusters(collections.Mapping): def __str__(self): to_print = '' for cluster in self.clusters.values(): - to_print += '{}\n\n'.format(str(cluster)) + to_print += '{}\n\n'.format(cluster) return to_print diff --git a/tests/tests.py b/tests/tests.py index ebb05b7..7136afd 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -47,3 +47,9 @@ class TestPyMISPGalaxies(unittest.TestCase): for cv in c.values: if cv.meta: self.assertIsNot(cv.meta.additional_properties, {}) + + def test_machinetags(self): + self.clusters.all_machinetags() + + def test_print(self): + print(self.clusters)