| ... | ... |
@@ -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}
|