Merge "Update Ironic VM network connection"

This commit is contained in:
Jenkins 2016-07-14 16:39:04 +00:00 committed by Gerrit Code Review
commit c40d449a39
4 changed files with 25 additions and 7 deletions

View File

@ -1306,6 +1306,12 @@ function cleanup_baremetal_basic_ops {
local vm_name local vm_name
for vm_name in $(_ironic_bm_vm_names); do for vm_name in $(_ironic_bm_vm_names); do
sudo su $STACK_USER -c "$IRONIC_SCRIPTS_DIR/cleanup-node.sh $vm_name" sudo su $STACK_USER -c "$IRONIC_SCRIPTS_DIR/cleanup-node.sh $vm_name"
# Cleanup node bridge/interfaces
sudo ip link set ovs-$vm_name down
sudo ip link set br-$vm_name down
sudo ovs-vsctl del-port ovs-$vm_name
sudo ip link del dev ovs-$vm_name
sudo ip link del dev br-$vm_name
done done
sudo ovs-vsctl --if-exists del-br $IRONIC_VM_NETWORK_BRIDGE sudo ovs-vsctl --if-exists del-br $IRONIC_VM_NETWORK_BRIDGE

View File

@ -68,10 +68,11 @@ def main():
help="CPU count for the VM.") help="CPU count for the VM.")
parser.add_argument('--bootdev', default='hd', parser.add_argument('--bootdev', default='hd',
help="What boot device to use (hd/network).") help="What boot device to use (hd/network).")
parser.add_argument('--network', default="brbm",
help='The libvirt network name to use')
parser.add_argument('--libvirt-nic-driver', default='virtio', parser.add_argument('--libvirt-nic-driver', default='virtio',
help='The libvirt network driver to use') help='The libvirt network driver to use')
parser.add_argument('--bridge', default="br-seed",
help='The linux bridge name to use for seeding \
the baremetal pseudo-node\'s OS image')
parser.add_argument('--console-log', parser.add_argument('--console-log',
help='File to log console') help='File to log console')
parser.add_argument('--emulator', default=None, parser.add_argument('--emulator', default=None,
@ -89,7 +90,7 @@ def main():
'memory': args.memory, 'memory': args.memory,
'cpus': args.cpus, 'cpus': args.cpus,
'bootdev': args.bootdev, 'bootdev': args.bootdev,
'network': args.network, 'bridge': args.bridge,
'nicdriver': args.libvirt_nic_driver, 'nicdriver': args.libvirt_nic_driver,
'emulator': args.emulator, 'emulator': args.emulator,
'disk_format': args.disk_format 'disk_format': args.disk_format

View File

@ -62,6 +62,18 @@ else
fi fi
VOL_NAME="${NAME}.${DISK_FORMAT}" VOL_NAME="${NAME}.${DISK_FORMAT}"
# Create bridge and add VM interface to it.
# Additional interface will be added to this bridge and
# it will be plugged to OVS.
# This is needed in order to have interface in OVS even
# when VM is in shutdown state
sudo brctl addbr br-$NAME
sudo ip link set br-$NAME up
sudo ovs-vsctl add-port $BRIDGE ovs-$NAME -- set Interface ovs-$NAME type=internal
sudo ip link set ovs-$NAME up
sudo brctl addif br-$NAME ovs-$NAME
if ! virsh list --all | grep -q $NAME; then if ! virsh list --all | grep -q $NAME; then
virsh vol-list --pool $LIBVIRT_STORAGE_POOL | grep -q $VOL_NAME && virsh vol-list --pool $LIBVIRT_STORAGE_POOL | grep -q $VOL_NAME &&
virsh vol-delete $VOL_NAME --pool $LIBVIRT_STORAGE_POOL >&2 virsh vol-delete $VOL_NAME --pool $LIBVIRT_STORAGE_POOL >&2
@ -73,7 +85,7 @@ if ! virsh list --all | grep -q $NAME; then
$TOP_DIR/scripts/configure-vm.py \ $TOP_DIR/scripts/configure-vm.py \
--bootdev network --name $NAME --image "$volume_path" \ --bootdev network --name $NAME --image "$volume_path" \
--arch $ARCH --cpus $CPU --memory $MEM --libvirt-nic-driver $LIBVIRT_NIC_DRIVER \ --arch $ARCH --cpus $CPU --memory $MEM --libvirt-nic-driver $LIBVIRT_NIC_DRIVER \
--emulator $EMULATOR --network $BRIDGE --disk-format $DISK_FORMAT $VM_LOGGING >&2 --emulator $EMULATOR --bridge br-$NAME --disk-format $DISK_FORMAT $VM_LOGGING >&2
# Createa Virtual BMC for the node if IPMI is used # Createa Virtual BMC for the node if IPMI is used
if [[ $(type -P vbmc) != "" ]]; then if [[ $(type -P vbmc) != "" ]]; then

View File

@ -28,9 +28,8 @@
<controller type='ide' index='0'> <controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller> </controller>
<interface type='network'> <interface type='bridge'>
<source network='%(network)s'/> <source bridge='%(bridge)s'/>
<virtualport type='openvswitch'/>
<model type='%(nicdriver)s'/> <model type='%(nicdriver)s'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface> </interface>