コード例 #1
0
def validates_bonding(obj, target_regex):
    checker = Checker()
    check = True
    _ = obj._
    checker.errors = []

    count = 0
    for input in obj.input:
        m = target_regex.match(input)
        if m:
            count += 1
            check = checker.check_netdev_name(
                _('Target Device Name'),
                m.group('dev'),
                CHECK_EMPTY | CHECK_VALID,
            ) and check
    if count < 2:
        check = False
        checker.add_error(_('Not enough target devices for bonding.'))

    if is_param(obj.input, 'bonding_target_dev_primary'):
        check = checker.check_netdev_name(
            _('Primary Device Name'),
            obj.input.bonding_target_dev_primary,
            CHECK_EMPTY | CHECK_VALID,
        ) and check
    else:
        check = False
        checker.add_error(_('"%s" is required.') % _('Primary Device Name'))

    if is_param(obj.input, 'bonding_mode'):
        if obj.input.bonding_mode not in BONDING_MODE:
            check = False
            checker.add_error(_('Unknown bonding mode.'))
    else:
        check = False
        checker.add_error(_('"%s" is required.') % _('Bonding Mode'))

    obj.view.alert = checker.errors
    return check
コード例 #2
0
def validates_bonding(obj, target_regex):
    checker = Checker()
    check = True
    _ = obj._
    checker.errors = []

    count = 0
    for input in obj.input:
        m = target_regex.match(input)
        if m:
            count += 1
            check = checker.check_netdev_name(_('Target Device Name'),
                                              m.group('dev'),
                                              CHECK_EMPTY | CHECK_VALID,
                                              ) and check
    if count < 2:
        check = False
        checker.add_error(_('Not enough target devices for bonding.'))

    if is_param(obj.input, 'bonding_target_dev_primary'):
        check = checker.check_netdev_name(_('Primary Device Name'),
                                          obj.input.bonding_target_dev_primary,
                                          CHECK_EMPTY | CHECK_VALID,
                                          ) and check
    else:
        check = False
        checker.add_error(_('"%s" is required.') %_('Primary Device Name'))

    if is_param(obj.input, 'bonding_mode'):
        if obj.input.bonding_mode not in BONDING_MODE:
            check = False
            checker.add_error(_('Unknown bonding mode.'))
    else:
        check = False
        checker.add_error(_('"%s" is required.') %_('Bonding Mode'))

    obj.view.alert = checker.errors
    return check
コード例 #3
0
def validates_network(obj, network_name=None):
    checker = Checker()
    check = True

    _ = obj._
    checker.errors = []

    if not network_name:
        check = False
        checker.add_error(_('Specify network name.'))

    if not is_param(obj.input, 'cidr'):
        check = False
        checker.add_error(_('Specify bridge IP address for the network.'))
    else:
        check = checker.check_ipaddr(
            _('Bridge IP Address/Netmask'),
            obj.input.cidr,
            CHECK_EMPTY | CHECK_VALID,
        ) and check

    if not is_param(obj.input, 'bridge'):
        check = False
        checker.add_error(_('Specify bridge name to create for the network.'))
    else:
        check = checker.check_netdev_name(
            _('Bridge Device Name'),
            obj.input.bridge,
            CHECK_EMPTY | CHECK_VALID,
        ) and check

    A = is_param(obj.input, 'dhcp_start')
    B = is_param(obj.input, 'dhcp_end')
    #if not ( ((not A) and (not B)) or (A and B)):
    if not (A and B):
        check = False
        checker.add_error(
            _('Specify both %s and %s') %
            (_('DHCP Start Address'), _('DHCP End Address')))

    if is_param(obj.input, 'dhcp_start'):
        check = checker.check_ipaddr(
            _('DHCP Start Address'),
            obj.input.dhcp_start,
            CHECK_EMPTY | CHECK_ONLYSPACE | CHECK_VALID,
        ) and check

    if is_param(obj.input, 'dhcp_end'):
        check = checker.check_ipaddr(
            _('DHCP End Address'),
            obj.input.dhcp_end,
            CHECK_EMPTY | CHECK_ONLYSPACE | CHECK_VALID,
        ) and check

    check = checker.check_if_ips_are_in_network([
        _('DHCP Start Address'),
        _('DHCP End Address'),
        _('Bridge IP Address/Netmask')
    ], [obj.input.dhcp_start, obj.input.dhcp_end], obj.input.cidr, CHECK_VALID
                                                | CHECK_UNIQUE) and check

    check = checker.check_ip_range([
        _('DHCP Start Address'),
        _('DHCP End Address'),
        _('Bridge IP Address/Netmask')
    ], [obj.input.dhcp_start, obj.input.dhcp_end, obj.input.cidr],
                                   CHECK_VALID) and check

    check = checker.check_virt_network_address_conflict(
        _('Bridge IP Address/Netmask'),
        obj.input.cidr,
        [network_name],  # names to ignore
        CHECK_VALID) and check

    if is_param(obj.input, 'forward_mode'):
        check = checker.check_forward_mode(
            _('Forward Mode'),
            obj.input.forward_mode,
            CHECK_VALID,
        ) and check

    obj.view.alert = checker.errors
    return check
コード例 #4
0
ファイル: hostby1networkby1.py プロジェクト: goura/karesansui
def validates_network(obj, network_name=None):
    checker = Checker()
    check = True

    _ = obj._
    checker.errors = []

    if not network_name:
        check = False
        checker.add_error(_('Specify network name.'))

    if not is_param(obj.input, 'cidr'):
        check = False
        checker.add_error(_('Specify bridge IP address for the network.'))
    else:
        check = checker.check_ipaddr(
                _('Bridge IP Address/Netmask'),
                obj.input.cidr,
                CHECK_EMPTY | CHECK_VALID,
                ) and check

    if not is_param(obj.input, 'bridge'):
        check = False
        checker.add_error(_('Specify bridge name to create for the network.'))
    else:
        check = checker.check_netdev_name(
                _('Bridge Device Name'),
                obj.input.bridge,
                CHECK_EMPTY | CHECK_VALID,
                ) and check

    A = is_param(obj.input, 'dhcp_start')
    B = is_param(obj.input, 'dhcp_end')
    #if not ( ((not A) and (not B)) or (A and B)):
    if not (A and B):
        check = False
        checker.add_error(_('Specify both %s and %s') % (_('DHCP Start Address'), _('DHCP End Address')))

    if is_param(obj.input, 'dhcp_start'):
        check = checker.check_ipaddr(
                _('DHCP Start Address'),
                obj.input.dhcp_start,
                CHECK_EMPTY | CHECK_ONLYSPACE | CHECK_VALID,
                ) and check

    if is_param(obj.input, 'dhcp_end'):
        check = checker.check_ipaddr(
                _('DHCP End Address'),
                obj.input.dhcp_end,
                CHECK_EMPTY | CHECK_ONLYSPACE | CHECK_VALID,
                ) and check

    check = checker.check_if_ips_are_in_network(
                            [ _('DHCP Start Address'), _('DHCP End Address'), _('Bridge IP Address/Netmask')],
                            [obj.input.dhcp_start, obj.input.dhcp_end],
                            obj.input.cidr,
                            CHECK_VALID | CHECK_UNIQUE) and check

    check = checker.check_ip_range(
                            [ _('DHCP Start Address'), _('DHCP End Address'), _('Bridge IP Address/Netmask')],
                            [obj.input.dhcp_start, obj.input.dhcp_end, obj.input.cidr],
                            CHECK_VALID) and check

    check = checker.check_virt_network_address_conflict(
                            _('Bridge IP Address/Netmask'),
                            obj.input.cidr,
                            [network_name],   # names to ignore
                            CHECK_VALID) and check

    if is_param(obj.input, 'forward_mode'):
        check = checker.check_forward_mode(
                _('Forward Mode'),
                obj.input.forward_mode,
                CHECK_VALID,
                ) and check

    obj.view.alert = checker.errors
    return check
コード例 #5
0
ファイル: hostby1network.py プロジェクト: nabeken/karesansui
def validates_network(obj, network_name=None):
    checker = Checker()
    check = True

    _ = obj._
    checker.errors = []

    if not is_param(obj.input, "name"):
        check = False
        checker.add_error(_("Specify network name."))
    else:
        check = checker.check_network_name(_("Network Name"), obj.input.name, CHECK_EMPTY | CHECK_VALID) and check

    if not is_param(obj.input, "cidr"):
        check = False
        checker.add_error(_("Specify bridge IP address for the network."))
    else:
        check = (
            checker.check_ipaddr(_("Bridge IP Address/Netmask"), obj.input.cidr, CHECK_EMPTY | CHECK_VALID) and check
        )

    if not is_param(obj.input, "bridge"):
        check = False
        checker.add_error(_("Specify bridge name to create for the network."))
    else:
        check = (
            checker.check_netdev_name(_("Bridge Device Name"), obj.input.bridge, CHECK_EMPTY | CHECK_VALID) and check
        )

    A = is_param(obj.input, "dhcp_start")
    B = is_param(obj.input, "dhcp_end")
    # if not ( ((not A) and (not B)) or (A and B)):
    if not (A and B):
        check = False
        checker.add_error(_("Specify both %s and %s") % (_("DHCP Start Address"), _("DHCP End Address")))

    if is_param(obj.input, "dhcp_start"):
        check = (
            checker.check_ipaddr(
                _("DHCP Start Address"), obj.input.dhcp_start, CHECK_EMPTY | CHECK_ONLYSPACE | CHECK_VALID
            )
            and check
        )

    if is_param(obj.input, "dhcp_end"):
        check = (
            checker.check_ipaddr(_("DHCP End Address"), obj.input.dhcp_end, CHECK_EMPTY | CHECK_ONLYSPACE | CHECK_VALID)
            and check
        )

    check = (
        checker.check_if_ips_are_in_network(
            [_("DHCP Start Address"), _("DHCP End Address"), _("Bridge IP Address/Netmask")],
            [obj.input.dhcp_start, obj.input.dhcp_end],
            obj.input.cidr,
            CHECK_VALID | CHECK_UNIQUE,
        )
        and check
    )

    check = (
        checker.check_ip_range(
            [_("DHCP Start Address"), _("DHCP End Address"), _("Bridge IP Address/Netmask")],
            [obj.input.dhcp_start, obj.input.dhcp_end, obj.input.cidr],
            CHECK_VALID,
        )
        and check
    )

    check = (
        checker.check_virt_network_address_conflict(
            _("Bridge IP Address/Netmask"), obj.input.cidr, [network_name], CHECK_VALID  # names to ignore
        )
        and check
    )

    if is_param(obj.input, "forward_mode"):
        check = checker.check_forward_mode(_("Forward Mode"), obj.input.forward_mode, CHECK_VALID) and check

    obj.view.alert = checker.errors
    return check