def parse_driver_info(node):
    """Checks for the required properties and values validity.

    :param node: the target node.
    :raises: MissingParameterValue if one or more required properties are
        missing.
    :raises: InvalidParameterValue if a parameter value is invalid.
    """
    driver_info = node.driver_info
    _check_required_properties(driver_info)

    base_url = driver_info.get('msftocs_base_url')
    if not _is_valid_url(base_url):
        raise exception.InvalidParameterValue(
            _('"%s" is not a valid "msftocs_base_url"') % base_url)

    blade_id = driver_info.get('msftocs_blade_id')
    try:
        blade_id = int(blade_id)
    except __HOLE__:
        raise exception.InvalidParameterValue(
            _('"%s" is not a valid "msftocs_blade_id"') % blade_id)
    if blade_id < 1:
        raise exception.InvalidParameterValue(
            _('"msftocs_blade_id" must be greater than 0. The provided value '
              'is: %s') % blade_id)
dataset/ETHPy150Open openstack/ironic/ironic/drivers/modules/msftocs/common.py/parse_driver_info