* Rename EXTRA_FLAGS to EXTRA_OPTS
* Is dependant on https://review.openstack.org/4946 (MERGED)
Fixes bug 938924
Change-Id: Idee4f86e7846cff3529e173526d3ccb2289472f0
... | ... |
@@ -829,11 +829,11 @@ fi |
829 | 829 |
# ---- |
830 | 830 |
|
831 | 831 |
# 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 |
|
835 | 835 |
fi |
836 |
-sudo chown `whoami` $NOVA_CONF |
|
836 |
+sudo chown `whoami` $NOVA_CONF_DIR |
|
837 | 837 |
|
838 | 838 |
if is_service_enabled n-api; then |
839 | 839 |
# We are going to use a sample http middleware configuration based on the |
... | ... |
@@ -844,7 +844,7 @@ if is_service_enabled n-api; then |
844 | 844 |
rm -f $NOVA_DIR/bin/nova-api-paste.ini |
845 | 845 |
|
846 | 846 |
# 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 |
|
848 | 848 |
|
849 | 849 |
# Then we add our own service token to the configuration |
850 | 850 |
sed -e " |
... | ... |
@@ -854,11 +854,11 @@ if is_service_enabled n-api; then |
854 | 854 |
/admin_password/s/^.*$/admin_password = $SERVICE_PASSWORD/; |
855 | 855 |
s,%SERVICE_TENANT_NAME%,$SERVICE_TENANT_NAME,g; |
856 | 856 |
s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g; |
857 |
- " -i $NOVA_CONF/api-paste.ini |
|
857 |
+ " -i $NOVA_CONF_DIR/api-paste.ini |
|
858 | 858 |
|
859 | 859 |
# Finally, we change the pipelines in nova to use keystone |
860 | 860 |
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 |
|
862 | 862 |
} |
863 | 863 |
replace_pipeline "ec2cloud" "ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer validator ec2executor" |
864 | 864 |
replace_pipeline "ec2admin" "ec2faultwrap logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor" |
... | ... |
@@ -1178,68 +1178,69 @@ if is_service_enabled n-vol; then |
1178 | 1178 |
sudo start tgt |
1179 | 1179 |
fi |
1180 | 1180 |
|
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 |
|
1183 | 1184 |
} |
1184 | 1185 |
|
1185 | 1186 |
# remove legacy nova.conf |
1186 | 1187 |
rm -f $NOVA_DIR/bin/nova.conf |
1187 | 1188 |
|
1188 | 1189 |
# (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" |
|
1196 | 1197 |
if is_service_enabled n-obj; then |
1197 |
- add_nova_flag "--s3_host=$SERVICE_HOST" |
|
1198 |
+ add_nova_opt "s3_host=$SERVICE_HOST" |
|
1198 | 1199 |
fi |
1199 | 1200 |
if 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" |
|
1203 | 1204 |
|
1204 | 1205 |
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" |
|
1209 | 1210 |
fi |
1210 | 1211 |
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" |
|
1215 | 1216 |
fi |
1216 | 1217 |
else |
1217 |
- add_nova_flag "--network_manager=nova.network.manager.$NET_MAN" |
|
1218 |
+ add_nova_opt "network_manager=nova.network.manager.$NET_MAN" |
|
1218 | 1219 |
fi |
1219 | 1220 |
if 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" |
|
1222 | 1223 |
# oneiric no longer supports ietadm |
1223 |
- add_nova_flag "--iscsi_helper=tgtadm" |
|
1224 |
+ add_nova_opt "iscsi_helper=tgtadm" |
|
1224 | 1225 |
fi |
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" |
|
1230 | 1231 |
if [ -n "$FLAT_INTERFACE" ]; then |
1231 |
- add_nova_flag "--flat_interface=$FLAT_INTERFACE" |
|
1232 |
+ add_nova_opt "flat_interface=$FLAT_INTERFACE" |
|
1232 | 1233 |
fi |
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" |
|
1236 | 1237 |
# All nova-compute workers need to know the vnc configuration options |
1237 | 1238 |
# These settings don't hurt anything if n-xvnc and n-novnc are disabled |
1238 | 1239 |
if is_service_enabled n-cpu; then |
1239 | 1240 |
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" |
|
1241 | 1242 |
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" |
|
1243 | 1244 |
fi |
1244 | 1245 |
if [ "$VIRT_DRIVER" = 'xenserver' ]; then |
1245 | 1246 |
VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1} |
... | ... |
@@ -1249,30 +1250,36 @@ fi |
1249 | 1249 |
# Address on which instance vncservers will listen on compute hosts. |
1250 | 1250 |
# For multi-host, this should be the management ip of the compute host. |
1251 | 1251 |
VNCSERVER_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" |
|
1252 |
+add_nova_opt "vncserver_listen=$VNCSERVER_LISTEN" |
|
1253 |
+add_nova_opt "vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS" |
|
1254 |
+add_nova_opt "api_paste_config=$NOVA_CONF_DIR/api-paste.ini" |
|
1255 |
+add_nova_opt "image_service=nova.image.glance.GlanceImageService" |
|
1256 |
+add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST" |
|
1257 |
+add_nova_opt "rabbit_host=$RABBIT_HOST" |
|
1258 |
+add_nova_opt "rabbit_password=$RABBIT_PASSWORD" |
|
1259 |
+add_nova_opt "glance_api_servers=$GLANCE_HOSTPORT" |
|
1260 |
+add_nova_opt "force_dhcp_release=True" |
|
1261 | 1261 |
if [ -n "$INSTANCES_PATH" ]; then |
1262 |
- add_nova_flag "--instances_path=$INSTANCES_PATH" |
|
1262 |
+ add_nova_opt "instances_path=$INSTANCES_PATH" |
|
1263 | 1263 |
fi |
1264 | 1264 |
if [ "$MULTI_HOST" != "False" ]; then |
1265 |
- add_nova_flag "--multi_host" |
|
1266 |
- add_nova_flag "--send_arp_for_ha" |
|
1265 |
+ add_nova_opt "multi_host=True" |
|
1266 |
+ add_nova_opt "send_arp_for_ha=True" |
|
1267 | 1267 |
fi |
1268 | 1268 |
if [ "$SYSLOG" != "False" ]; then |
1269 |
- add_nova_flag "--use_syslog" |
|
1269 |
+ add_nova_opt "use_syslog=True" |
|
1270 | 1270 |
fi |
1271 | 1271 |
|
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 |
|
1272 |
+# Provide some transition from EXTRA_FLAGS to EXTRA_OPTS |
|
1273 |
+if [[ -z "$EXTRA_OPTS" && -n "$EXTRA_FLAGS" ]]; then |
|
1274 |
+ EXTRA_OPTS=$EXTRA_FLAGS |
|
1275 |
+fi |
|
1276 |
+ |
|
1277 |
+# You can define extra nova conf flags by defining the array EXTRA_OPTS, |
|
1278 |
+# For Example: EXTRA_OPTS=(foo=true bar=2) |
|
1279 |
+for I in "${EXTRA_OPTS[@]}"; do |
|
1280 |
+ # Attempt to convert flags to options |
|
1281 |
+ add_nova_opt ${I//-} |
|
1276 | 1282 |
done |
1277 | 1283 |
|
1278 | 1284 |
# XenServer |
... | ... |
@@ -1280,19 +1287,19 @@ done |
1280 | 1280 |
|
1281 | 1281 |
if [ "$VIRT_DRIVER" = 'xenserver' ]; then |
1282 | 1282 |
read_password XENAPI_PASSWORD "ENTER A PASSWORD TO USE FOR XEN." |
1283 |
- add_nova_flag "--connection_type=xenapi" |
|
1283 |
+ add_nova_opt "connection_type=xenapi" |
|
1284 | 1284 |
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" |
|
1285 |
+ add_nova_opt "xenapi_connection_url=$XENAPI_CONNECTION_URL" |
|
1286 |
+ add_nova_opt "xenapi_connection_username=root" |
|
1287 |
+ add_nova_opt "xenapi_connection_password=$XENAPI_PASSWORD" |
|
1288 |
+ add_nova_opt "flat_injected=False" |
|
1289 | 1289 |
# Need to avoid crash due to new firewall support |
1290 | 1290 |
XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:-"nova.virt.firewall.IptablesFirewallDriver"} |
1291 |
- add_nova_flag "--firewall_driver=$XEN_FIREWALL_DRIVER" |
|
1291 |
+ add_nova_opt "firewall_driver=$XEN_FIREWALL_DRIVER" |
|
1292 | 1292 |
else |
1293 |
- add_nova_flag "--connection_type=libvirt" |
|
1293 |
+ add_nova_opt "connection_type=libvirt" |
|
1294 | 1294 |
LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"} |
1295 |
- add_nova_flag "--firewall_driver=$LIBVIRT_FIREWALL_DRIVER" |
|
1295 |
+ add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER" |
|
1296 | 1296 |
fi |
1297 | 1297 |
|
1298 | 1298 |
# Nova Database |
... | ... |
@@ -1539,10 +1546,10 @@ screen_it n-vol "cd $NOVA_DIR && $NOVA_DIR/bin/nova-volume" |
1539 | 1539 |
screen_it n-net "cd $NOVA_DIR && $NOVA_DIR/bin/nova-network" |
1540 | 1540 |
screen_it n-sch "cd $NOVA_DIR && $NOVA_DIR/bin/nova-scheduler" |
1541 | 1541 |
if is_service_enabled n-novnc; then |
1542 |
- screen_it n-novnc "cd $NOVNC_DIR && ./utils/nova-novncproxy --flagfile $NOVA_CONF/nova.conf --web ." |
|
1542 |
+ screen_it n-novnc "cd $NOVNC_DIR && ./utils/nova-novncproxy --config-file $NOVA_CONF_DIR/$NOVA_CONF --web ." |
|
1543 | 1543 |
fi |
1544 | 1544 |
if is_service_enabled n-xvnc; then |
1545 |
- screen_it n-xvnc "cd $NOVA_DIR && ./bin/nova-xvpvncproxy --flagfile $NOVA_CONF/nova.conf" |
|
1545 |
+ screen_it n-xvnc "cd $NOVA_DIR && ./bin/nova-xvpvncproxy --config-file $NOVA_CONF_DIR/$NOVA_CONF" |
|
1546 | 1546 |
fi |
1547 | 1547 |
if is_service_enabled n-cauth; then |
1548 | 1548 |
screen_it n-cauth "cd $NOVA_DIR && ./bin/nova-consoleauth" |
... | ... |
@@ -1673,5 +1680,10 @@ fi |
1673 | 1673 |
# Echo HOST_IP - useful for build_uec.sh, which uses dhcp to give the instance an address |
1674 | 1674 |
echo "This is your host ip: $HOST_IP" |
1675 | 1675 |
|
1676 |
+# Warn that EXTRA_FLAGS needs to be converted to EXTRA_OPTS |
|
1677 |
+if [[ -n "$EXTRA_FLAGS" ]]; then |
|
1678 |
+ echo "WARNING: EXTRA_FLAGS is defined and may need to be converted to EXTRA_OPTS" |
|
1679 |
+fi |
|
1680 |
+ |
|
1676 | 1681 |
# Indicate how long this took to run (bash maintained variable 'SECONDS') |
1677 | 1682 |
echo "stack.sh completed in $SECONDS seconds." |