Bug 1842: LTS Support

Updates base to Ubuntu 20.04
Updates python to 3.8
Updates pip dependencies to more recent versions
Adds apt cache to stage 2 dockerfile

Fixes bug 1842

Change-Id: I1f64fa5364d909e6526d38395d4d2c1cc25f6f7d
Signed-off-by: beierlm <mark.beierl@canonical.com>
diff --git a/requirements.txt b/requirements.txt
index fdc1b13..c7449b2 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,265 +1,3 @@
-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
-python-cinderclient==7.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.
 #
@@ -276,3 +14,274 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #######################################################################################
+aiokafka==0.7.2
+    # via -r requirements.in
+appdirs==1.4.4
+    # via openstacksdk
+attrs==21.4.0
+    # via cmd2
+autopage==0.4.0
+    # via cliff
+certifi==2021.10.8
+    # via requests
+cffi==1.15.0
+    # via cryptography
+charset-normalizer==2.0.10
+    # via requests
+cliff==3.10.0
+    # via
+    #   gnocchiclient
+    #   osc-lib
+    #   python-neutronclient
+cmd2==2.3.3
+    # via cliff
+cryptography==36.0.1
+    # via openstacksdk
+debtcollector==2.3.0
+    # via
+    #   gnocchiclient
+    #   oslo.config
+    #   oslo.context
+    #   oslo.log
+    #   oslo.utils
+    #   python-keystoneclient
+    #   python-neutronclient
+decorator==5.1.1
+    # via
+    #   dogpile.cache
+    #   openstacksdk
+dogpile.cache==1.1.4
+    # via openstacksdk
+futurist==2.4.0
+    # via gnocchiclient
+gnocchiclient==7.0.7
+    # via -r requirements.in
+humanfriendly==10.0
+    # via
+    #   -r requirements.in
+    #   pyvcloud
+idna==3.3
+    # via requests
+iso8601==1.0.2
+    # 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.2
+    # via jsonpatch
+kafka-python==2.0.2
+    # via aiokafka
+keystoneauth1==4.4.0
+    # via
+    #   gnocchiclient
+    #   openstacksdk
+    #   osc-lib
+    #   python-ceilometerclient
+    #   python-cinderclient
+    #   python-keystoneclient
+    #   python-neutronclient
+    #   python-novaclient
+lxml==4.7.1
+    # via
+    #   -r requirements.in
+    #   pyvcloud
+monotonic==1.6
+    # via gnocchiclient
+msgpack==1.0.3
+    # via oslo.serialization
+munch==2.5.0
+    # via openstacksdk
+netaddr==0.8.0
+    # via
+    #   oslo.config
+    #   oslo.utils
+    #   python-neutronclient
+netifaces==0.11.0
+    # via
+    #   openstacksdk
+    #   oslo.utils
+openstacksdk==0.61.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.4.2
+    # via python-neutronclient
+oslo.config==8.7.1
+    # via
+    #   oslo.log
+    #   python-keystoneclient
+oslo.context==3.4.0
+    # via oslo.log
+oslo.i18n==5.1.0
+    # via
+    #   osc-lib
+    #   oslo.config
+    #   oslo.log
+    #   oslo.utils
+    #   python-ceilometerclient
+    #   python-cinderclient
+    #   python-keystoneclient
+    #   python-neutronclient
+    #   python-novaclient
+oslo.log==4.6.1
+    # via python-neutronclient
+oslo.serialization==4.2.0
+    # via
+    #   oslo.log
+    #   python-ceilometerclient
+    #   python-keystoneclient
+    #   python-neutronclient
+    #   python-novaclient
+oslo.utils==4.12.0
+    # via
+    #   osc-lib
+    #   oslo.log
+    #   oslo.serialization
+    #   python-ceilometerclient
+    #   python-cinderclient
+    #   python-keystoneclient
+    #   python-neutronclient
+    #   python-novaclient
+packaging==21.3
+    # via
+    #   oslo.utils
+    #   pyvcloud
+pbr==5.8.0
+    # 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-cinderclient
+    #   python-keystoneclient
+    #   python-neutronclient
+    #   python-novaclient
+    #   stevedore
+prettytable==0.7.2
+    # via
+    #   cliff
+    #   python-ceilometerclient
+    #   python-cinderclient
+    #   python-novaclient
+prometheus-client==0.12.0
+    # via -r requirements.in
+pycparser==2.21
+    # via cffi
+pygments==2.11.2
+    # via pyvcloud
+pyinotify==0.9.6
+    # via oslo.log
+pyparsing==3.0.6
+    # via
+    #   cliff
+    #   oslo.utils
+    #   packaging
+pyperclip==1.8.2
+    # via cmd2
+python-ceilometerclient==2.9.0
+    # via -r requirements.in
+python-cinderclient==8.2.0
+    # via -r requirements.in
+python-dateutil==2.8.2
+    # via
+    #   gnocchiclient
+    #   oslo.log
+    #   pyvcloud
+python-keystoneclient==4.4.0
+    # via
+    #   -r requirements.in
+    #   python-neutronclient
+python-neutronclient==7.7.0
+    # via -r requirements.in
+python-novaclient==17.6.0
+    # via -r requirements.in
+pytz==2021.3
+    # via
+    #   oslo.serialization
+    #   oslo.utils
+pyvcloud==23.0.3
+    # via -r requirements.in
+pyyaml==5.4.1
+    # via
+    #   -r requirements.in
+    #   cliff
+    #   openstacksdk
+    #   oslo.config
+    #   pyvcloud
+requests==2.27.1
+    # via
+    #   -r requirements.in
+    #   keystoneauth1
+    #   oslo.config
+    #   python-ceilometerclient
+    #   python-cinderclient
+    #   python-keystoneclient
+    #   python-neutronclient
+    #   pyvcloud
+requestsexceptions==1.4.0
+    # via openstacksdk
+rfc3986==1.5.0
+    # via oslo.config
+simplejson==3.17.6
+    # via
+    #   osc-lib
+    #   python-cinderclient
+    #   python-neutronclient
+six==1.16.0
+    # via
+    #   -r requirements.in
+    #   debtcollector
+    #   futurist
+    #   gnocchiclient
+    #   keystoneauth1
+    #   munch
+    #   python-ceilometerclient
+    #   python-dateutil
+    #   python-keystoneclient
+stevedore==3.5.0
+    # via
+    #   cliff
+    #   dogpile.cache
+    #   keystoneauth1
+    #   osc-lib
+    #   oslo.config
+    #   python-ceilometerclient
+    #   python-cinderclient
+    #   python-keystoneclient
+    #   python-novaclient
+ujson==5.1.0
+    # via gnocchiclient
+unittest-xml-reporting==3.0.4
+    # via pyvcloud
+urllib3==1.26.8
+    # via requests
+vcd-api-schemas-type==10.3.0.dev72
+    # via pyvcloud
+wcwidth==0.2.5
+    # via cmd2
+wrapt==1.13.3
+    # via debtcollector