def test_get_serial_console_image_nport_invalid(self):
     body = {'os-getSerialConsole': {'type': 'serial'}}
     self._check_console_failure(
         self.controller.get_serial_console, webob.exc.HTTPBadRequest, body,
         'get_serial_console',
         exception.ImageSerialPortNumberInvalid(
             num_ports='x', property="hw_serial_port_count"))
예제 #2
0
    def test_get_serial_console_image_nport_invalid(self, get_serial_console):
        get_serial_console.side_effect = (
            exception.ImageSerialPortNumberInvalid(
                num_ports='x', property="hw_serial_port_count"))

        body = {'os-getSerialConsole': {'type': 'serial'}}
        self._check_console_failure('self.controller.get_serial_console',
                                    webob.exc.HTTPBadRequest, body)
        self.assertTrue(get_serial_console.called)
예제 #3
0
파일: hardware.py 프로젝트: wentao1101/nova
 def get_number(obj, property):
     num_ports = obj.get(property)
     if num_ports is not None:
         try:
             num_ports = int(num_ports)
         except ValueError:
             raise exception.ImageSerialPortNumberInvalid(
                 num_ports=num_ports, property=property)
     return num_ports
    def test_create_console_nport_invalid(self, mock_get):
        mock_handler = mock.MagicMock()
        mock_handler.side_effect = exception.ImageSerialPortNumberInvalid(
            num_ports='x', property="hw_serial_port_count")
        self.controller.handlers['serial'] = mock_handler

        body = {'remote_console': {'protocol': 'serial', 'type': 'serial'}}
        self.assertRaises(webob.exc.HTTPBadRequest,
                          self.controller.create,
                          self.req,
                          fakes.FAKE_UUID,
                          body=body)
예제 #5
0
    def test_get_serial_console_image_nport_invalid(self, get_serial_console):
        get_serial_console.side_effect = (
            exception.ImageSerialPortNumberInvalid(
                num_ports='x', property="hw_serial_port_count"))

        body = {'os-getSerialConsole': {'type': 'serial'}}
        req = webob.Request.blank(self.url)
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        res = req.get_response(self.app)
        self.assertEqual(res.status_int, 400)
        self.assertTrue(get_serial_console.called)
예제 #6
0
    def _get_image_serial_port_settings(self, image_meta):
        image_props = image_meta['properties']
        serial_ports = {}

        for img_prop, port_type in six.iteritems(constants.SERIAL_PORT_TYPES):
            port_number = int(
                image_props.get(img_prop,
                                constants.DEFAULT_SERIAL_CONSOLE_PORT))

            if port_number not in [1, 2]:
                err_msg = _("Invalid serial port number: %(port_number)s. "
                            "Only COM 1 and COM 2 are available.") % dict(
                                port_number=port_number)
                raise exception.ImageSerialPortNumberInvalid(err_msg)

            existing_type = serial_ports.get(port_number)
            if (not existing_type
                    or existing_type == constants.SERIAL_PORT_TYPE_RO):
                serial_ports[port_number] = port_type

        return serial_ports