[#xxx] client: add error node maintenance

Signed-off-by: Viktor Nesterenko <vemeyzer@gmail.com>
This commit is contained in:
Viktor Nesterenko 2023-09-13 18:24:57 +02:00
parent ac8fc6d440
commit e523bde976
2 changed files with 10 additions and 0 deletions

View file

@ -61,6 +61,13 @@ func IsErrSessionNotFound(err error) bool {
return wrapsErrType[*apistatus.SessionTokenNotFound](err) return wrapsErrType[*apistatus.SessionTokenNotFound](err)
} }
// IsErrMaintenance checks if err corresponds to FrostFS status return
// which tells that node is currently under maintenance. Supports wrapped
// errors.
func IsErrMaintenance(err error) bool {
return wrapsErrType[*apistatus.NodeUnderMaintenance](err)
}
// returns error describing missing field with the given name. // returns error describing missing field with the given name.
func newErrMissingResponseField(name string) error { func newErrMissingResponseField(name string) error {
return fmt.Errorf("missing %s field in the response", name) return fmt.Errorf("missing %s field in the response", name)

View file

@ -36,6 +36,9 @@ func TestErrors(t *testing.T) {
}, { }, {
check: client.IsErrSessionNotFound, check: client.IsErrSessionNotFound,
err: new(apistatus.SessionTokenNotFound), err: new(apistatus.SessionTokenNotFound),
}, {
check: client.IsErrMaintenance,
err: new(apistatus.NodeUnderMaintenance),
}, },
} }