¡@

Home 

OpenStack Study: utils.py

OpenStack Index

**** CubicPower OpenStack Study ****

def verify_vlan_range(vlan_range):

    """Raise an exception for invalid tags or malformed range."""

    for vlan_tag in vlan_range:

        if not utils.is_valid_vlan_tag(vlan_tag):

            raise n_exc.NetworkVlanRangeError(

                vlan_range=vlan_range,

                error=_("%s is not a valid VLAN tag") % vlan_tag)

    if vlan_range[1] < vlan_range[0]:

        raise n_exc.NetworkVlanRangeError(

            vlan_range=vlan_range,

            error=_("End of VLAN range is less than start of VLAN range"))

**** CubicPower OpenStack Study ****

def parse_network_vlan_range(network_vlan_range):

    """Interpret a string as network[:vlan_begin:vlan_end]."""

    entry = network_vlan_range.strip()

    if ':' in entry:

        try:

            network, vlan_min, vlan_max = entry.split(':')

            vlan_range = (int(vlan_min), int(vlan_max))

        except ValueError as ex:

            raise n_exc.NetworkVlanRangeError(vlan_range=entry, error=ex)

        verify_vlan_range(vlan_range)

        return network, vlan_range

    else:

        return entry, None

**** CubicPower OpenStack Study ****

def parse_network_vlan_ranges(network_vlan_ranges_cfg_entries):

    """Interpret a list of strings as network[:vlan_begin:vlan_end] entries."""

    networks = {}

    for entry in network_vlan_ranges_cfg_entries:

        network, vlan_range = parse_network_vlan_range(entry)

        if vlan_range:

            networks.setdefault(network, []).append(vlan_range)

        else:

            networks.setdefault(network, [])

    return networks

**** CubicPower OpenStack Study ****

def in_pending_status(status):

    return status in (constants.PENDING_CREATE,

                      constants.PENDING_UPDATE,

                      constants.PENDING_DELETE)