User-supplied language packs should reference a glance-id of a container (or VM) image to be used by the solum-worker in which to execute the build script. The Solum API service should look for the absence of a valid glance-id when language pack resources are created or updated, and raise an error if the argument is invalid, or inaccessible by the user, or if there is no valid git-url attribute specified.
Alternatively, the lang-pack resource may specify a git-url attribute. If this is provided, Solum's lp-cedarish LP shall be used, and will check for a local copy of the specified repo, and "git pull" if it exits, or, if it does not exist locally, "git clone" the repo and use it.
The glance-id and git-url attributes are mutually exclusive, and can not be used together. If both are specified, Solum shall raise an error. This approach avoids any ambiguity about how the custom image should check for and use the remote Git repo.
LP are basically images in glance, so the UUID of the language pack IS the glance id.
Our API is just a wrapper around glance images. We get JSON data as input and convert it into glance tags. We do not store anything related to LP in our DB
I don't really get the "git_url" part, which is very specific to cedarish. How does it apply to an arbitrary LP ?