diff --git a/Source/Api/Controllers/ClonesController.cs b/Source/Api/Controllers/ClonesController.cs index df32918..6096be3 100644 --- a/Source/Api/Controllers/ClonesController.cs +++ b/Source/Api/Controllers/ClonesController.cs @@ -39,6 +39,11 @@ public Response> ListClones() { DatasetTypes = DatasetTypes.Filesystem | DatasetTypes.Volume }; + + if (!args.Validate(out var errors)) + { + return ToErrorResponse>(errors); + } var datasets = _zfs.Datasets.List(args); var clones = datasets.Where(d => d.IsClone); return new Response> { Data = clones }; @@ -53,6 +58,12 @@ public Response CreateClone(string dataset, string snapshot, [FromBody] CloneReq var properties = request.Properties.Select(p => new PropertyValue { Property = p.Name, Value = p.Value }).ToList(); args.Properties = properties; } + + if (!args.Validate(out var errors)) + { + return ToErrorResponse(errors); + } + _zfs.Snapshots.Clone(args); return new Response(); } @@ -67,6 +78,12 @@ public Response CreateClone(string dataset, string snapshot, [FromBody] CloneReq public Response PromoteClone(string name) { var args = new PromoteArgs { Name = name }; + + if (!args.Validate(out var errors)) + { + return ToErrorResponse(errors); + } + _zfs.Datasets.Promote(args); return new Response(); }