For whatever reason, the source-repositories caching element is
running in the very early extra-data phase of disk-image-builder.
cache-devstack is instructing source-repositories to put the cached
urls into /home/jenkins/cache/files (55-cache-devstack-repos makes up
the list of images to download from devstack; the other two are just
pre-configured URLS).
This causes a problem when trying to add the jenkins user later in
jenkins-slave/install.d/20-jenkins-slave. Since source repositories
has already created /home/jenkins, useradd won't do it again and does
not copy in any of the skeleton files.
This moves the extra-data phase caching into /opt/cache, which is
probably a more logical place for it anyway. To maintain the status
quo, after we create the jenkins user, symlink ~jenkins/cache/files to
this new location.
This was probably going wrong with puppet too. I'm guessing it just
ignored the existing homedir when creating the user. I have tested
this by building trusty and stopping the build before and after the
useradd calls in 20-jenkins-slave. "/home" was empty, the useradd
creates the user, group & directory, the symlink is made correctly and
/opt/cache/files appears populated as usual.
Change-Id: Ibca6867f29b257a5110cb5522a5cca3a97fa9377
We cache pip in cache_devstack but not in dib element cache-devstack
Fetching get-pip.py across the internet breaks surprisingly often in hp
cloud, so precache this.
Change-Id: I86d8e54b5a3129bedf7e472d4463009c139f0656
Related-Bug: #1413034