we now need to have dib installed explicitly

dib is now going to have to be installed explicitly for us to actually
run the gate. the old method of just cloning the repo won't work with
dib v2.

There are other ways to accomplish this but I'm choosing this approach
knowing that it isn't ideal. First, what's the downside? This means
that dib gets installed wherever trove control plane is installed. Is
that necessary, NO. Is it the end of the world, NO.

What are the options?

- do what Octavia did and have a second requirements.txt in a folder
  called diskimage-create. Would this work, yes but we don't have such
  a mechanism right now and nothing would keep this requirements.txt
  file in sync with g-r that I know of.

- hardcode the pip install command somewhere in the devstack
  plugin. yes, this would work but this would also have no ability to
  sync with g-r.

So, while the solution proposed here isn't ideal, it strikes me as not
bad, and much less risk than the other two options.

We also need to figure out where the elements are and fix the path for
disk-image-create.

Some pep8 failures appears to have crept in as well, those are
addressed.

Change-Id: Ic64d91e082102057417995a0f6851d03b9e0ca74
This commit is contained in:
Amrith Kumar 2017-03-09 15:25:42 -05:00
parent 880f8cc519
commit 107bc5e4b4
4 changed files with 5 additions and 4 deletions

View File

@ -38,7 +38,7 @@ function build_vm() {
export GUEST_LOGDIR
export ESCAPED_GUEST_LOGDIR
export ELEMENTS_PATH=$TROVESTACK_SCRIPTS/files/elements
export ELEMENTS_PATH+=:$PATH_DISKIMAGEBUILDER/elements
export ELEMENTS_PATH+=:$PATH_DISKIMAGEBUILDER_ELEMENTS
export ELEMENTS_PATH+=:$PATH_TRIPLEO_ELEMENTS/elements
export DIB_CLOUD_INIT_DATASOURCES="ConfigDrive"
export DATASTORE_PKG_LOCATION
@ -46,7 +46,7 @@ function build_vm() {
export DIB_APT_CONF_DIR=/etc/apt/apt.conf.d
export DIB_CLOUD_INIT_ETC_HOSTS=true
local QEMU_IMG_OPTIONS=$(! $(qemu-img | grep -q 'version 1') && echo "--qemu-img-options compat=0.10")
${PATH_DISKIMAGEBUILDER}/bin/disk-image-create -a amd64 -o "${VM}" \
disk-image-create -a amd64 -o "${VM}" \
-x ${QEMU_IMG_OPTIONS} ${DISTRO} ${EXTRA_ELEMENTS} vm heat-cfntools \
cloud-init-datasources ${DISTRO}-${RELEASE}-guest ${DISTRO}-${RELEASE}-${SERVICE_TYPE}
}

View File

@ -51,7 +51,7 @@ PATH_OPENSTACKCLIENT=$DEST/python-openstackclient
PATH_PYTHON_SWIFTCLIENT=$DEST/python-swiftclient
PATH_PYTHON_TROVECLIENT=$DEST/python-troveclient
PATH_TROVE_DASHBOARD=$DEST/trove-dashboard
PATH_DISKIMAGEBUILDER=$DEST/diskimage-builder
PATH_DISKIMAGEBUILDER_ELEMENTS=$(python -c 'import os, diskimage_builder, pkg_resources;print(os.path.abspath(pkg_resources.resource_filename(diskimage_builder.__name__, "elements")))')
PATH_TRIPLEO_ELEMENTS=$DEST/tripleo-image-elements
# Save the state of TROVE_BRANCH first, since it's used in trovestack

View File

@ -47,3 +47,4 @@ enum34;python_version=='2.7' or python_version=='2.6' or python_version=='3.3' #
xmltodict>=0.10.1 # MIT
pycrypto>=2.6 # Public Domain
oslo.policy>=1.17.0 # Apache-2.0
diskimage-builder>=1.1.2,!=1.6.0,!=1.7.0,!=1.7.1 # Apache-2.0

View File

@ -72,7 +72,7 @@ commands = {posargs}
show-source = True
# H301 is ignored on purpose.
# The rest of the ignores are TODOs.
ignore = F821,H301,H404,H405,H501
ignore = F821,H301,H404,H405,H501,E402,W503,E731
enable-extensions = H203,H106
builtins = _
exclude=.venv,.tox,.git,dist,doc,*egg,tools,etc,build,*.po,*.pot,integration,releasenotes