[#33] Client: Add extended life tests

Signed-off-by: Pavel Gross <p.gross@yadro.com>
This commit is contained in:
Pavel Gross 2025-02-19 10:55:57 +03:00
parent 2e56c13946
commit bd8eb7cc60
24 changed files with 1020 additions and 976 deletions

View file

@ -1,4 +1,7 @@
namespace FrostFS.SDK;
using System.Linq;
using FrostFS.Netmap;
namespace FrostFS.SDK;
public class FrostFsFilter(string name, string key, int operation, string value, FrostFsFilter[] filters) : IFrostFsFilter
{
@ -7,4 +10,19 @@ public class FrostFsFilter(string name, string key, int operation, string value,
public int Operation { get; } = operation;
public string Value { get; } = value;
public FrostFsFilter[] Filters { get; } = filters;
internal Filter GetMessage()
{
var filter = new Filter()
{
Name = Name,
Key = Key,
Op = (Operation)Operation,
Value = Value,
};
filter.Filters.AddRange(Filters.Select(f => f.GetMessage()));
return filter;
}
}

View file

@ -51,6 +51,16 @@ public struct FrostFsPlacementPolicy(bool unique,
ContainerBackupFactor = BackupFactor
};
if (Selectors != null && Selectors.Count > 0)
{
policy.Selectors.AddRange(Selectors.Select(s => s.GetMessage()));
}
if (Filters != null && Filters.Count > 0)
{
policy.Filters.AddRange(Filters.Select(s => s.ToMessage()));
}
foreach (var replica in Replicas)
{
policy.Replicas.Add(replica.ToMessage());

View file

@ -1,10 +1,24 @@
namespace FrostFS.SDK;
using FrostFS.Netmap;
namespace FrostFS.SDK;
public class FrostFsSelector(string name)
{
public string Name { get; set; } = name;
public string Name { get; } = name;
public uint Count { get; set; }
public int Clause { get; set; }
public string? Attribute { get; set; }
public string? Filter { get; set; }
internal Selector GetMessage()
{
return new Selector()
{
Name = Name,
Clause = (Clause)Clause,
Count = Count,
Filter = Filter ?? string.Empty,
Attribute = Attribute ?? string.Empty,
};
}
}

View file

@ -1,8 +1,36 @@
namespace FrostFS.SDK;
public class FrostFsAttributePair(string key, string value)
public struct FrostFsAttributePair(string key, string value) : System.IEquatable<FrostFsAttributePair>
{
public string Key { get; set; } = key;
public string Value { get; set; } = value;
public override bool Equals(object obj)
{
if (obj == null || obj is not FrostFsAttributePair)
return false;
return Equals((FrostFsAttributePair)obj);
}
public override int GetHashCode()
{
return Key.GetHashCode() ^ Value.GetHashCode();
}
public static bool operator ==(FrostFsAttributePair left, FrostFsAttributePair right)
{
return left.Equals(right);
}
public static bool operator !=(FrostFsAttributePair left, FrostFsAttributePair right)
{
return !(left == right);
}
public bool Equals(FrostFsAttributePair other)
{
return GetHashCode().Equals(other.GetHashCode());
}
}