def test_create_from_registry(self): """Test whether a meta object is correctly created from a registry entry""" meta = KibanaObjMeta.create_from_registry(DASHBOARD_REG_ENTRY) self.assertEqual(meta.id, "2e968fe0-b1bb-11e8-8aac-ef7fd4d8cbad") self.assertEqual(meta.title, "GitLab Issues") self.assertEqual(meta.type, "dashboard") self.assertEqual(meta.version, 9) self.assertEqual(meta.updated_at, "2019-01-24T13:20:08.902Z") meta = KibanaObjMeta.create_from_registry(DASHBOARD_REG_ENTRY_NO_UPDATED_AT) self.assertEqual(meta.id, "2e968fe0-b1bb-11e8-8aac-ef7fd4d8cbad") self.assertEqual(meta.title, "GitLab Issues") self.assertEqual(meta.type, "dashboard") self.assertEqual(meta.version, 9) self.assertIsNone(meta.updated_at)
def find_all(self, obj_type=None): """Find all meta information related to the Kibana objects stored in the registry. This method returns the KibanaObjMeta in the registry. If `obj_type` is None, it returns the content of all the registry. Otherwise, it returns the entries related to the aliases with the given `obj_type`. :param obj_type: target object type :returns a generator of tuples of aliases and metadata in the registry """ if obj_type: for alias in self.content.keys(): if self.content[alias]['type'] == obj_type: meta = KibanaObjMeta.create_from_registry(self.content[alias]) yield alias, meta else: for alias in self.content.keys(): meta = KibanaObjMeta.create_from_registry(self.content[alias]) yield alias, meta
def find(self, alias): """Find the meta information of a Kibana object based on its alias. This method retrieves from the registry the target alias and KibanaObjMeta linked to it. :param alias: target alias :returns a tuple composed of an alias and metadata """ if alias not in self.content: cause = "Alias %s not found in registry" % alias logger.error(cause) raise NotFoundError(cause=cause) meta = KibanaObjMeta.create_from_registry(self.content[alias]) return alias, meta