Merge "Fix typos and thinkos in docs"
diff --git a/exercises/aggregates.sh b/exercises/aggregates.sh
index e2baecd..e5fc7de 100755
--- a/exercises/aggregates.sh
+++ b/exercises/aggregates.sh
@@ -100,7 +100,7 @@
META_DATA_3_KEY=bar
#ensure no additional metadata is set
-nova aggregate-details $AGGREGATE_ID | egrep "{u'availability_zone': u'$AGGREGATE_A_ZONE'}|{}"
+nova aggregate-details $AGGREGATE_ID | egrep "\|[{u ]*'availability_zone.+$AGGREGATE_A_ZONE'[ }]*\|"
nova aggregate-set-metadata $AGGREGATE_ID ${META_DATA_1_KEY}=123
nova aggregate-details $AGGREGATE_ID | grep $META_DATA_1_KEY
@@ -117,7 +117,7 @@
nova aggregate-details $AGGREGATE_ID | grep $META_DATA_2_KEY && die $LINENO "ERROR metadata was not cleared"
nova aggregate-set-metadata $AGGREGATE_ID $META_DATA_3_KEY $META_DATA_1_KEY
-nova aggregate-details $AGGREGATE_ID | egrep "{u'availability_zone': u'$AGGREGATE_A_ZONE'}|{}"
+nova aggregate-details $AGGREGATE_ID | egrep "\|[{u ]*'availability_zone.+$AGGREGATE_A_ZONE'[ }]*\|"
# Test aggregate-add/remove-host
diff --git a/exercises/neutron-adv-test.sh b/exercises/neutron-adv-test.sh
index abb29cf..e0c37ef 100755
--- a/exercises/neutron-adv-test.sh
+++ b/exercises/neutron-adv-test.sh
@@ -102,6 +102,7 @@
# and save it.
TOKEN=`keystone token-get | grep ' id ' | awk '{print $4}'`
+die_if_not_set $LINENO TOKEN "Keystone fail to get token"
# Various functions
# -----------------
diff --git a/lib/baremetal b/lib/baremetal
index 52af420..f4d8589 100644
--- a/lib/baremetal
+++ b/lib/baremetal
@@ -449,8 +449,10 @@
"$mac_1" \
| grep ' id ' | get_field 2 )
[ $? -eq 0 ] || [ "$id" ] || die $LINENO "Error adding baremetal node"
- id2=$(nova baremetal-interface-add "$id" "$mac_2" )
- [ $? -eq 0 ] || [ "$id2" ] || die $LINENO "Error adding interface to barmetal node $id"
+ if [ -n "$mac_2" ]; then
+ id2=$(nova baremetal-interface-add "$id" "$mac_2" )
+ [ $? -eq 0 ] || [ "$id2" ] || die $LINENO "Error adding interface to barmetal node $id"
+ fi
}
diff --git a/lib/ceilometer b/lib/ceilometer
index 1b04319..cd4c4d8 100644
--- a/lib/ceilometer
+++ b/lib/ceilometer
@@ -134,12 +134,12 @@
# start_ceilometer() - Start running processes, including screen
function start_ceilometer() {
- screen_it ceilometer-acompute "sg $LIBVIRT_GROUP \"ceilometer-agent-compute --config-file $CEILOMETER_CONF\""
- screen_it ceilometer-acentral "ceilometer-agent-central --config-file $CEILOMETER_CONF"
- screen_it ceilometer-collector "ceilometer-collector --config-file $CEILOMETER_CONF"
- screen_it ceilometer-api "ceilometer-api -d -v --log-dir=$CEILOMETER_API_LOG_DIR --config-file $CEILOMETER_CONF"
- screen_it ceilometer-alarm-notifier "ceilometer-alarm-notifier --config-file $CEILOMETER_CONF"
- screen_it ceilometer-alarm-evaluator "ceilometer-alarm-evaluator --config-file $CEILOMETER_CONF"
+ screen_it ceilometer-acompute "cd ; sg $LIBVIRT_GROUP \"ceilometer-agent-compute --config-file $CEILOMETER_CONF\""
+ screen_it ceilometer-acentral "cd ; ceilometer-agent-central --config-file $CEILOMETER_CONF"
+ screen_it ceilometer-collector "cd ; ceilometer-collector --config-file $CEILOMETER_CONF"
+ screen_it ceilometer-api "cd ; ceilometer-api -d -v --log-dir=$CEILOMETER_API_LOG_DIR --config-file $CEILOMETER_CONF"
+ screen_it ceilometer-alarm-notifier "cd ; ceilometer-alarm-notifier --config-file $CEILOMETER_CONF"
+ screen_it ceilometer-alarm-evaluator "cd ; ceilometer-alarm-evaluator --config-file $CEILOMETER_CONF"
}
# stop_ceilometer() - Stop running processes
diff --git a/lib/cinder b/lib/cinder
index 220488a..f6f137c 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -202,15 +202,25 @@
sudo mv $TEMPFILE /etc/sudoers.d/cinder-rootwrap
cp $CINDER_DIR/etc/cinder/api-paste.ini $CINDER_API_PASTE_INI
- iniset $CINDER_API_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
- iniset $CINDER_API_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
- iniset $CINDER_API_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
- iniset $CINDER_API_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
- iniset $CINDER_API_PASTE_INI filter:authtoken admin_user cinder
- iniset $CINDER_API_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
- iniset $CINDER_API_PASTE_INI filter:authtoken signing_dir $CINDER_AUTH_CACHE_DIR
+
+ inicomment $CINDER_API_PASTE_INI filter:authtoken auth_host
+ inicomment $CINDER_API_PASTE_INI filter:authtoken auth_port
+ inicomment $CINDER_API_PASTE_INI filter:authtoken auth_protocol
+ inicomment $CINDER_API_PASTE_INI filter:authtoken admin_tenant_name
+ inicomment $CINDER_API_PASTE_INI filter:authtoken admin_user
+ inicomment $CINDER_API_PASTE_INI filter:authtoken admin_password
+ inicomment $CINDER_API_PASTE_INI filter:authtoken signing_dir
cp $CINDER_DIR/etc/cinder/cinder.conf.sample $CINDER_CONF
+
+ iniset $CINDER_CONF keystone_authtoken auth_host $KEYSTONE_AUTH_HOST
+ iniset $CINDER_CONF keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
+ iniset $CINDER_CONF keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
+ iniset $CINDER_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
+ iniset $CINDER_CONF keystone_authtoken admin_user cinder
+ iniset $CINDER_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
+ iniset $CINDER_CONF keystone_authtoken signing_dir $CINDER_AUTH_CACHE_DIR
+
iniset $CINDER_CONF DEFAULT auth_strategy keystone
iniset $CINDER_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
iniset $CINDER_CONF DEFAULT verbose True
diff --git a/lib/ironic b/lib/ironic
index f3b4a72..89d0edc 100644
--- a/lib/ironic
+++ b/lib/ironic
@@ -11,6 +11,7 @@
# ``stack.sh`` calls the entry points in this order:
#
# install_ironic
+# install_ironicclient
# configure_ironic
# init_ironic
# start_ironic
@@ -27,6 +28,7 @@
# Set up default directories
IRONIC_DIR=$DEST/ironic
+IRONICCLIENT_DIR=$DEST/python-ironicclient
IRONIC_AUTH_CACHE_DIR=${IRONIC_AUTH_CACHE_DIR:-/var/cache/ironic}
IRONIC_CONF_DIR=${IRONIC_CONF_DIR:-/etc/ironic}
IRONIC_CONF_FILE=$IRONIC_CONF_DIR/ironic.conf
@@ -45,6 +47,18 @@
# Functions
# ---------
+# install_ironic() - Collect source and prepare
+function install_ironic() {
+ git_clone $IRONIC_REPO $IRONIC_DIR $IRONIC_BRANCH
+ setup_develop $IRONIC_DIR
+}
+
+# install_ironicclient() - Collect sources and prepare
+function install_ironicclient() {
+ git_clone $IRONICCLIENT_REPO $IRONICCLIENT_DIR $IRONICCLIENT_BRANCH
+ setup_develop $IRONICCLIENT_DIR
+}
+
# cleanup_ironic() - Remove residual data files, anything left over from previous
# runs that would need to clean up.
function cleanup_ironic() {
@@ -170,12 +184,6 @@
create_ironic_accounts
}
-# install_ironic() - Collect source and prepare
-function install_ironic() {
- git_clone $IRONIC_REPO $IRONIC_DIR $IRONIC_BRANCH
- setup_develop $IRONIC_DIR
-}
-
# start_ironic() - Start running processes, including screen
function start_ironic() {
# Start Ironic API server, if enabled.
diff --git a/lib/neutron_plugins/midonet b/lib/neutron_plugins/midonet
index 193055f..074f847 100644
--- a/lib/neutron_plugins/midonet
+++ b/lib/neutron_plugins/midonet
@@ -37,6 +37,18 @@
iniset $Q_DHCP_CONF_FILE DEFAULT interface_driver $DHCP_INTERFACE_DRIVER
iniset $Q_DHCP_CONF_FILE DEFAULT use_namespaces True
iniset $Q_DHCP_CONF_FILE DEFAULT enable_isolated_metadata True
+ if [[ "$MIDONET_API_URI" != "" ]]; then
+ iniset $Q_DHCP_CONF_FILE MIDONET midonet_uri "$MIDONET_API_URI"
+ fi
+ if [[ "$MIDONET_USERNAME" != "" ]]; then
+ iniset $Q_DHCP_CONF_FILE MIDONET username "$MIDONET_USERNAME"
+ fi
+ if [[ "$MIDONET_PASSWORD" != "" ]]; then
+ iniset $Q_DHCP_CONF_FILE MIDONET password "$MIDONET_PASSWORD"
+ fi
+ if [[ "$MIDONET_PROJECT_ID" != "" ]]; then
+ iniset $Q_DHCP_CONF_FILE MIDONET project_id "$MIDONET_PROJECT_ID"
+ fi
}
function neutron_plugin_configure_l3_agent() {
diff --git a/lib/neutron_plugins/ovs_base b/lib/neutron_plugins/ovs_base
index 2666d8e..1214f3b 100644
--- a/lib/neutron_plugins/ovs_base
+++ b/lib/neutron_plugins/ovs_base
@@ -73,13 +73,7 @@
}
function _neutron_ovs_base_configure_nova_vif_driver() {
- # The hybrid VIF driver needs to be specified when Neutron Security Group
- # is enabled (until vif_security attributes are supported in VIF extension)
- if [[ "$Q_USE_SECGROUP" == "True" ]]; then
- NOVA_VIF_DRIVER=${NOVA_VIF_DRIVER:-"nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver"}
- else
- NOVA_VIF_DRIVER=${NOVA_VIF_DRIVER:-"nova.virt.libvirt.vif.LibvirtGenericVIFDriver"}
- fi
+ NOVA_VIF_DRIVER=${NOVA_VIF_DRIVER:-"nova.virt.libvirt.vif.LibvirtGenericVIFDriver"}
}
# Restore xtrace
diff --git a/lib/neutron_thirdparty/nicira b/lib/neutron_thirdparty/nicira
index 5a20934..3f2a5af 100644
--- a/lib/neutron_thirdparty/nicira
+++ b/lib/neutron_thirdparty/nicira
@@ -18,22 +18,38 @@
# to an network that allows it to talk to the gateway for
# testing purposes
NVP_GATEWAY_NETWORK_INTERFACE=${NVP_GATEWAY_NETWORK_INTERFACE:-eth2}
+# Re-declare floating range as it's needed also in stop_nicira, which
+# is invoked by unstack.sh
+FLOATING_RANGE=${FLOATING_RANGE:-172.24.4.224/28}
function configure_nicira() {
:
}
function init_nicira() {
- die_if_not_set $LINENO NVP_GATEWAY_NETWORK_CIDR "Please, specify CIDR for the gateway network interface."
+ if ! is_set NVP_GATEWAY_NETWORK_CIDR; then
+ NVP_GATEWAY_NETWORK_CIDR=$PUBLIC_NETWORK_GATEWAY/${FLOATING_RANGE#*/}
+ echo "The IP address to set on br-ex was not specified. "
+ echo "Defaulting to "$NVP_GATEWAY_NETWORK_CIDR
+ fi
# Make sure the interface is up, but not configured
- sudo ifconfig $NVP_GATEWAY_NETWORK_INTERFACE up
+ sudo ip link dev $NVP_GATEWAY_NETWORK_INTERFACE set up
+ # Save and then flush the IP addresses on the interface
+ addresses=$(ip addr show dev $NVP_GATEWAY_NETWORK_INTERFACE | grep inet | awk {'print $2'})
sudo ip addr flush $NVP_GATEWAY_NETWORK_INTERFACE
# Use the PUBLIC Bridge to route traffic to the NVP gateway
# NOTE(armando-migliaccio): if running in a nested environment this will work
# only with mac learning enabled, portsecurity and security profiles disabled
+ # The public bridge might not exist for the NVP plugin if Q_USE_DEBUG_COMMAND is off
+ # Try to create it anyway
+ sudo ovs-vsctl --no-wait -- --may-exist add-br $PUBLIC_BRIDGE
sudo ovs-vsctl -- --may-exist add-port $PUBLIC_BRIDGE $NVP_GATEWAY_NETWORK_INTERFACE
nvp_gw_net_if_mac=$(ip link show $NVP_GATEWAY_NETWORK_INTERFACE | awk '/ether/ {print $2}')
- sudo ifconfig $PUBLIC_BRIDGE $NVP_GATEWAY_NETWORK_CIDR hw ether $nvp_gw_net_if_mac
+ sudo ip link dev $PUBLIC_BRIDGE set address $nvp_gw_net_if_mac
+ for address in $addresses; do
+ sudo ip addr add dev $PUBLIC_BRIDGE $address
+ done
+ sudo ip addr add dev $PUBLIC_BRIDGE $NVP_GATEWAY_NETWORK_CIDR
}
function install_nicira() {
@@ -45,7 +61,21 @@
}
function stop_nicira() {
- :
+ if ! is_set NVP_GATEWAY_NETWORK_CIDR; then
+ NVP_GATEWAY_NETWORK_CIDR=$PUBLIC_NETWORK_GATEWAY/${FLOATING_RANGE#*/}
+ echo "The IP address expected on br-ex was not specified. "
+ echo "Defaulting to "$NVP_GATEWAY_NETWORK_CIDR
+ fi
+ sudo ip addr del $NVP_GATEWAY_NETWORK_CIDR dev $PUBLIC_BRIDGE
+ # Save and then flush remaining addresses on the interface
+ addresses=$(ip addr show dev $PUBLIC_BRIDGE | grep inet | awk {'print $2'})
+ sudo ip addr flush $PUBLIC_BRIDGE
+ # Try to detach physical interface from PUBLIC_BRIDGE
+ sudo ovs-vsctl del-port $NVP_GATEWAY_NETWORK_INTERFACE
+ # Restore addresses on NVP_GATEWAY_NETWORK_INTERFACE
+ for address in $addresses; do
+ sudo ip addr add dev $NVP_GATEWAY_NETWORK_INTERFACE $address
+ done
}
# Restore xtrace
diff --git a/lib/nova b/lib/nova
index 8deb3a0..6156834 100644
--- a/lib/nova
+++ b/lib/nova
@@ -212,26 +212,24 @@
configure_nova_rootwrap
if is_service_enabled n-api; then
- # Use the sample http middleware configuration supplied in the
- # Nova sources. This paste config adds the configuration required
- # for Nova to validate Keystone tokens.
-
# Remove legacy paste config if present
rm -f $NOVA_DIR/bin/nova-api-paste.ini
# Get the sample configuration file in place
cp $NOVA_DIR/etc/nova/api-paste.ini $NOVA_CONF_DIR
- iniset $NOVA_API_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
+ # Comment out the keystone configs in Nova's api-paste.ini.
+ # We are using nova.conf to configure this instead.
+ inicomment $NOVA_API_PASTE_INI filter:authtoken auth_host
if is_service_enabled tls-proxy; then
- iniset $NOVA_API_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
+ inicomment $NOVA_API_PASTE_INI filter:authtoken auth_protocol
fi
- iniset $NOVA_API_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
- iniset $NOVA_API_PASTE_INI filter:authtoken admin_user nova
- iniset $NOVA_API_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
+ inicomment $NOVA_API_PASTE_INI filter:authtoken admin_tenant_name
+ inicomment $NOVA_API_PASTE_INI filter:authtoken admin_user
+ inicomment $NOVA_API_PASTE_INI filter:authtoken admin_password
fi
- iniset $NOVA_API_PASTE_INI filter:authtoken signing_dir $NOVA_AUTH_CACHE_DIR
+ inicomment $NOVA_API_PASTE_INI filter:authtoken signing_dir
if is_service_enabled n-cpu; then
# Force IP forwarding on, just on case
@@ -379,6 +377,7 @@
iniset $NOVA_CONF DEFAULT ec2_workers "4"
iniset $NOVA_CONF DEFAULT metadata_workers "4"
iniset $NOVA_CONF DEFAULT sql_connection `database_connection_url nova`
+ iniset $NOVA_CONF DEFAULT fatal_deprecations "True"
iniset $NOVA_CONF DEFAULT instance_name_template "${INSTANCE_NAME_PREFIX}%08x"
iniset $NOVA_CONF osapi_v3 enabled "True"
@@ -394,7 +393,20 @@
# Set the service port for a proxy to take the original
iniset $NOVA_CONF DEFAULT osapi_compute_listen_port "$NOVA_SERVICE_PORT_INT"
fi
+
+ # Add keystone authtoken configuration
+
+ iniset $NOVA_CONF keystone_authtoken auth_host $KEYSTONE_AUTH_HOST
+ if is_service_enabled tls-proxy; then
+ iniset $NOVA_CONF keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
+ fi
+ iniset $NOVA_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
+ iniset $NOVA_CONF keystone_authtoken admin_user nova
+ iniset $NOVA_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
fi
+
+ iniset $NOVA_CONF keystone_authtoken signing_dir $NOVA_AUTH_CACHE_DIR
+
if is_service_enabled cinder; then
iniset $NOVA_CONF DEFAULT volume_api_class "nova.volume.cinder.API"
fi
diff --git a/lib/nova_plugins/hypervisor-docker b/lib/nova_plugins/hypervisor-docker
index 4c8fc27..427554b 100644
--- a/lib/nova_plugins/hypervisor-docker
+++ b/lib/nova_plugins/hypervisor-docker
@@ -72,7 +72,7 @@
fi
# Make sure Docker is installed
- if ! is_package_installed lxc-docker; then
+ if ! is_package_installed lxc-docker-${DOCKER_PACKAGE_VERSION}; then
die $LINENO "Docker is not installed. Please run tools/docker/install_docker.sh"
fi
diff --git a/lib/rpc_backend b/lib/rpc_backend
index 63edc07..44c1e44 100644
--- a/lib/rpc_backend
+++ b/lib/rpc_backend
@@ -63,7 +63,7 @@
if is_service_enabled rabbit; then
# Obliterate rabbitmq-server
uninstall_package rabbitmq-server
- sudo killall epmd
+ sudo killall epmd || sudo killall -9 epmd
if is_ubuntu; then
# And the Erlang runtime too
sudo aptitude purge -y ~nerlang
@@ -86,10 +86,6 @@
else
exit_distro_not_supported "zeromq installation"
fi
-
- # Necessary directory for socket location.
- sudo mkdir -p /var/run/openstack
- sudo chown $STACK_USER /var/run/openstack
fi
}
diff --git a/lib/tempest b/lib/tempest
index bc0b18d..9f41608 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -266,7 +266,7 @@
iniset $TEMPEST_CONF boto ssh_user ${DEFAULT_INSTANCE_USER:-cirros}
# Orchestration test image
- if [ $HEAT_CREATE_TEST_IMAGE == "True" ]; then
+ if [[ "$HEAT_CREATE_TEST_IMAGE" = "True" ]]; then
disk_image_create /usr/share/tripleo-image-elements "vm fedora heat-cfntools" "i386" "fedora-vm-heat-cfntools-tempest"
iniset $TEMPEST_CONF orchestration image_ref "fedora-vm-heat-cfntools-tempest"
fi
diff --git a/stack.sh b/stack.sh
index b3380a8..78da018 100755
--- a/stack.sh
+++ b/stack.sh
@@ -588,7 +588,9 @@
source $TOP_DIR/tools/install_prereqs.sh
# Configure an appropriate python environment
-$TOP_DIR/tools/install_pip.sh
+if [[ "$OFFLINE" != "True" ]]; then
+ $TOP_DIR/tools/install_pip.sh
+fi
# Do the ugly hacks for borken packages and distros
$TOP_DIR/tools/fixup_stuff.sh
@@ -732,6 +734,7 @@
if is_service_enabled ir-api ir-cond; then
install_ironic
+ install_ironicclient
configure_ironic
fi
@@ -1174,6 +1177,7 @@
if is_service_enabled g-reg; then
TOKEN=$(keystone token-get | grep ' id ' | get_field 2)
+ die_if_not_set $LINENO TOKEN "Keystone fail to get token"
if is_baremetal; then
echo_summary "Creating and uploading baremetal images"
diff --git a/stackrc b/stackrc
index 3f740b5..0151672 100644
--- a/stackrc
+++ b/stackrc
@@ -104,6 +104,10 @@
IRONIC_REPO=${IRONIC_REPO:-${GIT_BASE}/openstack/ironic.git}
IRONIC_BRANCH=${IRONIC_BRANCH:-master}
+# ironic client
+IRONICCLIENT_REPO=${IRONICCLIENT_REPO:-${GIT_BASE}/openstack/python-ironicclient.git}
+IRONICCLIENT_BRANCH=${IRONICCLIENT_BRANCH:-master}
+
# unified auth system (manages accounts/tokens)
KEYSTONE_REPO=${KEYSTONE_REPO:-${GIT_BASE}/openstack/keystone.git}
KEYSTONE_BRANCH=${KEYSTONE_BRANCH:-master}
diff --git a/tools/create-stack-user.sh b/tools/create-stack-user.sh
old mode 100644
new mode 100755
diff --git a/tools/docker/install_docker.sh b/tools/docker/install_docker.sh
index 289002e..483955b 100755
--- a/tools/docker/install_docker.sh
+++ b/tools/docker/install_docker.sh
@@ -38,7 +38,7 @@
install_package python-software-properties && \
sudo sh -c "echo deb $DOCKER_APT_REPO docker main > /etc/apt/sources.list.d/docker.list"
apt_get update
-install_package --force-yes lxc-docker=${DOCKER_PACKAGE_VERSION} socat
+install_package --force-yes lxc-docker-${DOCKER_PACKAGE_VERSION} socat
# Start the daemon - restart just in case the package ever auto-starts...
restart_service docker
diff --git a/tools/upload_image.sh b/tools/upload_image.sh
index dd21c9f..d81a5c8 100755
--- a/tools/upload_image.sh
+++ b/tools/upload_image.sh
@@ -33,6 +33,7 @@
# Get a token to authenticate to glance
TOKEN=$(keystone token-get | grep ' id ' | get_field 2)
+die_if_not_set $LINENO TOKEN "Keystone fail to get token"
# Glance connection info. Note the port must be specified.
GLANCE_HOSTPORT=${GLANCE_HOSTPORT:-$GLANCE_HOST:9292}
diff --git a/tools/xen/functions b/tools/xen/functions
index c65d919..b0b077d 100644
--- a/tools/xen/functions
+++ b/tools/xen/functions
@@ -69,11 +69,17 @@
}
function get_local_sr {
- xe sr-list name-label="Local storage" --minimal
+ xe pool-list params=default-SR minimal=true
}
function get_local_sr_path {
- echo "/var/run/sr-mount/$(get_local_sr)"
+ pbd_path="/var/run/sr-mount/$(get_local_sr)"
+ pbd_device_config_path=`xe pbd-list sr-uuid=$(get_local_sr) params=device-config | grep " path: "`
+ if [ -n "$pbd_device_config_path" ]; then
+ pbd_uuid=`xe pbd-list sr-uuid=$(get_local_sr) minimal=true`
+ pbd_path=`xe pbd-param-get uuid=$pbd_uuid param-name=device-config param-key=path || echo ""`
+ fi
+ echo $pbd_path
}
function find_ip_by_name() {