diff --git a/go.mod b/go.mod index 89dbf569f6..e80d0ffa45 100644 --- a/go.mod +++ b/go.mod @@ -133,7 +133,7 @@ require ( k8s.io/klog v0.1.0 // indirect k8s.io/kubernetes v1.12.3 yunion.io/x/executor v0.0.0-20191202093616-92e2e6119257 - yunion.io/x/jsonutils v0.0.0-20191209062838-708eb6de2e27 + yunion.io/x/jsonutils v0.0.0-20191213072101-368b77b614fc yunion.io/x/log v0.0.0-20190629062853-9f6483a7103d yunion.io/x/pkg v0.0.0-20191121110824-e03b47b93fe0 yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e diff --git a/go.sum b/go.sum index ee548b19aa..ae15909f89 100644 --- a/go.sum +++ b/go.sum @@ -662,8 +662,8 @@ yunion.io/x/executor v0.0.0-20191202093616-92e2e6119257 h1:LZ6eC1uoLDAp7NQlaCy+D yunion.io/x/executor v0.0.0-20191202093616-92e2e6119257/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws= yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051 h1:vtZw2iwGrsARNSwRTREGjmr2BWPdxbmXVkb3kI1qu28= yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= -yunion.io/x/jsonutils v0.0.0-20191209062838-708eb6de2e27 h1:t1oahStCI+EtfPJ2Tr4Are1qGj0y/NRTxoUN0NyPBnk= -yunion.io/x/jsonutils v0.0.0-20191209062838-708eb6de2e27/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= +yunion.io/x/jsonutils v0.0.0-20191213072101-368b77b614fc h1:RvAB3yUwVMx/SlxtGN64N1yMNeUcJihUrAEgfNbLSnA= +yunion.io/x/jsonutils v0.0.0-20191213072101-368b77b614fc/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= yunion.io/x/log v0.0.0-20190514041436-04ce53b17c6b h1:Z9z+7iegu0HXuL+S8taVWRd1P4b9JJOgPXIeoqYrj7c= yunion.io/x/log v0.0.0-20190514041436-04ce53b17c6b/go.mod h1:+gauLs73omeJAPlsXcevLsJLKixV+sR/E7WSYTSx1fE= yunion.io/x/log v0.0.0-20190629062853-9f6483a7103d h1:59zrDL7Ft+hDukguJRmLr/Gdu/9V75x+yX99ovZwfaA= diff --git a/vendor/modules.txt b/vendor/modules.txt index 3d9cfe549c..e21fcc87f0 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -802,7 +802,7 @@ sigs.k8s.io/yaml yunion.io/x/executor/apis yunion.io/x/executor/client yunion.io/x/executor/server -# yunion.io/x/jsonutils v0.0.0-20191209062838-708eb6de2e27 +# yunion.io/x/jsonutils v0.0.0-20191213072101-368b77b614fc yunion.io/x/jsonutils # yunion.io/x/log v0.0.0-20190629062853-9f6483a7103d yunion.io/x/log diff --git a/vendor/yunion.io/x/jsonutils/unmarshal.go b/vendor/yunion.io/x/jsonutils/unmarshal.go index b2b95f4b24..b4f27f95bd 100644 --- a/vendor/yunion.io/x/jsonutils/unmarshal.go +++ b/vendor/yunion.io/x/jsonutils/unmarshal.go @@ -361,6 +361,15 @@ func (this *JSONString) unmarshalValue(val reflect.Value) error { return this.unmarshalValue(val.Elem()) case reflect.Interface: val.Set(reflect.ValueOf(this.data)) + case reflect.Slice: + dataLen := 1 + if val.Cap() < dataLen { + newVal := reflect.MakeSlice(val.Type(), dataLen, dataLen) + val.Set(newVal) + } else if val.Len() != dataLen { + val.SetLen(dataLen) + } + return this.unmarshalValue(val.Index(0)) default: log.Errorf("JSONDict type mismatch: %s", val.Type()) return ErrTypeMismatch // fmt.Errorf("JSONString type mismatch: %s", val.Type())