From f0beeada9da02461374c20ba14c190da4d393abe Mon Sep 17 00:00:00 2001 From: "John L. Villalovos" Date: Fri, 13 May 2016 10:47:34 -0700 Subject: [PATCH] Setup for using the Grenade 'early_create' phase * Create a 'devstack/upgrade/resources.sh' file to be used by Grenade. * Create an 'early_create' phase to call the create_ovs_tap() function. * Refactor the create_ovs_tap() function to accept an argument for the network to use. Change-Id: I0efe427a7023d0336f25856c362c655c138102df --- devstack/lib/ironic | 11 +++-- devstack/upgrade/resources.sh | 75 +++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 3 deletions(-) create mode 100755 devstack/upgrade/resources.sh diff --git a/devstack/lib/ironic b/devstack/lib/ironic index aab15e7c3c..4a1595c7ba 100644 --- a/devstack/lib/ironic +++ b/devstack/lib/ironic @@ -650,16 +650,19 @@ function stop_ironic { sudo rm -rf $IRONIC_LIBVIRT_HOOKS_PATH/qemu } +# create_ovs_taps is also called by the devstack/upgrade/resources.sh script +# +# create_ovs_taps ironic_network_id function create_ovs_taps { local ironic_net_id - ironic_net_id=$(neutron net-list | grep private | get_field 1) + ironic_net_id=$1 die_if_not_set $LINENO ironic_net_id "Failed to get ironic network id" # Work around: No netns exists on host until a Neutron port is created. We # need to create one in Neutron to know what netns to tap into prior to the # first node booting. local port_id - port_id=$(neutron port-create private | grep " id " | get_field 2) + port_id=$(neutron port-create ${ironic_net_id} | grep " id " | get_field 2) die_if_not_set $LINENO port_id "Failed to create neutron port" # intentional sleep to make sure the tag has been set to port @@ -735,7 +738,9 @@ function create_bridge_and_vms { $vbmc_port $log_arg $IRONIC_VM_SPECS_DISK_FORMAT" >> $IRONIC_VM_MACS_CSV_FILE vbmc_port=$((vbmc_port+1)) done - create_ovs_taps + local ironic_net_id + ironic_net_id=$(neutron net-list | grep private | get_field 1) + create_ovs_taps $ironic_net_id } function wait_for_nova_resources { diff --git a/devstack/upgrade/resources.sh b/devstack/upgrade/resources.sh new file mode 100755 index 0000000000..83e00fdc66 --- /dev/null +++ b/devstack/upgrade/resources.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# Copyright 2015 Hewlett-Packard Development Company, L.P. +# Copyright 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +set -o errexit + +source $GRENADE_DIR/grenaderc +source $GRENADE_DIR/functions + +source $TOP_DIR/openrc admin admin + +IRONIC_DEVSTACK_DIR=$(cd $(dirname "$0")/.. && pwd) +source $IRONIC_DEVSTACK_DIR/lib/ironic + +set -o xtrace + + +function early_create { + local net_id + net_id=$(resource_get network net_id) + create_ovs_taps $net_id +} + +function create { + : +} + +function verify { + : +} + +function verify_noapi { + : +} + +function destroy { + : +} + +# Dispatcher +case $1 in + "early_create") + early_create + ;; + "create") + create + ;; + "verify_noapi") + verify_noapi + ;; + "verify") + verify + ;; + "destroy") + destroy + ;; + "force_destroy") + set +o errexit + destroy + ;; +esac +