aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/config-osa/files
diff options
context:
space:
mode:
authorJustin chi <chigang@huawei.com>2017-09-01 08:25:01 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-09-01 08:25:01 +0000
commit292985dab007c3ee1c3481c985871a3483d9f7bc (patch)
treebfc4888a633f5ea7bf43287cfd9a6c2f2e23dbf2 /deploy/adapters/ansible/roles/config-osa/files
parentfd8f9747f93b6a6d40c32ae5b727780fe1206039 (diff)
parent8c978370a123dccc0b93ee9bd2ba46f8167a2cc2 (diff)
Merge "Support offline deployment for nosdn no feature scenario"
Diffstat (limited to 'deploy/adapters/ansible/roles/config-osa/files')
-rw-r--r--deploy/adapters/ansible/roles/config-osa/files/apt.conf3
-rw-r--r--deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh230
-rw-r--r--deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt314
3 files changed, 547 insertions, 0 deletions
diff --git a/deploy/adapters/ansible/roles/config-osa/files/apt.conf b/deploy/adapters/ansible/roles/config-osa/files/apt.conf
new file mode 100644
index 00000000..afe7ab9e
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-osa/files/apt.conf
@@ -0,0 +1,3 @@
+APT::Get::Assume-Yes "true";
+APT::Get::force-yes "true";
+APT::Get::AllowUnauthenticated "true";
diff --git a/deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh b/deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh
new file mode 100644
index 00000000..c598027f
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh
@@ -0,0 +1,230 @@
+#!/usr/local/env bash
+
+set -ev
+
+function venv_create {
+ VENV_PATH="$1"
+ VENV_FILE="$2"
+ ROLE_VENV_WITH_INDEX="$3"
+ VENV_VALUES="$4"
+
+ # If the venv working directory already exists remove it
+ [[ -d "/tmp/${VENV_PATH}" ]] && rm -rf "/tmp/${VENV_PATH}"
+
+ # If the pip build directory already exists remove it
+ [[ -d "/tmp/${VENV_FILE}" ]] && rm -rf "/tmp/${VENV_FILE}"
+
+ # Create the virtualenv shell
+ /usr/local/bin/virtualenv --always-copy --extra-search-dir /var/www/repo/os-releases/15.1.4/ubuntu-16.04-x86_64 --never-download "${VENV_PATH}"
+
+ # Create the pip build directory
+ mkdir -p "/tmp/${VENV_FILE}"
+
+ # Activate the python virtual environment for good measure
+ source "${VENV_PATH}/bin/activate"
+
+ # Run the pip install within the venv and specify a specific build directory which
+ # resolves pip locking issues when run in parallel.
+
+ if [ "${ROLE_VENV_WITH_INDEX}" = false ]; then
+ ${VENV_PATH}/bin/pip install --build "/tmp/${VENV_FILE}" --timeout 120 --find-links /var/www/repo/os-releases/15.1.4/ubuntu-16.04-x86_64 --log /var/log/repo/repo_venv_builder.log --no-index ${VENV_VALUES}
+
+
+ else
+ ${VENV_PATH}/bin/pip install --build "/tmp/${VENV_FILE}" --timeout 120 --find-links /var/www/repo/os-releases/15.1.4/ubuntu-16.04-x86_64 --log /var/log/repo/repo_venv_builder.log ${VENV_VALUES}
+
+ fi
+
+ # Deactivate the venv for good measure
+ deactivate
+
+ # Find and remove all of the python pyc files
+ find "${VENV_PATH}" -type f -name '*.pyc' -delete
+
+ # Create the archive
+ tar czf "${VENV_FILE}.tgz" -C "${VENV_PATH}" .
+
+ # Create a checksum file for the archive
+ sha1sum "${VENV_FILE}.tgz" | awk '{print $1}' > "${VENV_FILE}.checksum"
+
+ # Remove the working directories
+ rm -rf "${VENV_PATH}"
+ rm -rf "/tmp/${VENV_FILE}"
+}
+
+# First operation is to sort and set the known os_* roles and create a unique dict.
+# NOTE: this is a Jinja loop and will not be rendered within the script. For debugging
+# purposes the group data will be rendered as a comment.
+# venv to build os_glance
+# * packages within the os_glance venv: [u'glance', u'keystonemiddleware', u'os-brick', u'pycrypto', u'pymysql', u'python-cinderclient', u'python-glanceclient', u'python-keystoneclient', u'python-memcached', u'python-swiftclient', u'warlock']
+# venv to build os_ceilometer
+# * packages within the os_ceilometer venv: [u'ceilometer', u'ceilometermiddleware', u'gnocchiclient', u'libvirt-python', u'pycrypto', u'pymongo', u'pymysql', u'python-ceilometerclient', u'python-memcached', u'tooz', u'warlock']
+# venv to build os_heat
+# * packages within the os_heat venv: [u'heat', u'keystonemiddleware', u'pycrypto', u'pymysql', u'python-ceilometerclient', u'python-cinderclient', u'python-glanceclient', u'python-heatclient', u'python-keystoneclient', u'python-memcached', u'python-neutronclient', u'python-novaclient', u'python-openstackclient', u'python-swiftclient', u'python-troveclient']
+# venv to build os_aodh
+# * packages within the os_aodh venv: [u'aodh[mysql]', u'ceilometermiddleware', u'gnocchiclient', u'pycrypto', u'pymysql', u'python-ceilometerclient', u'python-memcached', u'warlock']
+# venv to build os_neutron
+# * packages within the os_neutron venv: [u'cliff', u'configobj', u'keystonemiddleware', u'neutron', u'pycrypto', u'pymysql', u'python-glanceclient', u'python-keystoneclient', u'python-memcached', u'python-neutronclient', u'python-novaclient', u'repoze.lru']
+# venv to build os_cinder
+# * packages within the os_cinder venv: [u'cinder', u'ecdsa', u'httplib2', u'keystonemiddleware', u'pycrypto', u'pymysql', u'python-cinderclient', u'python-keystoneclient', u'python-memcached']
+# venv to build os_tempest
+# * packages within the os_tempest venv: [u'junitxml', u'nose', u'python-ceilometerclient', u'python-cinderclient', u'python-glanceclient', u'python-heatclient', u'python-keystoneclient', u'python-memcached', u'python-neutronclient', u'python-novaclient', u'python-openstackclient', u'python-saharaclient', u'python-subunit', u'python-swiftclient', u'tempest']
+# venv to build os_keystone
+# * packages within the os_keystone venv: [u'argparse', u'keystone', u'keystonemiddleware', u'ldappool', u'lxml', u'oslo.log', u'oslo.middleware', u'pbr', u'pycrypto', u'pymysql', u'pysaml2', u'python-keystoneclient', u'python-ldap', u'python-memcached', u'python-openstackclient', u'repoze.lru', u'uwsgi']
+# venv to build os_gnocchi
+# * packages within the os_gnocchi venv: [u'gnocchi[mysql,file,swift,ceph]', u'gnocchiclient', u'keystonemiddleware', u'pycrypto', u'python-memcached']
+# venv to build os_rally
+# * packages within the os_rally venv: [u'pymysql', u'rally', u'setuptools']
+# venv to build os_nova
+# * packages within the os_nova venv: [u'libvirt-python', u'nova-powervm', u'pyasn1-modules', u'keystonemiddleware', u'nova', u'pycrypto', u'pymysql', u'python-keystoneclient', u'python-memcached', u'python-novaclient', u'python-ironicclient', u'uwsgi', u'websockify', u'nova-lxd', u'pylxd', u'pyopenssl']
+# venv to build os_horizon
+# * packages within the os_horizon venv: [u'designate_dashboard', u'django-appconf', u'django-openstack-auth', u'greenlet', u'horizon', u'ironic-ui', u'keystonemiddleware', u'magnum-ui', u'mysql-python', u'neutron-lbaas-dashboard', u'oslo.config', u'ply', u'pycrypto', u'pymysql', u'python-keystoneclient', u'python-memcached', u'sahara_dashboard', u'trove_dashboard']
+
+PID=()
+# Run the venv create. This will loop over all of the os_group role packages and create a python virtual env.
+# Venv creation is done parallel at a count of the known "ansible_processor_count" or using a default of 5.
+# This loop will enter the venv build directory and create tagged venvs in a distribution directory
+# If the venv archive already exists the creation process will be skipped
+pushd "/var/www/repo/venvs/15.1.4/ubuntu-16.04-x86_64"
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/heat"
+ROLE_VENV_FILE="heat-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "heat keystonemiddleware pycrypto pymysql python-ceilometerclient python-cinderclient python-glanceclient python-heatclient python-keystoneclient python-memcached python-neutronclient python-novaclient python-openstackclient python-swiftclient python-troveclient" &
+ pid[1]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/nova"
+ROLE_VENV_FILE="nova-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "libvirt-python nova-powervm pyasn1-modules keystonemiddleware nova pycrypto pymysql python-keystoneclient python-memcached python-novaclient python-ironicclient uwsgi websockify nova-lxd pylxd pyopenssl" &
+ pid[2]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/keystone"
+ROLE_VENV_FILE="keystone-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "argparse keystone keystonemiddleware ldappool lxml oslo.log oslo.middleware pbr pycrypto pymysql pysaml2 python-keystoneclient python-ldap python-memcached python-openstackclient repoze.lru uwsgi" &
+ pid[3]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+#ROLE_VENV_WITH_INDEX=true
+#ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/rally"
+#ROLE_VENV_FILE="rally-15.1.4-x86_64"
+#if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+# venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "pbr pymysql rally setuptools" &
+# pid[4]=$!
+#fi
+#unset ROLE_VENV_PATH
+#unset ROLE_VENV_FILE
+#unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/gnocchi"
+ROLE_VENV_FILE="gnocchi-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "gnocchi[mysql,file,swift,ceph] gnocchiclient keystonemiddleware pycrypto python-memcached" &
+ pid[5]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/aodh"
+ROLE_VENV_FILE="aodh-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "aodh[mysql] ceilometermiddleware gnocchiclient pycrypto pymysql python-ceilometerclient python-memcached warlock" &
+ pid[6]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/neutron"
+ROLE_VENV_FILE="neutron-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "cliff configobj keystonemiddleware neutron pycrypto pymysql python-glanceclient python-keystoneclient python-memcached python-neutronclient python-novaclient repoze.lru" &
+ pid[7]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/cinder"
+ROLE_VENV_FILE="cinder-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "cinder ecdsa httplib2 keystonemiddleware pycrypto pymysql python-cinderclient python-keystoneclient python-memcached" &
+ pid[8]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+for job_pid in ${!pid[@]}; do
+ wait ${pid[$job_pid]} || exit 99
+done
+
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/glance"
+ROLE_VENV_FILE="glance-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "glance keystonemiddleware os-brick pycrypto pymysql python-cinderclient python-glanceclient python-keystoneclient python-memcached python-swiftclient warlock" &
+ pid[9]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+#ROLE_VENV_WITH_INDEX=true
+#ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/tempest"
+#ROLE_VENV_FILE="tempest-15.1.4-x86_64"
+#if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+# venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "junitxml nose python-ceilometerclient python-cinderclient python-glanceclient python-heatclient python-keystoneclient python-memcached python-neutronclient python-novaclient python-openstackclient python-saharaclient python-subunit python-swiftclient tempest" &
+# pid[10]=$!
+#fi
+#unset ROLE_VENV_PATH
+#unset ROLE_VENV_FILE
+#unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/horizon"
+ROLE_VENV_FILE="horizon-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "designate_dashboard django-appconf django-openstack-auth greenlet horizon ironic-ui keystonemiddleware magnum-ui mysql-python neutron-lbaas-dashboard oslo.config ply pycrypto pymysql python-keystoneclient python-memcached sahara_dashboard trove_dashboard" &
+ pid[11]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/ceilometer"
+ROLE_VENV_FILE="ceilometer-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "ceilometer ceilometermiddleware gnocchiclient libvirt-python pycrypto pymongo pymysql python-ceilometerclient python-memcached tooz warlock" &
+ pid[12]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+for job_pid in ${!pid[@]}; do
+ wait ${pid[$job_pid]} || exit 99
+done
+
+popd
+
diff --git a/deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt b/deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt
new file mode 100644
index 00000000..56067a6c
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt
@@ -0,0 +1,314 @@
+alabaster==0.7.9
+alembic==0.8.10
+amqp==1.4.9
+ansible==2.3.2.0
+anyjson==0.3.3
+aodh==4.0.1.dev5
+aodhclient==0.8.0
+appdirs==1.4.3
+argparse==1.4.0
+automaton==1.7.0
+babel==2.3.4
+beautifulsoup4==4.5.3
+boto==2.45.0
+cachetools==2.0.0
+cassandra_driver==3.7.1
+castellan==0.5.0
+ceilometer==8.0.2.dev15
+ceilometermiddleware==1.0.2
+cffi==1.9.1
+cinder==10.0.2.dev24
+cliff==2.4.0
+cmd2==0.6.9
+configobj==5.0.6
+contextlib2==0.5.4
+cotyledon==1.6.8
+crc16==0.1.1
+croniter==0.3.14
+cryptography==1.7.1
+cursive==0.1.1
+cython==0.26
+datrie==0.7.1
+debtcollector==1.11.0
+decorator==4.0.11
+designate_dashboard==4.0.1.dev3
+django==1.8.17
+django_appconf==1.0.2
+django_babel==0.5.1
+django_compressor==2.1
+django_openstack_auth==3.1.1
+django_pyscss==2.0.2
+dnspython==1.15.0
+docutils==0.12
+dogpile.cache==0.6.2
+dragonflow==3.0.1.dev41
+ecdsa==0.13
+enum34==1.1.6
+eventlet==0.19.0
+extras==1.0.0
+fasteners==0.14.1
+felix==1.4.4
+fixtures==3.0.0
+funcsigs==1.0.2
+functools32==3.2.3.post2
+futures==3.0.5
+futurist==0.21.0
+gevent==1.2.1
+glance==14.0.1.dev5
+glance_store==0.20.0
+gnocchi==3.1.4
+gnocchiclient==3.0.0
+google_api_python_client==1.6.1
+greenlet==0.4.11
+heat==8.0.2.dev4
+horizon==11.0.2.dev21
+httplib2==0.9.2
+idna==2.2
+ijson==2.3
+ipaddress==1.0.18
+ironic_ui==2.2.1.dev6
+iso8601==0.1.11
+jinja2==2.8.1
+jmespath==0.9.0
+jsonpatch==1.15
+jsonpath_rw==1.4.0
+jsonpath_rw_ext==1.0.0
+jsonpointer==1.10
+jsonschema==2.5.1
+junitxml==0.7
+kafka_python==1.3.2
+kazoo==2.2.1
+keystone==11.0.1
+keystoneauth1==2.18.0
+keystonemiddleware==4.14.0
+kombu==3.0.37
+ldappool==2.0.0
+libvirt_python==2.5.0
+linecache2==1.0.0
+logutils==0.3.3
+lxc_python2==0.1
+lxml==3.7.2
+lz4==0.8.2
+magnum_ui==2.2.1.dev4
+mako==1.0.6
+markupsafe==0.23
+microversion_parse==0.1.4
+monotonic==1.2
+msgpack_python==0.4.8
+munch==2.2.0
+murano_pkg_check==0.3.0
+mysql_python==1.2.5
+ndg_httpsclient==0.4.2
+netaddr==0.7.19
+netifaces==0.10.5
+networking_calico==1.3.2.dev3
+networkx==1.11
+neutron==10.0.2.dev45
+neutron_dynamic_routing==10.0.1.dev8
+neutron_fwaas==10.0.2.dev3
+neutron_lbaas==10.0.1
+neutron_lbaas_dashboard==2.0.1.dev7
+neutron_lib==1.1.0
+neutron_vpnaas==10.0.1.dev5
+nose==1.3.7
+nova==15.0.4
+nova_lxd==15.0.1
+nova_powervm==4.0.1.dev9
+numpy==1.12.0
+oauth2client==3.0.0
+oauthlib==2.0.1
+openstacksdk==0.9.13
+os_brick==1.11.0
+osc_lib==1.3.0
+os_client_config==1.26.0
+os_faults==0.1.9
+oslo.cache==1.17.0
+oslo.concurrency==3.18.0
+oslo.config==3.22.0
+oslo.context==2.12.1
+oslo.db==4.17.0
+oslo.i18n==3.12.0
+oslo.log==3.20.1
+oslo.messaging==5.17.1
+oslo.middleware==3.23.1
+oslo.policy==1.18.0
+oslo.privsep==1.16.0
+oslo.reports==1.17.0
+oslo.rootwrap==5.4.0
+oslo.serialization==2.16.0
+oslo.service==1.19.0
+oslo.utils==3.22.0
+oslo.versionedobjects==1.21.0
+oslo.vmware==2.17.0
+osprofiler==1.5.0
+os_testr==0.8.0
+os_vif==1.4.0
+os_win==1.4.1
+os_xenapi==0.1.1
+ovs==2.6.1
+pandas==0.20.3
+paramiko==2.1.1
+passlib==1.7.0
+paste==2.0.3
+pastedeploy==1.5.2
+pathlib==1.0.1
+pbr==1.10.0
+pecan==1.2.1
+pika==0.10.0
+pika_pool==0.1.3
+pint==0.7.2
+pip==9.0.1
+ply==3.9
+positional==1.1.1
+posix_spawn==0.2.post7
+prettytable==0.7.2
+prometheus_client==0.0.20
+psutil==5.0.1
+pyasn1==0.1.9
+pyasn1_modules==0.0.8
+pycadf==2.5.0
+pycparser==2.17
+pycrypto==2.6.1
+pyghmi==1.0.16
+pygments==2.2.0
+pyinotify==0.9.6
+pyldap==2.4.28
+pylxd==2.2.2
+pymongo==3.4.0
+pymysql==0.7.9
+pyopenssl==16.2.0
+pyparsing==2.1.10
+pypowervm==1.0.0.4
+pyroute2==0.4.12
+pysaml2==4.0.2
+pyscss==1.3.4
+pysmi==0.0.7
+pysnmp==4.3.2
+python_barbicanclient==4.2.0
+python_ceilometerclient==2.8.1
+python_cinderclient==1.11.0
+python_dateutil==2.6.0
+python_designateclient==2.6.0
+python_editor==1.0.3
+python_etcd==0.4.4
+python_glanceclient==2.6.0
+python_heatclient==1.8.0
+python_ironicclient==1.11.1
+python_keystoneclient==3.10.0
+python_ldap==2.4.41
+python_magnumclient==2.5.0
+python_manilaclient==1.14.0
+python_memcached==1.58
+python_mimeparse==1.6.0
+python_mistralclient==3.0.0
+python_monascaclient==1.5.0
+python_muranoclient==0.12.0
+python_neutronclient==6.1.0
+python_novaclient==7.1.0
+python_openstackclient==3.8.1
+python_saharaclient==1.1.0
+python_senlinclient==1.2.0
+python_subunit==1.2.0
+python_swiftclient==3.3.0
+python_troveclient==2.8.0
+python_watcherclient==1.0.0
+python_zaqarclient==1.4.0
+pytz==2016.10
+pyudev==0.21.0
+pyyaml==3.12
+pyzmq==16.0.2
+rally==0.8.2.dev10
+rcssmin==1.0.6
+repoze.lru==0.6
+repoze.who==2.3
+requests==2.12.5
+requestsexceptions==1.1.3
+requests_unixsocket==0.1.5
+retrying==1.3.3
+rfc3986==0.4.1
+rjsmin==1.0.12
+routes==2.4.1
+rsa==3.4.2
+rtslib_fb==2.1.62
+ryu==4.10
+sahara_dashboard==6.0.1.dev7
+scipy==0.18.1
+semantic_version==2.6.0
+setproctitle==1.1.10
+setuptools==33.1.1
+shade==1.22.2
+simplegeneric==0.8.1
+simplejson==3.10.0
+singledispatch==3.4.0.3
+six==1.10.0
+snowballstemmer==1.2.1
+sphinx==1.3.6
+sphinx_rtd_theme==0.1.9
+sqlalchemy==1.0.17
+sqlalchemy_migrate==0.10.0
+sqlalchemy_utils==0.32.12
+sqlparse==0.2.2
+statsd==3.2.1
+stevedore==1.20.0
+suds_jurko==0.6
+taskflow==2.9.0
+tempest==14.0.1.dev142
+tempita==0.5.2
+tenacity==3.7.1
+testrepository==0.0.20
+testtools==2.2.0
+tinyrpc==0.5
+tooz==1.48.0
+traceback2==1.4.0
+trollius==2.1
+trove_dashboard==8.0.1.dev1
+ujson==1.35
+unicodecsv==0.14.1
+unittest2==1.1.0
+uritemplate==3.0.0
+urllib3==1.20
+uwsgi==2.0.15
+virtualenv==15.1.0
+virtualenv_tools==1.0
+voluptuous==0.9.3
+waitress==1.0.1
+warlock==1.2.0
+weakrefmethod==1.0.3
+webob==1.6.3
+websockify==0.8.0
+webtest==2.0.24
+werkzeug==0.11.15
+wheel==0.29.0
+wrapt==1.10.8
+ws4py==0.3.4
+wsme==0.9.1
+xstatic==1.0.1
+xstatic_angular==1.5.8.0
+xstatic_angular_bootstrap==2.2.0.0
+xstatic_angular_fileupload==12.0.4.0
+xstatic_angular_gettext==2.3.8.0
+xstatic_angular_lrdragndrop==1.0.2.2
+xstatic_angular_schema_form==0.8.13.0
+xstatic_bootstrap_datepicker==1.3.1.0
+xstatic_bootstrap_scss==3.3.7.1
+xstatic_bootswatch==3.3.7.0
+xstatic_d3==3.5.17.0
+xstatic_font_awesome==4.7.0.0
+xstatic_hogan==2.0.0.2
+xstatic_jasmine==2.4.1.1
+xstatic_jquery==1.10.2.1
+xstatic_jquery_migrate==1.2.1.1
+xstatic_jquery.quicksearch==2.0.3.1
+xstatic_jquery.tablesorter==2.14.5.1
+xstatic_jquery_ui==1.12.0.1
+xstatic_jsencrypt==2.3.1.1
+xstatic_mdi==1.4.57.0
+xstatic_objectpath==1.2.1.0
+xstatic_rickshaw==1.5.0.0
+xstatic_roboto_fontface==0.5.0.0
+xstatic_smart_table==1.4.13.2
+xstatic_spin==1.2.5.2
+xstatic_term.js==0.0.7.0
+xstatic_tv4==1.2.7.0
+yaql==1.1.3
+zope.interface==4.3.3