package core.aws.local.image; import core.aws.env.Environment; import core.aws.local.DependencyResolvers; import core.aws.local.LocalResourceLoader; import core.aws.local.ResourceNode; import core.aws.resource.Resources; import core.aws.resource.image.Image; import java.util.Optional; /** * @author neo */ public class AMILoader implements LocalResourceLoader { @Override public void load(ResourceNode node, Resources resources, DependencyResolvers resolvers, Environment env) { String baseAMI = node.requiredString("base-ami"); String playbook = node.requiredString("playbook"); Optional<String> packageDir = node.getString("package-dir"); Image image = resources.add(new Image(node.id)); packageDir.ifPresent(dir -> image.packageDir = Optional.of(env.envDir.resolve(dir))); image.playbook = env.envDir.resolve(playbook); image.namePrefix = env.name + "-" + node.id; resolvers.add(node, () -> image.baseAMI = resources.ami(env.region, baseAMI)); } }