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)
Exemple #2
0
    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)
Exemple #4
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)
Exemple #5
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')
Exemple #9
0
    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']
Exemple #10
0
    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))
Exemple #11
0
    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))