bf10b55c9e
The git clones of required roles contained in ansible-role-requirements are currently single-threaded and can take a significant time when running scripts/bootstrap-ansible.sh. A new module, git_requirements has been implemented in order to multithreaded this, which takes input as provided in clone_roles in get-ansible-requirements.yml. The result of this implementation is a sizeable speed increase (~factor of five across the full bootstrap_ansible script) for the git clone repos task when tested on a two core VM. The new module requires all repo information ahead of time in order to distribute the clones between threads. This is unlike the previous implementation, which performed the clones in sequence and generated the appropriate data (destination URL, default refspec etc) per loop iteration. This information is now generated within the ansible module, with defaults supplied at the task level. The retry and delay parameters used for the loop with the built in ansible git module have been re-implemented in the new module to allow force cloning, alongside retries and time delays for failed clones. Change-Id: I3cdb248204c5e03ef98803d366e3a19ed7f8bdd8
31 lines
914 B
Plaintext
31 lines
914 B
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.
|
|
pyasn1!=0.2.3,>=0.1.8 # BSD
|
|
pyOpenSSL>=17.1.0 # Apache-2.0
|
|
netaddr>=0.7.18 # BSD
|
|
PrettyTable<0.8,>=0.7.1 # BSD
|
|
python-memcached>=1.56 # PSF
|
|
PyYAML>=3.12 # MIT
|
|
|
|
# We use this for our own keystone module.
|
|
# TODO(odyssey4me): Remove this once we no
|
|
# longer use our own keystone module.
|
|
python-keystoneclient>=3.8.0 # Apache-2.0
|
|
|
|
# We use this for the octavia role to be able
|
|
# to upload a tagged image.
|
|
# Remove this once Ansible can do this with
|
|
# modules instead.
|
|
python-openstackclient>=3.14.2
|
|
|
|
# We use this for the Ansible openstack
|
|
# modules.
|
|
openstacksdk>=0.14.0 # Apache-2.0
|
|
|
|
# We use this for the json_query filter
|
|
jmespath>=0.9.3 # MIT
|
|
|
|
# We use this for the parallel git clone
|
|
GitPython>=1.0.1
|