4
0
Эх сурвалжийг харах

Added notes to all resources

Tim Jones 1 сар өмнө
parent
commit
fbd1f70bc2

+ 10 - 0
RackPeek.Domain/Persistence/Yaml/YamlResourceCollection.cs

@@ -83,7 +83,12 @@ public sealed class YamlResourceCollection(
 
             var serializer = new SerializerBuilder()
                 .WithNamingConvention(CamelCaseNamingConvention.Instance)
+                .WithTypeConverter(new StorageSizeYamlConverter())
                 .WithTypeConverter(new NotesStringYamlConverter())
+                .ConfigureDefaultValuesHandling(
+                    DefaultValuesHandling.OmitNull |
+                    DefaultValuesHandling.OmitEmptyCollections
+                )
                 .Build();
 
             var payload = new OrderedDictionary
@@ -112,6 +117,7 @@ public sealed class YamlResourceCollection(
             .WithCaseInsensitivePropertyMatching()
             .WithTypeConverter(new StorageSizeYamlConverter())
             .WithTypeConverter(new NotesStringYamlConverter())
+            
             .WithTypeDiscriminatingNodeDeserializer(options =>
             {
                 options.AddKeyValueTypeDiscriminator<Resource>("kind", new Dictionary<string, Type>
@@ -166,6 +172,10 @@ public sealed class YamlResourceCollection(
         var serializer = new SerializerBuilder()
             .WithNamingConvention(CamelCaseNamingConvention.Instance)
             .WithTypeConverter(new NotesStringYamlConverter())
+            .ConfigureDefaultValuesHandling(
+                DefaultValuesHandling.OmitNull |
+                DefaultValuesHandling.OmitEmptyCollections
+            )
             .Build();
 
         var yaml = serializer.Serialize(resource);

+ 35 - 0
RackPeek.Web.Viewer/wwwroot/app.css

@@ -0,0 +1,35 @@
+.markdown h1 { font-size: 1.5rem; font-weight: 700; margin: 0.6em 0; }
+.markdown h2 { font-size: 1.3rem; font-weight: 600; margin: 0.5em 0; }
+.markdown h3 { font-size: 1.1rem; font-weight: 600; margin: 0.4em 0; }
+
+.markdown p { margin: 0.4em 0; }
+
+.markdown ul { list-style: disc; margin-left: 1.2rem; }
+.markdown ol { list-style: decimal; margin-left: 1.2rem; }
+
+.markdown li { margin: 0.2em 0; }
+
+.markdown code {
+    background: #27272a;
+    padding: 2px 5px;
+    border-radius: 4px;
+    font-size: 0.9em;
+}
+
+.markdown pre {
+    background: #18181b;
+    padding: 12px;
+    border-radius: 8px;
+    overflow-x: auto;
+}
+
+.markdown blockquote {
+    border-left: 3px solid #52525b;
+    padding-left: 10px;
+    color: #a1a1aa;
+    margin: 0.6em 0;
+}
+
+.markdown > :first-child {
+    margin-top: 0;
+}

+ 9 - 5
RackPeek.Web/Components/Pages/Home.razor

@@ -76,7 +76,7 @@
             </div>
 
 
-            <!-- Systems -->
+           <!-- Systems -->
             <div>
                 <div class="text-xs text-zinc-500 uppercase tracking-wider mb-3">
                     Systems
@@ -94,8 +94,10 @@
                                 <li class="text-zinc-400">Types</li>
                                 @foreach (var (type, count) in _system.SystemsByType.OrderByDescending(x => x.Value))
                                 {
-                                    <li class="text-zinc-500">
-                                        └─ @type (@count)
+                                    <li class="text-zinc-500 hover:text-emerald-300">
+                                        <NavLink href="@($"systems/list?type={type}")" class="block">
+                                            └─ @type (@count)
+                                        </NavLink>
                                     </li>
                                 }
                             </ul>
@@ -107,8 +109,10 @@
                                 <li class="text-zinc-400">Operating Systems</li>
                                 @foreach (var (os, count) in _system.SystemsByOs.OrderByDescending(x => x.Value))
                                 {
-                                    <li class="text-zinc-500">
-                                        └─ @os (@count)
+                                    <li class="text-zinc-500 hover:text-emerald-300">
+                                        <NavLink href="@($"systems/list?os={os}")" class="block">
+                                            └─ @os (@count)
+                                        </NavLink>
                                     </li>
                                 }
                             </ul>

+ 4 - 0
RackPeek.Web/wwwroot/app.css

@@ -29,3 +29,7 @@
     color: #a1a1aa;
     margin: 0.6em 0;
 }
+
+.markdown > :first-child {
+    margin-top: 0;
+}

+ 2 - 2
Shared.Rcl/AccessPoints/AccessPointCardComponent.razor

@@ -95,7 +95,6 @@
             }
         </div>
 
-        <!-- NOTES — FULL WIDTH -->
         <div class="md:col-span-2">
             <div class="text-zinc-400 mb-1">Notes</div>
 
@@ -103,7 +102,7 @@
             {
                 <MarkdownEditor
                     @bind-Value="_edit.Notes"
-                    ShowSaveButton="false" />
+                    ShowActionButtons="false" />
             }
             else
             {
@@ -177,6 +176,7 @@
         AccessPoint.Model = _edit.Model;
         AccessPoint.Speed = _edit.Speed;
         AccessPoint.Notes = _edit.Notes; 
+        
     }
 
     void Cancel()

+ 8 - 12
Shared.Rcl/Components/MarkdownViewer.razor

@@ -1,13 +1,13 @@
 @using Markdig
 
-<div class="border border-zinc-800 rounded p-4 bg-zinc-900">
+<div class="relative border border-zinc-800 rounded p-4 bg-zinc-900">
 
     @if (ShowEditButton)
     {
-        <div class="flex justify-end mb-2 text-xs">
-            <button class="text-blue-400 hover:text-blue-300 transition"
+        <div class="absolute top-2 right-2 z-10">
+            <button class="text-xs text-blue-400 hover:text-blue-300 transition"
                     @onclick="HandleEdit">
-                Edit
+                @(string.IsNullOrWhiteSpace(Value) ? "Add" : "Edit")
             </button>
         </div>
     }
@@ -32,22 +32,18 @@
     [Parameter] public bool ShowEditButton { get; set; }
     [Parameter] public EventCallback OnEdit { get; set; }
 
-    private string _html = "";
+    private string _html = string.Empty;
 
     private static readonly MarkdownPipeline Pipeline =
         new MarkdownPipelineBuilder()
             .UseAdvancedExtensions()
-            
             .Build();
 
     protected override void OnParametersSet()
     {
-        _html = Markdown.ToHtml(Value ?? "", Pipeline);
+        _html = Markdown.ToHtml(Value ?? string.Empty, Pipeline);
     }
 
-    private async Task HandleEdit()
-    {
-        if (OnEdit.HasDelegate)
-            await OnEdit.InvokeAsync();
-    }
+    private Task HandleEdit()
+        => OnEdit.HasDelegate ? OnEdit.InvokeAsync() : Task.CompletedTask;
 }

+ 23 - 2
Shared.Rcl/Firewalls/FirewallCardComponent.razor

@@ -151,6 +151,24 @@
                 }
             }
         </div>
+        
+        <div class="md:col-span-2">
+            <div class="text-zinc-400 mb-1">Notes</div>
+
+            @if (_isEditing)
+            {
+                <MarkdownEditor
+                    @bind-Value="_edit.Notes"
+                    ShowActionButtons="false" />
+            }
+            else
+            {
+                <MarkdownViewer
+                    Value="@Firewall.Notes"
+                    ShowEditButton="false" />
+            }
+        </div>
+        
     </div>
 </div>
 
@@ -207,7 +225,8 @@
             Firewall.Name,
             _edit.Model,
             _edit.Managed,
-            _edit.Poe);
+            _edit.Poe,
+            _edit.Notes);
 
         Firewall = await GetFirewallUseCase.ExecuteAsync(Firewall.Name);
     }
@@ -279,6 +298,7 @@
         public string? Model { get; set; }
         public bool? Managed { get; set; }
         public bool? Poe { get; set; }
+        public string? Notes { get; set; }
 
         public static FirewallEditModel From(Firewall firewall)
         {
@@ -286,7 +306,8 @@
             {
                 Model = firewall.Model,
                 Managed = firewall.Managed,
-                Poe = firewall.Poe
+                Poe = firewall.Poe,
+                Notes = firewall.Notes
             };
         }
     }

+ 58 - 2
Shared.Rcl/Laptops/LaptopCardComponent.razor

@@ -182,6 +182,26 @@
         </div>
 
     </div>
+    <div class="md:col-span-2">
+        <div class="text-zinc-400 mb-1">Notes</div>
+
+        @if (!_editingNotes)
+        {
+            <MarkdownViewer
+                Value="@Laptop.Notes"
+                ShowEditButton="true"
+                OnEdit="BeginNotesEdit" />
+        }
+        else
+        {
+            <MarkdownEditor
+                @bind-Value="_notesDraft"
+                ShowActionButtons="true"
+                OnSave="SaveNotes"
+                OnCancel="CancelNotesEdit" />
+        }
+    </div>
+    
 </div>
 <CpuModal
     IsOpen="@_cpuModalOpen"
@@ -253,7 +273,7 @@
     private async Task HandleRamSubmit(Ram value)
     {
         _isRamModalOpen = false;
-        await UpdateLaptopUseCase.ExecuteAsync(Laptop.Name, Laptop.Model, value.Size, value.Mts);
+        await UpdateLaptopUseCase.ExecuteAsync(Laptop.Name, Laptop.Model, value.Size, value.Mts, Laptop.Notes);
         Laptop = await GetLaptopUseCase.ExecuteAsync(Laptop.Name);
     }
 
@@ -461,4 +481,40 @@
         Nav.NavigateTo($"resources/hardware/{newName}");
     }
 
-}
+}
+
+
+@code
+{
+    bool _editingNotes;
+    string? _notesDraft;
+
+    void BeginNotesEdit()
+    {
+        _editingNotes = true;
+        _notesDraft = Laptop.Notes; // draft buffer
+    }
+
+    void CancelNotesEdit()
+    {
+        _editingNotes = false;
+        _notesDraft = null; // discard
+    }
+
+    async Task SaveNotes()
+    {
+        _editingNotes = false;
+
+        await UpdateLaptopUseCase.ExecuteAsync(
+            Laptop.Name,
+            Laptop.Model,
+            Laptop.Ram?.Size,
+            Laptop.Ram?.Mts,
+            _notesDraft);
+
+        Laptop = await GetLaptopUseCase.ExecuteAsync(Laptop.Name);
+        _notesDraft = null;
+    }
+
+    
+}

+ 23 - 2
Shared.Rcl/Routers/RouterCardComponent.razor

@@ -148,6 +148,24 @@
                 }
             }
         </div>
+        
+        <div class="md:col-span-2">
+            <div class="text-zinc-400 mb-1">Notes</div>
+
+            @if (_isEditing)
+            {
+                <MarkdownEditor
+                    @bind-Value="_edit.Notes"
+                    ShowActionButtons="false" />
+            }
+            else
+            {
+                <MarkdownViewer
+                    Value="@Router.Notes"
+                    ShowEditButton="false" />
+            }
+        </div>
+        
     </div>
 </div>
 
@@ -204,7 +222,8 @@
             Router.Name,
             _edit.Model,
             _edit.Managed,
-            _edit.Poe);
+            _edit.Poe,
+            _edit.Notes);
 
         Router = await GetRouterUseCase.ExecuteAsync(Router.Name);
     }
@@ -276,6 +295,7 @@
         public string? Model { get; set; }
         public bool? Managed { get; set; }
         public bool? Poe { get; set; }
+        public string? Notes { get; set; }
 
         public static RouterEditModel From(Router Router)
         {
@@ -283,7 +303,8 @@
             {
                 Model = Router.Model,
                 Managed = Router.Managed,
-                Poe = Router.Poe
+                Poe = Router.Poe,
+                Notes = Router.Notes
             };
         }
     }

+ 57 - 1
Shared.Rcl/Servers/ServerCardComponent.razor

@@ -225,6 +225,26 @@
 
 
     </div>
+    <div class="md:col-span-2">
+        <div class="text-zinc-400 mb-1">Notes</div>
+
+        @if (!_editingNotes)
+        {
+            <MarkdownViewer
+                Value="@Server.Notes"
+                ShowEditButton="true"
+                OnEdit="BeginNotesEdit" />
+        }
+        else
+        {
+            <MarkdownEditor
+                @bind-Value="_notesDraft"
+                ShowActionButtons="true"
+                OnSave="SaveNotes"
+                OnCancel="CancelNotesEdit" />
+        }
+    </div>
+    
 </div>
 
 <CpuModal
@@ -566,4 +586,40 @@
         Nav.NavigateTo($"resources/hardware/{newName}");
     }
 
-}
+}
+
+
+@code
+{
+    bool _editingNotes;
+    string? _notesDraft;
+
+    void BeginNotesEdit()
+    {
+        _editingNotes = true;
+        _notesDraft = Server.Notes; // draft buffer
+    }
+
+    void CancelNotesEdit()
+    {
+        _editingNotes = false;
+        _notesDraft = null; // discard
+    }
+
+    async Task SaveNotes()
+    {
+        _editingNotes = false;
+
+        await UpdateServerUseCase.ExecuteAsync(
+            Server.Name,
+            Server.Ram?.Size,
+            Server.Ram?.Mts,
+            Server.Ipmi,
+            _notesDraft);
+
+        Server = await GetServerUseCase.ExecuteAsync(Server.Name);
+        _notesDraft = null;
+    }
+
+    
+}

+ 17 - 1
Shared.Rcl/Services/ServiceCardComponent.razor

@@ -174,7 +174,22 @@
                 </NavLink>
             }
         </div>
+        <div class="md:col-span-2">
+            <div class="text-zinc-400 mb-1">Notes</div>
 
+            @if (_isEditing)
+            {
+                <MarkdownEditor
+                    @bind-Value="_edit.Notes"
+                    ShowActionButtons="false" />
+            }
+            else
+            {
+                <MarkdownViewer
+                    Value="@Service.Notes"
+                    ShowEditButton="false" />
+            }
+        </div>
     </div>
 </div>
 
@@ -269,7 +284,8 @@
             Service.Network?.Port,
             Service.Network?.Protocol,
             Service.Network?.Url,
-            name);
+            name,
+            Service.Notes);
         Service = await GetServiceUseCase.ExecuteAsync(Service.Name);
         _edit = ServiceEditModel.From(Service);
     }

+ 2 - 1
Shared.Rcl/Services/ServiceDetailsPage.razor

@@ -52,7 +52,8 @@
             edit.Port,
             edit.Protocol,
             edit.Url,
-            edit.RunsOn
+            edit.RunsOn,
+                edit.Notes
         );
     }
 

+ 3 - 1
Shared.Rcl/Services/ServiceEditModel.cs

@@ -10,6 +10,7 @@ public sealed class ServiceEditModel
     public string? Protocol { get; set; }
     public string? Url { get; set; }
     public string? RunsOn { get; set; }
+    public string? Notes { get; set; }
 
     public static ServiceEditModel From(Service s)
     {
@@ -20,7 +21,8 @@ public sealed class ServiceEditModel
             Port = s.Network?.Port,
             Protocol = s.Network?.Protocol,
             Url = s.Network?.Url,
-            RunsOn = s.RunsOn
+            RunsOn = s.RunsOn,
+            Notes = s.Notes
         };
     }
 }

+ 2 - 1
Shared.Rcl/Services/ServicesListComponent.razor

@@ -47,7 +47,8 @@
             edit.Port,
             edit.Protocol,
             edit.Url,
-            edit.RunsOn
+            edit.RunsOn,
+            edit.Notes
         );
     }
 

+ 23 - 2
Shared.Rcl/Switches/SwitchCardComponent.razor

@@ -149,6 +149,24 @@
                 }
             }
         </div>
+        
+        <div class="md:col-span-2">
+            <div class="text-zinc-400 mb-1">Notes</div>
+
+            @if (_isEditing)
+            {
+                <MarkdownEditor
+                    @bind-Value="_edit.Notes"
+                    ShowActionButtons="false" />
+            }
+            else
+            {
+                <MarkdownViewer
+                    Value="@Switch.Notes"
+                    ShowEditButton="false" />
+            }
+        </div>
+        
     </div>
 </div>
 
@@ -206,7 +224,8 @@
             Switch.Name,
             _edit.Model,
             _edit.Managed,
-            _edit.Poe);
+            _edit.Poe,
+            _edit.Notes);
 
         Switch = await GetSwitchUseCase.ExecuteAsync(Switch.Name);
     }
@@ -278,6 +297,7 @@
         public string? Model { get; set; }
         public bool? Managed { get; set; }
         public bool? Poe { get; set; }
+        public string? Notes { get; set; }
 
         public static SwitchEditModel From(Switch Switch)
         {
@@ -285,7 +305,8 @@
             {
                 Model = Switch.Model,
                 Managed = Switch.Managed,
-                Poe = Switch.Poe
+                Poe = Switch.Poe,
+                Notes = Switch.Notes
             };
         }
     }

+ 19 - 1
Shared.Rcl/Systems/SystemCardComponent.razor

@@ -220,6 +220,23 @@
             }
         </div>
 
+        <div class="md:col-span-2">
+            <div class="text-zinc-400 mb-1">Notes</div>
+
+            @if (_isEditing)
+            {
+                <MarkdownEditor
+                    @bind-Value="_edit.Notes"
+                    ShowActionButtons="false" />
+            }
+            else
+            {
+                <MarkdownViewer
+                    Value="@System.Notes"
+                    ShowEditButton="false" />
+            }
+        </div>
+        
     </div>
 </div>
 
@@ -294,7 +311,8 @@
             System.Os,
             System.Cores,
             System.Ram,
-            name);
+            name,
+            System.Notes);
         System = await GetSystemUseCase.ExecuteAsync(System.Name);
         _edit = SystemEditModel.From(System);
     }

+ 3 - 1
Shared.Rcl/Systems/SystemEditModel.cs

@@ -10,6 +10,7 @@ public sealed class SystemEditModel
     public int? Cores { get; set; }
     public int? Ram { get; set; }
     public string? RunsOn { get; set; }
+    public string? Notes { get; set; }
 
     public static SystemEditModel From(SystemResource system)
     {
@@ -20,7 +21,8 @@ public sealed class SystemEditModel
             Os = system.Os,
             Cores = system.Cores,
             Ram = system.Ram,
-            RunsOn = system.RunsOn
+            RunsOn = system.RunsOn,
+            Notes = system.Notes
         };
     }
 }

+ 3 - 1
Shared.Rcl/Systems/SystemsDetailsPage.razor

@@ -2,6 +2,7 @@
 @using RackPeek.Domain.Resources.Hardware
 @using RackPeek.Domain.Resources.SystemResources
 @using RackPeek.Domain.Resources.SystemResources.UseCases
+@using Shared.Rcl.Services
 @inject ISystemRepository SystemRepository
 @inject UpdateSystemUseCase UpdateSystemUseCase
 @inject GetSystemServiceTreeUseCase GetSystemServiceTreeUseCase
@@ -74,7 +75,8 @@
             edit.Os,
             edit.Cores,
             edit.Ram,
-            edit.RunsOn
+            edit.RunsOn,
+                edit.Notes
         );
     }
 

+ 2 - 1
Shared.Rcl/Systems/SystemsListComponent.razor

@@ -74,7 +74,8 @@
             edit.Os,
             edit.Cores,
             edit.Ram,
-            edit.RunsOn
+            edit.RunsOn,
+                edit.Notes
         );
 
         await Reload();

+ 22 - 2
Shared.Rcl/Ups/UpsCardComponent.razor

@@ -101,6 +101,23 @@
                 <div class="text-zinc-300">@Ups.Va VA</div>
             }
         </div>
+        
+        <div class="md:col-span-2">
+            <div class="text-zinc-400 mb-1">Notes</div>
+
+            @if (_isEditing)
+            {
+                <MarkdownEditor
+                    @bind-Value="_edit.Notes"
+                    ShowActionButtons="false" />
+            }
+            else
+            {
+                <MarkdownViewer
+                    Value="@Ups.Notes"
+                    ShowEditButton="false" />
+            }
+        </div>
     </div>
 </div>
 
@@ -153,7 +170,8 @@
         await UpdateUpsUseCase.ExecuteAsync(
             Ups.Name,
             _edit.Model,
-            _edit.Va);
+            _edit.Va,
+            _edit.Notes);
 
         Ups = await GetUpsUseCase.ExecuteAsync(Ups.Name);
     }
@@ -182,13 +200,15 @@
     {
         public string? Model { get; set; }
         public int? Va { get; set; }
+        public string? Notes { get; set; }
 
         public static UpsEditModel From(Ups ups)
         {
             return new UpsEditModel
             {
                 Model = ups.Model,
-                Va = ups.Va
+                Va = ups.Va,
+                Notes = ups.Notes
             };
         }
     }

+ 0 - 3
Tests/EndToEnd/AccessPointE2ETests.cs

@@ -48,7 +48,6 @@ public class AccessPointYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper ou
                        model: Unifi-U6-Lite
                        speed: 1
                        name: ap01
-                       tags: 
 
                      """, yaml);
 
@@ -69,12 +68,10 @@ public class AccessPointYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper ou
                        model: Unifi-U6-Lite
                        speed: 1
                        name: ap01
-                       tags: 
                      - kind: AccessPoint
                        model: Aruba-AP-515
                        speed: 2.5
                        name: ap02
-                       tags: 
 
                      """, yaml);
 

+ 1 - 19
Tests/EndToEnd/ServiceYamlE2ETests.cs

@@ -31,10 +31,7 @@ public class ServiceYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper output
         Assert.Equal("""
                      resources:
                      - kind: Service
-                       network: 
-                       runsOn: 
                        name: immich
-                       tags: 
 
                      """, yaml);
         (output, yaml) = await ExecuteAsync("systems", "add", "vm01");
@@ -56,16 +53,8 @@ public class ServiceYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper output
                          url: http://timmoth.lan:80
                        runsOn: vm01
                        name: immich
-                       tags: 
                      - kind: System
-                       type: 
-                       os: 
-                       cores: 
-                       ram: 
-                       drives: 
-                       runsOn: 
                        name: vm01
-                       tags: 
 
                      """, yaml);
 
@@ -79,14 +68,7 @@ public class ServiceYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper output
         Assert.Equal("""
                      resources:
                      - kind: System
-                       type: 
-                       os: 
-                       cores: 
-                       ram: 
-                       drives: 
-                       runsOn: 
                        name: vm01
-                       tags: 
 
                      """, yaml);
 
@@ -141,7 +123,7 @@ public class ServiceYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper output
 
                      """, output);
 
-        // Report systems
+        // Report systemså
         (output, yaml) = await ExecuteAsync("services", "summary");
         Assert.Equal("""
                      ╭────────┬───────────────┬──────┬──────────┬──────────────────────┬────────────╮

+ 0 - 6
Tests/EndToEnd/SwitchYamlE2ETests.cs

@@ -43,9 +43,7 @@ public class SwitchYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper outputH
                        model: Netgear GS108
                        managed: true
                        poe: true
-                       ports: 
                        name: sw01
-                       tags: 
 
                      """, yaml);
 
@@ -63,16 +61,12 @@ public class SwitchYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper outputH
                        model: Netgear GS108
                        managed: true
                        poe: true
-                       ports: 
                        name: sw01
-                       tags: 
                      - kind: Switch
                        model: TP-Link TL-SG108E
                        managed: false
                        poe: false
-                       ports: 
                        name: sw02
-                       tags: 
 
                      """, yaml);
 

+ 0 - 23
Tests/EndToEnd/SystemYamlE2ETests.cs

@@ -35,23 +35,9 @@ public class SystemYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper outputH
         Assert.Equal("""
                      resources:
                      - kind: Server
-                       cpus: 
-                       ram: 
-                       drives: 
-                       nics: 
-                       gpus: 
-                       ipmi: 
                        name: hypervisor01
-                       tags: 
                      - kind: System
-                       type: 
-                       os: 
-                       cores: 
-                       ram: 
-                       drives: 
-                       runsOn: 
                        name: host01
-                       tags: 
 
                      """, yaml);
 
@@ -70,23 +56,14 @@ public class SystemYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper outputH
         Assert.Equal("""
                      resources:
                      - kind: Server
-                       cpus: 
-                       ram: 
-                       drives: 
-                       nics: 
-                       gpus: 
-                       ipmi: 
                        name: hypervisor01
-                       tags: 
                      - kind: System
                        type: baremetal
                        os: ubuntu-22.04
                        cores: 4
                        ram: 8192
-                       drives: 
                        runsOn: hypervisor01
                        name: host01
-                       tags: 
 
                      """, yaml);
 

+ 0 - 3
Tests/EndToEnd/UpsYamlE2ETests.cs

@@ -48,7 +48,6 @@ public class UpsYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper outputHelp
                        model: APC Smart-UPS 1500
                        va: 1500
                        name: ups01
-                       tags: 
 
                      """, yaml);
 
@@ -70,12 +69,10 @@ public class UpsYamlE2ETests(TempYamlCliFixture fs, ITestOutputHelper outputHelp
                        model: APC Smart-UPS 1500
                        va: 1500
                        name: ups01
-                       tags: 
                      - kind: Ups
                        model: CyberPower CP1500PFCLCD
                        va: 1500
                        name: ups02
-                       tags: 
 
                      """, yaml);