From b6089a5e9967b239348afcce452c8aa82df53ccf Mon Sep 17 00:00:00 2001
From: baude <baude@redhat.com>
Date: Mon, 29 Mar 2021 15:21:39 -0500
Subject: resolve proper aarch64 image names

when automatically downloading fcos for the Apple M1, we needed
to replace a statically defined URL with the dynamically
determined one.

also, it appears boolean qemu options `server` and `onwait` are
not defined as `server=on` and `wait=off`.

[NO TESTS NEEDED]

Signed-off-by: baude <bbaude@redhat.com>
---
 pkg/machine/fcos_arm64.go   | 16 ++++++++++++----
 pkg/machine/qemu/machine.go |  4 ++--
 2 files changed, 14 insertions(+), 6 deletions(-)

(limited to 'pkg/machine')

diff --git a/pkg/machine/fcos_arm64.go b/pkg/machine/fcos_arm64.go
index 4d7e4e4db..f5cd5a505 100644
--- a/pkg/machine/fcos_arm64.go
+++ b/pkg/machine/fcos_arm64.go
@@ -2,9 +2,9 @@ package machine
 
 import (
 	"encoding/json"
-	"fmt"
 	"io/ioutil"
 	"net/http"
+	url2 "net/url"
 
 	"github.com/sirupsen/logrus"
 )
@@ -14,9 +14,7 @@ const aarchBaseURL = "https://fedorapeople.org/groups/fcos-images/builds/latest/
 // Total hack until automation is possible.
 // We need a proper json file at least to automate
 func getFCOSDownload() (*fcosDownloadInfo, error) {
-
 	meta := Build{}
-	fmt.Println(aarchBaseURL + "meta.json")
 	resp, err := http.Get(aarchBaseURL + "meta.json")
 	if err != nil {
 		return nil, err
@@ -33,8 +31,18 @@ func getFCOSDownload() (*fcosDownloadInfo, error) {
 	if err := json.Unmarshal(body, &meta); err != nil {
 		return nil, err
 	}
+	pathURL, err := url2.Parse(meta.BuildArtifacts.Qemu.Path)
+	if err != nil {
+		return nil, err
+	}
+
+	baseURL, err := url2.Parse(aarchBaseURL)
+	if err != nil {
+		return nil, err
+	}
+	pullURL := baseURL.ResolveReference(pathURL)
 	return &fcosDownloadInfo{
-		Location:  aarchBaseURL + "/" + meta.BuildArtifacts.Qemu.Path,
+		Location:  pullURL.String(),
 		Release:   "",
 		Sha256Sum: meta.BuildArtifacts.Qemu.Sha256,
 	}, nil
diff --git a/pkg/machine/qemu/machine.go b/pkg/machine/qemu/machine.go
index fe155750f..dddf9cf94 100644
--- a/pkg/machine/qemu/machine.go
+++ b/pkg/machine/qemu/machine.go
@@ -83,7 +83,7 @@ func NewMachine(opts machine.InitOptions) (machine.VM, error) {
 		return nil, err
 	}
 	vm.QMPMonitor = monitor
-	cmd = append(cmd, []string{"-qmp", monitor.Network + ":/" + monitor.Address + ",server,nowait"}...)
+	cmd = append(cmd, []string{"-qmp", monitor.Network + ":/" + monitor.Address + ",server=on,wait=off"}...)
 
 	// Add network
 	cmd = append(cmd, "-nic", "user,model=virtio,hostfwd=tcp::"+strconv.Itoa(vm.Port)+"-:22")
@@ -96,7 +96,7 @@ func NewMachine(opts machine.InitOptions) (machine.VM, error) {
 	// Add serial port for readiness
 	cmd = append(cmd, []string{
 		"-device", "virtio-serial",
-		"-chardev", "socket,path=" + virtualSocketPath + ",server,nowait,id=" + vm.Name + "_ready",
+		"-chardev", "socket,path=" + virtualSocketPath + ",server=on,wait=off,id=" + vm.Name + "_ready",
 		"-device", "virtserialport,chardev=" + vm.Name + "_ready" + ",name=org.fedoraproject.port.0"}...)
 	vm.CmdLine = cmd
 	return vm, nil
-- 
cgit v1.2.3-54-g00ecf