The read_password function is defined inside stack.sh and it cannot be used inside the "public library interface" provided by DevStack. Move the calls found inside library files to stack.sh, following the same pattern of the other calls to read_password. Change-Id: I8adc6723b677dfac2bef735f660e056c498bf773
114 lines
3.3 KiB
Bash
114 lines
3.3 KiB
Bash
#!/bin/bash
|
|
#
|
|
# lib/nova_plugins/hypervisor-xenserver
|
|
# Configure the XenServer hypervisor
|
|
|
|
# Enable with:
|
|
# VIRT_DRIVER=xenserver
|
|
|
|
# Dependencies:
|
|
# ``functions`` file
|
|
# ``nova`` configuration
|
|
|
|
# install_nova_hypervisor - install any external requirements
|
|
# configure_nova_hypervisor - make configuration changes, including those to other services
|
|
# start_nova_hypervisor - start any external services
|
|
# stop_nova_hypervisor - stop any external services
|
|
# cleanup_nova_hypervisor - remove transient data and cache
|
|
|
|
# Save trace setting
|
|
_XTRACE_XENSERVER=$(set +o | grep xtrace)
|
|
set +o xtrace
|
|
|
|
|
|
# Defaults
|
|
# --------
|
|
|
|
# Allow ``build_domU.sh`` to specify the flat network bridge via kernel args
|
|
FLAT_NETWORK_BRIDGE_DEFAULT=$(sed -e 's/.* flat_network_bridge=\([[:alnum:]]*\).*$/\1/g' /proc/cmdline)
|
|
|
|
VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1}
|
|
|
|
|
|
# Entry Points
|
|
# ------------
|
|
|
|
# clean_nova_hypervisor - Clean up an installation
|
|
function cleanup_nova_hypervisor {
|
|
# This function intentionally left blank
|
|
:
|
|
}
|
|
|
|
# configure_nova_hypervisor - Set config files, create data dirs, etc
|
|
function configure_nova_hypervisor {
|
|
if [ -z "$XENAPI_CONNECTION_URL" ]; then
|
|
die $LINENO "XENAPI_CONNECTION_URL is not specified"
|
|
fi
|
|
|
|
# Check os-xenapi plugin is enabled
|
|
local plugins="${DEVSTACK_PLUGINS}"
|
|
local plugin
|
|
local found=0
|
|
for plugin in ${plugins//,/ }; do
|
|
if [[ "$plugin" = "os-xenapi" ]]; then
|
|
found=1
|
|
break
|
|
fi
|
|
done
|
|
if [[ $found -ne 1 ]]; then
|
|
die $LINENO "os-xenapi plugin is not specified. Please enable this plugin in local.conf"
|
|
fi
|
|
|
|
iniset $NOVA_CONF DEFAULT compute_driver "xenapi.XenAPIDriver"
|
|
iniset $NOVA_CONF xenserver connection_url "$XENAPI_CONNECTION_URL"
|
|
iniset $NOVA_CONF xenserver connection_username "$XENAPI_USER"
|
|
iniset $NOVA_CONF xenserver connection_password "$XENAPI_PASSWORD"
|
|
iniset $NOVA_CONF DEFAULT flat_injected "False"
|
|
# Need to avoid crash due to new firewall support
|
|
XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:-"nova.virt.firewall.IptablesFirewallDriver"}
|
|
iniset $NOVA_CONF DEFAULT firewall_driver "$XEN_FIREWALL_DRIVER"
|
|
|
|
local dom0_ip
|
|
dom0_ip=$(echo "$XENAPI_CONNECTION_URL" | cut -d "/" -f 3-)
|
|
|
|
local ssh_dom0
|
|
ssh_dom0="sudo -u $DOMZERO_USER ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@$dom0_ip"
|
|
|
|
# install console logrotate script
|
|
tar -czf - -C $NOVA_DIR/tools/xenserver/ rotate_xen_guest_logs.sh |
|
|
$ssh_dom0 'tar -xzf - -C /root/ && chmod +x /root/rotate_xen_guest_logs.sh && mkdir -p /var/log/xen/guest'
|
|
|
|
# Create a cron job that will rotate guest logs
|
|
$ssh_dom0 crontab - << CRONTAB
|
|
* * * * * /root/rotate_xen_guest_logs.sh >/dev/null 2>&1
|
|
CRONTAB
|
|
|
|
}
|
|
|
|
# install_nova_hypervisor() - Install external components
|
|
function install_nova_hypervisor {
|
|
# xenapi functionality is now included in os-xenapi library which houses the plugin
|
|
# so this function intentionally left blank
|
|
:
|
|
}
|
|
|
|
# start_nova_hypervisor - Start any required external services
|
|
function start_nova_hypervisor {
|
|
# This function intentionally left blank
|
|
:
|
|
}
|
|
|
|
# stop_nova_hypervisor - Stop any external services
|
|
function stop_nova_hypervisor {
|
|
# This function intentionally left blank
|
|
:
|
|
}
|
|
|
|
|
|
# Restore xtrace
|
|
$_XTRACE_XENSERVER
|
|
|
|
# Local variables:
|
|
# mode: shell-script
|
|
# End:
|