Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into dsuhinin/move-set-model-version-tag
Browse files Browse the repository at this point in the history
nojaf authored Jan 28, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents b87cd5b + 6c66078 commit 6c91f75
Showing 4 changed files with 23 additions and 41 deletions.
5 changes: 5 additions & 0 deletions magefiles/generate/validations.go
Original file line number Diff line number Diff line change
@@ -48,10 +48,15 @@ var validations = map[string]string{
"Dataset_Schema": "max:1048575",
"InputTag_Key": "required,max=255",
"InputTag_Value": "required,max=500",
"RenameRegisteredModel_Name": "notEmpty,required",
"RenameRegisteredModel_NewName": "notEmpty,required",
"SetRegisteredModelTag_Name": "required",
"SetRegisteredModelTag_Key": "required,max=250,validMetricParamOrTagName,pathIsUnique",
"SetRegisteredModelTag_Value": "omitempty,max=5000",
"CreateRegisteredModel_Name": "notEmpty,required",
"CreateRegisteredModel_Key": "required,max=250,validMetricParamOrTagName,pathIsUnique",
"CreateRegisteredModel_Value": "omitempty,max=5000,truncate=5000",
"DeleteRegisteredModelTag_Name": "required",
"DeleteRegisteredModelTag_Key": "required,max=250,validMetricParamOrTagName,pathIsUnique",
"SetRegisteredModelAlias_Name": "required",
"SetRegisteredModelAlias_Alias": "required,max=255,validMetricParamOrTagName,pathIsUnique",
38 changes: 3 additions & 35 deletions pkg/model_registry/service/registered_models.go
Original file line number Diff line number Diff line change
@@ -31,15 +31,7 @@ func (m *ModelRegistryService) UpdateRegisteredModel(
func (m *ModelRegistryService) RenameRegisteredModel(
ctx context.Context, input *protos.RenameRegisteredModel,
) (*protos.RenameRegisteredModel_Response, *contract.Error) {
newName := input.GetNewName()
if newName == "" {
return nil, contract.NewError(
protos.ErrorCode_INVALID_PARAMETER_VALUE,
"Registered model name cannot be empty",
)
}

registeredModel, err := m.store.RenameRegisteredModel(ctx, input.GetName(), newName)
registeredModel, err := m.store.RenameRegisteredModel(ctx, input.GetName(), input.GetNewName())
if err != nil {
return nil, err
}
@@ -75,15 +67,7 @@ func (m *ModelRegistryService) GetRegisteredModel(
func (m *ModelRegistryService) SetRegisteredModelTag(
ctx context.Context, input *protos.SetRegisteredModelTag,
) (*protos.SetRegisteredModelTag_Response, *contract.Error) {
name := input.GetName()
if name == "" {
return nil, contract.NewError(
protos.ErrorCode_INVALID_PARAMETER_VALUE,
"Registered model name cannot be empty",
)
}

if err := m.store.SetRegisteredModelTag(ctx, name, input.GetKey(), input.GetValue()); err != nil {
if err := m.store.SetRegisteredModelTag(ctx, input.GetName(), input.GetKey(), input.GetValue()); err != nil {
return nil, err
}

@@ -93,14 +77,6 @@ func (m *ModelRegistryService) SetRegisteredModelTag(
func (m *ModelRegistryService) CreateRegisteredModel(
ctx context.Context, input *protos.CreateRegisteredModel,
) (*protos.CreateRegisteredModel_Response, *contract.Error) {
name := input.GetName()
if name == "" {
return nil, contract.NewError(
protos.ErrorCode_INVALID_PARAMETER_VALUE,
"Registered model name cannot be empty.",
)
}

tags := make([]*entities.RegisteredModelTag, 0, len(input.GetTags()))
for _, tag := range input.GetTags() {
tags = append(tags, entities.NewRegisteredModelTagFromProto(tag))
@@ -119,15 +95,7 @@ func (m *ModelRegistryService) CreateRegisteredModel(
func (m *ModelRegistryService) DeleteRegisteredModelTag(
ctx context.Context, input *protos.DeleteRegisteredModelTag,
) (*protos.DeleteRegisteredModelTag_Response, *contract.Error) {
name := input.GetName()
if name == "" {
return nil, contract.NewError(
protos.ErrorCode_INVALID_PARAMETER_VALUE,
"Registered model name cannot be empty",
)
}

if err := m.store.DeleteRegisteredModelTag(ctx, name, input.GetKey()); err != nil {
if err := m.store.DeleteRegisteredModelTag(ctx, input.GetName(), input.GetKey()); err != nil {
return nil, err
}

10 changes: 5 additions & 5 deletions pkg/protos/model_registry.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion pkg/validation/validation.go
Original file line number Diff line number Diff line change
@@ -87,6 +87,10 @@ func pathIsClean(fl validator.FieldLevel) bool {
return !(norm != valueStr || norm == "." || strings.HasPrefix(norm, "..") || strings.HasPrefix(norm, "/"))
}

func notEmptyValidation(fl validator.FieldLevel) bool {
return fl.Field().String() != ""
}

func regexValidation(regex *regexp.Regexp) validator.Func {
return func(fl validator.FieldLevel) bool {
valueStr := fl.Field().String()
@@ -146,6 +150,7 @@ func truncateFn(fieldLevel validator.FieldLevel) bool {
return true
}

//nolint:cyclop
func NewValidator() (*validator.Validate, error) {
validate := validator.New()

@@ -199,6 +204,10 @@ func NewValidator() (*validator.Validate, error) {
return nil, fmt.Errorf("validation registration for 'positiveNonZeroInteger' failed: %w", err)
}

if err := validate.RegisterValidation("notEmpty", notEmptyValidation); err != nil {
return nil, fmt.Errorf("validation registration for 'notEmpty' failed: %w", err)
}

validate.RegisterStructValidation(validateLogBatchLimits, &protos.LogBatch{})
validate.RegisterStructValidation(validateSetTagRunIDExists, &protos.SetTag{})

@@ -299,7 +308,7 @@ func NewErrorFromValidationError(err error) *contract.Error {
value := dereference(err.Value())

switch tag {
case "required":
case "notEmpty", "required":
validationErrors = append(
validationErrors,
fmt.Sprintf("Missing value for required parameter '%s'.", field),

0 comments on commit 6c91f75

Please sign in to comment.