mirror of
https://git.mirrors.martin98.com/https://github.com/ceph/ceph-csi.git
synced 2025-08-20 10:09:05 +08:00
Several packages are only used while running the e2e suite. These packages are less important to update, as the they can not influence the final executable that is part of the Ceph-CSI container-image. By moving these dependencies out of the main Ceph-CSI go.mod, it is easier to identify if a reported CVE affects Ceph-CSI, or only the testing (like most of the Kubernetes CVEs). Signed-off-by: Niels de Vos <ndevos@ibm.com>
68 lines
1.5 KiB
Go
68 lines
1.5 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package telemetry
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strconv"
|
|
)
|
|
|
|
// protoInt64 represents the protobuf encoding of integers which can be either
|
|
// strings or integers.
|
|
type protoInt64 int64
|
|
|
|
// Int64 returns the protoInt64 as an int64.
|
|
func (i *protoInt64) Int64() int64 { return int64(*i) }
|
|
|
|
// UnmarshalJSON decodes both strings and integers.
|
|
func (i *protoInt64) UnmarshalJSON(data []byte) error {
|
|
if data[0] == '"' {
|
|
var str string
|
|
if err := json.Unmarshal(data, &str); err != nil {
|
|
return err
|
|
}
|
|
parsedInt, err := strconv.ParseInt(str, 10, 64)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*i = protoInt64(parsedInt)
|
|
} else {
|
|
var parsedInt int64
|
|
if err := json.Unmarshal(data, &parsedInt); err != nil {
|
|
return err
|
|
}
|
|
*i = protoInt64(parsedInt)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// protoUint64 represents the protobuf encoding of integers which can be either
|
|
// strings or integers.
|
|
type protoUint64 uint64
|
|
|
|
// Int64 returns the protoUint64 as a uint64.
|
|
func (i *protoUint64) Uint64() uint64 { return uint64(*i) }
|
|
|
|
// UnmarshalJSON decodes both strings and integers.
|
|
func (i *protoUint64) UnmarshalJSON(data []byte) error {
|
|
if data[0] == '"' {
|
|
var str string
|
|
if err := json.Unmarshal(data, &str); err != nil {
|
|
return err
|
|
}
|
|
parsedUint, err := strconv.ParseUint(str, 10, 64)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*i = protoUint64(parsedUint)
|
|
} else {
|
|
var parsedUint uint64
|
|
if err := json.Unmarshal(data, &parsedUint); err != nil {
|
|
return err
|
|
}
|
|
*i = protoUint64(parsedUint)
|
|
}
|
|
return nil
|
|
}
|