mirror of https://github.com/jetkvm/kvm.git
fix: do not set zero values in RPCState
This commit is contained in:
parent
c19bd0d46b
commit
e1943c89e8
|
|
@ -36,6 +36,18 @@ type RPCState struct {
|
||||||
SystemUpdatedAt *time.Time `json:"systemUpdatedAt,omitempty"`
|
SystemUpdatedAt *time.Time `json:"systemUpdatedAt,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setTimeIfNotZero(rpcVal reflect.Value, i int, status time.Time) {
|
||||||
|
if !status.IsZero() {
|
||||||
|
rpcVal.Field(i).Set(reflect.ValueOf(&status))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func setFloat32IfNotZero(rpcVal reflect.Value, i int, status float32) {
|
||||||
|
if status != 0 {
|
||||||
|
rpcVal.Field(i).Set(reflect.ValueOf(&status))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// applyComponentStatusToRPCState uses reflection to map componentUpdateStatus fields to RPCState
|
// applyComponentStatusToRPCState uses reflection to map componentUpdateStatus fields to RPCState
|
||||||
func applyComponentStatusToRPCState(component string, status componentUpdateStatus, rpcState *RPCState) {
|
func applyComponentStatusToRPCState(component string, status componentUpdateStatus, rpcState *RPCState) {
|
||||||
prefix := componentFieldMap[component]
|
prefix := componentFieldMap[component]
|
||||||
|
|
@ -55,17 +67,17 @@ func applyComponentStatusToRPCState(component string, status componentUpdateStat
|
||||||
|
|
||||||
switch rpcFieldName {
|
switch rpcFieldName {
|
||||||
case "DownloadProgress":
|
case "DownloadProgress":
|
||||||
rpcVal.Field(i).Set(reflect.ValueOf(&status.downloadProgress))
|
setFloat32IfNotZero(rpcVal, i, status.downloadProgress)
|
||||||
case "DownloadFinishedAt":
|
case "DownloadFinishedAt":
|
||||||
rpcVal.Field(i).Set(reflect.ValueOf(&status.downloadFinishedAt))
|
setTimeIfNotZero(rpcVal, i, status.downloadFinishedAt)
|
||||||
case "VerificationProgress":
|
case "VerificationProgress":
|
||||||
rpcVal.Field(i).Set(reflect.ValueOf(&status.verificationProgress))
|
setFloat32IfNotZero(rpcVal, i, status.verificationProgress)
|
||||||
case "VerifiedAt":
|
case "VerifiedAt":
|
||||||
rpcVal.Field(i).Set(reflect.ValueOf(&status.verifiedAt))
|
setTimeIfNotZero(rpcVal, i, status.verifiedAt)
|
||||||
case "UpdateProgress":
|
case "UpdateProgress":
|
||||||
rpcVal.Field(i).Set(reflect.ValueOf(&status.updateProgress))
|
setFloat32IfNotZero(rpcVal, i, status.updateProgress)
|
||||||
case "UpdatedAt":
|
case "UpdatedAt":
|
||||||
rpcVal.Field(i).Set(reflect.ValueOf(&status.updatedAt))
|
setTimeIfNotZero(rpcVal, i, status.updatedAt)
|
||||||
case "UpdatePending":
|
case "UpdatePending":
|
||||||
rpcVal.Field(i).SetBool(status.pending)
|
rpcVal.Field(i).SetBool(status.pending)
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue