X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=internal%2Fcli%2Ftypes.go;h=4b50964b71b2ce91a6d13e0c7f488e8b7f8a21fd;hb=HEAD;hp=eb869056ef066fbad1ceb24d942a20a0f2882ba2;hpb=5a95c20a91a868ebf7ddc1350ec918d65780f70c;p=ric-plt%2Fsdlgo.git diff --git a/internal/cli/types.go b/internal/cli/types.go index eb86905..4b50964 100644 --- a/internal/cli/types.go +++ b/internal/cli/types.go @@ -22,7 +22,11 @@ package cli -import "gerrit.o-ran-sc.org/r/ric-plt/sdlgo/internal/sdlgoredis" +import ( + "fmt" + "gerrit.o-ran-sc.org/r/ric-plt/sdlgo/internal/sdlgoredis" + "strings" +) //iDatabase is an interface towards database backend, for the time being //sdlgoredis.DB implements this interface. @@ -30,6 +34,7 @@ type iDatabase interface { Info() (*sdlgoredis.DbInfo, error) State() (*sdlgoredis.DbState, error) Keys(pattern string) ([]string, error) + Statistics() (*sdlgoredis.DbStatistics, error) } //Database struct is a holder for the internal database instances. @@ -57,14 +62,22 @@ type keysArgs struct { pattern string } -//newKeysArgs constructs a new keysArgs struct. -func newKeysArgs(ns string, pattern string) keysArgs { +//NewKeysArgs constructs a new keysArgs struct. +func NewKeysArgs(ns string, pattern string) keysArgs { return keysArgs{ ns: ns, pattern: pattern, } } +//Validate command arguments in keysArgs. +func (k keysArgs) Validate() error { + if strings.Contains(k.ns, "*") { + return fmt.Errorf("Invalid character (*) in given %s namespace argument.", k.ns) + } + return nil +} + //nsMap is a map having SDL DB cluster address as a key and namespace map of type nsKeyMap as a value type nsMap map[string]nsKeyMap