コード例 #1
0
 def setUp(self):
     ConfigInitializer.basic_config(default_config_files=[
         'tests/functional/test_resources/config/test_config.conf'
     ])
     self.config = Config()
     self.config.config(group='database',
                        use_ssl=True,
                        host='test_ssl_hostname',
                        server_type='jdbc_driver',
                        database_name='db_name',
                        username='******',
                        password='******',
                        ca_file='ca_file')
     self.config.setUp()
コード例 #2
0
    def setUp(self):
        super(TestDriverRegistration, self).setUp()
        self.conf = cfg.ConfigOpts()
        self.cfg_fixture = OsloConfigFixture(self.conf)
        self._load_config_data()
        self.useFixture(self.cfg_fixture)

        def _fake_parse(self, args=[]):
            return cfg.ConfigOpts._parse_cli_opts(self, [])

        _fake_parse_method = types.MethodType(_fake_parse, self.conf)
        self.conf._parse_cli_opts = _fake_parse_method

        # Patches the agent socket
        self.m_agent_socket = MagicMock(autospec=True)

        self.patches.extend([
            # Deactivates the nanomsg socket
            patch(
                "watcher_metering.agent.agent.nanomsg.Socket",
                new=self.m_agent_socket,
            ),
            patch.object(DriverLoader, "_reload_config", MagicMock()),
        ])

        # Applies all of our patches before each test
        for _patch in self.patches:
            _patch.start()
コード例 #3
0
class TestDBUtil(unittest.TestCase):

    def setUp(self):
        ConfigInitializer.basic_config(
            default_config_files=[
                'tests/functional/test_resources/config/test_config.conf'
            ])
        self.config = Config()
        self.config.config(
            group='database',
            use_ssl=True,
            host='test_ssl_hostname',
            server_type='jdbc_driver',
            database_name='db_name',
            username='******',
            password='******',
            ca_file='ca_file')
        self.config.setUp()

    def tearDown(self):
        self.config.cleanUp()

    def test_get_java_db_connection_string_with_ssl(self):
        self.assertEqual(
            'jdbc:jdbc_driver://test_ssl_hostname/db_name?user=test_user'
            '&password=pwd&useSSL=True&requireSSL=True',
            DbUtil.get_java_db_connection_string(cfg.CONF))

    def test_get_python_db_connection_string_with_ssl(self):
        self.assertEqual(
            'mysql+pymysql://test_user:pwd@test_ssl_hostname/db_name?'
            'ssl_ca=ca_file',
            DbUtil.get_python_db_connection_string(cfg.CONF))

    def test_get_java_db_connection_string_without_ssl(self):
        self.config.config(group='database', use_ssl=False)
        self.assertEqual(
            'jdbc:jdbc_driver://test_ssl_hostname/db_name?'
            'user=test_user&password=pwd',
            DbUtil.get_java_db_connection_string())

    def test_get_python_db_connection_string_without_ssl(self):
        self.config.config(group='database', use_ssl=False)
        self.assertEqual(
            'mysql+pymysql://test_user:pwd@test_ssl_hostname/db_name',
            DbUtil.get_python_db_connection_string())
コード例 #4
0
class TestDBUtil(unittest.TestCase):
    def setUp(self):
        ConfigInitializer.basic_config(default_config_files=[
            'tests/functional/test_resources/config/test_config.conf'
        ])
        self.config = Config()
        self.config.config(group='database',
                           use_ssl=True,
                           host='test_ssl_hostname',
                           server_type='jdbc_driver',
                           database_name='db_name',
                           username='******',
                           password='******',
                           ca_file='ca_file')
        self.config.setUp()

    def tearDown(self):
        self.config.cleanUp()

    def test_get_java_db_connection_string_with_ssl(self):
        self.assertEqual(
            'jdbc:jdbc_driver://test_ssl_hostname/db_name?user=test_user'
            '&password=pwd&useSSL=True&requireSSL=True',
            DbUtil.get_java_db_connection_string(cfg.CONF))

    def test_get_python_db_connection_string_with_ssl(self):
        self.assertEqual(
            'mysql+pymysql://test_user:pwd@test_ssl_hostname/db_name?'
            'ssl_ca=ca_file', DbUtil.get_python_db_connection_string(cfg.CONF))

    def test_get_java_db_connection_string_without_ssl(self):
        self.config.config(group='database', use_ssl=False)
        self.assertEqual(
            'jdbc:jdbc_driver://test_ssl_hostname/db_name?'
            'user=test_user&password=pwd',
            DbUtil.get_java_db_connection_string())

    def test_get_python_db_connection_string_without_ssl(self):
        self.config.config(group='database', use_ssl=False)
        self.assertEqual(
            'mysql+pymysql://test_user:pwd@test_ssl_hostname/db_name',
            DbUtil.get_python_db_connection_string())
コード例 #5
0
 def setUp(self):
     ConfigInitializer.basic_config(
         default_config_files=[
             'tests/functional/test_resources/config/test_config.conf'
         ])
     self.config = Config()
     self.config.config(
         group='database',
         use_ssl=True,
         host='test_ssl_hostname',
         server_type='jdbc_driver',
         database_name='db_name',
         username='******',
         password='******',
         ca_file='ca_file')
     self.config.setUp()
コード例 #6
0
class TestDriverRegistration(BaseTestCase):

    # patches to be applied for each test in this test suite
    patches = []

    def setUp(self):
        super(TestDriverRegistration, self).setUp()
        self.conf = cfg.ConfigOpts()
        self.cfg_fixture = OsloConfigFixture(self.conf)
        self._load_config_data()
        self.useFixture(self.cfg_fixture)

        def _fake_parse(self, args=[]):
            return cfg.ConfigOpts._parse_cli_opts(self, [])

        _fake_parse_method = types.MethodType(_fake_parse, self.conf)
        self.conf._parse_cli_opts = _fake_parse_method

        # Patches the agent socket
        self.m_agent_socket = MagicMock(autospec=True)

        self.patches.extend([
            # Deactivates the nanomsg socket
            patch(
                "watcher_metering.agent.agent.nanomsg.Socket",
                new=self.m_agent_socket,
            ),
            patch.object(DriverLoader, "_reload_config", MagicMock()),
        ])

        # Applies all of our patches before each test
        for _patch in self.patches:
            _patch.start()

    def tearDown(self):
        super(TestDriverRegistration, self).tearDown()
        # The drivers are stored at the class level so we need to clear
        # it after each test
        for _patch in self.patches:
            _patch.stop()

    scenarios = [
        # This is enough for most drivers but
        # we still needs to pre-configure the extra params by hand
        (driver_cls.get_name(), {"driver_cls": driver_cls})
        for driver_cls in DRIVERS
    ]

    def _load_config_data(self):
        pdu_drivers = [
            "metrics_driver.energy_active_energy",
            "metrics_driver.energy_active_power",
            "metrics_driver.energy_apparent_power",
            "metrics_driver.energy_frequency",
            "metrics_driver.energy_on_off",
            "metrics_driver.energy_power_factor",
            "metrics_driver.energy_rms_current",
            "metrics_driver.energy_rms_voltage",
        ]
        for pdu_driver in pdu_drivers:
            # pdu_servers=PDU_1:127.0.0.1,PDU_2:192.168.1.1
            self.cfg_fixture.load_raw_values(
                group=pdu_driver,
                pdu_servers="PDU_1:127.0.0.1,PDU_2:192.168.1.1",
            )
            # mapping = PDU_1:[serv1.hostname:1,serv2.hostname:2]
            # mapping = PDU_2:[serv3.hostname:1,serv4.hostname:2]
            [
                {"PDU_1": [{"serv1.hostname": 1}, {"serv2.hostname": 2}]},
                {"PDU_2": [{"serv3.hostname": 1}, {"serv4.hostname": 2}]}
            ]
            self.cfg_fixture.load_raw_values(
                group=pdu_driver,
                mapping="PDU_1:[serv1.hostname:1,serv2.hostname:2]",
            )
            self.cfg_fixture.load_raw_values(
                group=pdu_driver,
                mapping="PDU_2:[serv3.hostname:1,serv4.hostname:2]",
            )

        instance_drivers = [
            "metrics_driver.instance_cpu_used",
        ]

        for instance_driver in instance_drivers:
            self.cfg_fixture.load_raw_values(
                group=instance_driver,
                libvirt_type="qemu",
            )
            self.cfg_fixture.load_raw_values(
                group=instance_driver,
                connection_uri=None,
            )

    @patch("watcher_metering_drivers.instance_cpu.InstanceCpuWrapper",
           MagicMock())
    @patch("watcher_metering_drivers.pdu.PDURaritanWrapper", MagicMock())
    def test_register_metering_drivers(self):
        # Try to register/load each one of the driver using the Agent
        agent = Agent(
            conf=self.conf,
            driver_names=[self.driver_cls.get_name()],
            use_nanoconfig_service=False,
            publisher_endpoint="fake",
            nanoconfig_service_endpoint="",
            nanoconfig_update_endpoint="",
            nanoconfig_profile="nanoconfig://test_profile"
        )
        # Because it seems it does not clear from previous scenarios
        agent.drivers.clear()
        agent.register_drivers()

        self.assertEqual(
            sorted(agent.drivers.keys()),
            ["%s_%s" % (self.driver_cls.get_entry_name(),
                        self.driver_cls.get_default_probe_id())]
        )