829829# ----
830830
831831# Put config files in /etc/nova for everyone to find
832- NOVA_CONF = /etc/nova
833- if [[ ! -d $NOVA_CONF ]]; then
834- sudo mkdir -p $NOVA_CONF
832+ NOVA_CONF_DIR = /etc/nova
833+ if [[ ! -d $NOVA_CONF_DIR ]]; then
834+ sudo mkdir -p $NOVA_CONF_DIR
835835fi
836- sudo chown ` whoami` $NOVA_CONF
836+ sudo chown ` whoami` $NOVA_CONF_DIR
837837
838838if is_service_enabled n-api; then
839839 # We are going to use a sample http middleware configuration based on the
@@ -844,7 +844,7 @@ if is_service_enabled n-api; then
844844 rm -f $NOVA_DIR /bin/nova-api-paste.ini
845845
846846 # First we add a some extra data to the default paste config from nova
847- cp $NOVA_DIR /etc/nova/api-paste.ini $NOVA_CONF
847+ cp $NOVA_DIR /etc/nova/api-paste.ini $NOVA_CONF_DIR
848848
849849 # Then we add our own service token to the configuration
850850 sed -e "
@@ -854,11 +854,11 @@ if is_service_enabled n-api; then
854854 /admin_password/s/^.*$/admin_password = $SERVICE_PASSWORD /;
855855 s,%SERVICE_TENANT_NAME%,$SERVICE_TENANT_NAME ,g;
856856 s,%SERVICE_TOKEN%,$SERVICE_TOKEN ,g;
857- " -i $NOVA_CONF /api-paste.ini
857+ " -i $NOVA_CONF_DIR /api-paste.ini
858858
859859 # Finally, we change the pipelines in nova to use keystone
860860 function replace_pipeline() {
861- sed " /\[pipeline:$1 \]/,/\[/s/^pipeline = .*/pipeline = $2 /" -i $NOVA_CONF /api-paste.ini
861+ sed " /\[pipeline:$1 \]/,/\[/s/^pipeline = .*/pipeline = $2 /" -i $NOVA_CONF_DIR /api-paste.ini
862862 }
863863 replace_pipeline " ec2cloud" " ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer validator ec2executor"
864864 replace_pipeline " ec2admin" " ec2faultwrap logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor"
@@ -1178,68 +1178,69 @@ if is_service_enabled n-vol; then
11781178 sudo start tgt
11791179fi
11801180
1181- function add_nova_flag {
1182- echo " $1 " >> $NOVA_CONF /nova.conf
1181+ NOVA_CONF= nova.conf
1182+ function add_nova_opt {
1183+ echo " $1 " >> $NOVA_CONF_DIR /$NOVA_CONF
11831184}
11841185
11851186# remove legacy nova.conf
11861187rm -f $NOVA_DIR /bin/nova.conf
11871188
11881189# (re)create nova.conf
1189- rm -f $NOVA_CONF /nova.conf
1190- add_nova_flag " --verbose "
1191- add_nova_flag " --allow_admin_api "
1192- add_nova_flag " -- allow_resize_to_same_host"
1193- add_nova_flag " -- scheduler_driver=$SCHEDULER "
1194- add_nova_flag " -- dhcpbridge_flagfile=$NOVA_CONF /nova.conf "
1195- add_nova_flag " -- fixed_range=$FIXED_RANGE "
1190+ rm -f $NOVA_CONF_DIR / $NOVA_CONF
1191+ add_nova_opt " [DEFAULT] "
1192+ add_nova_opt " verbose=True "
1193+ add_nova_opt " allow_resize_to_same_host=True "
1194+ add_nova_opt " scheduler_driver=$SCHEDULER "
1195+ add_nova_opt " dhcpbridge_flagfile=$NOVA_CONF_DIR / $NOVA_CONF "
1196+ add_nova_opt " fixed_range=$FIXED_RANGE "
11961197if is_service_enabled n-obj; then
1197- add_nova_flag " -- s3_host=$SERVICE_HOST "
1198+ add_nova_opt " s3_host=$SERVICE_HOST "
11981199fi
11991200if is_service_enabled quantum; then
1200- add_nova_flag " -- network_manager=nova.network.quantum.manager.QuantumManager"
1201- add_nova_flag " -- quantum_connection_host=$Q_HOST "
1202- add_nova_flag " -- quantum_connection_port=$Q_PORT "
1201+ add_nova_opt " network_manager=nova.network.quantum.manager.QuantumManager"
1202+ add_nova_opt " quantum_connection_host=$Q_HOST "
1203+ add_nova_opt " quantum_connection_port=$Q_PORT "
12031204
12041205 if is_service_enabled melange; then
1205- add_nova_flag " -- quantum_ipam_lib=nova.network.quantum.melange_ipam_lib"
1206- add_nova_flag " -- use_melange_mac_generation"
1207- add_nova_flag " -- melange_host=$M_HOST "
1208- add_nova_flag " -- melange_port=$M_PORT "
1206+ add_nova_opt " quantum_ipam_lib=nova.network.quantum.melange_ipam_lib"
1207+ add_nova_opt " use_melange_mac_generation=True "
1208+ add_nova_opt " melange_host=$M_HOST "
1209+ add_nova_opt " melange_port=$M_PORT "
12091210 fi
12101211 if is_service_enabled q-svc && [[ " $Q_PLUGIN " = " openvswitch" ]]; then
1211- add_nova_flag " -- libvirt_vif_type=ethernet"
1212- add_nova_flag " -- libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
1213- add_nova_flag " -- linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver"
1214- add_nova_flag " -- quantum_use_dhcp"
1212+ add_nova_opt " libvirt_vif_type=ethernet"
1213+ add_nova_opt " libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
1214+ add_nova_opt " linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver"
1215+ add_nova_opt " quantum_use_dhcp=True "
12151216 fi
12161217else
1217- add_nova_flag " -- network_manager=nova.network.manager.$NET_MAN "
1218+ add_nova_opt " network_manager=nova.network.manager.$NET_MAN "
12181219fi
12191220if is_service_enabled n-vol; then
1220- add_nova_flag " -- volume_group=$VOLUME_GROUP "
1221- add_nova_flag " -- volume_name_template=${VOLUME_NAME_PREFIX} %08x"
1221+ add_nova_opt " volume_group=$VOLUME_GROUP "
1222+ add_nova_opt " volume_name_template=${VOLUME_NAME_PREFIX} %08x"
12221223 # oneiric no longer supports ietadm
1223- add_nova_flag " -- iscsi_helper=tgtadm"
1224+ add_nova_opt " iscsi_helper=tgtadm"
12241225fi
1225- add_nova_flag " -- osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions"
1226- add_nova_flag " -- my_ip=$HOST_IP "
1227- add_nova_flag " -- public_interface=$PUBLIC_INTERFACE "
1228- add_nova_flag " -- vlan_interface=$VLAN_INTERFACE "
1229- add_nova_flag " -- flat_network_bridge=$FLAT_NETWORK_BRIDGE "
1226+ add_nova_opt " osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions"
1227+ add_nova_opt " my_ip=$HOST_IP "
1228+ add_nova_opt " public_interface=$PUBLIC_INTERFACE "
1229+ add_nova_opt " vlan_interface=$VLAN_INTERFACE "
1230+ add_nova_opt " flat_network_bridge=$FLAT_NETWORK_BRIDGE "
12301231if [ -n " $FLAT_INTERFACE " ]; then
1231- add_nova_flag " -- flat_interface=$FLAT_INTERFACE "
1232+ add_nova_opt " flat_interface=$FLAT_INTERFACE "
12321233fi
1233- add_nova_flag " -- sql_connection=$BASE_SQL_CONN /nova"
1234- add_nova_flag " -- libvirt_type=$LIBVIRT_TYPE "
1235- add_nova_flag " -- instance_name_template=${INSTANCE_NAME_PREFIX} %08x"
1234+ add_nova_opt " sql_connection=$BASE_SQL_CONN /nova"
1235+ add_nova_opt " libvirt_type=$LIBVIRT_TYPE "
1236+ add_nova_opt " instance_name_template=${INSTANCE_NAME_PREFIX} %08x"
12361237# All nova-compute workers need to know the vnc configuration options
12371238# These settings don't hurt anything if n-xvnc and n-novnc are disabled
12381239if is_service_enabled n-cpu; then
12391240 NOVNCPROXY_URL=${NOVNCPROXY_URL:- " http://$SERVICE_HOST :6080/vnc_auto.html" }
1240- add_nova_flag " -- novncproxy_base_url=$NOVNCPROXY_URL "
1241+ add_nova_opt " novncproxy_base_url=$NOVNCPROXY_URL "
12411242 XVPVNCPROXY_URL=${XVPVNCPROXY_URL:- " http://$SERVICE_HOST :6081/console" }
1242- add_nova_flag " -- xvpvncproxy_base_url=$XVPVNCPROXY_URL "
1243+ add_nova_opt " xvpvncproxy_base_url=$XVPVNCPROXY_URL "
12431244fi
12441245if [ " $VIRT_DRIVER " = ' xenserver' ]; then
12451246 VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1}
@@ -1249,50 +1250,56 @@ fi
12491250# Address on which instance vncservers will listen on compute hosts.
12501251# For multi-host, this should be the management ip of the compute host.
12511252VNCSERVER_LISTEN= ${VNCSERVER_LISTEN=127.0.0.1}
1252- add_nova_flag " -- vncserver_listen=$VNCSERVER_LISTEN "
1253- add_nova_flag " -- vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS "
1254- add_nova_flag " -- api_paste_config=$NOVA_CONF /api-paste.ini"
1255- add_nova_flag " -- image_service=nova.image.glance.GlanceImageService"
1256- add_nova_flag " -- ec2_dmz_host=$EC2_DMZ_HOST "
1257- add_nova_flag " -- rabbit_host=$RABBIT_HOST "
1258- add_nova_flag " -- rabbit_password=$RABBIT_PASSWORD "
1259- add_nova_flag " -- glance_api_servers=$GLANCE_HOSTPORT "
1260- add_nova_flag " -- force_dhcp_release"
1253+ add_nova_opt " vncserver_listen=$VNCSERVER_LISTEN "
1254+ add_nova_opt " vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS "
1255+ add_nova_opt " api_paste_config=$NOVA_CONF_DIR /api-paste.ini"
1256+ add_nova_opt " image_service=nova.image.glance.GlanceImageService"
1257+ add_nova_opt " ec2_dmz_host=$EC2_DMZ_HOST "
1258+ add_nova_opt " rabbit_host=$RABBIT_HOST "
1259+ add_nova_opt " rabbit_password=$RABBIT_PASSWORD "
1260+ add_nova_opt " glance_api_servers=$GLANCE_HOSTPORT "
1261+ add_nova_opt " force_dhcp_release=True "
12611262if [ -n " $INSTANCES_PATH " ]; then
1262- add_nova_flag " -- instances_path=$INSTANCES_PATH "
1263+ add_nova_opt " instances_path=$INSTANCES_PATH "
12631264fi
12641265if [ " $MULTI_HOST " != " False" ]; then
1265- add_nova_flag " -- multi_host"
1266- add_nova_flag " -- send_arp_for_ha"
1266+ add_nova_opt " multi_host=True "
1267+ add_nova_opt " send_arp_for_ha=True "
12671268fi
12681269if [ " $SYSLOG " != " False" ]; then
1269- add_nova_flag " -- use_syslog"
1270+ add_nova_opt " use_syslog=True "
12701271fi
12711272
1272- # You can define extra nova conf flags by defining the array EXTRA_FLAGS,
1273- # For Example: EXTRA_FLAGS=(--foo --bar=2)
1274- for I in " ${EXTRA_FLAGS[@]} " ; do
1275- add_nova_flag $I
1273+ # Provide some transition from EXTRA_FLAGS to EXTRA_OPTS
1274+ if [[ -z " $EXTRA_OPTS " && -n " $EXTRA_FLAGS " ]]; then
1275+ EXTRA_OPTS=$EXTRA_FLAGS
1276+ fi
1277+
1278+ # You can define extra nova conf flags by defining the array EXTRA_OPTS,
1279+ # For Example: EXTRA_OPTS=(foo=true bar=2)
1280+ for I in " ${EXTRA_OPTS[@]} " ; do
1281+ # Attempt to convert flags to options
1282+ add_nova_opt ${I// -}
12761283done
12771284
12781285# XenServer
12791286# ---------
12801287
12811288if [ " $VIRT_DRIVER " = ' xenserver' ]; then
12821289 read_password XENAPI_PASSWORD " ENTER A PASSWORD TO USE FOR XEN."
1283- add_nova_flag " -- connection_type=xenapi"
1290+ add_nova_opt " connection_type=xenapi"
12841291 XENAPI_CONNECTION_URL=${XENAPI_CONNECTION_URL:- " http://169.254.0.1" }
1285- add_nova_flag " -- xenapi_connection_url=$XENAPI_CONNECTION_URL "
1286- add_nova_flag " -- xenapi_connection_username=root"
1287- add_nova_flag " -- xenapi_connection_password=$XENAPI_PASSWORD "
1288- add_nova_flag " --noflat_injected "
1292+ add_nova_opt " xenapi_connection_url=$XENAPI_CONNECTION_URL "
1293+ add_nova_opt " xenapi_connection_username=root"
1294+ add_nova_opt " xenapi_connection_password=$XENAPI_PASSWORD "
1295+ add_nova_opt " flat_injected=False "
12891296 # Need to avoid crash due to new firewall support
12901297 XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:- " nova.virt.firewall.IptablesFirewallDriver" }
1291- add_nova_flag " -- firewall_driver=$XEN_FIREWALL_DRIVER "
1298+ add_nova_opt " firewall_driver=$XEN_FIREWALL_DRIVER "
12921299else
1293- add_nova_flag " -- connection_type=libvirt"
1300+ add_nova_opt " connection_type=libvirt"
12941301 LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:- " nova.virt.libvirt.firewall.IptablesFirewallDriver" }
1295- add_nova_flag " -- firewall_driver=$LIBVIRT_FIREWALL_DRIVER "
1302+ add_nova_opt " firewall_driver=$LIBVIRT_FIREWALL_DRIVER "
12961303fi
12971304
12981305# Nova Database
@@ -1539,10 +1546,10 @@ screen_it n-vol "cd $NOVA_DIR && $NOVA_DIR/bin/nova-volume"
15391546screen_it n-net " cd $NOVA_DIR && $NOVA_DIR /bin/nova-network"
15401547screen_it n-sch " cd $NOVA_DIR && $NOVA_DIR /bin/nova-scheduler"
15411548if is_service_enabled n-novnc; then
1542- screen_it n-novnc " cd $NOVNC_DIR && ./utils/nova-novncproxy --flagfile $NOVA_CONF /nova.conf --web ."
1549+ screen_it n-novnc " cd $NOVNC_DIR && ./utils/nova-novncproxy --config-file $NOVA_CONF_DIR / $NOVA_CONF --web ."
15431550fi
15441551if is_service_enabled n-xvnc; then
1545- screen_it n-xvnc " cd $NOVA_DIR && ./bin/nova-xvpvncproxy --flagfile $NOVA_CONF /nova.conf "
1552+ screen_it n-xvnc " cd $NOVA_DIR && ./bin/nova-xvpvncproxy --config-file $NOVA_CONF_DIR / $NOVA_CONF "
15461553fi
15471554if is_service_enabled n-cauth; then
15481555 screen_it n-cauth " cd $NOVA_DIR && ./bin/nova-consoleauth"
@@ -1673,5 +1680,10 @@ fi
16731680# Echo HOST_IP - useful for build_uec.sh, which uses dhcp to give the instance an address
16741681echo " This is your host ip: $HOST_IP "
16751682
1683+ # Warn that EXTRA_FLAGS needs to be converted to EXTRA_OPTS
1684+ if [[ -n " $EXTRA_FLAGS " ]]; then
1685+ echo " WARNING: EXTRA_FLAGS is defined and may need to be converted to EXTRA_OPTS"
1686+ fi
1687+
16761688# Indicate how long this took to run (bash maintained variable 'SECONDS')
16771689echo " stack.sh completed in $SECONDS seconds."
0 commit comments