示例#1
0
        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);
                        }
                    }
                }
            }
        }
示例#2
0
        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));
        }