mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-04 15:05:20 +00:00
Remove runtime.Typer, reduce to ObjectKinds(1) (3)
Remove the unnecessary variants, which avoids allocations in several core paths.
This commit is contained in:
@@ -419,11 +419,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
}
|
||||
return kubectl.MakeLabels(t.Spec.Selector.MatchLabels), nil
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(object)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return "", fmt.Errorf("cannot extract pod selector from %v", gvk)
|
||||
return "", fmt.Errorf("cannot extract pod selector from %v", gvks[0])
|
||||
}
|
||||
},
|
||||
PortsForObject: func(object runtime.Object) ([]string, error) {
|
||||
@@ -440,11 +440,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
case *extensions.ReplicaSet:
|
||||
return getPorts(t.Spec.Template.Spec), nil
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(object)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, fmt.Errorf("cannot extract ports from %v", gvk)
|
||||
return nil, fmt.Errorf("cannot extract ports from %v", gvks[0])
|
||||
}
|
||||
},
|
||||
ProtocolsForObject: func(object runtime.Object) (map[string]string, error) {
|
||||
@@ -461,11 +461,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
case *extensions.ReplicaSet:
|
||||
return getProtocols(t.Spec.Template.Spec), nil
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(object)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, fmt.Errorf("cannot extract protocols from %v", gvk)
|
||||
return nil, fmt.Errorf("cannot extract protocols from %v", gvks[0])
|
||||
}
|
||||
},
|
||||
LabelsForObject: func(object runtime.Object) (map[string]string, error) {
|
||||
@@ -523,11 +523,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
return c.Pods(pod.Namespace).GetLogs(pod.Name, opts), nil
|
||||
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(object)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, fmt.Errorf("cannot get the logs from %v", gvk)
|
||||
return nil, fmt.Errorf("cannot get the logs from %v", gvks[0])
|
||||
}
|
||||
},
|
||||
PauseObject: func(object runtime.Object) (bool, error) {
|
||||
@@ -545,11 +545,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
_, err := c.Extensions().Deployments(t.Namespace).Update(t)
|
||||
return false, err
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(object)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
return false, fmt.Errorf("cannot pause %v", gvk)
|
||||
return false, fmt.Errorf("cannot pause %v", gvks[0])
|
||||
}
|
||||
},
|
||||
ResumeObject: func(object runtime.Object) (bool, error) {
|
||||
@@ -567,11 +567,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
_, err := c.Extensions().Deployments(t.Namespace).Update(t)
|
||||
return false, err
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(object)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
return false, fmt.Errorf("cannot resume %v", gvk)
|
||||
return false, fmt.Errorf("cannot resume %v", gvks[0])
|
||||
}
|
||||
},
|
||||
Scaler: func(mapping *meta.RESTMapping) (kubectl.Scaler, error) {
|
||||
@@ -704,11 +704,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
case *api.Pod:
|
||||
return t, nil
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(object)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, fmt.Errorf("cannot attach to %v: not implemented", gvk)
|
||||
return nil, fmt.Errorf("cannot attach to %v: not implemented", gvks[0])
|
||||
}
|
||||
},
|
||||
// UpdatePodSpecForObject update the pod specification for the provided object
|
||||
@@ -1087,12 +1087,12 @@ func DefaultClientConfig(flags *pflag.FlagSet) clientcmd.ClientConfig {
|
||||
|
||||
// PrintObject prints an api object given command line flags to modify the output format
|
||||
func (f *Factory) PrintObject(cmd *cobra.Command, mapper meta.RESTMapper, obj runtime.Object, out io.Writer) error {
|
||||
gvk, err := api.Scheme.ObjectKind(obj)
|
||||
gvks, _, err := api.Scheme.ObjectKinds(obj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
mapping, err := mapper.RESTMapping(gvk.GroupKind())
|
||||
mapping, err := mapper.RESTMapping(gvks[0].GroupKind())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user