Skip to content

Commit bcc8e7e

Browse files
committed
fix version encoding error
1 parent b9fd88b commit bcc8e7e

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

pkg/registrar_gateway/registrar_gateway.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"fmt"
1111
"io"
1212
"net/http"
13+
"strings"
1314
"sync"
1415
"time"
1516

@@ -437,10 +438,26 @@ func (r *registrarGateway) getZosVersion(url string) (string, error) {
437438

438439
defer resp.Body.Close()
439440

440-
var version string
441-
err = json.NewDecoder(resp.Body).Decode(&version)
441+
var versionString string
442+
err = json.NewDecoder(resp.Body).Decode(&versionString)
443+
if err != nil {
444+
return "", err
445+
}
446+
447+
versionBytes, err := base64.StdEncoding.DecodeString(versionString)
448+
if err != nil {
449+
return "", err
450+
}
451+
452+
correctedJSON := strings.ReplaceAll(string(versionBytes), "'", "\"")
453+
454+
var version types.ZosVersion
455+
err = json.NewDecoder(strings.NewReader(correctedJSON)).Decode(&version)
456+
if err != nil {
457+
return "", err
458+
}
442459

443-
return version, err
460+
return version.Version, err
444461
}
445462

446463
func (r *registrarGateway) createNode(url string, node types.UpdateNodeRequest) (nodeID uint64, err error) {

pkg/types/types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ type UptimeReport struct {
8181
}
8282

8383
type ZosVersion struct {
84-
Version string `json:"version"`
84+
Version string `json:"version"`
85+
SafeToUpgrade bool `json:"safe_to_upgrade"`
8586
}
8687

8788
type Interface struct {

0 commit comments

Comments
 (0)