blob: 8ef179c047626f5a505c967175e5b2b3b55b5177 [file] [log] [blame]
Sean Dague1b6b5312013-07-31 06:46:34 -04001# lib/oslo
2#
3# Functions to install oslo libraries from git
4#
5# We need this to handle the fact that projects would like to use
6# pre-released versions of oslo libraries.
7
8# Dependencies:
Adam Spiers6a5aa7c2013-10-24 11:27:02 +01009#
10# - ``functions`` file
Sean Dague1b6b5312013-07-31 06:46:34 -040011
12# ``stack.sh`` calls the entry points in this order:
13#
Adam Spiers6a5aa7c2013-10-24 11:27:02 +010014# - install_oslo
Sean Dague1b6b5312013-07-31 06:46:34 -040015
16# Save trace setting
17XTRACE=$(set +o | grep xtrace)
18set +o xtrace
19
20
21# Defaults
22# --------
Doug Hellmann6b1cb102014-02-10 09:59:43 -080023CLIFF_DIR=$DEST/cliff
Sean Dague1b6b5312013-07-31 06:46:34 -040024OSLOCFG_DIR=$DEST/oslo.config
25OSLOMSG_DIR=$DEST/oslo.messaging
Thierry Carrez0915e0c2014-01-02 15:05:41 +010026OSLORWRAP_DIR=$DEST/oslo.rootwrap
Davanum Srinivasf5aa05c2014-02-21 22:03:59 -050027OSLOVMWARE_DIR=$DEST/oslo.vmware
Doug Hellmann6b1cb102014-02-10 09:59:43 -080028PYCADF_DIR=$DEST/pycadf
29STEVEDORE_DIR=$DEST/stevedore
30TASKFLOW_DIR=$DEST/taskflow
Sean Dague1b6b5312013-07-31 06:46:34 -040031
32# Entry Points
33# ------------
34
35# install_oslo() - Collect source and prepare
Ian Wienandaee18c72014-02-21 15:35:08 +110036function install_oslo {
Sean Daguedb5fadb2013-08-09 13:41:33 -040037 # TODO(sdague): remove this once we get to Icehouse, this just makes
38 # for a smoother transition of existing users.
39 cleanup_oslo
40
Doug Hellmann6b1cb102014-02-10 09:59:43 -080041 git_clone $CLIFF_REPO $CLIFF_DIR $CLIFF_BRANCH
42 setup_develop $CLIFF_DIR
43
Sean Dague1b6b5312013-07-31 06:46:34 -040044 git_clone $OSLOCFG_REPO $OSLOCFG_DIR $OSLOCFG_BRANCH
45 setup_develop $OSLOCFG_DIR
46
47 git_clone $OSLOMSG_REPO $OSLOMSG_DIR $OSLOMSG_BRANCH
48 setup_develop $OSLOMSG_DIR
Thierry Carrez0915e0c2014-01-02 15:05:41 +010049
50 git_clone $OSLORWRAP_REPO $OSLORWRAP_DIR $OSLORWRAP_BRANCH
51 setup_develop $OSLORWRAP_DIR
Doug Hellmann6b1cb102014-02-10 09:59:43 -080052
Davanum Srinivasf5aa05c2014-02-21 22:03:59 -050053 git_clone $OSLOVMWARE_REPO $OSLOVMWARE_DIR $OSLOVMWARE_BRANCH
54 setup_develop $OSLOVMWARE_DIR
55
Doug Hellmann6b1cb102014-02-10 09:59:43 -080056 git_clone $PYCADF_REPO $PYCADF_DIR $PYCADF_BRANCH
57 setup_develop $PYCADF_DIR
58
59 git_clone $STEVEDORE_REPO $STEVEDORE_DIR $STEVEDORE_BRANCH
60 setup_develop $STEVEDORE_DIR
61
62 git_clone $TASKFLOW_REPO $TASKFLOW_DIR $TASKFLOW_BRANCH
63 setup_develop $TASKFLOW_DIR
Sean Dague1b6b5312013-07-31 06:46:34 -040064}
65
Sean Daguedb5fadb2013-08-09 13:41:33 -040066# cleanup_oslo() - purge possibly old versions of oslo
Ian Wienandaee18c72014-02-21 15:35:08 +110067function cleanup_oslo {
Alessio Ababilovc2a4c922013-08-16 21:53:22 +030068 # this means we've got an old oslo installed, lets get rid of it
Attila Fazekas025fc5e2013-08-13 18:55:33 +020069 if ! python -c 'import oslo.config' 2>/dev/null; then
Sean Daguedb5fadb2013-08-09 13:41:33 -040070 echo "Found old oslo.config... removing to ensure consistency"
71 local PIP_CMD=$(get_pip_command)
Alessio Ababilovc2a4c922013-08-16 21:53:22 +030072 pip_install oslo.config
73 sudo $PIP_CMD uninstall -y oslo.config
Sean Daguedb5fadb2013-08-09 13:41:33 -040074 fi
75}
76
Sean Dague1b6b5312013-07-31 06:46:34 -040077# Restore xtrace
78$XTRACE
79
Adam Spiers6a5aa7c2013-10-24 11:27:02 +010080# Tell emacs to use shell-script-mode
81## Local variables:
82## mode: shell-script
83## End: