public IEnumerable <C3poConfig> GetC3poConfigurations() { string basePath = settings.RepositoryPath ?? ""; string srcPath = Path.Combine(basePath, settings.Software, "src"); var appDirectories = Directory.GetDirectories(srcPath, "*.c3po", SearchOption.TopDirectoryOnly); foreach (var appDir in appDirectories) { if (Directory.Exists(appDir)) { var files = Directory.GetFiles(appDir, "c3po*", SearchOption.AllDirectories); foreach (var c3po in files) { var cfgRaw = File.ReadAllText(c3po); var jar = JsonConvert.DeserializeObject <Jar>(cfgRaw); var box = Box.Mistranslate(jar); PandoraBoxOpener opener = new PandoraBoxOpener(box); foreach (var environment in box.Clusters) { var configurations = opener.Open(new PandoraOptions(environment.Name, Machine.NotSpecified)); var cfg = new C3poConfig(configurations.AsDictionary()); cfg.Environment = environment.Name; cfg.HostName = box.Name; cfg.SoftwareName = settings.Software; yield return(cfg); } } } } }
public void Refresh() { lock (refreshPandora) { using (var jarFinder = new JarFinder(_gitSettings, _context)) { var jarFindResult = jarFinder.FindJar(); Directory.SetCurrentDirectory(jarFindResult.JarLocation.FullName); Box box = Box.Mistranslate(jarFindResult.Jar); var opener = new PandoraBoxOpener(box); PandoraOptions options = new PandoraOptions(_context.Cluster, _context.Machine); Configuration cfg = opener.Open(options); _configurationRepository = new GitConfigurationRepo(_context, cfg); } } }
public static Elders.Pandora.Box.Configuration Open(this Elders.Pandora.Box.Box box, PandoraOptions options) { var opener = new PandoraBoxOpener(box); return(opener.Open(options)); }