
Currently, Deckhand fails to perform substitution given a substitution dependency chain for a group of documents. That is, if A depends on B and C depends on B for substitution then substitution will fail. Deckhand, at present, can only perform substitution if A depends on B and C depends on B and D depends on B, for example: In this case, the dependency chain is no bigger than 2. However, for cases where the substitution dependency chain is larger than 2, then the dependency is no longer trivial. This is because the substitution dependencies form a DAG that must be topologically sorted in order to derive the correct order of substitution. Once the documents are correctly sorted according to this scheme, then substitution can be carried out as usual. This PS makes the aforementioned changes to Deckhand's layering module to make substitution work for non-cyclical dependencies: A DAG is used to topologically sort the documents according to their substitution dependency chain. A unit and functional test has been added to verify the code. If a cycle is detected, a critical error is thrown. Unit tests have been added to validate this case as well. Change-Id: Iaca3963f44aec6c897ad9fd690ce314a3a4d97a2
44 lines
1.3 KiB
Plaintext
44 lines
1.3 KiB
Plaintext
# The order of packages is significant, because pip processes them in the order
|
|
# of appearance. Changing the order has an impact on the overall integration
|
|
# process, which may cause wedges in the gate later.
|
|
|
|
# Hacking already pins down pep8, pyflakes and flake8
|
|
hacking>=1.0.0 # Apache-2.0
|
|
|
|
falcon>=1.0.0 # Apache-2.0
|
|
pbr!=2.1.0,>=2.0.0 # Apache-2.0
|
|
PasteDeploy>=1.5.0 # MIT
|
|
Paste # MIT
|
|
Routes>=2.3.1 # MIT
|
|
keystoneauth1>=3.2.0 # Apache-2.0
|
|
networkx==2.1
|
|
|
|
six>=1.9.0 # MIT
|
|
stevedore>=1.20.0 # Apache-2.0
|
|
python-keystoneclient>=3.8.0 # Apache-2.0
|
|
python-memcached==1.58
|
|
keystonemiddleware>=4.12.0 # Apache-2.0
|
|
psycopg2==2.7.3.1
|
|
uwsgi==2.0.15
|
|
jsonpath-ng==1.4.3
|
|
jsonschema==2.6.0
|
|
|
|
oslo.cache>=1.5.0 # Apache-2.0
|
|
oslo.concurrency>=3.8.0 # Apache-2.0
|
|
oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
|
|
oslo.context>=2.14.0 # Apache-2.0
|
|
oslo.messaging!=5.25.0,>=5.24.2 # Apache-2.0
|
|
oslo.db>=4.24.0 # Apache-2.0
|
|
oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
|
|
oslo.log>=3.22.0 # Apache-2.0
|
|
oslo.middleware>=3.27.0 # Apache-2.0
|
|
oslo.policy>=1.23.0 # Apache-2.0
|
|
oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0
|
|
oslo.utils>=3.20.0 # Apache-2.0
|
|
|
|
# TODO(alanmeadows)
|
|
# this must match the container service
|
|
# likely this should be imported from a
|
|
# container sidecar long-term
|
|
python-barbicanclient>=4.0.0 # Apache-2.0
|