validation

package
v0.0.0-...-88ad6e2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ApintoAuthValidator = kwhvalidating.ValidatorFunc(
	func(ctx context.Context, review *kwhmodel.AdmissionReview, object metav1.Object) (result *kwhvalidating.ValidatorResult, err error) {
		valid := true
		var msg string

		switch review.Operation {
		case "create":
			aa := &kubev1.ApintoAuth{}
			err = json.Unmarshal(review.NewObjectRaw, aa)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoAuth.Error()}, nil
			}

			apintoAuth := translation.KubeAuthToApinto(aa)

			_, err = validator.Auth().Create(ctx, apintoAuth)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		case "update":
			aa := &kubev1.ApintoAuth{}
			err = json.Unmarshal(review.NewObjectRaw, aa)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoAuth.Error()}, nil
			}

			apintoAuth := translation.KubeAuthToApinto(aa)

			_, err = validator.Auth().Update(ctx, apintoAuth)
			if err != nil {
				valid = false
				msg = err.Error()
			}

		case "delete":
			aa := &kubev1.ApintoAuth{}
			err = json.Unmarshal(review.OldObjectRaw, aa)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoAuth.Error()}, nil
			}

			err = validator.Auth().Delete(ctx, aa.Spec.Name)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		}
		return &kwhvalidating.ValidatorResult{Valid: valid, Message: msg}, err
	},
)
View Source
var ApintoDiscoveryValidator = kwhvalidating.ValidatorFunc(
	func(ctx context.Context, review *kwhmodel.AdmissionReview, object metav1.Object) (result *kwhvalidating.ValidatorResult, err error) {
		valid := true
		var msg string

		switch review.Operation {
		case "create":
			ad := &kubev1.ApintoDiscovery{}
			err = json.Unmarshal(review.NewObjectRaw, ad)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoDiscovery.Error()}, nil
			}

			apintoDiscovery := translation.KubeDiscoveryToApinto(ad)

			_, err = validator.Discovery().Create(ctx, apintoDiscovery)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		case "update":
			ad := &kubev1.ApintoDiscovery{}
			err = json.Unmarshal(review.NewObjectRaw, ad)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoDiscovery.Error()}, nil
			}

			apintoDiscovery := translation.KubeDiscoveryToApinto(ad)

			_, err = validator.Discovery().Update(ctx, apintoDiscovery)
			if err != nil {
				valid = false
				msg = err.Error()
			}

		case "delete":
			ad := &kubev1.ApintoDiscovery{}
			err = json.Unmarshal(review.OldObjectRaw, ad)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoDiscovery.Error()}, nil
			}

			err = validator.Discovery().Delete(ctx, ad.Spec.Name)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		}
		return &kwhvalidating.ValidatorResult{Valid: valid, Message: msg}, err
	},
)
View Source
var ApintoGlobalSettingValidator = kwhvalidating.ValidatorFunc(
	func(ctx context.Context, review *kwhmodel.AdmissionReview, object metav1.Object) (result *kwhvalidating.ValidatorResult, err error) {
		valid := true
		var msg string

		switch review.Operation {
		case "create", "update":
			as := &kubev1.ApintoGlobalSetting{}
			err = json.Unmarshal(review.NewObjectRaw, as)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoSetting.Error()}, nil
			}

			apintoSetting := translation.KubeSettingToApinto(as)

			_, err = validator.Setting().UpdatePlugin(ctx, apintoSetting)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		case "delete":
			apintoSetting := &apintov1.Setting{
				Name:       "plugin",
				Profession: "setting",
				Driver:     "plugin",
				Plugins:    apintov1.SettingPlugins{},
			}

			_, err = validator.Setting().UpdatePlugin(ctx, apintoSetting)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		}
		return &kwhvalidating.ValidatorResult{Valid: valid, Message: msg}, err
	},
)
View Source
var ApintoOutputValidator = kwhvalidating.ValidatorFunc(
	func(ctx context.Context, review *kwhmodel.AdmissionReview, object metav1.Object) (result *kwhvalidating.ValidatorResult, err error) {
		valid := true
		var msg string

		switch review.Operation {
		case "create":
			ao := &kubev1.ApintoOutput{}
			err = json.Unmarshal(review.NewObjectRaw, ao)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoOutput.Error()}, nil
			}

			apintoOutput := translation.KubeOutputToApinto(ao)
			_, err = validator.Output().Create(ctx, apintoOutput)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		case "update":
			ao := &kubev1.ApintoOutput{}
			err = json.Unmarshal(review.NewObjectRaw, ao)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoOutput.Error()}, nil
			}

			apintoOutput := translation.KubeOutputToApinto(ao)

			_, err = validator.Output().Update(ctx, apintoOutput)
			if err != nil {
				valid = false
				msg = err.Error()
			}

		case "delete":
			ao := &kubev1.ApintoOutput{}
			err = json.Unmarshal(review.OldObjectRaw, ao)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoOutput.Error()}, nil
			}

			err = validator.Output().Delete(ctx, ao.Spec.Name)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		}
		return &kwhvalidating.ValidatorResult{Valid: valid, Message: msg}, err
	},
)
View Source
var ApintoRouterValidator = kwhvalidating.ValidatorFunc(
	func(ctx context.Context, review *kwhmodel.AdmissionReview, object metav1.Object) (result *kwhvalidating.ValidatorResult, err error) {

		valid := true
		var msg string

		switch review.Operation {
		case "create":
			ar := &kubev1.ApintoRouter{}
			err = json.Unmarshal(review.NewObjectRaw, ar)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoRouter.Error()}, nil
			}

			apintoRouter := translation.KubeRouterToApinto(ar)
			_, err = validator.Router().Create(ctx, apintoRouter)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		case "update":
			ar := &kubev1.ApintoRouter{}
			err = json.Unmarshal(review.NewObjectRaw, ar)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoRouter.Error()}, nil
			}

			apintoRouter := translation.KubeRouterToApinto(ar)
			_, err = validator.Router().Update(ctx, apintoRouter)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		case "delete":
			ar := &kubev1.ApintoRouter{}
			err = json.Unmarshal(review.OldObjectRaw, ar)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoRouter.Error()}, nil
			}

			err = validator.Router().Delete(ctx, ar.Spec.Name)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		}

		return &kwhvalidating.ValidatorResult{Valid: valid, Message: msg}, nil
	},
)
View Source
var ApintoServiceValidator = kwhvalidating.ValidatorFunc(
	func(ctx context.Context, review *kwhmodel.AdmissionReview, object metav1.Object) (result *kwhvalidating.ValidatorResult, err error) {
		valid := true
		var msg string

		switch review.Operation {
		case "create":
			as := &kubev1.ApintoService{}
			err = json.Unmarshal(review.NewObjectRaw, as)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoService.Error()}, nil
			}

			apintoService := translation.KubeServiceToApinto(as)
			_, err = validator.Service().Create(ctx, apintoService)
			if err != nil {
				valid = false
				msg = err.Error()
			}

		case "update":
			as := &kubev1.ApintoService{}
			err = json.Unmarshal(review.NewObjectRaw, as)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoService.Error()}, nil
			}

			apintoService := translation.KubeServiceToApinto(as)
			_, err = validator.Service().Update(ctx, apintoService)
			if err != nil {
				valid = false
				msg = err.Error()
			}

		case "delete":
			as := &kubev1.ApintoService{}
			err = json.Unmarshal(review.OldObjectRaw, as)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoService.Error()}, nil
			}

			err = validator.Service().Delete(ctx, as.Spec.Name)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		}
		return &kwhvalidating.ValidatorResult{Valid: valid, Message: msg}, err
	},
)
View Source
var ApintoUpstreamValidator = kwhvalidating.ValidatorFunc(
	func(ctx context.Context, review *kwhmodel.AdmissionReview, object metav1.Object) (result *kwhvalidating.ValidatorResult, err error) {
		valid := true
		var msg string

		switch review.Operation {
		case "create":
			au := &kubev1.ApintoUpstream{}
			err = json.Unmarshal(review.NewObjectRaw, au)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoUpstream.Error()}, nil
			}

			apintoUpstream := translation.KubeUpstreamToApinto(au)

			_, err = validator.Upstream().Create(ctx, apintoUpstream)
			if err != nil {
				valid = false
				msg = err.Error()
			}

		case "update":
			au := &kubev1.ApintoUpstream{}
			err = json.Unmarshal(review.NewObjectRaw, au)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoUpstream.Error()}, nil
			}

			apintoUpstream := translation.KubeUpstreamToApinto(au)

			_, err = validator.Upstream().Update(ctx, apintoUpstream)
			if err != nil {
				valid = false
				msg = err.Error()
			}

		case "delete":
			au := &kubev1.ApintoUpstream{}
			err = json.Unmarshal(review.OldObjectRaw, au)
			if err != nil {
				return &kwhvalidating.ValidatorResult{Valid: false, Message: errNotApintoUpstream.Error()}, nil
			}

			err = validator.Upstream().Delete(ctx, au.Spec.Name)
			if err != nil {
				valid = false
				msg = err.Error()
			}
		}
		return &kwhvalidating.ValidatorResult{Valid: valid, Message: msg}, err
	},
)

Functions

func InitAdmission

func InitAdmission(cfg *config.Config, apinto apinto.Apinto) error

func NewHandler

func NewHandler(ID string, validator kwhvalidating.Validator) gin.HandlerFunc

Types

type SourceClient

type SourceClient struct {
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL