mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #42489 from ymqytw/switch_json
Automatic merge from submit-queue switch to k8s json to avoid number decoding issue Fixes #42488 Fixes #42282 > use "k8s.io/apimachinery/pkg/util/json" to avoid number conversion issues @liggitt Same reason as https://github.com/kubernetes/kubernetes/pull/40666#pullrequestreview-19186078 ```release-note NONE ```
This commit is contained in:
commit
4c4c9e47f3
@ -17,12 +17,12 @@ limitations under the License.
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"k8s.io/apimachinery/pkg/conversion/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/apimachinery/pkg/util/json"
|
||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||
|
||||
"github.com/evanphx/json-patch"
|
||||
|
@ -284,6 +284,37 @@ func (tc *patchTestCase) Run(t *testing.T) {
|
||||
|
||||
}
|
||||
|
||||
func TestNumberConversion(t *testing.T) {
|
||||
codec := api.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"})
|
||||
|
||||
currentVersionedObject := &v1.Service{
|
||||
TypeMeta: metav1.TypeMeta{Kind: "Service", APIVersion: "v1"},
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "test-service"},
|
||||
Spec: v1.ServiceSpec{
|
||||
Ports: []v1.ServicePort{
|
||||
{
|
||||
Port: 80,
|
||||
Protocol: "TCP",
|
||||
NodePort: 31678,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
versionedObjToUpdate := &v1.Service{}
|
||||
versionedObj := &v1.Service{}
|
||||
|
||||
patchJS := []byte(`{"spec":{"ports":[{"port":80,"nodePort":31789}]}}`)
|
||||
|
||||
_, _, err := strategicPatchObject(codec, currentVersionedObject, patchJS, versionedObjToUpdate, versionedObj)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ports := versionedObjToUpdate.Spec.Ports
|
||||
if len(ports) != 1 || ports[0].Port != 80 || ports[0].NodePort != 31789 {
|
||||
t.Fatal(errors.New("Ports failed to merge because of number conversion issue"))
|
||||
}
|
||||
}
|
||||
|
||||
func TestPatchResourceWithVersionConflict(t *testing.T) {
|
||||
namespace := "bar"
|
||||
name := "foo"
|
||||
|
1
vendor/BUILD
vendored
1
vendor/BUILD
vendored
@ -10026,6 +10026,7 @@ go_library(
|
||||
"//vendor:k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
||||
"//vendor:k8s.io/apimachinery/pkg/types",
|
||||
"//vendor:k8s.io/apimachinery/pkg/util/httpstream",
|
||||
"//vendor:k8s.io/apimachinery/pkg/util/json",
|
||||
"//vendor:k8s.io/apimachinery/pkg/util/mergepatch",
|
||||
"//vendor:k8s.io/apimachinery/pkg/util/net",
|
||||
"//vendor:k8s.io/apimachinery/pkg/util/runtime",
|
||||
|
Loading…
Reference in New Issue
Block a user