Browse code

Merge "don't use pip -e install for libraries"

Jenkins authored on 2014/04/02 05:39:32
Showing 5 changed files
... ...
@@ -40,7 +40,6 @@ source $TOP_DIR/lib/rpc_backend
40 40
 
41 41
 source $TOP_DIR/lib/tls
42 42
 
43
-source $TOP_DIR/lib/oslo
44 43
 source $TOP_DIR/lib/horizon
45 44
 source $TOP_DIR/lib/keystone
46 45
 source $TOP_DIR/lib/glance
... ...
@@ -84,7 +83,6 @@ if [[ -d $TOP_DIR/extras.d ]]; then
84 84
 fi
85 85
 
86 86
 # Clean projects
87
-cleanup_oslo
88 87
 cleanup_cinder
89 88
 cleanup_glance
90 89
 cleanup_keystone
... ...
@@ -1239,6 +1239,19 @@ function pip_install {
1239 1239
         && $SUDO_PIP rm -rf ${pip_build_tmp}
1240 1240
 }
1241 1241
 
1242
+# this should be used if you want to install globally, all libraries should
1243
+# use this, especially *oslo* ones
1244
+function setup_install {
1245
+    local project_dir=$1
1246
+    setup_package_with_req_sync $project_dir
1247
+}
1248
+
1249
+# this should be used for projects which run services, like all services
1250
+function setup_develop {
1251
+    local project_dir=$1
1252
+    setup_package_with_req_sync $project_dir -e
1253
+}
1254
+
1242 1255
 # ``pip install -e`` the package, which processes the dependencies
1243 1256
 # using pip before running `setup.py develop`
1244 1257
 #
... ...
@@ -1247,8 +1260,9 @@ function pip_install {
1247 1247
 #
1248 1248
 # Uses globals ``TRACK_DEPENDS``, ``REQUIREMENTS_DIR``, ``UNDO_REQUIREMENTS``
1249 1249
 # setup_develop directory
1250
-function setup_develop {
1250
+function setup_package_with_req_sync {
1251 1251
     local project_dir=$1
1252
+    local flags=$2
1252 1253
 
1253 1254
     # Don't update repo if local changes exist
1254 1255
     # Don't use buggy "git diff --quiet"
... ...
@@ -1260,7 +1274,7 @@ function setup_develop {
1260 1260
             $SUDO_CMD python update.py $project_dir)
1261 1261
     fi
1262 1262
 
1263
-    setup_develop_no_requirements_update $project_dir
1263
+    setup_package $project_dir $flags
1264 1264
 
1265 1265
     # We've just gone and possibly modified the user's source tree in an
1266 1266
     # automated way, which is considered bad form if it's a development
... ...
@@ -1281,12 +1295,15 @@ function setup_develop {
1281 1281
 # using pip before running `setup.py develop`
1282 1282
 # Uses globals ``STACK_USER``
1283 1283
 # setup_develop_no_requirements_update directory
1284
-function setup_develop_no_requirements_update {
1284
+function setup_package {
1285 1285
     local project_dir=$1
1286
+    local flags=$2
1286 1287
 
1287
-    pip_install -e $project_dir
1288
+    pip_install $flags $project_dir
1288 1289
     # ensure that further actions can do things like setup.py sdist
1289
-    safe_chown -R $STACK_USER $1/*.egg-info
1290
+    if [[ "$flags" == "-e" ]]; then
1291
+        safe_chown -R $STACK_USER $1/*.egg-info
1292
+    fi
1290 1293
 }
1291 1294
 
1292 1295
 
... ...
@@ -46,7 +46,7 @@ function install_infra {
46 46
 
47 47
     # Install pbr
48 48
     git_clone $PBR_REPO $PBR_DIR $PBR_BRANCH
49
-    setup_develop $PBR_DIR
49
+    setup_install $PBR_DIR
50 50
 }
51 51
 
52 52
 # Restore xtrace
... ...
@@ -34,44 +34,29 @@ TASKFLOW_DIR=$DEST/taskflow
34 34
 
35 35
 # install_oslo() - Collect source and prepare
36 36
 function install_oslo {
37
-    # TODO(sdague): remove this once we get to Icehouse, this just makes
38
-    # for a smoother transition of existing users.
39
-    cleanup_oslo
40
-
41 37
     git_clone $CLIFF_REPO $CLIFF_DIR $CLIFF_BRANCH
42
-    setup_develop $CLIFF_DIR
38
+    setup_install $CLIFF_DIR
43 39
 
44 40
     git_clone $OSLOCFG_REPO $OSLOCFG_DIR $OSLOCFG_BRANCH
45
-    setup_develop $OSLOCFG_DIR
41
+    setup_install $OSLOCFG_DIR
46 42
 
47 43
     git_clone $OSLOMSG_REPO $OSLOMSG_DIR $OSLOMSG_BRANCH
48
-    setup_develop $OSLOMSG_DIR
44
+    setup_install $OSLOMSG_DIR
49 45
 
50 46
     git_clone $OSLORWRAP_REPO $OSLORWRAP_DIR $OSLORWRAP_BRANCH
51
-    setup_develop $OSLORWRAP_DIR
47
+    setup_install $OSLORWRAP_DIR
52 48
 
53 49
     git_clone $OSLOVMWARE_REPO $OSLOVMWARE_DIR $OSLOVMWARE_BRANCH
54
-    setup_develop $OSLOVMWARE_DIR
50
+    setup_install $OSLOVMWARE_DIR
55 51
 
56 52
     git_clone $PYCADF_REPO $PYCADF_DIR $PYCADF_BRANCH
57
-    setup_develop $PYCADF_DIR
53
+    setup_install $PYCADF_DIR
58 54
 
59 55
     git_clone $STEVEDORE_REPO $STEVEDORE_DIR $STEVEDORE_BRANCH
60
-    setup_develop $STEVEDORE_DIR
56
+    setup_install $STEVEDORE_DIR
61 57
 
62 58
     git_clone $TASKFLOW_REPO $TASKFLOW_DIR $TASKFLOW_BRANCH
63
-    setup_develop $TASKFLOW_DIR
64
-}
65
-
66
-# cleanup_oslo() - purge possibly old versions of oslo
67
-function cleanup_oslo {
68
-    # this means we've got an old oslo installed, lets get rid of it
69
-    if ! python -c 'import oslo.config' 2>/dev/null; then
70
-        echo "Found old oslo.config... removing to ensure consistency"
71
-        local PIP_CMD=$(get_pip_command)
72
-        pip_install oslo.config
73
-        sudo $PIP_CMD uninstall -y oslo.config
74
-    fi
59
+    setup_install $TASKFLOW_DIR
75 60
 }
76 61
 
77 62
 # Restore xtrace
... ...
@@ -40,10 +40,10 @@ function install_stackforge {
40 40
     cleanup_stackforge
41 41
 
42 42
     git_clone $WSME_REPO $WSME_DIR $WSME_BRANCH
43
-    setup_develop_no_requirements_update $WSME_DIR
43
+    setup_package $WSME_DIR
44 44
 
45 45
     git_clone $PECAN_REPO $PECAN_DIR $PECAN_BRANCH
46
-    setup_develop_no_requirements_update $PECAN_DIR
46
+    setup_package $PECAN_DIR
47 47
 }
48 48
 
49 49
 # cleanup_stackforge() - purge possibly old versions of stackforge libraries