Merge "Add package support to source-repositories"

This commit is contained in:
Jenkins 2014-01-14 12:42:29 +00:00 committed by Gerrit Code Review
commit d9303ac9af
2 changed files with 15 additions and 2 deletions

View File

@ -1,4 +1,4 @@
With this element other elements can register source code repositories by
With this element other elements can register their installation source by
placing their details in the file source-repository-\*. An example
of an element "custom-element" that wants to retrieve the ironic source
from git and pbr from a tarball would be
@ -42,6 +42,9 @@ Tarballs will be extracted to \<destination\>. Tarballs should contain a
single topleval directory, regardless of the name of this top level directory
it will be renamed to \<destination\>
The package type indicates the element should install from packages onto the
root filesystem of the image build during the install.d phase.
If multiple elements register a source location with the same <destination>
then source-repositories will exit with an error. Care should therefore be taken
to only use elements together that download source to different locations.
@ -49,3 +52,7 @@ to only use elements together that download source to different locations.
The repository paths built into the image are stored in
etc/dib-source-repositories, one repository per line. This permits later review
of the repositories (by users or by other elements).
The repository names and types are written to an environment.d hook script at
01-source-repositories-environment. This allows later hook scripts during the
install.d phase to know which install type to use for the element.

View File

@ -10,7 +10,7 @@ function get_repos_for_element(){
local REPO_SOURCES=$1
local CACHE_URL=$TMP_HOOKS_PATH/bin/cache-url
local REGEX="^([^ ]+) (git|tar|file) (/[^ ]+) ([^ ]+) ?([^ ]*)$"
local REGEX="^([^ ]+) (git|tar|file|package) ?(/[^ ]+)? ?([^ ]+)? ?([^ ]*)$"
while read line ; do
@ -100,6 +100,9 @@ function get_repos_for_element(){
sudo curl $REPOLOCATION -o $REPO_DEST
fi
;;
package)
echo "$REPONAME set to package source type"
;;
*)
echo "Unsupported repository type: $REPOTYPE"
return 1
@ -108,6 +111,9 @@ function get_repos_for_element(){
# Capture the in-instance repository path for later review / other
# elements (like a pypi dependency cache).
echo "$REPOPATH" | sudo dd of=$TMP_MOUNT_PATH/etc/dib-source-repositories oflag=append conv=notrunc
# Save the $REPOTYPE used so that it can be used later by install.d
mkdir -p $TMP_HOOKS_PATH/environment.d
echo "export DIB_REPOTYPE_${REPONAME//-/_}=$REPOTYPE" >> $TMP_HOOKS_PATH/environment.d/01-source-repositories-environment
else
echo "Couldn't parse '$line' as a source repository"
return 1