From 0e46d134c1c4f0e30bfd408b2720c29f82d67eba Mon Sep 17 00:00:00 2001 From: "Ian H. Pittwood" Date: Wed, 12 Jun 2019 11:26:23 -0500 Subject: [PATCH] Implement Pipenv dependency management Pipenv is a tool that brings better package dependency management to python. It can automatically create and manage virtualenv as well as managing package dependencies using Pipfile and Pipfile.lock. Adding this dependency manager into Airship projects will decrease package version conflicts between projects and help increase security through hash validation of packages and vulnerability scans. Changes: - Imports requirements.txt type files into Pipfile - Pipenv dependency management in tox - Switches Safety package for "pipenv check", an implementation of Safety - Adds `-e` flag on VCS dependencies to resolve good versions on all packages - Unpins or loosens pins on "dev"-type packages Pipenv Docs: https://docs.pipenv.org/en/latest/ Helpful Pipenv Guide: https://realpython.com/pipenv-guide/ Change-Id: I47e7e7b440d76103b4984499e6ffce4482a59353 --- .zuul.yaml | 5 +- Pipfile | 34 ++ Pipfile.lock | 1338 +++++++++++++++++++++++++++++++++++++++++ requirements.txt | 126 +++- test-requirements.txt | 16 - tox.ini | 35 +- 6 files changed, 1514 insertions(+), 40 deletions(-) create mode 100644 Pipfile create mode 100644 Pipfile.lock delete mode 100644 test-requirements.txt diff --git a/.zuul.yaml b/.zuul.yaml index d898fa5a..41999d40 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -49,12 +49,13 @@ - job: name: pegleg-dependency-vulnerability-check - parent: openstack-tox + parent: tox-py36 voting: false timeout: 600 - nodeset: spyglass-single-node + nodeset: ubuntu-bionic vars: tox_envlist: safety + bindep_profile: test py36 - job: name: airship-pegleg-docker-build-gate-ubuntu_xenial diff --git a/Pipfile b/Pipfile new file mode 100644 index 00000000..0a41bcd8 --- /dev/null +++ b/Pipfile @@ -0,0 +1,34 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] +pytest = "*" +pytest-cov = "*" +testfixtures = "*" +pytest-xdist = "*" +requests = ">=2.20.0" +urllib3 = ">=1.24.3" +chardet = ">=3.0.4" +flake8 = "*" +yapf = ">=0.27.0" +hacking = ">=1.1.0" +flake8-import-order = ">=0.18.1" +bandit = ">=1.6.0" +docker = ">=3.7.2" + +[packages] +click = ">=6.7" +jsonschema = "~=2.6.0" +cryptography = "~=2.3.1" +python-dateutil = "~=2.7.3" +GitPython = "~=2.1.11" +PyYAML = "~=5.1" +deckhand = {git = "https://opendev.org/airship/deckhand.git",ref = "a4850f8c4fc02dd1971282c6d9e4beb9cd5be320",editable = true} +shipyard-client = {git = "https://opendev.org/airship/shipyard.git",ref = "1472a22dce698ea77f15b007906b263eef470f52",subdirectory = "src/bin/shipyard_client",editable = true} +promenade = {git = "https://opendev.org/airship/promenade.git",ref = "89f9842b2ec428709a05fd0a8d4cd1796043375d",editable = true} +oslo-utils = "~=3.41.0" + +[requires] +python_version = "3.6" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 00000000..a9419e6d --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,1338 @@ +{ + "_meta": { + "hash": { + "sha256": "8f1bacdb3f58337cce65e006405e27d6df66cdf9de81d0c7c1a4c46140f10a08" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.6" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "alembic": { + "hashes": [ + "sha256:0fe570f23dc48fb1bbda6f6a396f1c0c28d7045c0ad14018c104a511e6c1fe8a" + ], + "version": "==1.0.1" + }, + "amqp": { + "hashes": [ + "sha256:aa4409446139676943a2eaa27d5f58caf750f4ca5a89f888c452afd86be6a67d", + "sha256:cbb6f87d53cac612a594f982b717cc1c54c6a1e17943a0a0d32dc6cc9e2120c8" + ], + "version": "==2.5.0" + }, + "argparse": { + "hashes": [ + "sha256:62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4", + "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314" + ], + "version": "==1.4.0" + }, + "arrow": { + "hashes": [ + "sha256:a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd" + ], + "version": "==0.12.1" + }, + "asn1crypto": { + "hashes": [ + "sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87", + "sha256:9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49" + ], + "version": "==0.24.0" + }, + "attrs": { + "hashes": [ + "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", + "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" + ], + "version": "==19.1.0" + }, + "babel": { + "hashes": [ + "sha256:af92e6106cb7c55286b25b38ad7695f8b4efb36a90ba483d7f7a6628c46158ab", + "sha256:e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28" + ], + "version": "==2.7.0" + }, + "beaker": { + "hashes": [ + "sha256:6072892918225f5a055413082f2ff285f3ebca6a3873a0d6e163253ba83f0450" + ], + "version": "==1.10.0" + }, + "cachetools": { + "hashes": [ + "sha256:428266a1c0d36dc5aca63a2d7c5942e88c2c898d72139fca0e97fdd2380517ae", + "sha256:8ea2d3ce97850f31e4a08b0e2b5e6c34997d7216a9d2c98e0f3978630d4da69a" + ], + "version": "==3.1.1" + }, + "certifi": { + "hashes": [ + "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", + "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + ], + "version": "==2019.6.16" + }, + "cffi": { + "hashes": [ + "sha256:041c81822e9f84b1d9c401182e174996f0bae9991f33725d059b771744290774", + "sha256:046ef9a22f5d3eed06334d01b1e836977eeef500d9b78e9ef693f9380ad0b83d", + "sha256:066bc4c7895c91812eff46f4b1c285220947d4aa46fa0a2651ff85f2afae9c90", + "sha256:066c7ff148ae33040c01058662d6752fd73fbc8e64787229ea8498c7d7f4041b", + "sha256:2444d0c61f03dcd26dbf7600cf64354376ee579acad77aef459e34efcb438c63", + "sha256:300832850b8f7967e278870c5d51e3819b9aad8f0a2c8dbe39ab11f119237f45", + "sha256:34c77afe85b6b9e967bd8154e3855e847b70ca42043db6ad17f26899a3df1b25", + "sha256:46de5fa00f7ac09f020729148ff632819649b3e05a007d286242c4882f7b1dc3", + "sha256:4aa8ee7ba27c472d429b980c51e714a24f47ca296d53f4d7868075b175866f4b", + "sha256:4d0004eb4351e35ed950c14c11e734182591465a33e960a4ab5e8d4f04d72647", + "sha256:4e3d3f31a1e202b0f5a35ba3bc4eb41e2fc2b11c1eff38b362de710bcffb5016", + "sha256:50bec6d35e6b1aaeb17f7c4e2b9374ebf95a8975d57863546fa83e8d31bdb8c4", + "sha256:55cad9a6df1e2a1d62063f79d0881a414a906a6962bc160ac968cc03ed3efcfb", + "sha256:5662ad4e4e84f1eaa8efce5da695c5d2e229c563f9d5ce5b0113f71321bcf753", + "sha256:59b4dc008f98fc6ee2bb4fd7fc786a8d70000d058c2bbe2698275bc53a8d3fa7", + "sha256:73e1ffefe05e4ccd7bcea61af76f36077b914f92b76f95ccf00b0c1b9186f3f9", + "sha256:a1f0fd46eba2d71ce1589f7e50a9e2ffaeb739fb2c11e8192aa2b45d5f6cc41f", + "sha256:a2e85dc204556657661051ff4bab75a84e968669765c8a2cd425918699c3d0e8", + "sha256:a5457d47dfff24882a21492e5815f891c0ca35fefae8aa742c6c263dac16ef1f", + "sha256:a8dccd61d52a8dae4a825cdbb7735da530179fea472903eb871a5513b5abbfdc", + "sha256:ae61af521ed676cf16ae94f30fe202781a38d7178b6b4ab622e4eec8cefaff42", + "sha256:b012a5edb48288f77a63dba0840c92d0504aa215612da4541b7b42d849bc83a3", + "sha256:d2c5cfa536227f57f97c92ac30c8109688ace8fa4ac086d19d0af47d134e2909", + "sha256:d42b5796e20aacc9d15e66befb7a345454eef794fdb0737d1af593447c6c8f45", + "sha256:dee54f5d30d775f525894d67b1495625dd9322945e7fee00731952e0368ff42d", + "sha256:e070535507bd6aa07124258171be2ee8dfc19119c28ca94c9dfb7efd23564512", + "sha256:e1ff2748c84d97b065cc95429814cdba39bcbd77c9c85c89344b317dc0d9cbff", + "sha256:ed851c75d1e0e043cbf5ca9a8e1b13c4c90f3fbd863dacb01c0808e2b5204201" + ], + "version": "==1.12.3" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "click": { + "hashes": [ + "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d", + "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b" + ], + "index": "pypi", + "version": "==6.7" + }, + "click-default-group": { + "hashes": [ + "sha256:ba8c43d9c384e1ea7127484c5fc8f4e1ca759519a64fff10718d53f4b82c412a" + ], + "version": "==1.2" + }, + "cliff": { + "hashes": [ + "sha256:3ab93f8dbc0e0042fe8d8e0c9db3ee2c54bfc911c593e32ccbb0c26cf03ccf40", + "sha256:fe044273539250a99a5b9915843902e40e4e9b32ac5698c1fae89e31200d649f" + ], + "version": "==2.15.0" + }, + "cmd2": { + "hashes": [ + "sha256:4b78379d53aff811d1deac720bbe71661769822a5fb2d830cd730656d180fb3d", + "sha256:afebd649dda771b1de893e8df0a5f6085da5f0dcf7f63e18b247b3284f9365ce" + ], + "markers": "python_version >= '3.0'", + "version": "==0.9.16" + }, + "colorama": { + "hashes": [ + "sha256:05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d", + "sha256:f8ac84de7840f5b9c4e3347b3c1eaa50f7e49c2b07596221daec5edaabbd7c48" + ], + "version": "==0.4.1" + }, + "cryptography": { + "hashes": [ + "sha256:02602e1672b62e803e08617ec286041cc453e8d43f093a5f4162095506bc0beb", + "sha256:10b48e848e1edb93c1d3b797c83c72b4c387ab0eb4330aaa26da8049a6cbede0", + "sha256:17db09db9d7c5de130023657be42689d1a5f60502a14f6f745f6f65a6b8195c0", + "sha256:227da3a896df1106b1a69b1e319dce218fa04395e8cc78be7e31ca94c21254bc", + "sha256:2cbaa03ac677db6c821dac3f4cdfd1461a32d0615847eedbb0df54bb7802e1f7", + "sha256:31db8febfc768e4b4bd826750a70c79c99ea423f4697d1dab764eb9f9f849519", + "sha256:4a510d268e55e2e067715d728e4ca6cd26a8e9f1f3d174faf88e6f2cb6b6c395", + "sha256:6a88d9004310a198c474d8a822ee96a6dd6c01efe66facdf17cb692512ae5bc0", + "sha256:76936ec70a9b72eb8c58314c38c55a0336a2b36de0c7ee8fb874a4547cadbd39", + "sha256:7e3b4aecc4040928efa8a7cdaf074e868af32c58ffc9bb77e7bf2c1a16783286", + "sha256:8168bcb08403ef144ff1fb880d416f49e2728101d02aaadfe9645883222c0aa5", + "sha256:8229ceb79a1792823d87779959184a1bf95768e9248c93ae9f97c7a2f60376a1", + "sha256:8a19e9f2fe69f6a44a5c156968d9fc8df56d09798d0c6a34ccc373bb186cee86", + "sha256:8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6", + "sha256:be495b8ec5a939a7605274b6e59fbc35e76f5ad814ae010eb679529671c9e119", + "sha256:dc2d3f3b1548f4d11786616cf0f4415e25b0fbecb8a1d2cd8c07568f13fdde38", + "sha256:e4aecdd9d5a3d06c337894c9a6e2961898d3f64fe54ca920a72234a3de0f9cb3", + "sha256:e79ab4485b99eacb2166f3212218dd858258f374855e1568f728462b0e6ee0d9", + "sha256:f995d3667301e1754c57b04e0bae6f0fa9d710697a9f8d6712e8cca02550910f" + ], + "index": "pypi", + "version": "==2.3.1" + }, + "debtcollector": { + "hashes": [ + "sha256:721b508130c2f133dcc14145c1e213967a84e31a15619b73d51dee79baef7f54", + "sha256:f6ce5a383ad73c23e1138dbb69bf45d33f4a4bdec38f02dbf2b89477ec5e55bc" + ], + "version": "==1.21.0" + }, + "deckhand": { + "editable": true, + "git": "https://opendev.org/airship/deckhand.git", + "ref": "a4850f8c4fc02dd1971282c6d9e4beb9cd5be320" + }, + "decorator": { + "hashes": [ + "sha256:86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de", + "sha256:f069f3a01830ca754ba5258fde2278454a0b5b79e0d7f5c13b3b97e57d4acff6" + ], + "version": "==4.4.0" + }, + "deepdiff": { + "hashes": [ + "sha256:152b29dd9cd97cc78403121fb394925ec47377d4a410751e56547c3930ba2b39", + "sha256:b4150052e610b231885c4c0be3eea86e4c029df91550ec51b9fc14dd209a5055", + "sha256:ecad8e16a96ffd27e8f40c9801a6ab16ec6a7e7e6e6859a7710ba4695f22702c" + ], + "version": "==3.3.0" + }, + "dnspython": { + "hashes": [ + "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01", + "sha256:f69c21288a962f4da86e56c4905b49d11aba7938d3d740e80d9e366ee4f1632d" + ], + "version": "==1.16.0" + }, + "dogpile.cache": { + "hashes": [ + "sha256:691b7f199561c4bd6e7e96f164a43cc3781b0c87bea29b7d59d859f873fd4a31" + ], + "version": "==0.7.1" + }, + "eventlet": { + "hashes": [ + "sha256:62b9d7581229c5195c3411dd30d15dea351daa5ee37e45a1329ee56fac0e4ef4", + "sha256:f0610bd0d3bb3d51d69f74caa4ad04fc7bce424cdb72e54d08ccda90d8c69800" + ], + "version": "==0.25.0" + }, + "extras": { + "hashes": [ + "sha256:132e36de10b9c91d5d4cc620160a476e0468a88f16c9431817a6729611a81b4e", + "sha256:f689f08df47e2decf76aa6208c081306e7bd472630eb1ec8a875c67de2366e87" + ], + "version": "==1.0.0" + }, + "falcon": { + "hashes": [ + "sha256:0a66b33458fab9c1e400a9be1a68056abda178eb02a8cb4b8f795e9df20b053b", + "sha256:3981f609c0358a9fcdb25b0e7fab3d9e23019356fb429c635ce4133135ae1bc4" + ], + "version": "==1.4.1" + }, + "fasteners": { + "hashes": [ + "sha256:007e4d2b2d4a10093f67e932e5166722d2eab83b77724156e92ad013c6226574", + "sha256:3a176da6b70df9bb88498e1a18a9e4a8579ed5b9141207762368a1017bf8f5ef" + ], + "version": "==0.15" + }, + "fixtures": { + "hashes": [ + "sha256:2a551b0421101de112d9497fb5f6fd25e5019391c0fbec9bad591ecae981420d", + "sha256:fcf0d60234f1544da717a9738325812de1f42c2fa085e2d9252d8fff5712b2ef" + ], + "version": "==3.0.0" + }, + "flake8": { + "hashes": [ + "sha256:231cd86194aaec4bdfaa553ae1a1cd9b7b4558332fbc10136c044940d587a778", + "sha256:7ac3bbaac27174d95bc4734ed23a07de567ffbcf4fc7e316854b4f3015d4fd15" + ], + "version": "==2.6.2" + }, + "futurist": { + "hashes": [ + "sha256:499ee57728a987028725f836ac22aa18899702162fa0a0f1bbe2ecd5c8daf1eb", + "sha256:c203fb7f524774295d8a8e6cd22054260cc130dc425b1002259aa4cb09f7698a" + ], + "version": "==1.8.1" + }, + "gitdb2": { + "hashes": [ + "sha256:83361131a1836661a155172932a13c08bda2db3674e4caa32368aa6eb02f38c2", + "sha256:e3a0141c5f2a3f635c7209d56c496ebe1ad35da82fe4d3ec4aaa36278d70648a" + ], + "version": "==2.0.5" + }, + "gitpython": { + "hashes": [ + "sha256:c15c55ff890cd3a6a8330059e80885410a328f645551b55a91d858bfb3eb2573", + "sha256:df752b6b6f06f11213e91c4925aea7eaf9e37e88fb71c8a7a1aa0a5c10852120" + ], + "index": "pypi", + "version": "==2.1.13" + }, + "greenlet": { + "hashes": [ + "sha256:000546ad01e6389e98626c1367be58efa613fa82a1be98b0c6fc24b563acc6d0", + "sha256:0d48200bc50cbf498716712129eef819b1729339e34c3ae71656964dac907c28", + "sha256:23d12eacffa9d0f290c0fe0c4e81ba6d5f3a5b7ac3c30a5eaf0126bf4deda5c8", + "sha256:37c9ba82bd82eb6a23c2e5acc03055c0e45697253b2393c9a50cef76a3985304", + "sha256:51503524dd6f152ab4ad1fbd168fc6c30b5795e8c70be4410a64940b3abb55c0", + "sha256:8041e2de00e745c0e05a502d6e6db310db7faa7c979b3a5877123548a4c0b214", + "sha256:81fcd96a275209ef117e9ec91f75c731fa18dcfd9ffaa1c0adbdaa3616a86043", + "sha256:853da4f9563d982e4121fed8c92eea1a4594a2299037b3034c3c898cb8e933d6", + "sha256:8b4572c334593d449113f9dc8d19b93b7b271bdbe90ba7509eb178923327b625", + "sha256:9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc", + "sha256:9854f612e1b59ec66804931df5add3b2d5ef0067748ea29dc60f0efdcda9a638", + "sha256:99a26afdb82ea83a265137a398f570402aa1f2b5dfb4ac3300c026931817b163", + "sha256:a19bf883b3384957e4a4a13e6bd1ae3d85ae87f4beb5957e35b0be287f12f4e4", + "sha256:a9f145660588187ff835c55a7d2ddf6abfc570c2651c276d3d4be8a2766db490", + "sha256:ac57fcdcfb0b73bb3203b58a14501abb7e5ff9ea5e2edfa06bb03035f0cff248", + "sha256:bcb530089ff24f6458a81ac3fa699e8c00194208a724b644ecc68422e1111939", + "sha256:beeabe25c3b704f7d56b573f7d2ff88fc99f0138e43480cecdfcaa3b87fe4f87", + "sha256:d634a7ea1fc3380ff96f9e44d8d22f38418c1c381d5fac680b272d7d90883720", + "sha256:d97b0661e1aead761f0ded3b769044bb00ed5d33e1ec865e891a8b128bf7c656" + ], + "version": "==0.4.15" + }, + "hacking": { + "hashes": [ + "sha256:23a306f3a1070a4469a603886ba709780f02ae7e0f1fc7061e5c6fb203828fee", + "sha256:d9ccda97228a46cbe562843469f3a82eb072f9ac1acefb4368c49a239bb19936" + ], + "version": "==1.1.0" + }, + "idna": { + "hashes": [ + "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", + "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" + ], + "version": "==2.7" + }, + "iso8601": { + "hashes": [ + "sha256:210e0134677cc0d02f6028087fee1df1e1d76d372ee1db0bf30bf66c5c1c89a3", + "sha256:49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82", + "sha256:bbbae5fb4a7abfe71d4688fd64bff70b91bbd74ef6a99d964bab18f7fdf286dd" + ], + "version": "==0.1.12" + }, + "jinja2": { + "hashes": [ + "sha256:065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013", + "sha256:14dd6caf1527abb21f08f86c784eac40853ba93edb79552aa1e4b8aef1b61c7b" + ], + "version": "==2.10.1" + }, + "jsonpath-ng": { + "hashes": [ + "sha256:0aeb1e9f5232bb9e1b34f02b90ac51a80100b66ffc742e0b11df93ccbde82765", + "sha256:b1fc75b877e9b2f46845a455fbdcfb0f0d9c727c45c19a745d02db620a9ef0be" + ], + "version": "==1.4.3" + }, + "jsonpickle": { + "hashes": [ + "sha256:d0c5a4e6cb4e58f6d5406bdded44365c2bcf9c836c4f52910cc9ba7245a59dc2", + "sha256:d3e922d781b1d0096df2dad89a2e1f47177d7969b596aea806a9d91b4626b29b" + ], + "version": "==1.2" + }, + "jsonschema": { + "hashes": [ + "sha256:000e68abd33c972a5248544925a0cae7d1125f9bf6c58280d37546b946769a08", + "sha256:6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02" + ], + "index": "pypi", + "version": "==2.6.0" + }, + "keystoneauth1": { + "hashes": [ + "sha256:7c9bc04706b0fb6def7061f8b78e40eb4f6cfa6a83849ec261dea639ab6dd546", + "sha256:c1adb59c82c989b7c6293231da0fd46d30adfe2b7d9e35f327e3bfe7a0f99656" + ], + "version": "==3.11.1" + }, + "keystonemiddleware": { + "hashes": [ + "sha256:a7f706469e97821c7e8500fe73ee01f977968bfaa31ff2b65f7ec6b46ff5a19f", + "sha256:d3b81d0335730dd11999fd47e332db0933769d8a53becd82945ca37ff4f3236e" + ], + "version": "==5.3.0" + }, + "kombu": { + "hashes": [ + "sha256:55b71d3785def3470a16217fe0780f9e6f95e61bf9ad39ef8dce0177224eab77", + "sha256:eb365ea795cd7e629ba2f1f398e0c3ba354b91ef4de225ffdf6ab45fdfc7d581" + ], + "version": "==4.6.3" + }, + "linecache2": { + "hashes": [ + "sha256:4b26ff4e7110db76eeb6f5a7b64a82623839d595c2038eeda662f2a2db78e97c", + "sha256:e78be9c0a0dfcbac712fe04fbf92b96cddae80b1b842f24248214c8496f006ef" + ], + "version": "==1.0.0" + }, + "mako": { + "hashes": [ + "sha256:a36919599a9b7dc5d86a7a8988f23a9a3a3d083070023bab23d64f7f1d1e0a4b" + ], + "version": "==1.1.0" + }, + "markupsafe": { + "hashes": [ + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + ], + "version": "==1.1.1" + }, + "mccabe": { + "hashes": [ + "sha256:16293af41e7242031afd73896fef6458f4cad38201d21e28f344fff50ae1c25e", + "sha256:f9b58bf366c1506dcd6117b33e5c4874746f0de859c9c7cab8b516cb6be1d22e" + ], + "version": "==0.5.3" + }, + "monotonic": { + "hashes": [ + "sha256:23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0", + "sha256:552a91f381532e33cbd07c6a2655a21908088962bb8fa7239ecbcc6ad1140cc7" + ], + "version": "==1.5" + }, + "msgpack": { + "hashes": [ + "sha256:26cb40116111c232bc235ce131cc3b4e76549088cb154e66a2eb8ff6fcc907ec", + "sha256:300fd3f2c664a3bf473d6a952f843b4a71454f4c592ed7e74a36b205c1782d28", + "sha256:3129c355342853007de4a2a86e75eab966119733eb15748819b6554363d4e85c", + "sha256:31f6d645ee5a97d59d3263fab9e6be76f69fa131cddc0d94091a3c8aca30d67a", + "sha256:3ce7ef7ee2546c3903ca8c934d09250531b80c6127e6478781ae31ed835aac4c", + "sha256:4008c72f5ef2b7936447dcb83db41d97e9791c83221be13d5e19db0796df1972", + "sha256:62bd8e43d204580308d477a157b78d3fee2fb4c15d32578108dc5d89866036c8", + "sha256:70cebfe08fb32f83051971264466eadf183101e335d8107b80002e632f425511", + "sha256:72cb7cf85e9df5251abd7b61a1af1fb77add15f40fa7328e924a9c0b6bc7a533", + "sha256:7c55649965c35eb32c499d17dadfb8f53358b961582846e1bc06f66b9bccc556", + "sha256:86b963a5de11336ec26bc4f839327673c9796b398b9f1fe6bb6150c2a5d00f0f", + "sha256:8c73c9bcdfb526247c5e4f4f6cf581b9bb86b388df82cfcaffde0a6e7bf3b43a", + "sha256:8e68c76c6aff4849089962d25346d6784d38e02baa23ffa513cf46be72e3a540", + "sha256:97ac6b867a8f63debc64f44efdc695109d541ecc361ee2dce2c8884ab37360a1", + "sha256:9d4f546af72aa001241d74a79caec278bcc007b4bcde4099994732e98012c858", + "sha256:a28e69fe5468c9f5251c7e4e7232286d71b7dfadc74f312006ebe984433e9746", + "sha256:fd509d4aa95404ce8d86b4e32ce66d5d706fd6646c205e1c2a715d87078683a2" + ], + "version": "==0.6.1" + }, + "netaddr": { + "hashes": [ + "sha256:38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd", + "sha256:56b3558bd71f3f6999e4c52e349f38660e54a7a8a9943335f73dfc96883e08ca" + ], + "version": "==0.7.19" + }, + "netifaces": { + "hashes": [ + "sha256:078986caf4d6a602a4257d3686afe4544ea74362b8928e9f4389b5cd262bc215", + "sha256:0c4304c6d5b33fbd9b20fdc369f3a2fef1a8bbacfb6fd05b9708db01333e9e7b", + "sha256:2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3", + "sha256:3095218b66d359092b82f07c5422293c2f6559cf8d36b96b379cc4cdc26eeffa", + "sha256:30ed89ab8aff715caf9a9d827aa69cd02ad9f6b1896fd3fb4beb998466ed9a3c", + "sha256:4921ed406386246b84465950d15a4f63480c1458b0979c272364054b29d73084", + "sha256:563a1a366ee0fb3d96caab79b7ac7abd2c0a0577b157cc5a40301373a0501f89", + "sha256:5b3167f923f67924b356c1338eb9ba275b2ba8d64c7c2c47cf5b5db49d574994", + "sha256:6d84e50ec28e5d766c9911dce945412dc5b1ce760757c224c71e1a9759fa80c2", + "sha256:755050799b5d5aedb1396046f270abfc4befca9ccba3074f3dbbb3cb34f13aae", + "sha256:75d3a4ec5035db7478520ac547f7c176e9fd438269e795819b67223c486e5cbe", + "sha256:7a25a8e28281504f0e23e181d7a9ed699c72f061ca6bdfcd96c423c2a89e75fc", + "sha256:7cc6fd1eca65be588f001005446a47981cbe0b2909f5be8feafef3bf351a4e24", + "sha256:86b8a140e891bb23c8b9cb1804f1475eb13eea3dbbebef01fcbbf10fbafbee42", + "sha256:ad10acab2ef691eb29a1cc52c3be5ad1423700e993cc035066049fa72999d0dc", + "sha256:b2ff3a0a4f991d2da5376efd3365064a43909877e9fabfa801df970771161d29", + "sha256:b47e8f9ff6846756be3dc3fb242ca8e86752cd35a08e06d54ffc2e2a2aca70ea", + "sha256:da298241d87bcf468aa0f0705ba14572ad296f24c4fda5055d6988701d6fd8e1", + "sha256:db881478f1170c6dd524175ba1c83b99d3a6f992a35eca756de0ddc4690a1940", + "sha256:f0427755c68571df37dc58835e53a4307884a48dec76f3c01e33eb0d4a3a81d7", + "sha256:f8885cc48c8c7ad51f36c175e462840f163cb4687eeb6c6d7dfaf7197308e36b", + "sha256:f911b7f0083d445c8d24cfa5b42ad4996e33250400492080f5018a28c026db2b" + ], + "version": "==0.10.9" + }, + "networkx": { + "hashes": [ + "sha256:45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b" + ], + "version": "==2.2" + }, + "os-service-types": { + "hashes": [ + "sha256:0505c72205690910077fb72b88f2a1f07533c8d39f2fe75b29583481764965d6", + "sha256:31800299a82239363995b91f1ebf9106ac7758542a1e4ef6dc737a5932878c6c" + ], + "version": "==1.7.0" + }, + "oslo-utils": { + "hashes": [ + "sha256:10cc04d6b75e57dd6e6eccd3745bbce6002567a77f8ddc4103bcea53763bca41" + ], + "index": "pypi", + "version": "==3.41.0" + }, + "oslo.cache": { + "hashes": [ + "sha256:6888a549822cb9ddfa0402cf0a279d71256b31b781524fa732c9b5304f79070a", + "sha256:77dbb733b17af40b79505beaeb6550f2e9c8a8034200d7db3eeafedd5503e827" + ], + "version": "==1.31.1" + }, + "oslo.concurrency": { + "hashes": [ + "sha256:145771c1d9261628ae397e14faea9133ea269dfb2f53c5a5964183335fb4064b", + "sha256:9f0876d99e3d60192ca080923e37e4bda2742a9e648f99e9557ba2a9dd8e5995" + ], + "version": "==3.28.1" + }, + "oslo.config": { + "hashes": [ + "sha256:c3f63f6c06bcb4ab52004721cba4fd36456522c73fd1b3c8cae1e36af5049516", + "sha256:eb0c7b255f17bd27c279c659263b8d02a05ee607b8c4c9cba179df833db46229" + ], + "version": "==6.6.2" + }, + "oslo.context": { + "hashes": [ + "sha256:345cee82594a0237f89511c9db3ae759ef0553c278433c894509b63f7d6c3907", + "sha256:ac0878a47599cd18699e00836567a0626d749252f91cf20037f495e8eda437cc" + ], + "version": "==2.22.1" + }, + "oslo.db": { + "hashes": [ + "sha256:44e815f146ea1b8221e2892feab9dfd9a22ab674be39cedafd59af7518a228e7", + "sha256:97e4a49de771be021739fc406b0dc8e11e2bb61462b602077fdfc3dbcb91ffb2" + ], + "version": "==4.41.1" + }, + "oslo.i18n": { + "hashes": [ + "sha256:2669908357e1e49a754dc0c279512246341ae889176c568b89fd9233e65a6ae1", + "sha256:7ecec04b682209292cf4dcfa29015956d15466af82352d92bfc442c8454f1ba2" + ], + "version": "==3.23.1" + }, + "oslo.log": { + "hashes": [ + "sha256:2209490e6326c23e1310ca26e8956aedbc7b8d5eea537689b8342efd353efdbe", + "sha256:7bc1375596a09746beac1706f361b3ebb6bf05d447537cae63847cb4c2b4b774" + ], + "version": "==3.40.1" + }, + "oslo.messaging": { + "hashes": [ + "sha256:9ae91fe4147b96c84352ab6fc614a7e9556b96922777511214912406b932ad17", + "sha256:b18cbe8bfc6c09201a5e3e61648751c674e54ccd8ba67ccc7155b31df739ddbb" + ], + "version": "==9.1.1" + }, + "oslo.middleware": { + "hashes": [ + "sha256:4508c01dfb63b5e140939bf2e7e3293a5cf51d48cf7b5a85020a29d37d8a216b", + "sha256:a7ffa765e5b6b5ac8f653f6d91cecbd8a02c85c100c876a97b41eab0af9afe31" + ], + "version": "==3.36.0" + }, + "oslo.policy": { + "hashes": [ + "sha256:57f481085c12e97d042847e812c772057bd40040d45b9394043ce7d358efd524", + "sha256:c5ae09294a606ac684a9b8fb40483dd445a19d09701e3fd1b856946d3a1cfc43" + ], + "version": "==1.40.1" + }, + "oslo.serialization": { + "hashes": [ + "sha256:5ead69bbbb30d6c6b228ac14bcd5364c776162151ede04c1662bca7fc0879a3b", + "sha256:fd1febd9abe2042052846a39b7b8ad0f878cc5365d4484d241f0b0711601b8ee" + ], + "version": "==2.28.1" + }, + "oslo.service": { + "hashes": [ + "sha256:aca0d5209c184566115dc1300686e5e622f34e4e6e1c1641515f6b37d8f27f78", + "sha256:f4500c2a14c264e1eb1ae83db3022f80aef91ee49b5729673f099d7a0c94edd8" + ], + "version": "==1.40.0" + }, + "oslo.utils": { + "hashes": [ + "sha256:328cd172546fcc42c02d3617a1ea433b1f5f3d0593e88cafdf1a8420177789ac", + "sha256:b2192558a8a16e0368b65ab62ca1986507f0caab3ff595e1268de8212aafe77d" + ], + "version": "==3.40.2" + }, + "paste": { + "hashes": [ + "sha256:3f6645ae38dbb6f7ada7fa90ac347fe5e8e82fdcacf3c425db8694f1930bc0a4", + "sha256:e42eb7be79c94f0877e66cfa51c5fdc5c486d21228362eda1b6361123ec59dab" + ], + "version": "==3.0.1" + }, + "pastedeploy": { + "hashes": [ + "sha256:39973e73f391335fac8bc8a8a95f7d34a9f42e2775600ce2dc518d93b37ef943", + "sha256:d5858f89a255e6294e63ed46b73613c56e3b9a2d82a42f1df4d06c8421a9e3cb" + ], + "version": "==1.5.2" + }, + "pbr": { + "hashes": [ + "sha256:8fc938b1123902f5610b06756a31b1e6febf0d105ae393695b0c9d4244ed2910", + "sha256:f20ec0abbf132471b68963bb34d9c78e603a5cf9e24473f14358e66551d47475" + ], + "version": "==5.1.0" + }, + "ply": { + "hashes": [ + "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", + "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce" + ], + "version": "==3.11" + }, + "prettytable": { + "hashes": [ + "sha256:2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9", + "sha256:853c116513625c738dc3ce1aee148b5b5757a86727e67eff6502c7ca59d43c36", + "sha256:a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f" + ], + "version": "==0.7.2" + }, + "promenade": { + "editable": true, + "git": "https://opendev.org/airship/promenade.git", + "ref": "89f9842b2ec428709a05fd0a8d4cd1796043375d" + }, + "psycopg2": { + "hashes": [ + "sha256:0b9e48a1c1505699a64ac58815ca99104aacace8321e455072cee4f7fe7b2698", + "sha256:0f4c784e1b5a320efb434c66a50b8dd7e30a7dc047e8f45c0a8d2694bfe72781", + "sha256:0fdbaa32c9eb09ef09d425dc154628fca6fa69d2f7c1a33f889abb7e0efb3909", + "sha256:11fbf688d5c953c0a5ba625cc42dea9aeb2321942c7c5ed9341a68f865dc8cb1", + "sha256:19eaac4eb25ab078bd0f28304a0cb08702d120caadfe76bb1e6846ed1f68635e", + "sha256:3232ec1a3bf4dba97fbf9b03ce12e4b6c1d01ea3c85773903a67ced725728232", + "sha256:36f8f9c216fcca048006f6dd60e4d3e6f406afde26cfb99e063f137070139eaf", + "sha256:59c1a0e4f9abe970062ed35d0720935197800a7ef7a62b3a9e3a70588d9ca40b", + "sha256:6506c5ff88750948c28d41852c09c5d2a49f51f28c6d90cbf1b6808e18c64e88", + "sha256:6bc3e68ee16f571681b8c0b6d5c0a77bef3c589012352b3f0cf5520e674e9d01", + "sha256:6dbbd7aabbc861eec6b910522534894d9dbb507d5819bc982032c3ea2e974f51", + "sha256:6e737915de826650d1a5f7ff4ac6cf888a26f021a647390ca7bafdba0e85462b", + "sha256:6ed9b2cfe85abc720e8943c1808eeffd41daa73e18b7c1e1a228b0b91f768ccc", + "sha256:711ec617ba453fdfc66616db2520db3a6d9a891e3bf62ef9aba4c95bb4e61230", + "sha256:844dacdf7530c5c612718cf12bc001f59b2d9329d35b495f1ff25045161aa6af", + "sha256:86b52e146da13c896e50c5a3341a9448151f1092b1a4153e425d1e8b62fec508", + "sha256:985c06c2a0f227131733ae58d6a541a5bc8b665e7305494782bebdb74202b793", + "sha256:a86dfe45f4f9c55b1a2312ff20a59b30da8d39c0e8821d00018372a2a177098f", + "sha256:aa3cd07f7f7e3183b63d48300666f920828a9dbd7d7ec53d450df2c4953687a9", + "sha256:b1964ed645ef8317806d615d9ff006c0dadc09dfc54b99ae67f9ba7a1ec9d5d2", + "sha256:b2abbff9e4141484bb89b96eb8eae186d77bc6d5ffbec6b01783ee5c3c467351", + "sha256:cc33c3a90492e21713260095f02b12bee02b8d1f2c03a221d763ce04fa90e2e9", + "sha256:d7de3bf0986d777807611c36e809b77a13bf1888f5c8db0ebf24b47a52d10726", + "sha256:db5e3c52576cc5b93a959a03ccc3b02cb8f0af1fbbdc80645f7a215f0b864f3a", + "sha256:e168aa795ffbb11379c942cf95bf813c7db9aa55538eb61de8c6815e092416f5", + "sha256:e9ca911f8e2d3117e5241d5fa9aaa991cb22fb0792627eeada47425d706b5ec8", + "sha256:eccf962d41ca46e6326b97c8fe0a6687b58dfc1a5f6540ed071ff1474cea749e", + "sha256:efa19deae6b9e504a74347fe5e25c2cb9343766c489c2ae921b05f37338b18d1", + "sha256:f4b0460a21f784abe17b496f66e74157a6c36116fa86da8bf6aa028b9e8ad5fe", + "sha256:f93d508ca64d924d478fb11e272e09524698f0c581d9032e68958cfbdd41faef" + ], + "version": "==2.7.5" + }, + "ptable": { + "hashes": [ + "sha256:aa7fc151cb40f2dabcd2275ba6f7fd0ff8577a86be3365cd3fb297cbe09cc292" + ], + "version": "==0.9.2" + }, + "pycadf": { + "hashes": [ + "sha256:df6b5a4d5f876140f211e691287cb0d91036c0822e5013d03de6926f18ac5368", + "sha256:e47e27e102010d910c949a5cbb42114b6311d07d88a2a9959830b49f8a7b3465" + ], + "version": "==2.9.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:2ce83f2046f5ab85c652ceceddfbde7a64a909900989b4b43e92b10b743d0ce5", + "sha256:37f0420b14630b0eaaf452978f3a6ea4816d787c3e6dcbba6fb255030adae2e7" + ], + "version": "==2.0.0" + }, + "pycparser": { + "hashes": [ + "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" + ], + "version": "==2.19" + }, + "pyflakes": { + "hashes": [ + "sha256:2e4a1b636d8809d8f0a69f341acf15b2e401a3221ede11be439911d23ce2139e", + "sha256:e87bac26c62ea5b45067cc89e4a12f56e1483f1f2cda17e7c9b375b9fd2f40da" + ], + "version": "==1.2.3" + }, + "pyinotify": { + "hashes": [ + "sha256:9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4" + ], + "markers": "sys_platform != 'win32' and sys_platform != 'darwin' and sys_platform != 'sunos5'", + "version": "==0.9.6" + }, + "pyparsing": { + "hashes": [ + "sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80", + "sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4" + ], + "version": "==2.4.2" + }, + "pyperclip": { + "hashes": [ + "sha256:979325468ccf682104d5dcaf753f869868100631301d3e72f47babdea5700d1c" + ], + "version": "==1.7.0" + }, + "python-barbicanclient": { + "hashes": [ + "sha256:85e7ce9f29145e77fedbe241f98b8aeea283b8c4095974e2623c69f499f0105f", + "sha256:e2d77a56ad20f3c7dd32f2a581d60f55fad817dbb4b8ecdbd9fd1009d5dab68b" + ], + "version": "==4.7.0" + }, + "python-dateutil": { + "hashes": [ + "sha256:063df5763652e21de43de7d9e00ccf239f953a832941e37be541614732cdfc93", + "sha256:88f9287c0174266bb0d8cedd395cfba9c58e87e5ad86b2ce58859bc11be3cf02" + ], + "index": "pypi", + "version": "==2.7.5" + }, + "python-editor": { + "hashes": [ + "sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d", + "sha256:51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b", + "sha256:5f98b069316ea1c2ed3f67e7f5df6c0d8f10b689964a4a811ff64f0106819ec8" + ], + "version": "==1.0.4" + }, + "python-keystoneclient": { + "hashes": [ + "sha256:2825f3bf20f8b4f6b43bdf393462de3d4b116135b02bb4059960c7e9caf638d3", + "sha256:666ccbe40961f197812b63e008180daba079cba884b6852597c9a337a6b972e9" + ], + "version": "==3.18.0" + }, + "python-memcached": { + "hashes": [ + "sha256:4dac64916871bd3550263323fc2ce18e1e439080a2d5670c594cf3118d99b594", + "sha256:a2e28637be13ee0bf1a8b6843e7490f9456fd3f2a4cb60471733c7b5d5557e4f" + ], + "version": "==1.59" + }, + "python-mimeparse": { + "hashes": [ + "sha256:76e4b03d700a641fd7761d3cd4fdbbdcd787eade1ebfac43f877016328334f78", + "sha256:a295f03ff20341491bfe4717a39cd0a8cc9afad619ba44b77e86b0ab8a2b8282" + ], + "version": "==1.6.0" + }, + "pytz": { + "hashes": [ + "sha256:26c0b32e437e54a18161324a2fca3c4b9846b74a8dccddd843113109e1116b32", + "sha256:c894d57500a4cd2d5c71114aaab77dbab5eabd9022308ce5ac9bb93a60a6f0c7" + ], + "version": "==2019.2" + }, + "pyyaml": { + "hashes": [ + "sha256:1adecc22f88d38052fb787d959f003811ca858b799590a5eaa70e63dca50308c", + "sha256:436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95", + "sha256:460a5a4248763f6f37ea225d19d5c205677d8d525f6a83357ca622ed541830c2", + "sha256:5a22a9c84653debfbf198d02fe592c176ea548cccce47553f35f466e15cf2fd4", + "sha256:7a5d3f26b89d688db27822343dfa25c599627bc92093e788956372285c6298ad", + "sha256:9372b04a02080752d9e6f990179a4ab840227c6e2ce15b95e1278456664cf2ba", + "sha256:a5dcbebee834eaddf3fa7366316b880ff4062e4bcc9787b78c7fbb4a26ff2dd1", + "sha256:aee5bab92a176e7cd034e57f46e9df9a9862a71f8f37cad167c6fc74c65f5b4e", + "sha256:c51f642898c0bacd335fc119da60baae0824f2cde95b0330b56c0553439f0673", + "sha256:c68ea4d3ba1705da1e0d85da6684ac657912679a649e8868bd850d2c299cce13", + "sha256:e23d0cc5299223dcc37885dae624f382297717e459ea24053709675a976a3e19" + ], + "index": "pypi", + "version": "==5.1" + }, + "repoze.lru": { + "hashes": [ + "sha256:0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77", + "sha256:f77bf0e1096ea445beadd35f3479c5cff2aa1efe604a133e67150bc8630a62ea" + ], + "version": "==0.7" + }, + "requests": { + "hashes": [ + "sha256:99dcfdaaeb17caf6e526f32b6a7b780461512ab3f1d992187801694cba42770c", + "sha256:a84b8c9ab6239b578f22d1c21d51b696dcfe004032bb80ea832398d6909d7279" + ], + "version": "==2.20.0" + }, + "rfc3986": { + "hashes": [ + "sha256:0344d0bd428126ce554e7ca2b61787b6a28d2bbd19fc70ed2dd85efe31176405", + "sha256:df4eba676077cefb86450c8f60121b9ae04b94f65f85b69f3f731af0516b7b18" + ], + "version": "==1.3.2" + }, + "routes": { + "hashes": [ + "sha256:26ee43340fca5a32769ffe0c58edcb396ccce6bc1dfa689ddf844d50877355fd", + "sha256:d64b8ae22bef127d856afd9266a3e4cfc9e0dda0e120195e38268a95d20de135" + ], + "version": "==2.4.1" + }, + "shipyard-client": { + "editable": true, + "git": "https://opendev.org/airship/shipyard.git", + "ref": "1472a22dce698ea77f15b007906b263eef470f52", + "subdirectory": "src/bin/shipyard_client" + }, + "six": { + "hashes": [ + "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", + "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" + ], + "version": "==1.11.0" + }, + "smmap2": { + "hashes": [ + "sha256:0555a7bf4df71d1ef4218e4807bbf9b201f910174e6e08af2e138d4e517b4dde", + "sha256:29a9ffa0497e7f2be94ca0ed1ca1aa3cd4cf25a1f6b4f5f87f74b46ed91d609a" + ], + "version": "==2.0.5" + }, + "sqlalchemy": { + "hashes": [ + "sha256:217e7fc52199a05851eee9b6a0883190743c4fb9c8ac4313ccfceaffd852b0ff" + ], + "version": "==1.3.6" + }, + "sqlalchemy-migrate": { + "hashes": [ + "sha256:8cfada30bbcf79a83b3a2d1bcd637de7e1f43e390d54de33e4f3249fd9aacfae", + "sha256:c0ef4165e47a049b3e7ce77637a40df31db7648c08f5a2f3cd26a53ad0b95ab4" + ], + "version": "==0.12.0" + }, + "sqlparse": { + "hashes": [ + "sha256:40afe6b8d4b1117e7dff5504d7a8ce07d9a1b15aeeade8a2d10f130a834f8177", + "sha256:7c3dca29c022744e95b547e867cee89f4fce4373f3549ccd8797d8eb52cdb873" + ], + "version": "==0.3.0" + }, + "statsd": { + "hashes": [ + "sha256:c610fb80347fca0ef62666d241bce64184bd7cc1efe582f9690e045c25535eaa", + "sha256:e3e6db4c246f7c59003e51c9720a51a7f39a396541cb9b147ff4b14d15b5dd1f" + ], + "version": "==3.3.0" + }, + "stevedore": { + "hashes": [ + "sha256:b92bc7add1a53fb76c634a178978d113330aaf2006f9498d9e2414b31fbfc104", + "sha256:c58b7c231a9c4890cd3c2b5d2b23bd63fa807ff934d68579e3f6c3a1735e8a7c" + ], + "version": "==1.30.0" + }, + "tempita": { + "hashes": [ + "sha256:cacecf0baa674d356641f1d406b8bff1d756d739c46b869a54de515d08e6fc9c" + ], + "version": "==0.5.2" + }, + "testresources": { + "hashes": [ + "sha256:67a361c3a2412231963b91ab04192209aa91a1aa052f0ab87245dbea889d1282", + "sha256:ee9d1982154a1e212d4e4bac6b610800bfb558e4fb853572a827bc14a96e4417" + ], + "version": "==2.0.1" + }, + "testscenarios": { + "hashes": [ + "sha256:480263fa5d6e618125bdf092aab129a3aeed5996b1e668428f12cc56d6d01d28", + "sha256:c257cb6b90ea7e6f8fef3158121d430543412c9a87df30b5dde6ec8b9b57a2b6" + ], + "version": "==0.5.0" + }, + "testtools": { + "hashes": [ + "sha256:5827ec6cf8233e0f29f51025addd713ca010061204fdea77484a2934690a0559", + "sha256:a2be448869171b6e0f26d9544088b8b98439ec180ce272040236d570a40bcbed" + ], + "version": "==2.3.0" + }, + "traceback2": { + "hashes": [ + "sha256:05acc67a09980c2ecfedd3423f7ae0104839eccb55fc645773e1caa0951c3030", + "sha256:8253cebec4b19094d67cc5ed5af99bf1dba1285292226e98a31929f87a5d6b23" + ], + "version": "==1.4.0" + }, + "unittest2": { + "hashes": [ + "sha256:13f77d0875db6d9b435e1d4f41e74ad4cc2eb6e1d5c824996092b3430f088bb8", + "sha256:22882a0e418c284e1f718a822b3b022944d53d2d908e1690b319a9d3eb2c0579" + ], + "version": "==1.1.0" + }, + "urllib3": { + "hashes": [ + "sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4", + "sha256:a637e5fae88995b256e3409dc4d52c2e2e0ba32c42a6365fee8bbd2238de3cfb" + ], + "version": "==1.24.3" + }, + "uwsgi": { + "hashes": [ + "sha256:d2318235c74665a60021a4fc7770e9c2756f9fc07de7b8c22805efe85b5ab277" + ], + "version": "==2.0.17.1" + }, + "vine": { + "hashes": [ + "sha256:133ee6d7a9016f177ddeaf191c1f58421a1dcc6ee9a42c58b34bed40e1d2cd87", + "sha256:ea4947cc56d1fd6f2095c8d543ee25dad966f78692528e68b4fada11ba3f98af" + ], + "version": "==1.3.0" + }, + "wcwidth": { + "hashes": [ + "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", + "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + ], + "version": "==0.1.7" + }, + "webob": { + "hashes": [ + "sha256:05aaab7975e0ee8af2026325d656e5ce14a71f1883c52276181821d6d5bf7086", + "sha256:36db8203c67023d68c1b00208a7bf55e3b10de2aa317555740add29c619de12b" + ], + "version": "==1.8.5" + }, + "werkzeug": { + "hashes": [ + "sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c", + "sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b" + ], + "version": "==0.14.1" + }, + "wrapt": { + "hashes": [ + "sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1" + ], + "version": "==1.11.2" + }, + "yappi": { + "hashes": [ + "sha256:7f814131515d51db62b1a3468bcb84de30499124752806a5a6e11caf0b4344bf" + ], + "version": "==1.0" + } + }, + "develop": { + "apipkg": { + "hashes": [ + "sha256:37228cda29411948b422fae072f57e31d3396d2ee1c9783775980ee9c9990af6", + "sha256:58587dd4dc3daefad0487f6d9ae32b4542b185e1c36db6993290e7c41ca2b47c" + ], + "version": "==1.5" + }, + "atomicwrites": { + "hashes": [ + "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", + "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" + ], + "version": "==1.3.0" + }, + "attrs": { + "hashes": [ + "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", + "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" + ], + "version": "==19.1.0" + }, + "bandit": { + "hashes": [ + "sha256:336620e220cf2d3115877685e264477ff9d9abaeb0afe3dc7264f55fa17a3952", + "sha256:41e75315853507aa145d62a78a2a6c5e3240fe14ee7c601459d0df9418196065" + ], + "index": "pypi", + "version": "==1.6.2" + }, + "certifi": { + "hashes": [ + "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", + "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + ], + "version": "==2019.6.16" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "coverage": { + "hashes": [ + "sha256:08907593569fe59baca0bf152c43f3863201efb6113ecb38ce7e97ce339805a6", + "sha256:0be0f1ed45fc0c185cfd4ecc19a1d6532d72f86a2bac9de7e24541febad72650", + "sha256:141f08ed3c4b1847015e2cd62ec06d35e67a3ac185c26f7635f4406b90afa9c5", + "sha256:19e4df788a0581238e9390c85a7a09af39c7b539b29f25c89209e6c3e371270d", + "sha256:23cc09ed395b03424d1ae30dcc292615c1372bfba7141eb85e11e50efaa6b351", + "sha256:245388cda02af78276b479f299bbf3783ef0a6a6273037d7c60dc73b8d8d7755", + "sha256:331cb5115673a20fb131dadd22f5bcaf7677ef758741312bee4937d71a14b2ef", + "sha256:386e2e4090f0bc5df274e720105c342263423e77ee8826002dcffe0c9533dbca", + "sha256:3a794ce50daee01c74a494919d5ebdc23d58873747fa0e288318728533a3e1ca", + "sha256:60851187677b24c6085248f0a0b9b98d49cba7ecc7ec60ba6b9d2e5574ac1ee9", + "sha256:63a9a5fc43b58735f65ed63d2cf43508f462dc49857da70b8980ad78d41d52fc", + "sha256:6b62544bb68106e3f00b21c8930e83e584fdca005d4fffd29bb39fb3ffa03cb5", + "sha256:6ba744056423ef8d450cf627289166da65903885272055fb4b5e113137cfa14f", + "sha256:7494b0b0274c5072bddbfd5b4a6c6f18fbbe1ab1d22a41e99cd2d00c8f96ecfe", + "sha256:826f32b9547c8091679ff292a82aca9c7b9650f9fda3e2ca6bf2ac905b7ce888", + "sha256:93715dffbcd0678057f947f496484e906bf9509f5c1c38fc9ba3922893cda5f5", + "sha256:9a334d6c83dfeadae576b4d633a71620d40d1c379129d587faa42ee3e2a85cce", + "sha256:af7ed8a8aa6957aac47b4268631fa1df984643f07ef00acd374e456364b373f5", + "sha256:bf0a7aed7f5521c7ca67febd57db473af4762b9622254291fbcbb8cd0ba5e33e", + "sha256:bf1ef9eb901113a9805287e090452c05547578eaab1b62e4ad456fcc049a9b7e", + "sha256:c0afd27bc0e307a1ffc04ca5ec010a290e49e3afbe841c5cafc5c5a80ecd81c9", + "sha256:dd579709a87092c6dbee09d1b7cfa81831040705ffa12a1b248935274aee0437", + "sha256:df6712284b2e44a065097846488f66840445eb987eb81b3cc6e4149e7b6982e1", + "sha256:e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c", + "sha256:e2ede7c1d45e65e209d6093b762e98e8318ddeff95317d07a27a2140b80cfd24", + "sha256:e4ef9c164eb55123c62411f5936b5c2e521b12356037b6e1c2617cef45523d47", + "sha256:eca2b7343524e7ba246cab8ff00cab47a2d6d54ada3b02772e908a45675722e2", + "sha256:eee64c616adeff7db37cc37da4180a3a5b6177f5c46b187894e633f088fb5b28", + "sha256:ef824cad1f980d27f26166f86856efe11eff9912c4fed97d3804820d43fa550c", + "sha256:efc89291bd5a08855829a3c522df16d856455297cf35ae827a37edac45f466a7", + "sha256:fa964bae817babece5aa2e8c1af841bebb6d0b9add8e637548809d040443fee0", + "sha256:ff37757e068ae606659c28c3bd0d923f9d29a85de79bf25b2b34b148473b5025" + ], + "version": "==4.5.4" + }, + "ddt": { + "hashes": [ + "sha256:474546b4020ce8a2f9550ba8899c28aa2c284c7bbf175bddede98be949d1ca7c", + "sha256:d13e6af8f36238e89d00f4ebccf2bda4f6d1878be560a6600689e42077e164e3" + ], + "version": "==1.2.1" + }, + "docker": { + "hashes": [ + "sha256:acf51b5e3e0d056925c3b780067a6f753c915fffaa46c5f2d79eb0fc1cbe6a01", + "sha256:cc5b2e94af6a2b1e1ed9d7dcbdc77eff56c36081757baf9ada6e878ea0213164" + ], + "index": "pypi", + "version": "==4.0.2" + }, + "execnet": { + "hashes": [ + "sha256:0dd40ad3b960aae93bdad7fe1c3f049bbcc8fba47094655a4301f5b33e906816", + "sha256:3839f3c1e9270926e7b3d9b0a52a57be89c302a3826a2b19c8d6e6c3d2b506d2" + ], + "version": "==1.7.0" + }, + "flake8": { + "hashes": [ + "sha256:231cd86194aaec4bdfaa553ae1a1cd9b7b4558332fbc10136c044940d587a778", + "sha256:7ac3bbaac27174d95bc4734ed23a07de567ffbcf4fc7e316854b4f3015d4fd15" + ], + "version": "==2.6.2" + }, + "flake8-import-order": { + "hashes": [ + "sha256:90a80e46886259b9c396b578d75c749801a41ee969a235e163cfe1be7afd2543", + "sha256:a28dc39545ea4606c1ac3c24e9d05c849c6e5444a50fb7e9cdd430fc94de6e92" + ], + "index": "pypi", + "version": "==0.18.1" + }, + "gitdb": { + "hashes": [ + "sha256:a3ebbc27be035a2e874ed904df516e35f4a29a778a764385de09de9e0f139658" + ], + "version": "==0.6.4" + }, + "gitdb2": { + "hashes": [ + "sha256:83361131a1836661a155172932a13c08bda2db3674e4caa32368aa6eb02f38c2", + "sha256:e3a0141c5f2a3f635c7209d56c496ebe1ad35da82fe4d3ec4aaa36278d70648a" + ], + "version": "==2.0.5" + }, + "gitpython": { + "hashes": [ + "sha256:c15c55ff890cd3a6a8330059e80885410a328f645551b55a91d858bfb3eb2573", + "sha256:df752b6b6f06f11213e91c4925aea7eaf9e37e88fb71c8a7a1aa0a5c10852120" + ], + "index": "pypi", + "version": "==2.1.13" + }, + "hacking": { + "hashes": [ + "sha256:23a306f3a1070a4469a603886ba709780f02ae7e0f1fc7061e5c6fb203828fee", + "sha256:d9ccda97228a46cbe562843469f3a82eb072f9ac1acefb4368c49a239bb19936" + ], + "version": "==1.1.0" + }, + "idna": { + "hashes": [ + "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", + "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" + ], + "version": "==2.7" + }, + "importlib-metadata": { + "hashes": [ + "sha256:23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8", + "sha256:80d2de76188eabfbfcf27e6a37342c2827801e59c4cc14b0371c56fed43820e3" + ], + "version": "==0.19" + }, + "mccabe": { + "hashes": [ + "sha256:16293af41e7242031afd73896fef6458f4cad38201d21e28f344fff50ae1c25e", + "sha256:f9b58bf366c1506dcd6117b33e5c4874746f0de859c9c7cab8b516cb6be1d22e" + ], + "version": "==0.5.3" + }, + "more-itertools": { + "hashes": [ + "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832", + "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4" + ], + "version": "==7.2.0" + }, + "packaging": { + "hashes": [ + "sha256:a7ac867b97fdc07ee80a8058fe4435ccd274ecc3b0ed61d852d7d53055528cf9", + "sha256:c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe" + ], + "version": "==19.1" + }, + "pbr": { + "hashes": [ + "sha256:8fc938b1123902f5610b06756a31b1e6febf0d105ae393695b0c9d4244ed2910", + "sha256:f20ec0abbf132471b68963bb34d9c78e603a5cf9e24473f14358e66551d47475" + ], + "version": "==5.1.0" + }, + "pluggy": { + "hashes": [ + "sha256:0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc", + "sha256:b9817417e95936bf75d85d3f8767f7df6cdde751fc40aed3bb3074cbcb77757c" + ], + "version": "==0.12.0" + }, + "py": { + "hashes": [ + "sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa", + "sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" + ], + "version": "==1.8.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:2ce83f2046f5ab85c652ceceddfbde7a64a909900989b4b43e92b10b743d0ce5", + "sha256:37f0420b14630b0eaaf452978f3a6ea4816d787c3e6dcbba6fb255030adae2e7" + ], + "version": "==2.0.0" + }, + "pyflakes": { + "hashes": [ + "sha256:2e4a1b636d8809d8f0a69f341acf15b2e401a3221ede11be439911d23ce2139e", + "sha256:e87bac26c62ea5b45067cc89e4a12f56e1483f1f2cda17e7c9b375b9fd2f40da" + ], + "version": "==1.2.3" + }, + "pyparsing": { + "hashes": [ + "sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80", + "sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4" + ], + "version": "==2.4.2" + }, + "pytest": { + "hashes": [ + "sha256:6ef6d06de77ce2961156013e9dff62f1b2688aa04d0dc244299fe7d67e09370d", + "sha256:a736fed91c12681a7b34617c8fcefe39ea04599ca72c608751c31d89579a3f77" + ], + "index": "pypi", + "version": "==5.0.1" + }, + "pytest-cov": { + "hashes": [ + "sha256:2b097cde81a302e1047331b48cadacf23577e431b61e9c6f49a1170bbe3d3da6", + "sha256:e00ea4fdde970725482f1f35630d12f074e121a23801aabf2ae154ec6bdd343a" + ], + "index": "pypi", + "version": "==2.7.1" + }, + "pytest-forked": { + "hashes": [ + "sha256:5fe33fbd07d7b1302c95310803a5e5726a4ff7f19d5a542b7ce57c76fed8135f", + "sha256:d352aaced2ebd54d42a65825722cb433004b4446ab5d2044851d9cc7a00c9e38" + ], + "version": "==1.0.2" + }, + "pytest-xdist": { + "hashes": [ + "sha256:3489d91516d7847db5eaecff7a2e623dba68984835dbe6cedb05ae126c4fb17f", + "sha256:501795cb99e567746f30fe78850533d4cd500c93794128e6ab9988e92a17b1f8" + ], + "index": "pypi", + "version": "==1.29.0" + }, + "pyyaml": { + "hashes": [ + "sha256:1adecc22f88d38052fb787d959f003811ca858b799590a5eaa70e63dca50308c", + "sha256:436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95", + "sha256:460a5a4248763f6f37ea225d19d5c205677d8d525f6a83357ca622ed541830c2", + "sha256:5a22a9c84653debfbf198d02fe592c176ea548cccce47553f35f466e15cf2fd4", + "sha256:7a5d3f26b89d688db27822343dfa25c599627bc92093e788956372285c6298ad", + "sha256:9372b04a02080752d9e6f990179a4ab840227c6e2ce15b95e1278456664cf2ba", + "sha256:a5dcbebee834eaddf3fa7366316b880ff4062e4bcc9787b78c7fbb4a26ff2dd1", + "sha256:aee5bab92a176e7cd034e57f46e9df9a9862a71f8f37cad167c6fc74c65f5b4e", + "sha256:c51f642898c0bacd335fc119da60baae0824f2cde95b0330b56c0553439f0673", + "sha256:c68ea4d3ba1705da1e0d85da6684ac657912679a649e8868bd850d2c299cce13", + "sha256:e23d0cc5299223dcc37885dae624f382297717e459ea24053709675a976a3e19" + ], + "index": "pypi", + "version": "==5.1" + }, + "requests": { + "hashes": [ + "sha256:99dcfdaaeb17caf6e526f32b6a7b780461512ab3f1d992187801694cba42770c", + "sha256:a84b8c9ab6239b578f22d1c21d51b696dcfe004032bb80ea832398d6909d7279" + ], + "version": "==2.20.0" + }, + "six": { + "hashes": [ + "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", + "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" + ], + "version": "==1.11.0" + }, + "smmap": { + "hashes": [ + "sha256:0e2b62b497bd5f0afebc002eda4d90df9d209c30ef257e8673c90a6b5c119d62" + ], + "version": "==0.9.0" + }, + "smmap2": { + "hashes": [ + "sha256:0555a7bf4df71d1ef4218e4807bbf9b201f910174e6e08af2e138d4e517b4dde", + "sha256:29a9ffa0497e7f2be94ca0ed1ca1aa3cd4cf25a1f6b4f5f87f74b46ed91d609a" + ], + "version": "==2.0.5" + }, + "stevedore": { + "hashes": [ + "sha256:b92bc7add1a53fb76c634a178978d113330aaf2006f9498d9e2414b31fbfc104", + "sha256:c58b7c231a9c4890cd3c2b5d2b23bd63fa807ff934d68579e3f6c3a1735e8a7c" + ], + "version": "==1.30.0" + }, + "testfixtures": { + "hashes": [ + "sha256:665a298976c8d77f311b65c46f16b7cda7229a47dff5ad7c822e5b3371a439e2", + "sha256:9d230c5c80746f9f86a16a1f751a5cf5d8e317d4cc48243a19fb180d22303bce" + ], + "index": "pypi", + "version": "==6.10.0" + }, + "urllib3": { + "hashes": [ + "sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4", + "sha256:a637e5fae88995b256e3409dc4d52c2e2e0ba32c42a6365fee8bbd2238de3cfb" + ], + "version": "==1.24.3" + }, + "wcwidth": { + "hashes": [ + "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", + "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + ], + "version": "==0.1.7" + }, + "websocket-client": { + "hashes": [ + "sha256:1151d5fb3a62dc129164292e1227655e4bbc5dd5340a5165dfae61128ec50aa9", + "sha256:1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a" + ], + "version": "==0.56.0" + }, + "yapf": { + "hashes": [ + "sha256:02ace10a00fa2e36c7ebd1df2ead91dbfbd7989686dc4ccbdc549e95d19f5780", + "sha256:6f94b6a176a7c114cfa6bad86d40f259bbe0f10cf2fa7f2f4b3596fc5802a41b" + ], + "index": "pypi", + "version": "==0.28.0" + }, + "zipp": { + "hashes": [ + "sha256:4970c3758f4e89a7857a973b1e2a5d75bcdc47794442f2e2dd4fe8e0466e809a", + "sha256:8a5712cfd3bb4248015eb3b0b3c54a5f6ee3f2425963ef2a0125b8bc40aafaec" + ], + "version": "==0.5.2" + } + } +} diff --git a/requirements.txt b/requirements.txt index ae6b433b..01df81da 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,16 +1,118 @@ -gitpython==2.1.11 +-i https://pypi.org/simple +-e git+https://opendev.org/airship/deckhand.git@a4850f8c4fc02dd1971282c6d9e4beb9cd5be320#egg=deckhand +-e git+https://opendev.org/airship/promenade.git@89f9842b2ec428709a05fd0a8d4cd1796043375d#egg=promenade +-e git+https://opendev.org/airship/shipyard.git@1472a22dce698ea77f15b007906b263eef470f52#egg=shipyard-client&subdirectory=src/bin/shipyard_client +alembic==1.0.1 +amqp==2.5.0 +argparse==1.4.0 +arrow==0.12.1 +asn1crypto==0.24.0 +attrs==19.1.0 +babel==2.7.0 +beaker==1.10.0 +cachetools==3.1.1 +certifi==2019.6.16 +cffi==1.12.3 +chardet==3.0.4 +click-default-group==1.2 click==6.7 -jsonschema==2.6.0 -pyyaml==5.1 +cliff==2.15.0 +cmd2==0.9.16 ; python_version >= '3.0' +colorama==0.4.1 cryptography==2.3.1 -python-dateutil==2.7.3 -docker==3.7.2 +debtcollector==1.21.0 +decorator==4.4.0 +deepdiff==3.3.0 +dnspython==1.16.0 +dogpile.cache==0.7.1 +eventlet==0.25.0 +extras==1.0.0 +falcon==1.4.1 +fasteners==0.15 +fixtures==3.0.0 +flake8==2.6.2 +futurist==1.8.1 +gitdb2==2.0.5 +gitpython==2.1.13 +greenlet==0.4.15 +hacking==1.1.0 +idna==2.7 +iso8601==0.1.12 +jinja2==2.10.1 +jsonpath-ng==1.4.3 +jsonpickle==1.2 +jsonschema==2.6.0 +keystoneauth1==3.11.1 +keystonemiddleware==5.3.0 +kombu==4.6.3 +linecache2==1.0.0 +mako==1.1.0 +markupsafe==1.1.1 +mccabe==0.5.3 +monotonic==1.5 +msgpack==0.6.1 +netaddr==0.7.19 +netifaces==0.10.9 +networkx==2.2 +os-service-types==1.7.0 +oslo-utils==3.41.0 +oslo.cache==1.31.1 +oslo.concurrency==3.28.1 +oslo.config==6.6.2 +oslo.context==2.22.1 +oslo.db==4.41.1 +oslo.i18n==3.23.1 +oslo.log==3.40.1 +oslo.messaging==9.1.1 +oslo.middleware==3.36.0 +oslo.policy==1.40.1 +oslo.serialization==2.28.1 +oslo.service==1.40.0 +oslo.utils==3.40.2 +paste==3.0.1 +pastedeploy==1.5.2 +pbr==5.1.0 +ply==3.11 +prettytable==0.7.2 +psycopg2==2.7.5 +ptable==0.9.2 +pycadf==2.9.0 +pycodestyle==2.0.0 +pycparser==2.19 +pyflakes==1.2.3 +pyinotify==0.9.6 ; sys_platform != 'win32' and sys_platform != 'darwin' and sys_platform != 'sunos5' +pyparsing==2.4.2 +pyperclip==1.7.0 +python-barbicanclient==4.7.0 +python-dateutil==2.7.5 +python-editor==1.0.4 +python-keystoneclient==3.18.0 +python-memcached==1.59 +python-mimeparse==1.6.0 +pytz==2019.2 +pyyaml==5.1 +repoze.lru==0.7 requests==2.20.0 +rfc3986==1.3.2 +routes==2.4.1 +six==1.11.0 +smmap2==2.0.5 +sqlalchemy-migrate==0.12.0 +sqlalchemy==1.3.6 +sqlparse==0.3.0 +statsd==3.3.0 +stevedore==1.30.0 +tempita==0.5.2 +testresources==2.0.1 +testscenarios==0.5.0 +testtools==2.3.0 +traceback2==1.4.0 +unittest2==1.1.0 urllib3==1.24.3 -chardet==3.0.4 -oslo.utils==3.41.0 - -# External dependencies -git+https://opendev.org/airship/deckhand.git@a4850f8c4fc02dd1971282c6d9e4beb9cd5be320 -git+https://opendev.org/airship/shipyard.git@1472a22dce698ea77f15b007906b263eef470f52#egg=shipyard_client&subdirectory=src/bin/shipyard_client -git+https://opendev.org/airship/promenade.git@89f9842b2ec428709a05fd0a8d4cd1796043375d +uwsgi==2.0.17.1 +vine==1.3.0 +wcwidth==0.1.7 +webob==1.8.5 +werkzeug==0.14.1 +wrapt==1.11.2 +yappi==1.0 diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 100644 index 9b92aea0..00000000 --- a/test-requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -# Testing -pytest>=5.0.1 -pytest-cov>=2.5.1 -testfixtures>=6.8.2 -pytest-xdist>=1.23.2 - -# Formatting -yapf>=0.27.0 - -# Linting -hacking>=1.1.0 -flake8-import-order>=0.18.1 - -# Security -bandit>=1.6.0 -safety>=1.8.5 diff --git a/tox.ini b/tox.ini index 2afd45ec..3059206b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = py36,py37,pep8,docs,cover -minversion = 2.3.1 +minversion = 3.6 skipsdist = True [testenv] @@ -9,14 +9,16 @@ setenv = VIRTUAL_ENV={envdir} LANGUAGE=en_US LC_ALL=en_US.utf-8 + PIPENV_VERBOSITY=-1 + PIPENV_IGNORE_PIPFILE=1 deps = - -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt + pipenv passenv = http_proxy https_proxy HTTP_PROXY HTTPS_PROXY no_proxy NO_PROXY PBR_VERSION whitelist_externals = bash find commands = + pipenv install --dev find . -type f -name "*.pyc" -delete bash -c "{toxinidir}/tools/install-cfssl.sh" {toxinidir}/tools/gate/run-unit-tests.sh '{posargs}' @@ -24,15 +26,18 @@ commands = [testenv:fmt] basepython = python3 deps = - -r{toxinidir}/test-requirements.txt + pipenv commands = + pipenv install --dev yapf -ir {toxinidir}/pegleg {toxinidir}/tests [testenv:pep8] basepython = python3 deps = - -r{toxinidir}/test-requirements.txt + pipenv + safety commands = + pipenv install --dev bash -c "{toxinidir}/tools/gate/whitespace-linter.sh" bandit -r pegleg -n 5 flake8 {toxinidir}/pegleg @@ -43,9 +48,10 @@ whitelist_externals = [testenv:docs] basepython = python3 deps = - -r{toxinidir}/requirements.txt + pipenv -r{toxinidir}/doc/requirements.txt commands = + pipenv install --dev bash -c "{toxinidir}/tools/gate/build-docs.sh" whitelist_externals = bash @@ -57,18 +63,18 @@ commands = bandit -r pegleg -n 5 [testenv:safety] basepython = python3 deps = + pipenv safety commands = - safety check -r {toxinidir}/requirements.txt --full-report - safety check -r {toxinidir}/test-requirements.txt --full-report + pipenv check safety check -r {toxinidir}/doc/requirements.txt --full-report [testenv:cover] basepython = python3 deps = - -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt + pipenv commands = + pipenv install --dev {toxinidir}/tools/install-cfssl.sh bash -c 'PATH=$PATH:~/.local/bin; pytest --cov=pegleg --cov-report \ html:cover --cov-report xml:cover/coverage.xml --cov-report term \ @@ -76,6 +82,15 @@ commands = whitelist_externals = bash +[testenv:update-requirements] +deps = + pipenv +commands = + pipenv lock --clear + bash -c "pipenv lock -r > {toxinidir}/requirements.txt" +whitelist_externals = + bash + [testenv:releasenotes] basepython = python3 deps = -r{toxinidir}/doc/requirements.txt