[VOL-5051] - Build and deploy voltctl
[VOL-5152]
[VOL-4961]
[VOL-5063]
[VOL-4966]
[VOL-4893]
[VOL-4906]
go.mod
go.sum
vendor/modules.txt
------------------
o Update voltha-lib-go dep to 7.5.3
o Update voltha-protos dep to 5.4.11
o make mod-update
Makefile
makefiles/
o Add more repo:onf-make makefile logic
o make LOCAL_FIX_PERMS=1 mod-update need to work around docker perm problems.
internal/
pkg/
vendor/
---------
o Update copyright ending date to span 2024.
o make mod-update to regenerate vendor/
Change-Id: Ib89fd6a9cc15c7e08b1274b110dd8141832557e9
diff --git a/vendor/github.com/jhump/protoreflect/dynamic/json.go b/vendor/github.com/jhump/protoreflect/dynamic/json.go
index 7dfae09..02c8298 100644
--- a/vendor/github.com/jhump/protoreflect/dynamic/json.go
+++ b/vendor/github.com/jhump/protoreflect/dynamic/json.go
@@ -114,6 +114,10 @@
}
func (m *Message) marshalJSON(b *indentBuffer, opts *jsonpb.Marshaler) error {
+ if m == nil {
+ _, err := b.WriteString("null")
+ return err
+ }
if r, changed := wrapResolver(opts.AnyResolver, m.mf, m.md.GetFile()); changed {
newOpts := *opts
newOpts.AnyResolver = r
@@ -364,7 +368,7 @@
default:
return fmt.Errorf("invalid map key value: %v (%v)", mk, rk.Type())
}
- err := writeString(b, strkey)
+ err := writeJsonString(b, strkey)
if err != nil {
return err
}
@@ -430,44 +434,49 @@
return writeJsonString(b, rv.String())
default:
// must be a message
+ if isNil(v) {
+ _, err := b.WriteString("null")
+ return err
+ }
+
if dm, ok := v.(*Message); ok {
return dm.marshalJSON(b, opts)
+ }
+
+ var err error
+ if b.indentCount <= 0 || len(b.indent) == 0 {
+ err = opts.Marshal(b, v.(proto.Message))
} else {
- var err error
- if b.indentCount <= 0 || len(b.indent) == 0 {
- err = opts.Marshal(b, v.(proto.Message))
- } else {
- str, err := opts.MarshalToString(v.(proto.Message))
- if err != nil {
- return err
+ str, err := opts.MarshalToString(v.(proto.Message))
+ if err != nil {
+ return err
+ }
+ indent := strings.Repeat(b.indent, b.indentCount)
+ pos := 0
+ // add indention prefix to each line
+ for pos < len(str) {
+ start := pos
+ nextPos := strings.Index(str[pos:], "\n")
+ if nextPos == -1 {
+ nextPos = len(str)
+ } else {
+ nextPos = pos + nextPos + 1 // include newline
}
- indent := strings.Repeat(b.indent, b.indentCount)
- pos := 0
- // add indention prefix to each line
- for pos < len(str) {
- start := pos
- nextPos := strings.Index(str[pos:], "\n")
- if nextPos == -1 {
- nextPos = len(str)
- } else {
- nextPos = pos + nextPos + 1 // include newline
- }
- line := str[start:nextPos]
- if pos > 0 {
- _, err = b.WriteString(indent)
- if err != nil {
- return err
- }
- }
- _, err = b.WriteString(line)
+ line := str[start:nextPos]
+ if pos > 0 {
+ _, err = b.WriteString(indent)
if err != nil {
return err
}
- pos = nextPos
}
+ _, err = b.WriteString(line)
+ if err != nil {
+ return err
+ }
+ pos = nextPos
}
- return err
}
+ return err
}
}
@@ -665,8 +674,10 @@
}
func isWellKnownListValue(fd *desc.FieldDescriptor) bool {
+ // we look for ListValue; but we also look for Value, which can be assigned a ListValue
return !fd.IsRepeated() && fd.GetType() == descriptor.FieldDescriptorProto_TYPE_MESSAGE &&
- fd.GetMessageType().GetFullyQualifiedName() == "google.protobuf.ListValue"
+ (fd.GetMessageType().GetFullyQualifiedName() == "google.protobuf.ListValue" ||
+ fd.GetMessageType().GetFullyQualifiedName() == "google.protobuf.Value")
}
func unmarshalJsField(fd *desc.FieldDescriptor, r *jsReader, mf *MessageFactory, opts *jsonpb.Unmarshaler) (interface{}, error) {
@@ -698,11 +709,11 @@
return nil, err
}
for r.hasNext() {
- kk, err := unmarshalJsFieldElement(keyType, r, mf, opts)
+ kk, err := unmarshalJsFieldElement(keyType, r, mf, opts, false)
if err != nil {
return nil, err
}
- vv, err := unmarshalJsFieldElement(valueType, r, mf, opts)
+ vv, err := unmarshalJsFieldElement(valueType, r, mf, opts, true)
if err != nil {
return nil, err
}
@@ -725,7 +736,7 @@
var v interface{}
for r.hasNext() {
var err error
- v, err = unmarshalJsFieldElement(fd, r, mf, opts)
+ v, err = unmarshalJsFieldElement(fd, r, mf, opts, false)
if err != nil {
return nil, err
}
@@ -761,7 +772,7 @@
// binary wire format that supports changing an optional field to repeated and vice versa.
// If the field is repeated, we store value as singleton slice of that one value.
- v, err := unmarshalJsFieldElement(fd, r, mf, opts)
+ v, err := unmarshalJsFieldElement(fd, r, mf, opts, false)
if err != nil {
return nil, err
}
@@ -776,7 +787,7 @@
}
}
-func unmarshalJsFieldElement(fd *desc.FieldDescriptor, r *jsReader, mf *MessageFactory, opts *jsonpb.Unmarshaler) (interface{}, error) {
+func unmarshalJsFieldElement(fd *desc.FieldDescriptor, r *jsReader, mf *MessageFactory, opts *jsonpb.Unmarshaler, allowNilMessage bool) (interface{}, error) {
t, err := r.peek()
if err != nil {
return nil, err
@@ -785,6 +796,13 @@
switch fd.GetType() {
case descriptor.FieldDescriptorProto_TYPE_MESSAGE,
descriptor.FieldDescriptorProto_TYPE_GROUP:
+
+ if t == nil && allowNilMessage {
+ // if json is simply "null" return a nil pointer
+ r.poll()
+ return nilMessage(fd.GetMessageType()), nil
+ }
+
m := mf.NewMessage(fd.GetMessageType())
if dm, ok := m.(*Message); ok {
if err := dm.unmarshalJson(r, opts); err != nil {