diff --git a/apis/attributes.go b/apis/attributes.go index 8af59d049..03739fc08 100644 --- a/apis/attributes.go +++ b/apis/attributes.go @@ -77,8 +77,8 @@ func (admS *AdminSv1) GetAttributeProfileIDsCount(ctx *context.Context, args *ut tnt = admS.cfg.GeneralCfg().DefaultTenant } var keys []string - prfx := utils.AttributeProfilePrefix + tnt + utils.ConcatenatedKeySep - if keys, err = admS.dm.DataDB().GetKeysForPrefix(ctx, prfx); err != nil { + if keys, err = admS.dm.DataDB().GetKeysForPrefix(ctx, + utils.AttributeProfilePrefix+tnt+utils.ConcatenatedKeySep); err != nil { return err } if len(keys) == 0 { diff --git a/apis/resources.go b/apis/resources.go index 5832cc4a5..f927603ff 100644 --- a/apis/resources.go +++ b/apis/resources.go @@ -62,6 +62,25 @@ func (adms *AdminSv1) GetResourceProfileIDs(ctx *context.Context, args *utils.Pa return nil } +// GetResourceProfileIDsCount returns the total number of ResourceProfileIDs registered for a tenant +// returns ErrNotFound in case of 0 ResourceProfileIDs +func (admS *AdminSv1) GetResourceProfileIDsCount(ctx *context.Context, args *utils.TenantWithAPIOpts, reply *int) (err error) { + tnt := args.Tenant + if tnt == utils.EmptyString { + tnt = admS.cfg.GeneralCfg().DefaultTenant + } + var keys []string + if keys, err = admS.dm.DataDB().GetKeysForPrefix(ctx, + utils.ResourceProfilesPrefix+tnt+utils.ConcatenatedKeySep); err != nil { + return err + } + if len(keys) == 0 { + return utils.ErrNotFound + } + *reply = len(keys) + return +} + //SetResourceProfile adds a new resource configuration func (adms *AdminSv1) SetResourceProfile(ctx *context.Context, arg *engine.ResourceProfileWithAPIOpts, reply *string) (err error) { if missing := utils.MissingStructFields(arg.ResourceProfile, []string{utils.ID}); len(missing) != 0 {