Skip to content

Commit bbafb1b

Browse files
author
Dean Troyer
committed
Fix issues when working through an outbound proxy
* reqork setup-develop() to handle proxy operations and empty dependency lists * use keystone to get admin token (eliminate a direct curl invocation) * check for cached image files of 0 bytes and re-download if needed Change-Id: Ief356667ed3ef8d05c6604f12513ae81f68cec04
1 parent fda9df8 commit bbafb1b

File tree

2 files changed

+44
-34
lines changed

2 files changed

+44
-34
lines changed

functions

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,23 @@ function restart_service() {
309309
}
310310

311311

312+
# pip install the dependencies of the package before we do the setup.py
313+
# develop, so that pip and not distutils process the dependency chain
314+
# setup_develop directory
315+
function setup_develop() {
316+
(cd $1; \
317+
python setup.py egg_info; \
318+
raw_links=$(awk '/^.+/ {print "-f " $1}' *.egg-info/dependency_links.txt); \
319+
depend_links=$(echo $raw_links | xargs); \
320+
pip_install -r *-info/requires.txt $depend_links; \
321+
sudo \
322+
HTTP_PROXY=$http_proxy \
323+
HTTPS_PROXY=$https_proxy \
324+
python setup.py develop \
325+
)
326+
}
327+
328+
312329
# Service wrapper to start services
313330
# start_service service-name
314331
function start_service() {

stack.sh

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,23 @@ fi
6464
# repositories and branches to configure. ``stackrc`` sources ``localrc`` to
6565
# allow you to safely override those settings without being overwritten
6666
# when updating DevStack.
67+
if [[ ! -r $TOP_DIR/stackrc ]]; then
68+
echo "ERROR: missing $TOP_DIR/stackrc - did you grab more than just stack.sh?"
69+
exit 1
70+
fi
71+
source $TOP_DIR/stackrc
6772

6873
# HTTP and HTTPS proxy servers are supported via the usual environment variables
6974
# ``http_proxy`` and ``https_proxy``. They can be set in ``localrc`` if necessary
7075
# or on the command line::
7176
#
7277
# http_proxy=http://proxy.example.com:3128/ ./stack.sh
73-
74-
if [[ ! -r $TOP_DIR/stackrc ]]; then
75-
echo "ERROR: missing $TOP_DIR/stackrc - did you grab more than just stack.sh?"
76-
exit 1
78+
if [[ -n "$http_proxy" ]]; then
79+
export http_proxy=$http_proxy
80+
fi
81+
if [[ -n "$https_proxy" ]]; then
82+
export https_proxy=$https_proxy
7783
fi
78-
source $TOP_DIR/stackrc
7984

8085
# Destination path for installation ``DEST``
8186
DEST=${DEST:-/opt/stack}
@@ -648,16 +653,6 @@ function get_packages() {
648653
done
649654
}
650655

651-
# pip install the dependencies of the package before we do the setup.py
652-
# develop, so that pip and not distutils process the dependency chain
653-
function setup_develop() {
654-
python setup.py egg_info
655-
raw_links=`cat *.egg-info/dependency_links.txt | awk '{print "-f " $1}'`
656-
depend_links=`echo $raw_links | xargs`
657-
sudo pip install -r *-info/requires.txt $depend_links
658-
sudo python setup.py develop
659-
}
660-
661656
# install package requirements
662657
if [[ "$os_PACKAGE" = "deb" ]]; then
663658
apt_get update
@@ -724,39 +719,37 @@ fi
724719

725720
# setup our checkouts so they are installed into python path
726721
# allowing ``import nova`` or ``import glance.client``
727-
cd $KEYSTONECLIENT_DIR; setup_develop
728-
cd $NOVACLIENT_DIR; setup_develop
729-
cd $OPENSTACKCLIENT_DIR; setup_develop
722+
setup_develop $KEYSTONECLIENT_DIR
723+
setup_develop $NOVACLIENT_DIR
724+
setup_develop $OPENSTACKCLIENT_DIR
730725
if is_service_enabled key g-api n-api swift; then
731-
cd $KEYSTONE_DIR; setup_develop
726+
setup_develop $KEYSTONE_DIR
732727
fi
733728
if is_service_enabled swift; then
734-
cd $SWIFT_DIR; setup_develop
735-
cd $SWIFTCLIENT_DIR; setup_develop
736-
cd $SWIFT3_DIR; setup_develop
729+
setup_develop $SWIFT_DIR
730+
setup_develop $SWIFTCLIENT_DIR
731+
setup_develop $SWIFT3_DIR
737732
fi
738733
if is_service_enabled g-api n-api; then
739-
cd $GLANCE_DIR; setup_develop
734+
setup_develop $GLANCE_DIR
740735
fi
741-
cd $NOVA_DIR; setup_develop
736+
setup_develop $NOVA_DIR
742737
if is_service_enabled horizon; then
743-
cd $HORIZON_DIR; setup_develop
744-
fi
745-
if is_service_enabled quantum; then
746-
cd $QUANTUM_CLIENT_DIR; setup_develop
738+
setup_develop $HORIZON_DIR
747739
fi
748740
if is_service_enabled quantum; then
749-
cd $QUANTUM_DIR; setup_develop
741+
setup_develop $QUANTUM_CLIENT_DIR
742+
setup_develop $QUANTUM_DIR
750743
fi
751744
if is_service_enabled m-svc; then
752-
cd $MELANGE_DIR; setup_develop
745+
setup_develop $MELANGE_DIR
753746
fi
754747
if is_service_enabled melange; then
755-
cd $MELANGECLIENT_DIR; setup_develop
748+
setup_develop $MELANGECLIENT_DIR
756749
fi
757750

758751
# Do this _after_ glance is installed to override the old binary
759-
cd $GLANCECLIENT_DIR; setup_develop
752+
setup_develop $GLANCECLIENT_DIR
760753

761754

762755
# Syslog
@@ -1942,7 +1935,7 @@ if is_service_enabled g-reg; then
19421935

19431936
ADMIN_USER=admin
19441937
ADMIN_TENANT=admin
1945-
TOKEN=`curl -s -d "{\"auth\":{\"passwordCredentials\": {\"username\": \"$ADMIN_USER\", \"password\": \"$ADMIN_PASSWORD\"}, \"tenantName\": \"$ADMIN_TENANT\"}}" -H "Content-type: application/json" http://$HOST_IP:5000/v2.0/tokens | python -c "import sys; import json; tok = json.loads(sys.stdin.read()); print tok['access']['token']['id'];"`
1938+
TOKEN=$(keystone --os_tenant_name $ADMIN_TENANT --os_username $ADMIN_USER --os_password $ADMIN_PASSWORD --os_auth_url http://$HOST_IP:5000/v2.0 token-get | grep ' id ' | get_field 2)
19461939

19471940
# Option to upload legacy ami-tty, which works with xenserver
19481941
if [[ -n "$UPLOAD_LEGACY_TTY" ]]; then
@@ -1952,7 +1945,7 @@ if is_service_enabled g-reg; then
19521945
for image_url in ${IMAGE_URLS//,/ }; do
19531946
# Downloads the image (uec ami+aki style), then extracts it.
19541947
IMAGE_FNAME=`basename "$image_url"`
1955-
if [ ! -f $FILES/$IMAGE_FNAME ]; then
1948+
if [[ ! -f $FILES/$IMAGE_FNAME || "$(stat -c "%s" $FILES/$IMAGE_FNAME)" = "0" ]]; then
19561949
wget -c $image_url -O $FILES/$IMAGE_FNAME
19571950
fi
19581951

0 commit comments

Comments
 (0)