published by bot

copied from https://github.com/kubernetes/kubernetes.git
last commit is bf9a62035de96a2f8a82f7b2f92064ca9cc1aae1
This commit is contained in:
Kubernetes Publisher 2016-09-08 15:44:51 +00:00
parent e1a6aa6644
commit 93fcd40297
12 changed files with 48 additions and 15 deletions

View File

@ -1,6 +1,6 @@
{ {
"ImportPath": "k8s.io/client-go/1.4", "ImportPath": "k8s.io/client-go/1.4",
"GoVersion": "go1.6", "GoVersion": "go1.7",
"GodepVersion": "v74", "GodepVersion": "v74",
"Packages": [ "Packages": [
"./..." "./..."

View File

@ -18,6 +18,7 @@ package fake
import ( import (
"k8s.io/client-go/1.4/pkg/api/v1" "k8s.io/client-go/1.4/pkg/api/v1"
policy "k8s.io/client-go/1.4/pkg/apis/policy/v1alpha1"
"k8s.io/client-go/1.4/rest" "k8s.io/client-go/1.4/rest"
"k8s.io/client-go/1.4/testing" "k8s.io/client-go/1.4/testing"
) )
@ -44,3 +45,14 @@ func (c *FakePods) GetLogs(name string, opts *v1.PodLogOptions) *rest.Request {
_, _ = c.Fake.Invokes(action, &v1.Pod{}) _, _ = c.Fake.Invokes(action, &v1.Pod{})
return &rest.Request{} return &rest.Request{}
} }
func (c *FakePods) Evict(eviction *policy.Eviction) error {
action := testing.CreateActionImpl{}
action.Verb = "create"
action.Resource = podsResource
action.Subresource = "evictions"
action.Object = eviction
_, err := c.Fake.Invokes(action, eviction)
return err
}

View File

@ -19,12 +19,14 @@ package v1
import ( import (
"k8s.io/client-go/1.4/pkg/api" "k8s.io/client-go/1.4/pkg/api"
"k8s.io/client-go/1.4/pkg/api/v1" "k8s.io/client-go/1.4/pkg/api/v1"
policy "k8s.io/client-go/1.4/pkg/apis/policy/v1alpha1"
"k8s.io/client-go/1.4/rest" "k8s.io/client-go/1.4/rest"
) )
// The PodExpansion interface allows manually adding extra methods to the PodInterface. // The PodExpansion interface allows manually adding extra methods to the PodInterface.
type PodExpansion interface { type PodExpansion interface {
Bind(binding *v1.Binding) error Bind(binding *v1.Binding) error
Evict(eviction *policy.Eviction) error
GetLogs(name string, opts *v1.PodLogOptions) *rest.Request GetLogs(name string, opts *v1.PodLogOptions) *rest.Request
} }
@ -33,6 +35,10 @@ func (c *pods) Bind(binding *v1.Binding) error {
return c.client.Post().Namespace(c.ns).Resource("pods").Name(binding.Name).SubResource("binding").Body(binding).Do().Error() return c.client.Post().Namespace(c.ns).Resource("pods").Name(binding.Name).SubResource("binding").Body(binding).Do().Error()
} }
func (c *pods) Evict(eviction *policy.Eviction) error {
return c.client.Post().Namespace(c.ns).Resource("pods").Name(eviction.Name).SubResource("eviction").Body(eviction).Do().Error()
}
// Get constructs a request for getting the logs for a pod // Get constructs a request for getting the logs for a pod
func (c *pods) GetLogs(name string, opts *v1.PodLogOptions) *rest.Request { func (c *pods) GetLogs(name string, opts *v1.PodLogOptions) *rest.Request {
return c.client.Get().Namespace(c.ns).Name(name).Resource("pods").SubResource("log").VersionedParams(opts, api.ParameterCodec) return c.client.Get().Namespace(c.ns).Name(name).Resource("pods").SubResource("log").VersionedParams(opts, api.ParameterCodec)

View File

@ -3435,9 +3435,11 @@ func validateEndpointAddress(address *api.EndpointAddress, fldPath *field.Path,
if len(address.Hostname) > 0 { if len(address.Hostname) > 0 {
allErrs = append(allErrs, ValidateDNS1123Label(address.Hostname, fldPath.Child("hostname"))...) allErrs = append(allErrs, ValidateDNS1123Label(address.Hostname, fldPath.Child("hostname"))...)
} }
// During endpoint update, validate NodeName is DNS1123 compliant and transition rules allow the update // During endpoint update, verify that NodeName is a DNS subdomain and transition rules allow the update
if address.NodeName != nil { if address.NodeName != nil {
allErrs = append(allErrs, ValidateDNS1123Label(*address.NodeName, fldPath.Child("nodeName"))...) for _, msg := range ValidateNodeName(*address.NodeName, false) {
allErrs = append(allErrs, field.Invalid(fldPath.Child("nodeName"), *address.NodeName, msg))
}
} }
allErrs = append(allErrs, validateEpAddrNodeNameTransition(address, ipToNodeName, fldPath.Child("nodeName"))...) allErrs = append(allErrs, validateEpAddrNodeNameTransition(address, ipToNodeName, fldPath.Child("nodeName"))...)
if len(allErrs) > 0 { if len(allErrs) > 0 {

View File

@ -50,6 +50,7 @@ func addKnownTypes(scheme *runtime.Scheme) error {
&PetSet{}, &PetSet{},
&PetSetList{}, &PetSetList{},
&api.ListOptions{}, &api.ListOptions{},
&api.DeleteOptions{},
) )
return nil return nil
} }

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
// +groupName=certificates.k8s.io
// +k8s:deepcopy-gen=package,register // +k8s:deepcopy-gen=package,register
// +groupName=certificates.k8s.io
package certificates package certificates

View File

@ -72,7 +72,7 @@ type PodDisruptionBudgetList struct {
// Eviction evicts a pod from its node subject to certain policies and safety constraints. // Eviction evicts a pod from its node subject to certain policies and safety constraints.
// This is a subresource of Pod. A request to cause such an eviction is // This is a subresource of Pod. A request to cause such an eviction is
// created by POSTing to .../pods/foo/evictions. // created by POSTing to .../pods/<pod name>/evictions.
type Eviction struct { type Eviction struct {
unversioned.TypeMeta `json:",inline"` unversioned.TypeMeta `json:",inline"`

View File

@ -32,7 +32,7 @@ option go_package = "v1alpha1";
// Eviction evicts a pod from its node subject to certain policies and safety constraints. // Eviction evicts a pod from its node subject to certain policies and safety constraints.
// This is a subresource of Pod. A request to cause such an eviction is // This is a subresource of Pod. A request to cause such an eviction is
// created by POSTing to .../pods/foo/evictions. // created by POSTing to .../pods/<pod name>/evictions.
message Eviction { message Eviction {
// ObjectMeta describes the pod that is being evicted. // ObjectMeta describes the pod that is being evicted.
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;

View File

@ -71,7 +71,7 @@ type PodDisruptionBudgetList struct {
// Eviction evicts a pod from its node subject to certain policies and safety constraints. // Eviction evicts a pod from its node subject to certain policies and safety constraints.
// This is a subresource of Pod. A request to cause such an eviction is // This is a subresource of Pod. A request to cause such an eviction is
// created by POSTing to .../pods/foo/evictions. // created by POSTing to .../pods/<pod name>/evictions.
type Eviction struct { type Eviction struct {
unversioned.TypeMeta `json:",inline"` unversioned.TypeMeta `json:",inline"`

View File

@ -28,7 +28,7 @@ package v1alpha1
// AUTO-GENERATED FUNCTIONS START HERE // AUTO-GENERATED FUNCTIONS START HERE
var map_Eviction = map[string]string{ var map_Eviction = map[string]string{
"": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/foo/evictions.", "": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.",
"metadata": "ObjectMeta describes the pod that is being evicted.", "metadata": "ObjectMeta describes the pod that is being evicted.",
"deleteOptions": "DeleteOptions may be provided", "deleteOptions": "DeleteOptions may be provided",
} }

View File

@ -31,11 +31,23 @@ type Aggregate interface {
// NewAggregate converts a slice of errors into an Aggregate interface, which // NewAggregate converts a slice of errors into an Aggregate interface, which
// is itself an implementation of the error interface. If the slice is empty, // is itself an implementation of the error interface. If the slice is empty,
// this returns nil. // this returns nil.
// It will check if any of the element of input error list is nil, to avoid
// nil pointer panic when call Error().
func NewAggregate(errlist []error) Aggregate { func NewAggregate(errlist []error) Aggregate {
if len(errlist) == 0 { if len(errlist) == 0 {
return nil return nil
} }
return aggregate(errlist) // In case of input error list contains nil
var errs []error
for _, e := range errlist {
if e != nil {
errs = append(errs, e)
}
}
if len(errs) == 0 {
return nil
}
return aggregate(errs)
} }
// This helper implements the error and Errors interfaces. Keeping it private // This helper implements the error and Errors interfaces. Keeping it private

View File

@ -55,7 +55,7 @@ type Reactor interface {
type WatchReactor interface { type WatchReactor interface {
// Handles indicates whether or not this Reactor deals with a given action // Handles indicates whether or not this Reactor deals with a given action
Handles(action Action) bool Handles(action Action) bool
// React handles a watch action and returns results. It may choose to delegate by indicated handled=false // React handles a watch action and returns results. It may choose to delegate by indicating handled=false
React(action Action) (handled bool, ret watch.Interface, err error) React(action Action) (handled bool, ret watch.Interface, err error)
} }
@ -63,20 +63,20 @@ type WatchReactor interface {
type ProxyReactor interface { type ProxyReactor interface {
// Handles indicates whether or not this Reactor deals with a given action // Handles indicates whether or not this Reactor deals with a given action
Handles(action Action) bool Handles(action Action) bool
// React handles a watch action and returns results. It may choose to delegate by indicated handled=false // React handles a watch action and returns results. It may choose to delegate by indicating handled=false
React(action Action) (handled bool, ret rest.ResponseWrapper, err error) React(action Action) (handled bool, ret rest.ResponseWrapper, err error)
} }
// ReactionFunc is a function that returns an object or error for a given Action. If "handled" is false, // ReactionFunc is a function that returns an object or error for a given Action. If "handled" is false,
// then the test client will continue ignore the results and continue to the next ReactionFunc // then the test client will ignore the results and continue to the next ReactionFunc
type ReactionFunc func(action Action) (handled bool, ret runtime.Object, err error) type ReactionFunc func(action Action) (handled bool, ret runtime.Object, err error)
// WatchReactionFunc is a function that returns a watch interface. If "handled" is false, // WatchReactionFunc is a function that returns a watch interface. If "handled" is false,
// then the test client will continue ignore the results and continue to the next ReactionFunc // then the test client will ignore the results and continue to the next ReactionFunc
type WatchReactionFunc func(action Action) (handled bool, ret watch.Interface, err error) type WatchReactionFunc func(action Action) (handled bool, ret watch.Interface, err error)
// ProxyReactionFunc is a function that returns a ResponseWrapper interface for a given Action. If "handled" is false, // ProxyReactionFunc is a function that returns a ResponseWrapper interface for a given Action. If "handled" is false,
// then the test client will continue ignore the results and continue to the next ProxyReactionFunc // then the test client will ignore the results and continue to the next ProxyReactionFunc
type ProxyReactionFunc func(action Action) (handled bool, ret rest.ResponseWrapper, err error) type ProxyReactionFunc func(action Action) (handled bool, ret rest.ResponseWrapper, err error)
// AddReactor appends a reactor to the end of the chain // AddReactor appends a reactor to the end of the chain
@ -184,7 +184,7 @@ func (c *Fake) ClearActions() {
c.actions = make([]Action, 0) c.actions = make([]Action, 0)
} }
// Actions returns a chronologically ordered slice fake actions called on the fake client // Actions returns a chronologically ordered slice fake actions called on the fake client.
func (c *Fake) Actions() []Action { func (c *Fake) Actions() []Action {
c.RLock() c.RLock()
defer c.RUnlock() defer c.RUnlock()