summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladyslav Drok <vdrok@mirantis.com>2017-06-30 18:28:15 +0300
committerVladyslav Drok <vdrok@mirantis.com>2017-08-14 09:29:52 +0000
commit4b14f4255bea38a92b4188d8124d56af3c290dc9 (patch)
treeb12100c393acc78cca31ebc2f6f068d39caf70d6
parentd7574ac1fd1a2113f2e463956a458a255ffcc948 (diff)
downloadironic-4b14f4255bea38a92b4188d8124d56af3c290dc9.tar.gz
Get rid of sourcing stackrc in grenade settings
Instead, use the common_settings file to source all the variables we need at the early stages of devstack setup and during the upgrade itself. This also fixes an issue with the networking-generic-switch upgrade script, which is run from the old release instead of the new one. Change-Id: If63779ced5e99461782c65188f4776045df85125
-rw-r--r--devstack/common_settings63
-rw-r--r--devstack/lib/ironic55
-rw-r--r--devstack/settings2
-rw-r--r--devstack/upgrade/settings17
4 files changed, 70 insertions, 67 deletions
diff --git a/devstack/common_settings b/devstack/common_settings
new file mode 100644
index 000000000..b9c87e827
--- /dev/null
+++ b/devstack/common_settings
@@ -0,0 +1,63 @@
+if [[ -f $TOP_DIR/../../old/devstack/.localrc.auto ]]; then
+ source <(cat $TOP_DIR/../../old/devstack/.localrc.auto | grep -v 'enable_plugin')
+fi
+
+CIRROS_VERSION=0.3.4
+
+# Whether configure the nodes to boot in Legacy BIOS or UEFI mode. Accepted
+# values are: "bios" or "uefi", defaults to "bios".
+#
+# WARNING: UEFI is EXPERIMENTAL. The CirrOS images uploaded by DevStack by
+# default WILL NOT WORK with UEFI.
+IRONIC_BOOT_MODE=${IRONIC_BOOT_MODE:-bios}
+
+IRONIC_DEFAULT_IMAGE_NAME=cirros-${CIRROS_VERSION}-x86_64-uec
+if [[ "$IRONIC_BOOT_MODE" == "uefi" ]]; then
+ IRONIC_DEFAULT_IMAGE_NAME=cirros-d160722-x86_64-uec
+fi
+
+IRONIC_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-$IRONIC_DEFAULT_IMAGE_NAME}
+
+# Add link to download queue, ignore if already exist.
+# TODO(vsaienko) Move to devstack https://review.openstack.org/420656
+function add_image_link {
+ local i_link="$1"
+ if ! [[ "$IMAGE_URLS" =~ "$i_link" ]]; then
+ if [[ -z "$IMAGE_URLS" || "${IMAGE_URLS: -1}" == "," ]]; then
+ IMAGE_URLS+="$i_link"
+ else
+ IMAGE_URLS+=",$i_link"
+ fi
+ fi
+}
+
+if [[ "$IRONIC_BOOT_MODE" == "uefi" ]]; then
+ add_image_link http://download.cirros-cloud.net/daily/20160722/cirros-d160722-x86_64-uec.tar.gz
+ add_image_link http://download.cirros-cloud.net/daily/20160722/cirros-d160722-x86_64-disk.img
+else
+ # NOTE (vsaienko) We are going to test mixed drivers/partitions in single setup.
+ # Do not restrict downloading image only for specific case. Download both disk and uec images.
+ add_image_link http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-uec.tar.gz
+ add_image_link http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-disk.img
+fi
+
+IRONIC_WHOLEDISK_IMAGE_NAME=${IRONIC_WHOLEDISK_IMAGE_NAME:-${IRONIC_IMAGE_NAME/-uec/-disk}}
+IRONIC_PARTITIONED_IMAGE_NAME=${IRONIC_PARTITIONED_IMAGE_NAME:-${IRONIC_IMAGE_NAME/-disk/-uec}}
+
+# These parameters describe which image will be used to provision a node in
+# tempest tests
+if [[ -z "$IRONIC_TEMPEST_WHOLE_DISK_IMAGE" && "$IRONIC_VM_EPHEMERAL_DISK" == 0 ]]; then
+ IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True
+fi
+
+IRONIC_TEMPEST_WHOLE_DISK_IMAGE=$(trueorfalse False IRONIC_TEMPEST_WHOLE_DISK_IMAGE)
+
+if [[ "$IRONIC_TEMPEST_WHOLE_DISK_IMAGE" == "True" ]]; then
+ IRONIC_IMAGE_NAME=$IRONIC_WHOLEDISK_IMAGE_NAME
+else
+ IRONIC_IMAGE_NAME=$IRONIC_PARTITIONED_IMAGE_NAME
+fi
+
+# NOTE(vsaienko) set DEFAULT_IMAGE_NAME here, as it is still used by grenade
+# https://github.com/openstack-dev/grenade/blob/90c4ead2f2a7ed48c873c51cef415b83d655752e/projects/60_nova/resources.sh#L31
+export DEFAULT_IMAGE_NAME=$IRONIC_IMAGE_NAME
diff --git a/devstack/lib/ironic b/devstack/lib/ironic
index f52134d23..fa5c45104 100644
--- a/devstack/lib/ironic
+++ b/devstack/lib/ironic
@@ -191,14 +191,6 @@ IRONIC_DEPLOY_RAMDISK=${IRONIC_DEPLOY_RAMDISK:-$TOP_DIR/files/ir-deploy-$IRONIC_
IRONIC_DEPLOY_KERNEL=${IRONIC_DEPLOY_KERNEL:-$TOP_DIR/files/ir-deploy-$IRONIC_DEPLOY_DRIVER.kernel}
IRONIC_DEPLOY_ISO=${IRONIC_DEPLOY_ISO:-$TOP_DIR/files/ir-deploy-$IRONIC_DEPLOY_DRIVER.iso}
-# These parameters describe which image will be used to provision a node in
-# tempest tests
-if [[ -z "$IRONIC_TEMPEST_WHOLE_DISK_IMAGE" && "$IRONIC_VM_EPHEMERAL_DISK" == 0 ]]; then
- IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True
-fi
-
-IRONIC_TEMPEST_WHOLE_DISK_IMAGE=$(trueorfalse False IRONIC_TEMPEST_WHOLE_DISK_IMAGE)
-
# NOTE(jroll) this needs to be updated when stable branches are cut
IPA_DOWNLOAD_BRANCH=${IPA_DOWNLOAD_BRANCH:-stable/ocata}
IPA_DOWNLOAD_BRANCH=$(echo $IPA_DOWNLOAD_BRANCH | tr / -)
@@ -415,13 +407,6 @@ IRONIC_PXE_BOOT_IMAGE=${IRONIC_PXE_BOOT_IMAGE:-$(get_pxe_boot_file)}
IRONIC_AUTOMATED_CLEAN_ENABLED=$(trueorfalse True IRONIC_AUTOMATED_CLEAN_ENABLED)
-# Whether configure the nodes to boot in Legacy BIOS or UEFI mode. Accepted
-# values are: "bios" or "uefi", defaults to "bios".
-#
-# WARNING: UEFI is EXPERIMENTAL. The CirrOS images uploaded by DevStack by
-# default WILL NOT WORK with UEFI. You will need to download the UEFI capable
-# images manually from [0] and upload it to Glance before deploying.
-IRONIC_BOOT_MODE=${IRONIC_BOOT_MODE:-bios}
IRONIC_UEFI_FILES_DIR=${IRONIC_UEFI_FILES_DIR:-/var/lib/libvirt/images}
UEFI_LOADER_PATH=$IRONIC_UEFI_FILES_DIR/OVMF_CODE.fd
UEFI_NVRAM_PATH=$IRONIC_UEFI_FILES_DIR/OVMF_VARS.fd
@@ -531,46 +516,6 @@ function is_deploy_iso_required {
return 1
}
-IRONIC_DEFAULT_IMAGE_NAME=cirros-${CIRROS_VERSION}-x86_64-uec
-if [[ "$IRONIC_BOOT_MODE" == "uefi" ]]; then
- IRONIC_DEFAULT_IMAGE_NAME=cirros-d160722-x86_64-uec
-fi
-
-IRONIC_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-$IRONIC_DEFAULT_IMAGE_NAME}
-
-# Add link to download queue, ignore if already exist.
-# TODO(vsaienko) Move to devstack https://review.openstack.org/420656
-function add_image_link {
- local i_link="$1"
- if ! [[ "$IMAGE_URLS" =~ "$i_link" ]]; then
- if [[ -z "$IMAGE_URLS" || "${IMAGE_URLS: -1}" == "," ]]; then
- IMAGE_URLS+="$i_link"
- else
- IMAGE_URLS+=",$i_link"
- fi
- fi
-}
-
-if [[ "$IRONIC_BOOT_MODE" == "uefi" ]]; then
- add_image_link http://download.cirros-cloud.net/daily/20160722/cirros-d160722-x86_64-uec.tar.gz
- add_image_link http://download.cirros-cloud.net/daily/20160722/cirros-d160722-x86_64-disk.img
-else
- # NOTE (vsaienko) We are going to test mixed drivers/partitions in single setup.
- # Do not restrict downloading image only for specific case. Download both disk and uec images.
- add_image_link http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-uec.tar.gz
- add_image_link http://download.cirros-cloud.net/${CIRROS_VERSION}/cirros-${CIRROS_VERSION}-x86_64-disk.img
-fi
-
-if [[ "$IRONIC_TEMPEST_WHOLE_DISK_IMAGE" == "True" ]]; then
- IRONIC_IMAGE_NAME=${IRONIC_IMAGE_NAME/-uec/-disk}
-else
- IRONIC_IMAGE_NAME=${IRONIC_IMAGE_NAME/-disk/-uec}
-fi
-
-# NOTE(vsaienko) set DEFAULT_IMAGE_NAME here, as it is still used by grenade
-# https://github.com/openstack-dev/grenade/blob/90c4ead2f2a7ed48c873c51cef415b83d655752e/projects/60_nova/resources.sh#L31
-export DEFAULT_IMAGE_NAME=$IRONIC_IMAGE_NAME
-
# Syslinux >= 5.00 pxelinux.0 binary is not "stand-alone" anymore,
# it depends on some c32 modules to work correctly.
# More info: http://www.syslinux.org/wiki/index.php/Library_modules
diff --git a/devstack/settings b/devstack/settings
index 82d273e5e..6d31fa64c 100644
--- a/devstack/settings
+++ b/devstack/settings
@@ -1,5 +1,7 @@
enable_service ironic ir-api ir-cond
+source $DEST/ironic/devstack/common_settings
+
# NOTE(vsaienko) mtu calculation has been changed recently to 1450
# https://github.com/openstack/neutron/commit/51a697
# and caused https://bugs.launchpad.net/ironic/+bug/1631875
diff --git a/devstack/upgrade/settings b/devstack/upgrade/settings
index 038371371..f22266d57 100644
--- a/devstack/upgrade/settings
+++ b/devstack/upgrade/settings
@@ -10,15 +10,8 @@
register_project_for_upgrade ironic
register_db_to_save ironic
-# Duplicate some setup bits from target DevStack. Use old devstack as we install base environment from it.
-BASE_TOP_DIR=$TOP_DIR/../../old/devstack/
-source $BASE_TOP_DIR/stackrc
-source $BASE_TOP_DIR/lib/tls
-source $BASE_TOP_DIR/lib/nova
-source $BASE_TOP_DIR/lib/neutron-legacy
-source $BASE_TOP_DIR/lib/apache
-source $BASE_TOP_DIR/lib/keystone
-
-# Update global variables like DEFAULT_IMAGE_NAME that are set in ironic devstack plugin
-IRONIC_BASE_DEVSTACK_DIR=$BASE_TOP_DIR/../ironic/devstack
-source $IRONIC_BASE_DEVSTACK_DIR/lib/ironic
+# Duplicate some settings from devstack. Use old devstack as we install base environment from it.
+IRONIC_BASE_DEVSTACK_DIR=$TOP_DIR/../../old/ironic/devstack
+if [[ -f $IRONIC_BASE_DEVSTACK_DIR/common_settings ]]; then
+ source $IRONIC_BASE_DEVSTACK_DIR/common_settings
+fi