aiokafka==0.7.0
    # via -r requirements.in
appdirs==1.4.4
    # via openstacksdk
attrs==20.3.0
    # via cmd2
certifi==2020.12.5
    # via requests
cffi==1.14.5
    # via cryptography
chardet==4.0.0
    # via requests
cliff==3.7.0
    # via
    #   gnocchiclient
    #   osc-lib
    #   python-neutronclient
cmd2==1.5.0
    # via cliff
colorama==0.4.4
    # via cmd2
cryptography==3.4.7
    # via openstacksdk
debtcollector==2.2.0
    # via
    #   gnocchiclient
    #   oslo.config
    #   oslo.context
    #   oslo.log
    #   oslo.utils
    #   python-keystoneclient
    #   python-neutronclient
decorator==4.4.2
    # via
    #   dogpile.cache
    #   openstacksdk
dogpile.cache==1.1.2
    # via openstacksdk
futurist==2.3.0
    # via gnocchiclient
gnocchiclient==7.0.7
    # via -r requirements.in
humanfriendly==9.1
    # via
    #   -r requirements.in
    #   pyvcloud
idna==2.10
    # via requests
iso8601==0.1.14
    # via
    #   gnocchiclient
    #   keystoneauth1
    #   openstacksdk
    #   oslo.utils
    #   python-ceilometerclient
    #   python-neutronclient
    #   python-novaclient
jmespath==0.10.0
    # via openstacksdk
jsonpatch==1.32
    # via openstacksdk
jsonpointer==2.1
    # via jsonpatch
kafka-python==2.0.2
    # via aiokafka
keystoneauth1==4.3.1
    # via
    #   gnocchiclient
    #   openstacksdk
    #   osc-lib
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
lxml==4.6.3
    # via
    #   -r requirements.in
    #   pyvcloud
monotonic==1.5
    # via gnocchiclient
msgpack==1.0.2
    # via oslo.serialization
munch==2.5.0
    # via openstacksdk
netaddr==0.8.0
    # via
    #   oslo.config
    #   oslo.utils
    #   python-neutronclient
netifaces==0.10.9
    # via
    #   openstacksdk
    #   oslo.utils
openstacksdk==0.55.0
    # via
    #   os-client-config
    #   osc-lib
os-client-config==2.1.0
    # via python-neutronclient
os-service-types==1.7.0
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==2.3.1
    # via python-neutronclient
oslo.config==8.5.0
    # via
    #   oslo.log
    #   python-keystoneclient
oslo.context==3.2.0
    # via oslo.log
oslo.i18n==5.0.1
    # via
    #   osc-lib
    #   oslo.config
    #   oslo.log
    #   oslo.utils
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo.log==4.4.0
    # via python-neutronclient
oslo.serialization==4.1.0
    # via
    #   oslo.log
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo.utils==4.8.0
    # via
    #   osc-lib
    #   oslo.log
    #   oslo.serialization
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
packaging==20.9
    # via oslo.utils
pbr==5.5.1
    # via
    #   cliff
    #   debtcollector
    #   futurist
    #   gnocchiclient
    #   keystoneauth1
    #   openstacksdk
    #   os-service-types
    #   osc-lib
    #   oslo.context
    #   oslo.i18n
    #   oslo.log
    #   oslo.serialization
    #   oslo.utils
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   stevedore
prettytable==0.7.2
    # via
    #   cliff
    #   python-ceilometerclient
    #   python-novaclient
prometheus-client==0.9.0
    # via -r requirements.in
pycparser==2.20
    # via cffi
pygments==2.8.1
    # via pyvcloud
pyinotify==0.9.6
    # via oslo.log
pyparsing==2.4.7
    # via
    #   cliff
    #   oslo.utils
    #   packaging
pyperclip==1.8.2
    # via cmd2
python-ceilometerclient==2.9.0
    # via -r requirements.in
python-dateutil==2.8.1
    # via
    #   gnocchiclient
    #   oslo.log
    #   pyvcloud
python-keystoneclient==4.2.0
    # via
    #   -r requirements.in
    #   python-neutronclient
python-neutronclient==7.3.0
    # via -r requirements.in
python-novaclient==17.4.0
    # via -r requirements.in
pytz==2021.1
    # via
    #   oslo.serialization
    #   oslo.utils
pyvcloud==23.0.0
    # via -r requirements.in
pyyaml==5.4.1
    # via
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo.config
    #   pyvcloud
requests==2.25.1
    # via
    #   -r requirements.in
    #   keystoneauth1
    #   oslo.config
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   pyvcloud
requestsexceptions==1.4.0
    # via openstacksdk
rfc3986==1.4.0
    # via oslo.config
simplejson==3.17.2
    # via
    #   osc-lib
    #   python-neutronclient
six==1.15.0
    # via
    #   -r requirements.in
    #   debtcollector
    #   futurist
    #   gnocchiclient
    #   keystoneauth1
    #   munch
    #   oslo.i18n
    #   python-ceilometerclient
    #   python-dateutil
    #   python-keystoneclient
stevedore==3.3.0
    # via
    #   cliff
    #   dogpile.cache
    #   keystoneauth1
    #   osc-lib
    #   oslo.config
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-novaclient
ujson==4.0.2
    # via gnocchiclient
unittest-xml-reporting==3.0.4
    # via pyvcloud
urllib3==1.26.4
    # via requests
vcd-api-schemas-type==9.1.2.dev10
    # via pyvcloud
wcwidth==0.2.5
    # via cmd2
wrapt==1.12.1
    # via debtcollector
#######################################################################################
# Copyright ETSI Contributors and Others.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################################
