Exemplo n.º 1
0
 def _check_completion_code(self, xml_response):
     try:
         et = ElementTree.fromstring(xml_response)
     except ElementTree.ParseError as ex:
         LOG.exception(_LE("XML parsing failed: %s"), ex)
         raise exception.MSFTOCSClientApiException(
             _("Invalid XML: %s") % xml_response)
     item = et.find("./n:completionCode", namespaces={'n': WCSNS})
     if item is None or item.text != COMPLETION_CODE_SUCCESS:
         raise exception.MSFTOCSClientApiException(
             _("Operation failed: %s") % xml_response)
     return et
Exemplo n.º 2
0
    def test_reboot_fail(self, mock_gci):
        with task_manager.acquire(self.context, self.node.uuid,
                                  shared=False) as task:
            mock_c = mock.MagicMock(spec=msftocsclient.MSFTOCSClientApi)
            blade_id = task.node.driver_info['msftocs_blade_id']
            mock_gci.return_value = (mock_c, blade_id)

            ex = exception.MSFTOCSClientApiException('x')
            mock_c.set_blade_power_cycle.side_effect = ex

            self.assertRaises(exception.PowerStateFailure,
                              task.driver.power.reboot, task)
            mock_gci.assert_called_once_with(task.node.driver_info)
            mock_c.set_blade_power_cycle.assert_called_once_with(blade_id)
Exemplo n.º 3
0
    def _exec_cmd(self, rel_url):
        """Executes a command by calling the chassis manager API."""
        url = posixpath.join(self._base_url, rel_url)
        try:
            response = requests.get(url,
                                    auth=auth.HTTPBasicAuth(
                                        self._username, self._password))
            response.raise_for_status()
        except requests_exceptions.RequestException as ex:
            msg = _("HTTP call failed: %s") % ex
            LOG.exception(msg)
            raise exception.MSFTOCSClientApiException(msg)

        xml_response = response.text
        LOG.debug("Call to %(url)s got response: %(xml_response)s", {
            "url": url,
            "xml_response": xml_response
        })
        return xml_response