Browse code

Merge "use released library versions by default"

Jenkins authored on 2014/10/03 10:38:35
Showing 4 changed files
... ...
@@ -36,6 +36,11 @@
36 36
 XTRACE=$(set +o | grep xtrace)
37 37
 set +o xtrace
38 38
 
39
+# Global Config Variables
40
+declare -A GITREPO
41
+declare -A GITBRANCH
42
+declare -A GITDIR
43
+
39 44
 
40 45
 # Config Functions
41 46
 # ================
... ...
@@ -598,6 +603,18 @@ function git_clone {
598 598
     cd $orig_dir
599 599
 }
600 600
 
601
+# A variation on git clone that lets us specify a project by it's
602
+# actual name, like oslo.config. This is exceptionally useful in the
603
+# library installation case
604
+function git_clone_by_name {
605
+    local name=$1
606
+    local repo=${GITREPO[$name]}
607
+    local dir=${GITDIR[$name]}
608
+    local branch=${GITBRANCH[$name]}
609
+    git_clone $repo $dir $branch
610
+}
611
+
612
+
601 613
 # git can sometimes get itself infinitely stuck with transient network
602 614
 # errors or other issues with the remote end.  This wraps git in a
603 615
 # timeout/retry loop and is intended to watch over non-local git
... ...
@@ -1539,6 +1556,26 @@ function pip_install {
1539 1539
     fi
1540 1540
 }
1541 1541
 
1542
+# should we use this library from their git repo, or should we let it
1543
+# get pulled in via pip dependencies.
1544
+function use_library_from_git {
1545
+    local name=$1
1546
+    local enabled=1
1547
+    [[ ,${LIBS_FROM_GIT}, =~ ,${name}, ]] && enabled=0
1548
+    return $enabled
1549
+}
1550
+
1551
+# setup a library by name. If we are trying to use the library from
1552
+# git, we'll do a git based install, otherwise we'll punt and the
1553
+# library should be installed by a requirements pull from another
1554
+# project.
1555
+function setup_lib {
1556
+    local name=$1
1557
+    local dir=${GITDIR[$name]}
1558
+    setup_install $dir
1559
+}
1560
+
1561
+
1542 1562
 # this should be used if you want to install globally, all libraries should
1543 1563
 # use this, especially *oslo* ones
1544 1564
 function setup_install {
... ...
@@ -19,7 +19,7 @@ set +o xtrace
19 19
 
20 20
 # Defaults
21 21
 # --------
22
-PBR_DIR=$DEST/pbr
22
+GITDIR["pbr"]=$DEST/pbr
23 23
 REQUIREMENTS_DIR=$DEST/requirements
24 24
 
25 25
 # Entry Points
... ...
@@ -31,8 +31,12 @@ function install_infra {
31 31
     git_clone $REQUIREMENTS_REPO $REQUIREMENTS_DIR $REQUIREMENTS_BRANCH
32 32
 
33 33
     # Install pbr
34
-    git_clone $PBR_REPO $PBR_DIR $PBR_BRANCH
35
-    setup_install $PBR_DIR
34
+    if use_library_from_git "pbr"; then
35
+        git_clone_by_name "pbr"
36
+        setup_lib "pbr"
37
+    else
38
+        pip_install "pbr"
39
+    fi
36 40
 }
37 41
 
38 42
 # Restore xtrace
... ...
@@ -20,21 +20,21 @@ set +o xtrace
20 20
 
21 21
 # Defaults
22 22
 # --------
23
-CLIFF_DIR=$DEST/cliff
24
-OSLOCFG_DIR=$DEST/oslo.config
25
-OSLOCON_DIR=$DEST/oslo.concurrency
26
-OSLODB_DIR=$DEST/oslo.db
27
-OSLOI18N_DIR=$DEST/oslo.i18n
28
-OSLOLOG_DIR=$DEST/oslo.log
29
-OSLOMID_DIR=$DEST/oslo.middleware
30
-OSLOMSG_DIR=$DEST/oslo.messaging
31
-OSLORWRAP_DIR=$DEST/oslo.rootwrap
32
-OSLOSERIALIZATION_DIR=$DEST/oslo.serialization
33
-OSLOUTILS_DIR=$DEST/oslo.utils
34
-OSLOVMWARE_DIR=$DEST/oslo.vmware
35
-PYCADF_DIR=$DEST/pycadf
36
-STEVEDORE_DIR=$DEST/stevedore
37
-TASKFLOW_DIR=$DEST/taskflow
23
+GITDIR["cliff"]=$DEST/cliff
24
+GITDIR["oslo.config"]=$DEST/oslo.config
25
+GITDIR["oslo.concurrency"]=$DEST/oslo.concurrency
26
+GITDIR["oslo.db"]=$DEST/oslo.db
27
+GITDIR["oslo.i18n"]=$DEST/oslo.i18n
28
+GITDIR["oslo.log"]=$DEST/oslo.log
29
+GITDIR["oslo.middleware"]=$DEST/oslo.middleware
30
+GITDIR["oslo.messaging"]=$DEST/oslo.messaging
31
+GITDIR["oslo.rootwrap"]=$DEST/oslo.rootwrap
32
+GITDIR["oslo.serialization"]=$DEST/oslo.serialization
33
+GITDIR["oslo.utils"]=$DEST/oslo.utils
34
+GITDIR["oslo.vmware"]=$DEST/oslo.vmware
35
+GITDIR["pycadf"]=$DEST/pycadf
36
+GITDIR["stevedore"]=$DEST/stevedore
37
+GITDIR["taskflow"]=$DEST/taskflow
38 38
 
39 39
 # Support entry points installation of console scripts
40 40
 OSLO_BIN_DIR=$(get_python_exec_prefix)
... ...
@@ -42,52 +42,31 @@ OSLO_BIN_DIR=$(get_python_exec_prefix)
42 42
 # Entry Points
43 43
 # ------------
44 44
 
45
+function _do_install_oslo_lib {
46
+    local name=$1
47
+    if use_library_from_git "$name"; then
48
+        git_clone_by_name "$name"
49
+        setup_lib "$name"
50
+    fi
51
+}
52
+
45 53
 # install_oslo() - Collect source and prepare
46 54
 function install_oslo {
47
-    git_clone $CLIFF_REPO $CLIFF_DIR $CLIFF_BRANCH
48
-    setup_install $CLIFF_DIR
49
-
50
-    git_clone $OSLOI18N_REPO $OSLOI18N_DIR $OSLOI18N_BRANCH
51
-    setup_install $OSLOI18N_DIR
52
-
53
-    git_clone $OSLOUTILS_REPO $OSLOUTILS_DIR $OSLOUTILS_BRANCH
54
-    setup_install $OSLOUTILS_DIR
55
-
56
-    git_clone $OSLOSERIALIZATION_REPO $OSLOSERIALIZATION_DIR $OSLOSERIALIZATION_BRANCH
57
-    setup_install $OSLOSERIALIZATION_DIR
58
-
59
-    git_clone $OSLOCFG_REPO $OSLOCFG_DIR $OSLOCFG_BRANCH
60
-    setup_install $OSLOCFG_DIR
61
-
62
-    git_clone $OSLOCON_REPO $OSLOCON_DIR $OSLOCON_BRANCH
63
-    setup_install $OSLOCON_DIR
64
-
65
-    git_clone $OSLOLOG_REPO $OSLOLOG_DIR $OSLOLOG_BRANCH
66
-    setup_install $OSLOLOG_DIR
67
-
68
-    git_clone $OSLOMID_REPO $OSLOMID_DIR $OSLOMID_BRANCH
69
-    setup_install $OSLOMID_DIR
70
-
71
-    git_clone $OSLOMSG_REPO $OSLOMSG_DIR $OSLOMSG_BRANCH
72
-    setup_install $OSLOMSG_DIR
73
-
74
-    git_clone $OSLORWRAP_REPO $OSLORWRAP_DIR $OSLORWRAP_BRANCH
75
-    setup_install $OSLORWRAP_DIR
76
-
77
-    git_clone $OSLODB_REPO $OSLODB_DIR $OSLODB_BRANCH
78
-    setup_install $OSLODB_DIR
79
-
80
-    git_clone $OSLOVMWARE_REPO $OSLOVMWARE_DIR $OSLOVMWARE_BRANCH
81
-    setup_install $OSLOVMWARE_DIR
82
-
83
-    git_clone $PYCADF_REPO $PYCADF_DIR $PYCADF_BRANCH
84
-    setup_install $PYCADF_DIR
85
-
86
-    git_clone $STEVEDORE_REPO $STEVEDORE_DIR $STEVEDORE_BRANCH
87
-    setup_install $STEVEDORE_DIR
88
-
89
-    git_clone $TASKFLOW_REPO $TASKFLOW_DIR $TASKFLOW_BRANCH
90
-    setup_install $TASKFLOW_DIR
55
+    _do_install_oslo_lib "cliff"
56
+    _do_install_oslo_lib "oslo.i18n"
57
+    _do_install_oslo_lib "oslo.utils"
58
+    _do_install_oslo_lib "oslo.serialization"
59
+    _do_install_oslo_lib "oslo.config"
60
+    _do_install_oslo_lib "oslo.concurrency"
61
+    _do_install_oslo_lib "oslo.log"
62
+    _do_install_oslo_lib "oslo.middleware"
63
+    _do_install_oslo_lib "oslo.messaging"
64
+    _do_install_oslo_lib "oslo.rootwrap"
65
+    _do_install_oslo_lib "oslo.db"
66
+    _do_install_oslo_lib "olso.vmware"
67
+    _do_install_oslo_lib "pycadf"
68
+    _do_install_oslo_lib "stevedore"
69
+    _do_install_oslo_lib "taskflow"
91 70
 }
92 71
 
93 72
 # Restore xtrace
... ...
@@ -218,68 +218,68 @@ ORC_REPO=${ORC_REPO:-${GIT_BASE}/openstack/os-refresh-config.git}
218 218
 ORC_BRANCH=${ORC_BRANCH:-master}
219 219
 
220 220
 # cliff command line framework
221
-CLIFF_REPO=${CLIFF_REPO:-${GIT_BASE}/openstack/cliff.git}
222
-CLIFF_BRANCH=${CLIFF_BRANCH:-master}
221
+GITREPO["cliff"]=${CLIFF_REPO:-${GIT_BASE}/openstack/cliff.git}
222
+GITBRANCH["cliff"]=${CLIFF_BRANCH:-master}
223 223
 
224 224
 # oslo.concurrency
225
-OSLOCON_REPO=${OSLOCON_REPO:-${GIT_BASE}/openstack/oslo.concurrency.git}
226
-OSLOCON_BRANCH=${OSLOCON_BRANCH:-master}
225
+GITREPO["oslo.concurrency"]=${OSLOCON_REPO:-${GIT_BASE}/openstack/oslo.concurrency.git}
226
+GITBRANCH["olso.concurrency"]=${OSLOCON_BRANCH:-master}
227 227
 
228 228
 # oslo.config
229
-OSLOCFG_REPO=${OSLOCFG_REPO:-${GIT_BASE}/openstack/oslo.config.git}
230
-OSLOCFG_BRANCH=${OSLOCFG_BRANCH:-master}
229
+GITREPO["oslo.config"]=${OSLOCFG_REPO:-${GIT_BASE}/openstack/oslo.config.git}
230
+GITBRANCH["oslo.config"]=${OSLOCFG_BRANCH:-master}
231 231
 
232 232
 # oslo.db
233
-OSLODB_REPO=${OSLODB_REPO:-${GIT_BASE}/openstack/oslo.db.git}
234
-OSLODB_BRANCH=${OSLODB_BRANCH:-master}
233
+GITREPO["olso.db"]=${OSLODB_REPO:-${GIT_BASE}/openstack/oslo.db.git}
234
+GITBRANCH["olso.db"]=${OSLODB_BRANCH:-master}
235 235
 
236 236
 # oslo.i18n
237
-OSLOI18N_REPO=${OSLOI18N_REPO:-${GIT_BASE}/openstack/oslo.i18n.git}
238
-OSLOI18N_BRANCH=${OSLOI18N_BRANCH:-master}
237
+GITREPO["olso.i18n"]=${OSLOI18N_REPO:-${GIT_BASE}/openstack/oslo.i18n.git}
238
+GITBRANCH["olso.i18n"]=${OSLOI18N_BRANCH:-master}
239 239
 
240 240
 # oslo.log
241
-OSLOLOG_REPO=${OSLOLOG_REPO:-${GIT_BASE}/openstack/oslo.log.git}
242
-OSLOLOG_BRANCH=${OSLOLOG_BRANCH:-master}
241
+GITREPO["olso.log"]=${OSLOLOG_REPO:-${GIT_BASE}/openstack/oslo.log.git}
242
+GITBRANCH["olso.log"]=${OSLOLOG_BRANCH:-master}
243 243
 
244 244
 # oslo.messaging
245
-OSLOMSG_REPO=${OSLOMSG_REPO:-${GIT_BASE}/openstack/oslo.messaging.git}
246
-OSLOMSG_BRANCH=${OSLOMSG_BRANCH:-master}
245
+GITREPO["olso.messaging"]=${OSLOMSG_REPO:-${GIT_BASE}/openstack/oslo.messaging.git}
246
+GITBRANCH["olso.messaging"]=${OSLOMSG_BRANCH:-master}
247 247
 
248 248
 # oslo.middleware
249
-OSLOMID_REPO=${OSLOMID_REPO:-${GIT_BASE}/openstack/oslo.middleware.git}
250
-OSLOMID_BRANCH=${OSLOMID_BRANCH:-master}
249
+GITREPO["oslo.middleware"]=${OSLOMID_REPO:-${GIT_BASE}/openstack/oslo.middleware.git}
250
+GITBRANCH["oslo.middleware"]=${OSLOMID_BRANCH:-master}
251 251
 
252 252
 # oslo.rootwrap
253
-OSLORWRAP_REPO=${OSLORWRAP_REPO:-${GIT_BASE}/openstack/oslo.rootwrap.git}
254
-OSLORWRAP_BRANCH=${OSLORWRAP_BRANCH:-master}
253
+GITREPO["olso.rootwrap"]=${OSLORWRAP_REPO:-${GIT_BASE}/openstack/oslo.rootwrap.git}
254
+GITBRANCH["olso.rootwrap"]=${OSLORWRAP_BRANCH:-master}
255 255
 
256 256
 # oslo.serialization
257
-OSLOSERIALIZATION_REPO=${OSLOSERIALIZATION_REPO:-${GIT_BASE}/openstack/oslo.serialization.git}
258
-OSLOSERIALIZATION_BRANCH=${OSLOSERIALIZATION_BRANCH:-master}
257
+GITREPO["olso.serialization"]=${OSLOSERIALIZATION_REPO:-${GIT_BASE}/openstack/oslo.serialization.git}
258
+GITBRANCH["olso.serialization"]=${OSLOSERIALIZATION_BRANCH:-master}
259 259
 
260 260
 # oslo.utils
261
-OSLOUTILS_REPO=${OSLOUTILS_REPO:-${GIT_BASE}/openstack/oslo.utils.git}
262
-OSLOUTILS_BRANCH=${OSLOUTILS_BRANCH:-master}
261
+GITREPO["olso.utils"]=${OSLOUTILS_REPO:-${GIT_BASE}/openstack/oslo.utils.git}
262
+GITBRANCH["olso.utils"]=${OSLOUTILS_BRANCH:-master}
263 263
 
264 264
 # oslo.vmware
265
-OSLOVMWARE_REPO=${OSLOVMWARE_REPO:-${GIT_BASE}/openstack/oslo.vmware.git}
266
-OSLOVMWARE_BRANCH=${OSLOVMWARE_BRANCH:-master}
265
+GITREPO["olso.vmware"]=${OSLOVMWARE_REPO:-${GIT_BASE}/openstack/oslo.vmware.git}
266
+GITBRANCH["olso.vmware"]=${OSLOVMWARE_BRANCH:-master}
267 267
 
268 268
 # pycadf auditing library
269
-PYCADF_REPO=${PYCADF_REPO:-${GIT_BASE}/openstack/pycadf.git}
270
-PYCADF_BRANCH=${PYCADF_BRANCH:-master}
269
+GITREPO["pycadf"]=${PYCADF_REPO:-${GIT_BASE}/openstack/pycadf.git}
270
+GITBRANCH["pycadf"]=${PYCADF_BRANCH:-master}
271 271
 
272 272
 # stevedore plugin manager
273
-STEVEDORE_REPO=${STEVEDORE_REPO:-${GIT_BASE}/openstack/stevedore.git}
274
-STEVEDORE_BRANCH=${STEVEDORE_BRANCH:-master}
273
+GITREPO["stevedore"]=${STEVEDORE_REPO:-${GIT_BASE}/openstack/stevedore.git}
274
+GITBRANCH["stevedore"]=${STEVEDORE_BRANCH:-master}
275 275
 
276 276
 # taskflow plugin manager
277
-TASKFLOW_REPO=${TASKFLOW_REPO:-${GIT_BASE}/openstack/taskflow.git}
278
-TASKFLOW_BRANCH=${TASKFLOW_BRANCH:-master}
277
+GITREPO["taskflow"]=${TASKFLOW_REPO:-${GIT_BASE}/openstack/taskflow.git}
278
+GITBRANCH["taskflow"]=${TASKFLOW_BRANCH:-master}
279 279
 
280 280
 # pbr drives the setuptools configs
281
-PBR_REPO=${PBR_REPO:-${GIT_BASE}/openstack-dev/pbr.git}
282
-PBR_BRANCH=${PBR_BRANCH:-master}
281
+GITREPO["pbr"]=${PBR_REPO:-${GIT_BASE}/openstack-dev/pbr.git}
282
+GITBRANCH["pbr"]=${PBR_BRANCH:-master}
283 283
 
284 284
 # neutron service
285 285
 NEUTRON_REPO=${NEUTRON_REPO:-${GIT_BASE}/openstack/neutron.git}