Beispiel #1
0
def create_bond_definition(nic_list, next_bond_num):
    slaves_list = [HostNic(id=nic.id) for nic in nic_list]
    if len(slaves_list) > 1:
        bonding = Bonding(options=[
            Option(name=const.BOND_MODE_OPTION_NAME,
                   value=const.BOND_MODE_OPTION_VALUE)
        ],
                          slaves=slaves_list)
        bond_name = const.BOND_PREFIX + str(next_bond_num)
        logging.info('Creating bond %s with slaves: %s', bond_name,
                     ', '.join([nic.name for nic in nic_list]))
        return HostNic(name=bond_name, bonding=bonding)
    else:
        return None
    def _bond_nics(number, host):
        slaves = [HostNic(name=nic) for nic in _host_vm_nics(  # eth2, eth3
                    prefix, host.name, LIBVIRT_NETWORK_FOR_BONDING)]

        options = [
            Option(name='mode', value='active-backup'),
            Option(name='miimon', value='200'),
            ]

        bond = HostNic(
            name=BOND_NAME,
            bonding=Bonding(slaves=slaves, options=options))

        ip_configuration = network_utils_v4.create_static_ip_configuration(
            MIGRATION_NETWORK_IPv4_ADDR.format(number),
            MIGRATION_NETWORK_IPv4_MASK,
            MIGRATION_NETWORK_IPv6_ADDR.format(number),
            MIGRATION_NETWORK_IPv6_MASK)

        host_service = engine.hosts_service().host_service(id=host.id)
        network_utils_v4.attach_network_to_host(
            host_service, BOND_NAME, MIGRATION_NETWORK, ip_configuration,
            [bond])