validation

package
Version: v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2015 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package validation has functions for validating the correctness of api objects and explaining what is wrong with them when they aren't valid.

Index

Constants

View Source
const SecretKeyFmt string = "\\.?" + util.DNS1123LabelFmt + "(\\." + util.DNS1123LabelFmt + ")*"

Variables

View Source
var DNSSubdomainErrorMsg string = fmt.Sprintf(`must be a DNS subdomain (at most %d characters, matching regex %s): e.g. "example.com"`, util.DNS1123SubdomainMaxLength, util.DNS1123SubdomainFmt)

Functions

func AccumulateUniqueHostPorts added in v0.5.3

func AccumulateUniqueHostPorts(containers []api.Container, accumulator *util.StringSet) errs.ValidationErrorList

AccumulateUniqueHostPorts extracts each HostPort of each Container, accumulating the results and returning an error if any ports conflict.

func IsSecretKey added in v0.5.2

func IsSecretKey(value string) bool

IsSecretKey tests for a string that conforms to the definition of a subdomain in DNS (RFC 1123), except that a leading dot is allowed

func NameIsDNSSubdomain added in v0.6.1

func NameIsDNSSubdomain(name string, prefix bool) (bool, string)

NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.

func NewInvalidTypeError added in v0.2.1

func NewInvalidTypeError(expected reflect.Kind, observed reflect.Kind, fieldName string) error

func ValidateAnnotations added in v0.2.2

func ValidateAnnotations(annotations map[string]string, field string) errs.ValidationErrorList

ValidateAnnotations validates that a set of annotations are correctly defined.

func ValidateEndpoints added in v0.4.3

func ValidateEndpoints(endpoints *api.Endpoints) errs.ValidationErrorList

ValidateEndpoints tests if required fields are set.

func ValidateEndpointsName added in v0.4.3

func ValidateEndpointsName(name string, prefix bool) (bool, string)

ValidateEndpointsName can be used to check whether the given endpoints name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateEndpointsUpdate added in v0.4.3

func ValidateEndpointsUpdate(oldEndpoints, newEndpoints *api.Endpoints) errs.ValidationErrorList

ValidateEndpointsUpdate tests to make sure an endpoints update can be applied.

func ValidateEvent added in v0.2.1

func ValidateEvent(event *api.Event) errs.ValidationErrorList

ValidateEvent makes sure that the event makes sense.

func ValidateLabels added in v0.2.1

func ValidateLabels(labels map[string]string, field string) errs.ValidationErrorList

ValidateLabels validates that a set of labels are correctly defined.

func ValidateLimitRange added in v0.2.2

func ValidateLimitRange(limitRange *api.LimitRange) errs.ValidationErrorList

ValidateLimitRange tests if required fields in the LimitRange are set.

func ValidateLimitRangeName added in v0.4.1

func ValidateLimitRangeName(name string, prefix bool) (bool, string)

ValidateLimitRangeName can be used to check whether the given limit range name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateManifest

func ValidateManifest(manifest *api.ContainerManifest) errs.ValidationErrorList

ValidateManifest tests that the specified ContainerManifest has valid data. This includes checking formatting and uniqueness. It also canonicalizes the structure by setting default values and implementing any backwards-compatibility tricks. TODO: replaced by ValidatePodSpec

func ValidateNamespace added in v0.3.2

func ValidateNamespace(namespace *api.Namespace) errs.ValidationErrorList

ValidateNamespace tests if required fields are set.

func ValidateNamespaceFinalizeUpdate added in v0.4.3

func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *api.Namespace) errs.ValidationErrorList

ValidateNamespaceFinalizeUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields that cannot be changed.

func ValidateNamespaceName added in v0.3.2

func ValidateNamespaceName(name string, prefix bool) (bool, string)

ValidateNamespaceName can be used to check whether the given namespace name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateNamespaceStatusUpdate added in v0.4.2

func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *api.Namespace) errs.ValidationErrorList

ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields that cannot be changed.

func ValidateNamespaceUpdate added in v0.3.2

func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Namespace) errs.ValidationErrorList

ValidateNamespaceUpdate tests to make sure a namespace update can be applied. newNamespace is updated with fields that cannot be changed TODO The syntax here is the reverse of the (old, new) pattern in most other validation. Fix this.

func ValidateNode added in v0.5.1

func ValidateNode(node *api.Node) errs.ValidationErrorList

ValidateNode tests if required fields in the node are set.

func ValidateNodeName added in v0.3.1

func ValidateNodeName(name string, prefix bool) (bool, string)

ValidateNodeName can be used to check whether the given node name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateNodeUpdate added in v0.5.1

func ValidateNodeUpdate(oldNode *api.Node, node *api.Node) errs.ValidationErrorList

ValidateNodeUpdate tests to make sure a node update can be applied. Modifies oldNode.

func ValidateObjectMeta added in v0.2.2

func ValidateObjectMeta(meta *api.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc) errs.ValidationErrorList

ValidateObjectMeta validates an object's metadata on creation. It expects that name generation has already been performed.

func ValidateObjectMetaUpdate added in v0.2.2

func ValidateObjectMetaUpdate(meta, old *api.ObjectMeta) errs.ValidationErrorList

ValidateObjectMetaUpdate validates an object's metadata when updated

func ValidatePersistentVolume added in v0.4.3

func ValidatePersistentVolume(pv *api.PersistentVolume) errs.ValidationErrorList

func ValidatePersistentVolumeClaim added in v0.4.3

func ValidatePersistentVolumeClaim(pvc *api.PersistentVolumeClaim) errs.ValidationErrorList

func ValidatePersistentVolumeClaimStatusUpdate added in v0.4.4

func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) errs.ValidationErrorList

func ValidatePersistentVolumeClaimUpdate added in v0.4.4

func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) errs.ValidationErrorList

func ValidatePersistentVolumeName added in v0.4.3

func ValidatePersistentVolumeName(name string, prefix bool) (bool, string)

func ValidatePersistentVolumeStatusUpdate added in v0.4.4

func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) errs.ValidationErrorList

ValidatePersistentVolumeStatusUpdate tests to see if the status update is legal for an end user to make. newPv is updated with fields that cannot be changed.

func ValidatePersistentVolumeUpdate added in v0.4.4

func ValidatePersistentVolumeUpdate(newPv, oldPv *api.PersistentVolume) errs.ValidationErrorList

ValidatePersistentVolumeUpdate tests to see if the update is legal for an end user to make. newPv is updated with fields that cannot be changed.

func ValidatePod

func ValidatePod(pod *api.Pod) errs.ValidationErrorList

ValidatePod tests if required fields in the pod are set.

func ValidatePodName added in v0.3.1

func ValidatePodName(name string, prefix bool) (bool, string)

ValidatePodName can be used to check whether the given pod name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidatePodSpec added in v0.2.1

func ValidatePodSpec(spec *api.PodSpec) errs.ValidationErrorList

ValidatePodSpec tests that the specified PodSpec has valid data. This includes checking formatting and uniqueness. It also canonicalizes the structure by setting default values and implementing any backwards-compatibility tricks.

func ValidatePodStatusUpdate added in v0.4.2

func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) errs.ValidationErrorList

ValidatePodStatusUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.

func ValidatePodTemplate added in v0.5.1

func ValidatePodTemplate(pod *api.PodTemplate) errs.ValidationErrorList

ValidatePodTemplate tests if required fields in the pod template are set.

func ValidatePodTemplateSpec added in v0.2.1

func ValidatePodTemplateSpec(spec *api.PodTemplateSpec, replicas int) errs.ValidationErrorList

ValidatePodTemplateSpec validates the spec of a pod template

func ValidatePodTemplateUpdate added in v0.5.1

func ValidatePodTemplateUpdate(newPod, oldPod *api.PodTemplate) errs.ValidationErrorList

ValidatePodTemplateUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.

func ValidatePodUpdate

func ValidatePodUpdate(newPod, oldPod *api.Pod) errs.ValidationErrorList

ValidatePodUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.

func ValidateReadOnlyPersistentDisks

func ValidateReadOnlyPersistentDisks(volumes []api.Volume) errs.ValidationErrorList

func ValidateReplicationController

func ValidateReplicationController(controller *api.ReplicationController) errs.ValidationErrorList

ValidateReplicationController tests if required fields in the replication controller are set.

func ValidateReplicationControllerName added in v0.3.1

func ValidateReplicationControllerName(name string, prefix bool) (bool, string)

ValidateReplicationControllerName can be used to check whether the given replication controller name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateReplicationControllerSpec added in v0.2.1

func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec) errs.ValidationErrorList

ValidateReplicationControllerSpec tests if required fields in the replication controller spec are set.

func ValidateReplicationControllerUpdate added in v0.2.2

func ValidateReplicationControllerUpdate(oldController, controller *api.ReplicationController) errs.ValidationErrorList

ValidateReplicationControllerUpdate tests if required fields in the replication controller are set.

func ValidateResourceQuota added in v0.2.2

func ValidateResourceQuota(resourceQuota *api.ResourceQuota) errs.ValidationErrorList

ValidateResourceQuota tests if required fields in the ResourceQuota are set.

func ValidateResourceQuotaName added in v0.4.1

func ValidateResourceQuotaName(name string, prefix bool) (bool, string)

ValidateResourceQuotaName can be used to check whether the given resource quota name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateResourceQuotaStatusUpdate added in v0.4.2

func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) errs.ValidationErrorList

ValidateResourceQuotaStatusUpdate tests to see if the status update is legal for an end user to make. newResourceQuota is updated with fields that cannot be changed.

func ValidateResourceQuotaUpdate added in v0.4.2

func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) errs.ValidationErrorList

ValidateResourceQuotaUpdate tests to see if the update is legal for an end user to make. newResourceQuota is updated with fields that cannot be changed.

func ValidateResourceRequirements added in v0.5.1

func ValidateResourceRequirements(requirements *api.ResourceRequirements) errs.ValidationErrorList

Validates resource requirement spec.

func ValidateSecret added in v0.4.1

func ValidateSecret(secret *api.Secret) errs.ValidationErrorList

ValidateSecret tests if required fields in the Secret are set.

func ValidateSecretName added in v0.4.1

func ValidateSecretName(name string, prefix bool) (bool, string)

ValidateSecretName can be used to check whether the given secret name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateSecretUpdate added in v0.5.1

func ValidateSecretUpdate(oldSecret, newSecret *api.Secret) errs.ValidationErrorList

ValidateSecretUpdate tests if required fields in the Secret are set.

func ValidateSecurityContext added in v0.5.2

func ValidateSecurityContext(sc *api.SecurityContext) errs.ValidationErrorList

ValidateSecurityContext ensure the security context contains valid settings

func ValidateSecurityContextConstraints added in v0.6.1

func ValidateSecurityContextConstraints(scc *api.SecurityContextConstraints) errs.ValidationErrorList

func ValidateSecurityContextConstraintsName added in v0.6.1

func ValidateSecurityContextConstraintsName(name string, prefix bool) (bool, string)

ValidateSecurityContextConstraintsName can be used to check whether the given security context constraint name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateSecurityContextConstraintsUpdate added in v0.6.1

func ValidateSecurityContextConstraintsUpdate(old *api.SecurityContextConstraints, new *api.SecurityContextConstraints) errs.ValidationErrorList

func ValidateService

func ValidateService(service *api.Service) errs.ValidationErrorList

ValidateService tests if required fields in the service are set.

func ValidateServiceAccount added in v0.5.2

func ValidateServiceAccount(serviceAccount *api.ServiceAccount) errs.ValidationErrorList

ValidateServiceAccount tests if required fields in the ServiceAccount are set.

func ValidateServiceAccountName added in v0.5.2

func ValidateServiceAccountName(name string, prefix bool) (bool, string)

ValidateServiceAccountName can be used to check whether the given service account name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateServiceAccountUpdate added in v0.5.2

func ValidateServiceAccountUpdate(oldServiceAccount, newServiceAccount *api.ServiceAccount) errs.ValidationErrorList

ValidateServiceAccountUpdate tests if required fields in the ServiceAccount are set.

func ValidateServiceName added in v0.3.1

func ValidateServiceName(name string, prefix bool) (bool, string)

ValidateServiceName can be used to check whether the given service name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateServiceUpdate added in v0.2.2

func ValidateServiceUpdate(oldService, service *api.Service) errs.ValidationErrorList

ValidateServiceUpdate tests if required fields in the service are set during an update

Types

type InvalidTypeError added in v0.2.1

type InvalidTypeError struct {
	ExpectedKind reflect.Kind
	ObservedKind reflect.Kind
	FieldName    string
}

func (*InvalidTypeError) Error added in v0.2.1

func (i *InvalidTypeError) Error() string

type NullSchema added in v0.2.1

type NullSchema struct{}

func (NullSchema) ValidateBytes added in v0.2.1

func (NullSchema) ValidateBytes(data []byte) error

type Schema added in v0.2.1

type Schema interface {
	ValidateBytes(data []byte) error
}

Schema is an interface that knows how to validate an API object serialized to a byte array.

func NewSwaggerSchemaFromBytes added in v0.2.1

func NewSwaggerSchemaFromBytes(data []byte) (Schema, error)

type SwaggerSchema added in v0.2.1

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

func (*SwaggerSchema) ValidateBytes added in v0.2.1

func (s *SwaggerSchema) ValidateBytes(data []byte) error

func (*SwaggerSchema) ValidateObject added in v0.2.1

func (s *SwaggerSchema) ValidateObject(obj interface{}, apiVersion, fieldName, typeName string) error

type ValidateNameFunc added in v0.2.2

type ValidateNameFunc func(name string, prefix bool) (bool, string)

ValidateNameFunc validates that the provided name is valid for a given resource type. Not all resources have the same validation rules for names. Prefix is true if the name will have a value appended to it.

Jump to

Keyboard shortcuts

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