mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 05:14:54 +00:00 
			
		
		
		
	Merge pull request #64113 from juanvallejo/jvallejo/remove-uneeded-factory-methods
Automatic merge from submit-queue (batch tested with PRs 63151, 63795, 63553, 64068, 64113). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. remove LabelsForObject and ResolveImage from factory **Release note**: ```release-note NONE ``` Removes the `ResolveImage` and `LabelsForObject` methods from factory_client_access, which are not needed. cc @soltysh
This commit is contained in:
		| @@ -96,7 +96,6 @@ type ExposeServiceOptions struct { | ||||
| 	MapBasedSelectorForObject func(runtime.Object) (string, error) | ||||
| 	PortsForObject            func(runtime.Object) ([]string, error) | ||||
| 	ProtocolsForObject        func(runtime.Object) (map[string]string, error) | ||||
| 	LabelsForObject           func(runtime.Object) (map[string]string, error) | ||||
|  | ||||
| 	Namespace string | ||||
| 	Mapper    meta.RESTMapper | ||||
| @@ -200,7 +199,6 @@ func (o *ExposeServiceOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) e | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	o.LabelsForObject = f.LabelsForObject | ||||
|  | ||||
| 	o.Namespace, o.EnforceNamespace, err = f.DefaultNamespace() | ||||
| 	if err != nil { | ||||
| @@ -294,7 +292,7 @@ func (o *ExposeServiceOptions) RunExpose(cmd *cobra.Command, args []string) erro | ||||
| 		} | ||||
|  | ||||
| 		if kubectl.IsZero(params["labels"]) { | ||||
| 			labels, err := o.LabelsForObject(info.Object) | ||||
| 			labels, err := meta.NewAccessor().Labels(info.Object) | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
|   | ||||
| @@ -50,7 +50,7 @@ type SetImageOptions struct { | ||||
| 	All          bool | ||||
| 	Output       string | ||||
| 	Local        bool | ||||
| 	ResolveImage func(in string) (string, error) | ||||
| 	ResolveImage ImageResolver | ||||
|  | ||||
| 	PrintObj printers.ResourcePrinterFunc | ||||
| 	Recorder genericclioptions.Recorder | ||||
| @@ -138,7 +138,7 @@ func (o *SetImageOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [ | ||||
| 	o.UpdatePodSpecForObject = polymorphichelpers.UpdatePodSpecForObjectFn | ||||
| 	o.DryRun = cmdutil.GetDryRunFlag(cmd) | ||||
| 	o.Output = cmdutil.GetFlagString(cmd, "output") | ||||
| 	o.ResolveImage = f.ResolveImage | ||||
| 	o.ResolveImage = resolveImageFunc | ||||
|  | ||||
| 	if o.DryRun { | ||||
| 		o.PrintFlags.Complete("%s (dry run)") | ||||
| @@ -310,3 +310,13 @@ func hasWildcardKey(containerImages map[string]string) bool { | ||||
| 	_, ok := containerImages["*"] | ||||
| 	return ok | ||||
| } | ||||
|  | ||||
| // ImageResolver is a func that receives an image name, and | ||||
| // resolves it to an appropriate / compatible image name. | ||||
| // Adds flexibility for future image resolving methods. | ||||
| type ImageResolver func(in string) (string, error) | ||||
|  | ||||
| // implements ImageResolver | ||||
| func resolveImageFunc(in string) (string, error) { | ||||
| 	return in, nil | ||||
| } | ||||
|   | ||||
| @@ -86,8 +86,6 @@ type ClientAccessFactory interface { | ||||
| 	PortsForObject(object runtime.Object) ([]string, error) | ||||
| 	// ProtocolsForObject returns the <port, protocol> mapping associated with the provided object | ||||
| 	ProtocolsForObject(object runtime.Object) (map[string]string, error) | ||||
| 	// LabelsForObject returns the labels associated with the provided object | ||||
| 	LabelsForObject(object runtime.Object) (map[string]string, error) | ||||
|  | ||||
| 	// Command will stringify and return all environment arguments ie. a command run by a client | ||||
| 	// using the factory. | ||||
| @@ -105,11 +103,6 @@ type ClientAccessFactory interface { | ||||
| 	// in case the object is already resumed. | ||||
| 	Resumer(info *resource.Info) ([]byte, error) | ||||
|  | ||||
| 	// ResolveImage resolves the image names. For kubernetes this function is just | ||||
| 	// passthrough but it allows to perform more sophisticated image name resolving for | ||||
| 	// third-party vendors. | ||||
| 	ResolveImage(imageName string) (string, error) | ||||
|  | ||||
| 	// Returns the default namespace to use in cases where no | ||||
| 	// other namespace is specified and whether the namespace was | ||||
| 	// overridden. | ||||
|   | ||||
| @@ -196,10 +196,6 @@ func (f *ring0Factory) ProtocolsForObject(object runtime.Object) (map[string]str | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (f *ring0Factory) LabelsForObject(object runtime.Object) (map[string]string, error) { | ||||
| 	return meta.NewAccessor().Labels(object) | ||||
| } | ||||
|  | ||||
| // Set showSecrets false to filter out stuff like secrets. | ||||
| func (f *ring0Factory) Command(cmd *cobra.Command, showSecrets bool) string { | ||||
| 	if len(os.Args) == 0 { | ||||
| @@ -254,10 +250,6 @@ func (f *ring0Factory) Pauser(info *resource.Info) ([]byte, error) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (f *ring0Factory) ResolveImage(name string) (string, error) { | ||||
| 	return name, nil | ||||
| } | ||||
|  | ||||
| func (f *ring0Factory) Resumer(info *resource.Info) ([]byte, error) { | ||||
| 	switch obj := info.Object.(type) { | ||||
| 	case *extensions.Deployment: | ||||
|   | ||||
| @@ -21,7 +21,6 @@ import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/runtime" | ||||
| 	"k8s.io/apimachinery/pkg/runtime/schema" | ||||
| 	"k8s.io/apimachinery/pkg/util/sets" | ||||
| 	api "k8s.io/kubernetes/pkg/apis/core" | ||||
| @@ -98,57 +97,6 @@ func TestProtocolsForObject(t *testing.T) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestLabelsForObject(t *testing.T) { | ||||
| 	f := NewFactory(genericclioptions.NewTestConfigFlags()) | ||||
|  | ||||
| 	tests := []struct { | ||||
| 		name     string | ||||
| 		object   runtime.Object | ||||
| 		expected string | ||||
| 		err      error | ||||
| 	}{ | ||||
| 		{ | ||||
| 			name: "successful re-use of labels", | ||||
| 			object: &api.Service{ | ||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", Labels: map[string]string{"svc": "test"}}, | ||||
| 				TypeMeta:   metav1.TypeMeta{Kind: "Service", APIVersion: "v1"}, | ||||
| 			}, | ||||
| 			expected: "svc=test", | ||||
| 			err:      nil, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name: "empty labels", | ||||
| 			object: &api.Service{ | ||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", Labels: map[string]string{}}, | ||||
| 				TypeMeta:   metav1.TypeMeta{Kind: "Service", APIVersion: "v1"}, | ||||
| 			}, | ||||
| 			expected: "", | ||||
| 			err:      nil, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name: "nil labels", | ||||
| 			object: &api.Service{ | ||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "zen", Namespace: "test", Labels: nil}, | ||||
| 				TypeMeta:   metav1.TypeMeta{Kind: "Service", APIVersion: "v1"}, | ||||
| 			}, | ||||
| 			expected: "", | ||||
| 			err:      nil, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	for _, test := range tests { | ||||
| 		gotLabels, err := f.LabelsForObject(test.object) | ||||
| 		if err != test.err { | ||||
| 			t.Fatalf("%s: Error mismatch: Expected %v, got %v", test.name, test.err, err) | ||||
| 		} | ||||
| 		got := kubectl.MakeLabels(gotLabels) | ||||
| 		if test.expected != got { | ||||
| 			t.Fatalf("%s: Labels mismatch! Expected %s, got %s", test.name, test.expected, got) | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestCanBeExposed(t *testing.T) { | ||||
| 	factory := NewFactory(genericclioptions.NewTestConfigFlags()) | ||||
| 	tests := []struct { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user