def test_checks(self): self.maxDiff = None config = { 'init_config': {}, 'instances': [ { 'location': self.location, 'file_polling_interval': 2 } ] } # reseting the polling interval before run store = PersistableStore("ucmdb_file", self.location) store.clear_status() store = PersistableStore("ucmdb_file", self.location) store['ucmdb_dump_structure'] = UcmdbDumpStructure.load(self.location) store.commit_status() self.run_check(config) instances = self.check.get_topology_instances() self.assertEqual(len(instances), 1) self.run_check(config) instances = self.check.get_topology_instances() self.assertEqual(len(instances), 0) time.sleep(2) self.run_check(config) instances = self.check.get_topology_instances() self.assertEqual(len(instances), 1)
def test_several_files(self): tmp_dump_root = tempfile.mkdtemp() tmp_full_dir = os.path.join(tmp_dump_root, UcmdbDumpStructure.FULL_DIRECTORY) tmp_increment_dir = os.path.join( tmp_dump_root, UcmdbDumpStructure.INCREMENT_DIRECTORY) os.mkdir(tmp_full_dir) os.mkdir(tmp_increment_dir) now = time.time() self.make_file(os.path.join(tmp_full_dir, "3.xml"), now + 1) self.make_file(os.path.join(tmp_full_dir, "2.xml"), now + 2) self.make_file(os.path.join(tmp_full_dir, "1.xml"), now + 3) self.make_file(os.path.join(tmp_increment_dir, "3.xml"), now + 1) self.make_file(os.path.join(tmp_increment_dir, "2.xml"), now + 2) self.make_file(os.path.join(tmp_increment_dir, "1.xml"), now + 3) structure = UcmdbDumpStructure.load(tmp_dump_root) snapshots = structure.get_snapshots() increments = structure.get_increments() self.assertEquals(len(snapshots), 3) self.assertEquals(snapshots, [ os.path.join(tmp_full_dir, "3.xml"), os.path.join(tmp_full_dir, "2.xml"), os.path.join(tmp_full_dir, "1.xml") ]) self.assertEquals(len(increments), 3) self.assertEquals(increments, [ os.path.join(tmp_increment_dir, "3.xml"), os.path.join(tmp_increment_dir, "2.xml"), os.path.join(tmp_increment_dir, "1.xml") ])
def test_empty_folder(self): structure = UcmdbDumpStructure.load( "tests/core/fixtures/ucmdb/dump/empty") file_dump = UcmdbFileDump(structure) file_dump.load() self.assertEquals(len(file_dump.get_components()), 0) self.assertEquals(len(file_dump.get_relations()), 0)
def test_empty_folder(self): structure = UcmdbDumpStructure.load( "tests/core/fixtures/ucmdb/dump/empty") snapshots = structure.get_snapshots() increments = structure.get_increments() self.assertEquals(len(snapshots), 0) self.assertEquals(len(increments), 0)
def test_one_snapshot_one_increment(self): structure = UcmdbDumpStructure.load( "tests/core/fixtures/ucmdb/dump/one") snapshots = structure.get_snapshots() increments = structure.get_increments() self.assertEquals(len(snapshots), 1) self.assertEquals(len(increments), 1)
def test_load_exclude_types(self): structure = UcmdbDumpStructure.load( "tests/core/fixtures/ucmdb/dump/exclude_types") file_dump = UcmdbFileDump(structure) file_dump.load(set(["to_be_excluded", "business_application"])) self.assertEquals(len(file_dump.get_components()), 0) self.assertEquals(file_dump.get_components().keys(), []) self.assertEquals(file_dump.get_relations().keys(), [])
def test_load_only_increments(self): structure = UcmdbDumpStructure.load( "tests/core/fixtures/ucmdb/dump/only_increments") file_dump = UcmdbFileDump(structure) file_dump.load() self.assertEquals(len(file_dump.get_components()), 2) self.assertEquals(file_dump.get_components().keys(), [ 'dab1c91cdc7a6d808b0642cb02ea22f0', 'ba21d9dfb1c2ebf4ee951589a3b4ec62' ]) self.assertEquals(file_dump.get_relations().keys(), ['a9247f4296601c507064ae599bec177e'])
def test_load_and_update(self): structure = UcmdbDumpStructure.load( "tests/core/fixtures/ucmdb/dump/increment_updates_snapshots") file_dump = UcmdbFileDump(structure) file_dump.load() self.assertEquals(len(file_dump.get_components()), 3) self.assertEquals(len(file_dump.get_relations()), 1) self.assertEquals(file_dump.get_components().keys(), [ 'ba21d9dfb1c2ebf4ee951589a3b4ec63', 'dab1c91cdc7a6d808b0642cb02ea22f0', 'dab1c91cdc7a6d808b0642cb02ea22f1' ]) self.assertEquals(file_dump.get_relations().keys(), ['a9247f4296601c507064ae599bec177e']) self.assertEquals( file_dump.get_components()['ba21d9dfb1c2ebf4ee951589a3b4ec63'] ['data']['display_label'], 'UPDATED') self.assertEquals( file_dump.get_relations()['a9247f4296601c507064ae599bec177e'] ['data']['display_label'], 'UPDATED')
def __init__(self, instance): if 'location' not in instance: raise CheckException('topology instance missing "location" value.') self.location = instance["location"] self.attribute_tag_config = self._get_or_default( instance, "tag_attributes", self.CONFIG_DEFAULTS) self.polling_interval = self._get_or_default(instance, "file_polling_interval", self.CONFIG_DEFAULTS) self.component_type_field = self._get_or_default( instance, "component_type_field", self.CONFIG_DEFAULTS) self.relation_type_field = self._get_or_default( instance, "relation_type_field", self.CONFIG_DEFAULTS) self.excluded_types = set( self._get_or_default(instance, "excluded_types", self.CONFIG_DEFAULTS)) self.grouping_connected_components = self._get_or_default( instance, "grouping_connected_components", self.CONFIG_DEFAULTS) self.grouping_component_trees = self._get_or_default( instance, "grouping_component_trees", self.CONFIG_DEFAULTS) self.component_group = self._get_or_default(instance, "component_group", self.CONFIG_DEFAULTS) self.label_min_group_size = self._get_or_default( instance, "label_min_group_size", self.CONFIG_DEFAULTS) self.tags = self._get_or_default(instance, 'tags', self.CONFIG_DEFAULTS) self.instance_key = {"type": self.INSTANCE_TYPE, "url": self.location} self._persistable_store = PersistableStore(self.PERSISTENCE_CHECK_NAME, self.location) self.timer = StsTimer("last_poll_time", self.polling_interval) self.timer.load(self._persistable_store) self.dump_structure = UcmdbDumpStructure.load(self.location) self.previous_structure = self._persistable_store[ 'ucmdb_dump_structure']
def test_has_changes_modification_timechanged(self): old = UcmdbDumpStructure({ "snapshot1": 1, "snapshot2": 2 }, {"increment1": 1}) new = UcmdbDumpStructure({ "snapshot1": 1, "snapshot2": 3 }, {"increment1": 1}) self.assertFalse(old.has_changes(old)) self.assertFalse(new.has_changes(new)) self.assertTrue(new.has_changes(old)) old = UcmdbDumpStructure({"snapshot1": 1}, { "increment1": 1, "increment2": 2 }) new = UcmdbDumpStructure({"snapshot1": 1}, { "increment1": 1, "increment2": 3 }) self.assertFalse(old.has_changes(old)) self.assertFalse(new.has_changes(new)) self.assertTrue(new.has_changes(old))
def test_has_changes_new_file(self): old = UcmdbDumpStructure({"snapshot1": 1}, {"increment1": 1}) new = UcmdbDumpStructure({ "snapshot1": 1, "snapshot2": 2 }, {"increment1": 1}) self.assertFalse(old.has_changes(old)) self.assertFalse(new.has_changes(new)) self.assertTrue(new.has_changes(old)) old = UcmdbDumpStructure({"snapshot1": 1}, {"increment1": 1}) new = UcmdbDumpStructure({"snapshot1": 1}, { "increment1": 1, "increment2": 2 }) self.assertFalse(old.has_changes(old)) self.assertFalse(new.has_changes(new)) self.assertTrue(new.has_changes(old))