hardware: Rework get_number_of_serial_ports

Make this use '_get_flavor_image_meta', thus reducing duplication.

Change-Id: I340001e433d07321c75795648d9c6bc7b16598dd
This commit is contained in:
Stephen Finucane 2016-12-05 19:39:50 +00:00
parent 17fef0c958
commit 320c0855a8
2 changed files with 11 additions and 16 deletions

View File

@ -1906,8 +1906,8 @@ class SocketPortInUseException(NovaException):
class ImageSerialPortNumberInvalid(Invalid):
msg_fmt = _("Number of serial ports '%(num_ports)s' specified in "
"'%(property)s' isn't valid.")
msg_fmt = _("Number of serial ports specified in flavor is invalid: "
"expected an integer, got '%(num_ports)s'")
class ImageSerialPortNumberExceedFlavorValue(Invalid):

View File

@ -173,21 +173,16 @@ def get_number_of_serial_ports(flavor, image_meta):
:returns: number of serial ports
"""
flavor_num_ports, image_num_ports = _get_flavor_image_meta(
'serial_port_count', flavor, image_meta)
if flavor_num_ports:
try:
flavor_num_ports = int(flavor_num_ports)
except ValueError:
raise exception.ImageSerialPortNumberInvalid(
num_ports=flavor_num_ports)
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
flavor_num_ports = get_number(flavor.extra_specs, "hw:serial_port_count")
image_num_ports = image_meta.properties.get("hw_serial_port_count", None)
if (flavor_num_ports and image_num_ports) is not None:
if flavor_num_ports and image_num_ports:
if image_num_ports > flavor_num_ports:
raise exception.ImageSerialPortNumberExceedFlavorValue()
return image_num_ports