Browse code

Support the possibility of using entry-points.

If console scripts are generated via entry-points, they will go into
/usr/local/bin on python setup.py develop and they will not be found in
/opt/stack/$PROJECT/bin any more. This patch supports a transition to
entry-points console scripts, but should still allow the old thing too.

Change-Id: I816f5f796ad00ac55a8352743ba01723df140072

Monty Taylor authored on 2012/08/18 01:52:27
Showing 4 changed files
... ...
@@ -75,7 +75,10 @@ OVS_HOSTS=${DEFAULT_OVS_HOSTS:-"localhost"}
75 75
 #------------------------------------------------------------------------------
76 76
 # Nova settings.
77 77
 #------------------------------------------------------------------------------
78
-NOVA_MANAGE=/opt/stack/nova/bin/nova-manage
78
+if [ -f /opt/stack/nova/bin/nova-manage ] ; then
79
+    NOVA_MANAGE=/opt/stack/nova/bin/nova-manage
80
+else
81
+    NOVA_MANAGE=/usr/local/bin/nova-manage
79 82
 NOVA=/usr/local/bin/nova
80 83
 NOVA_CONF=/etc/nova/nova.conf
81 84
 
... ...
@@ -23,6 +23,12 @@ set -o xtrace
23 23
 
24 24
 # set up default directories
25 25
 CEILOMETER_DIR=$DEST/ceilometer
26
+# Support potential entry-points console scripts
27
+if [ -d $CEILOMETER_DIR/bin ] ; then
28
+    CEILOMETER_BIN_DIR=$CEILOMETER_DIR/bin
29
+else
30
+    CEILOMETER_BIN_DIR=/usr/local/bin
31
+fi
26 32
 CEILOMETER_CONF_DIR=/etc/ceilometer
27 33
 CEILOMETER_AGENT_CONF=$CEILOMETER_CONF_DIR/ceilometer-agent.conf
28 34
 CEILOMETER_COLLECTOR_CONF=$CEILOMETER_CONF_DIR/ceilometer-collector.conf
... ...
@@ -54,7 +60,7 @@ function install_ceilometer() {
54 54
 
55 55
 # start_ceilometer() - Start running processes, including screen
56 56
 function start_ceilometer() {
57
-    screen_it ceilometer-acompute "cd $CEILOMETER_DIR && $CEILOMETER_DIR/bin/ceilometer-agent-compute --config-file $CEILOMETER_AGENT_CONF"
58
-    screen_it ceilometer-acentral "cd $CEILOMETER_DIR && $CEILOMETER_DIR/bin/ceilometer-agent-central --config-file $CEILOMETER_AGENT_CONF"
59
-    screen_it ceilometer-collector "cd $CEILOMETER_DIR && $CEILOMETER_DIR/bin/ceilometer-collector --config-file $CEILOMETER_COLLECTOR_CONF"
57
+    screen_it ceilometer-acompute "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-agent-compute --config-file $CEILOMETER_AGENT_CONF"
58
+    screen_it ceilometer-acentral "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-agent-central --config-file $CEILOMETER_AGENT_CONF"
59
+    screen_it ceilometer-collector "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-collector --config-file $CEILOMETER_COLLECTOR_CONF"
60 60
 }
... ...
@@ -25,6 +25,11 @@ set -o xtrace
25 25
 
26 26
 # set up default directories
27 27
 CINDER_DIR=$DEST/cinder
28
+if [ -d $CINDER_DIR/bin ] ; then
29
+    CINDER_BIN_DIR=$CINDER_DIR/bin
30
+else
31
+    CINDER_BIN_DIR=/usr/local/bin
32
+fi
28 33
 CINDERCLIENT_DIR=$DEST/python-cinderclient
29 34
 CINDER_CONF_DIR=/etc/cinder
30 35
 CINDER_CONF=$CINDER_CONF_DIR/cinder.conf
... ...
@@ -134,7 +139,7 @@ function init_cinder() {
134 134
         mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE cinder;'
135 135
 
136 136
         # (re)create cinder database
137
-        $CINDER_DIR/bin/cinder-manage db sync
137
+        $CINDER_BIN_DIR/cinder-manage db sync
138 138
     fi
139 139
 
140 140
     if is_service_enabled c-vol; then
... ...
@@ -198,9 +203,9 @@ function start_cinder() {
198 198
         fi
199 199
     fi
200 200
 
201
-    screen_it c-api "cd $CINDER_DIR && $CINDER_DIR/bin/cinder-api --config-file $CINDER_CONF"
202
-    screen_it c-vol "cd $CINDER_DIR && $CINDER_DIR/bin/cinder-volume --config-file $CINDER_CONF"
203
-    screen_it c-sch "cd $CINDER_DIR && $CINDER_DIR/bin/cinder-scheduler --config-file $CINDER_CONF"
201
+    screen_it c-api "cd $CINDER_DIR && $CINDER_BIN_DIR/cinder-api --config-file $CINDER_CONF"
202
+    screen_it c-vol "cd $CINDER_DIR && $CINDER_BIN_DIR/cinder-volume --config-file $CINDER_CONF"
203
+    screen_it c-sch "cd $CINDER_DIR && $CINDER_BIN_DIR/cinder-scheduler --config-file $CINDER_CONF"
204 204
 }
205 205
 
206 206
 # stop_cinder() - Stop running processes (non-screen)
... ...
@@ -1760,6 +1760,13 @@ elif is_service_enabled n-vol; then
1760 1760
     fi
1761 1761
 fi
1762 1762
 
1763
+# Support entry points installation of console scripts
1764
+if [ -d $NOVA_DIR/bin ] ; then
1765
+    NOVA_BIN_DIR=$NOVA_DIR/bin
1766
+else
1767
+    NOVA_BIN_DIR=/usr/local/bin
1768
+fi
1769
+
1763 1770
 NOVA_CONF=nova.conf
1764 1771
 function add_nova_opt {
1765 1772
     echo "$1" >> $NOVA_CONF_DIR/$NOVA_CONF
... ...
@@ -1935,7 +1942,7 @@ if is_service_enabled mysql && is_service_enabled nova; then
1935 1935
     mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE nova CHARACTER SET latin1;'
1936 1936
 
1937 1937
     # (re)create nova database
1938
-    $NOVA_DIR/bin/nova-manage db sync
1938
+    $NOVA_BIN_DIR/nova-manage db sync
1939 1939
 fi
1940 1940
 
1941 1941
 
... ...
@@ -2077,7 +2084,7 @@ fi
2077 2077
 # Launch the nova-api and wait for it to answer before continuing
2078 2078
 if is_service_enabled n-api; then
2079 2079
     add_nova_opt "enabled_apis=$NOVA_ENABLED_APIS"
2080
-    screen_it n-api "cd $NOVA_DIR && $NOVA_DIR/bin/nova-api"
2080
+    screen_it n-api "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-api"
2081 2081
     echo "Waiting for nova-api to start..."
2082 2082
     if ! timeout $SERVICE_TIMEOUT sh -c "while ! http_proxy= wget -q -O- http://127.0.0.1:8774; do sleep 1; done"; then
2083 2083
       echo "nova-api did not start"
... ...
@@ -2097,13 +2104,13 @@ if is_service_enabled q-svc; then
2097 2097
     quantum subnet-create --tenant_id $TENANT_ID --ip_version 4 --gateway $NETWORK_GATEWAY $NET_ID $FIXED_RANGE
2098 2098
 elif is_service_enabled mysql && is_service_enabled nova; then
2099 2099
     # Create a small network
2100
-    $NOVA_DIR/bin/nova-manage network create private $FIXED_RANGE 1 $FIXED_NETWORK_SIZE $NETWORK_CREATE_ARGS
2100
+    $NOVA_BIN_DIR/nova-manage network create private $FIXED_RANGE 1 $FIXED_NETWORK_SIZE $NETWORK_CREATE_ARGS
2101 2101
 
2102 2102
     # Create some floating ips
2103
-    $NOVA_DIR/bin/nova-manage floating create $FLOATING_RANGE
2103
+    $NOVA_BIN_DIR/nova-manage floating create $FLOATING_RANGE
2104 2104
 
2105 2105
     # Create a second pool
2106
-    $NOVA_DIR/bin/nova-manage floating create --ip_range=$TEST_FLOATING_RANGE --pool=$TEST_FLOATING_POOL
2106
+    $NOVA_BIN_DIR/nova-manage floating create --ip_range=$TEST_FLOATING_RANGE --pool=$TEST_FLOATING_POOL
2107 2107
 fi
2108 2108
 
2109 2109
 # Launching nova-compute should be as simple as running ``nova-compute`` but
... ...
@@ -2112,11 +2119,11 @@ fi
2112 2112
 # within the context of our original shell (so our groups won't be updated).
2113 2113
 # Use 'sg' to execute nova-compute as a member of the libvirtd group.
2114 2114
 # We don't check for is_service_enable as screen_it does it for us
2115
-screen_it n-cpu "cd $NOVA_DIR && sg libvirtd $NOVA_DIR/bin/nova-compute"
2116
-screen_it n-crt "cd $NOVA_DIR && $NOVA_DIR/bin/nova-cert"
2117
-screen_it n-vol "cd $NOVA_DIR && $NOVA_DIR/bin/nova-volume"
2118
-screen_it n-net "cd $NOVA_DIR && $NOVA_DIR/bin/nova-network"
2119
-screen_it n-sch "cd $NOVA_DIR && $NOVA_DIR/bin/nova-scheduler"
2115
+screen_it n-cpu "cd $NOVA_DIR && sg libvirtd $NOVA_BIN_DIR/nova-compute"
2116
+screen_it n-crt "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-cert"
2117
+screen_it n-vol "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-volume"
2118
+screen_it n-net "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-network"
2119
+screen_it n-sch "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-scheduler"
2120 2120
 screen_it n-novnc "cd $NOVNC_DIR && ./utils/nova-novncproxy --config-file $NOVA_CONF_DIR/$NOVA_CONF --web ."
2121 2121
 screen_it n-xvnc "cd $NOVA_DIR && ./bin/nova-xvpvncproxy --config-file $NOVA_CONF_DIR/$NOVA_CONF"
2122 2122
 screen_it n-cauth "cd $NOVA_DIR && ./bin/nova-consoleauth"
... ...
@@ -2133,7 +2140,7 @@ screen_it swift "cd $SWIFT_DIR && $SWIFT_DIR/bin/swift-proxy-server ${SWIFT_CONF
2133 2133
 # Starting the nova-objectstore only if swift3 service is not enabled.
2134 2134
 # Swift will act as s3 objectstore.
2135 2135
 is_service_enabled swift3 || \
2136
-    screen_it n-obj "cd $NOVA_DIR && $NOVA_DIR/bin/nova-objectstore"
2136
+    screen_it n-obj "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-objectstore"
2137 2137
 
2138 2138
 
2139 2139
 # Install Images