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"))
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)
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)
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)
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