in elastic/endpoint/track_processors/assets_loader.py [0:0]
def on_after_load_track(self, track):
try:
from elastic.package import assets # noqa: F401
except ModuleNotFoundError:
logger.warning("Cannot import module [elastic.package.assets], assets are not loaded")
return
asset_groups = track.selected_challenge_or_default.parameters.get("assets", [])
for assets_group in asset_groups:
repository = assets_group.get("repository", "https://github.com/elastic/package-assets")
packages = assets_group.get("packages", [])
repo_parts = urlparse(repository)
if repo_parts.scheme.startswith("http") and repo_parts.netloc == "github.com":
assets_root = os.path.join(track.root, "assets", repo_parts.path[1:])
download_from_github(track, packages, repo_parts.path[1:], assets_root)
elif repo_parts.scheme == "file":
if repo_parts.netloc == ".":
assets_root = os.path.join(track.root, "." + repo_parts.path)
else:
assets_root = repo_parts.path
load_from_path(track, packages, assets_root)
else:
raise ValueError(f"Unsupported repository: {repository}")
assets_group["path"] = os.path.abspath(assets_root)
logger.info(f"Assets group path is [{assets_group['path']}]")