Пример #1
0
        public void It_Should_Read_Role()
        {
            var content = @"---
Roles:
- Name: api
  Machines:
  - Dev2
  - Dev3
  - newbox
...
";


            var role = new YamlRole
            {
                Name     = "api",
                Machines = new[] { "Dev2", "Dev3", "newbox" }
            };

            var expected = new YamlSystemModel()
            {
                Roles = new[] { role }
            };

            var model = Read(content);

            model.AssertDeepEqualsTo(expected);
        }
Пример #2
0
 private string Write(YamlSystemModel model)
 {
     using (var stream = new MemoryStream())
     {
         _writer.Write(stream, model);
         return(Encoding.UTF8.GetString(stream.ToArray()));
     }
 }
Пример #3
0
        private string GetModelPath(YamlSystemModel splitModel, string modelDirectory)
        {
            var name = splitModel.Roles.EnsureNotNull().Select(x => $"Role_{x.Name.SanitiseNameIfNeeded()}.yml")
                       .Concat(splitModel.Tenants.EnsureNotNull().Select(x => $"Tenant_{x.Name.SanitiseNameIfNeeded()}.yml"))
                       .Concat(splitModel.TenantTags.EnsureNotNull().Select(x => $"TenantTag_{x.Name.SanitiseNameIfNeeded()}.yml"))
                       .Single();

            return(modelDirectory + "\\" + name);
        }
Пример #4
0
        public SystemModel Load(string modelDirectory)
        {
            var model = new YamlSystemModel();
            var files = FindFiles(modelDirectory);

            foreach (var subModel in files.SelectMany(LoadModels))
            {
                model.MergeIn(subModel);
            }
            return(model.BuildWith(new SystemModelBuilder()).Build());
        }
Пример #5
0
 private void SaveModel(YamlSystemModel model, string path)
 {
     Logger.Info($"Saving: {Path.GetFileName(path)}");
     WriteFile(path, model);
 }