Esempio n. 1
0
 def test_generator_com(self):
     """Test the generation in C.E."""
     host = Host(conf.hostsConf, "dummy.xml", "testserver1",
                 "192.168.1.1", "Servers")
     testfactory = TestFactory(confdir=os.path.join(self.tmpdir, "conf"))
     test_list = testfactory.get_test("UpTime", host.classes)
     host.add_tests(test_list)
     nagios = Nagios()
     genmanager = GeneratorManager([nagios])
     genmanager.generate(DummyRevMan())
     self.assert_(os.path.exists(os.path.join(self.basedir, "localhost",
                  "nagios", "nagios.cfg")))
Esempio n. 2
0
 def setUp(self):
     setup_db()
     conf.hostsConf = {}
     # Prepare temporary directory
     self.tmpdir = setup_tmpdir()
     self.basedir = os.path.join(self.tmpdir, "deploy")
     self.old_conf_path = settings["vigiconf"]["confdir"]
     settings["vigiconf"]["confdir"] = os.path.join(self.tmpdir, "conf.d")
     os.mkdir(settings["vigiconf"]["confdir"])
     self.testfactory = TestFactory(confdir=settings["vigiconf"]["confdir"])
     self.host = Host(conf.hostsConf, "dummy.xml", "testserver1",
                      "192.168.1.1", "Servers")
     self.host.set_attribute("collectorTimeout", "3")
     # attention, le fichier dummy.xml doit exister ou l'hôte sera supprimé
     # juste après avoir été inséré
     open(os.path.join(self.tmpdir, "conf.d", "dummy.xml"), "w").close()
     conffile = ConfFile.get_or_create("dummy.xml")
     add_host("testserver1", conffile)
     self.apps = self._get_apps()
     self.genmanager = GeneratorManager(self.apps.values())
     self.substitutions = {
         'nagios_bin': 'nagios',
         'nagios_init': '/etc/init.d/nagios',
         'targetconfdir': '/etc/vigilo/vigiconf/',
         'nagios_cfg': '/etc/nagios/nagios.cfg',
     }
Esempio n. 3
0
class GeneratorBaseTestCase(TestCase):
    """Classe de base pour les tests de génération"""

    def setUp(self):
        setup_db()
        conf.hostsConf = {}
        # Prepare temporary directory
        self.tmpdir = setup_tmpdir()
        self.basedir = os.path.join(self.tmpdir, "deploy")
        self.old_conf_path = settings["vigiconf"]["confdir"]
        settings["vigiconf"]["confdir"] = os.path.join(self.tmpdir, "conf.d")
        os.mkdir(settings["vigiconf"]["confdir"])
        self.testfactory = TestFactory(confdir=settings["vigiconf"]["confdir"])
        self.host = Host(conf.hostsConf, "dummy.xml", "testserver1",
                         "192.168.1.1", "Servers")
        self.host.set_attribute("collectorTimeout", "3")
        # attention, le fichier dummy.xml doit exister ou l'hôte sera supprimé
        # juste après avoir été inséré
        open(os.path.join(self.tmpdir, "conf.d", "dummy.xml"), "w").close()
        conffile = ConfFile.get_or_create("dummy.xml")
        add_host("testserver1", conffile)
        self.apps = self._get_apps()
        self.genmanager = GeneratorManager(self.apps.values())
        self.substitutions = {
            'nagios_bin': 'nagios',
            'nagios_init': '/etc/init.d/nagios',
            'targetconfdir': '/etc/vigilo/vigiconf/',
            'nagios_cfg': '/etc/nagios/nagios.cfg',
        }

    def tearDown(self):
        DBSession.expunge_all()
        teardown_db()
        shutil.rmtree(self.tmpdir)
        settings["vigiconf"]["confdir"] = self.old_conf_path
        conf.hostsConf = {}

    def _get_apps(self):
        """
        Dictionnaire des instances d'applications à tester.
        Exemple: {"nagios": Nagios(), "vigimap": VigiMap()}
        """
        return {}

    def _generate(self):
        self.genmanager.generate(DummyRevMan())

    def _validate(self):
        deploydir = os.path.join(self.basedir, "localhost")
        for appname, app in self.apps.iteritems():
            __import__(app.__module__)
            module = sys.modules[app.__module__]
            validation_script = os.path.join(
                    os.path.dirname(module.__file__),
                    "validate.sh")
            fh = open(validation_script, 'r')
            contents = fh.read()
            fh.close()
            contents = contents % {
            }
            validation_script = os.path.join(self.tmpdir, "validate.sh")
            fh = open(validation_script, 'w')
            fh.write(contents % self.substitutions)
            fh.close()
            print appname
            proc = Popen(["sh", validation_script, deploydir],
                        stdout=PIPE, stderr=STDOUT)
            print proc.communicate()[0]
            self.assertEqual(proc.returncode, 0)