Checkpoint some changes to repo based profiles:
1) Add support for repos that specify submodules. The main issue here is that a "bare" repo has no notion of sub modules, so we actually have to do a checkout of the repo to know there are submodules and so we can get the contents of them, in case the profile.py is a symlink into a sub module. The value of submodule supports is so that a repo based profile can be composed from several sub repos. At the moment, only admins can do this since that turns on the flag to do a checkout of the repo instead of a bare repo (needs more thought). But once the profile is created (repo cloned locally with a checkout), it can still be instantiated in green-dot mode. 2) Add support for running the geni-lib code with the repository mapped into the geni-lib jail, so the profile can reference library modules contained in the repo. The repo is actually a checkout since most repos are bare, so we need to clone it into the jail. The directory where the clone is created is added to PYTHONPATH for import to work as expected.
Showing with 610 additions and 149 deletions