mirror of
https://github.com/containers/podman.git
synced 2025-06-28 22:53:21 +08:00
fixes for pkg/machine/e2e on hyperv
some problems were found in machine tests on hyperv. in the case of rootful, it is currently not implemented. an issue #20092 has been created for that problem. there also seems to be a timezone issue between ignition and fcos right now. inquiries are in for that but no issue generated for that. this problem is not exclusive to hyperv by any means. both of the above have been skipped or commented out. otherwise, this fixes machine state reporting for consistency. Signed-off-by: Brent Baude <bbaude@redhat.com>
This commit is contained in:
@ -46,7 +46,9 @@ const (
|
|||||||
// Stopped indicates the vm has stopped.
|
// Stopped indicates the vm has stopped.
|
||||||
Stopped Status = "stopped"
|
Stopped Status = "stopped"
|
||||||
// Starting indicated the vm is in the process of starting
|
// Starting indicated the vm is in the process of starting
|
||||||
Starting Status = "starting"
|
Starting Status = "starting"
|
||||||
|
// Unknown means the state is not known
|
||||||
|
Unknown Status = "unknown"
|
||||||
DefaultMachineName string = "podman-machine-default"
|
DefaultMachineName string = "podman-machine-default"
|
||||||
apiUpTimeout = 20 * time.Second
|
apiUpTimeout = 20 * time.Second
|
||||||
)
|
)
|
||||||
|
@ -130,14 +130,19 @@ var _ = Describe("podman machine init", func() {
|
|||||||
Expect(foundMemory).To(BeNumerically(">", 3800000))
|
Expect(foundMemory).To(BeNumerically(">", 3800000))
|
||||||
Expect(foundMemory).To(BeNumerically("<", 4200000))
|
Expect(foundMemory).To(BeNumerically("<", 4200000))
|
||||||
|
|
||||||
sshTimezone := sshMachine{}
|
// TODO timezone setting is broken in FCOS rn. It is either ignition or a change in fedora.
|
||||||
timezoneSession, err := mb.setName(name).setCmd(sshTimezone.withSSHCommand([]string{"date"})).run()
|
// sshTimezone := sshMachine{}
|
||||||
Expect(err).ToNot(HaveOccurred())
|
// timezoneSession, err := mb.setName(name).setCmd(sshTimezone.withSSHCommand([]string{"date"})).run()
|
||||||
Expect(timezoneSession).To(Exit(0))
|
// Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(timezoneSession.outputToString()).To(ContainSubstring("HST"))
|
// Expect(timezoneSession).To(Exit(0))
|
||||||
|
// Expect(timezoneSession.outputToString()).To(ContainSubstring("HST"))
|
||||||
})
|
})
|
||||||
|
|
||||||
It("machine init with volume", func() {
|
It("machine init with volume", func() {
|
||||||
|
if testProvider.VMType() == machine.HyperVVirt {
|
||||||
|
Skip("volumes are not supported on hyperv yet")
|
||||||
|
}
|
||||||
|
|
||||||
tmpDir, err := os.MkdirTemp("", "")
|
tmpDir, err := os.MkdirTemp("", "")
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
_, err = os.CreateTemp(tmpDir, "example")
|
_, err = os.CreateTemp(tmpDir, "example")
|
||||||
@ -164,6 +169,10 @@ var _ = Describe("podman machine init", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("machine init rootless docker.sock check", func() {
|
It("machine init rootless docker.sock check", func() {
|
||||||
|
if testProvider.VMType() == machine.HyperVVirt {
|
||||||
|
//https://github.com/containers/podman/issues/20092
|
||||||
|
Skip("rootless is broken with hyperv")
|
||||||
|
}
|
||||||
i := initMachine{}
|
i := initMachine{}
|
||||||
name := randomString()
|
name := randomString()
|
||||||
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
|
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
|
||||||
@ -214,8 +223,9 @@ var _ = Describe("podman machine init", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("init with user mode networking ", func() {
|
It("init with user mode networking ", func() {
|
||||||
SkipIfNotWindows("setting user mode networking is only honored on Windows")
|
if testProvider.VMType() != machine.WSLVirt {
|
||||||
|
Skip("test is only supported by WSL")
|
||||||
|
}
|
||||||
i := new(initMachine)
|
i := new(initMachine)
|
||||||
name := randomString()
|
name := randomString()
|
||||||
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath).withUserModeNetworking(true)).run()
|
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath).withUserModeNetworking(true)).run()
|
||||||
|
@ -43,9 +43,11 @@ func TestMachine(t *testing.T) {
|
|||||||
RunSpecs(t, "Podman Machine tests")
|
RunSpecs(t, "Podman Machine tests")
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ = BeforeSuite(func() {
|
var testProvider machine.VirtProvider
|
||||||
|
|
||||||
testProvider, err := provider.Get()
|
var _ = BeforeSuite(func() {
|
||||||
|
var err error
|
||||||
|
testProvider, err = provider.Get()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Fail("unable to create testProvider")
|
Fail("unable to create testProvider")
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ package hyperv
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -284,3 +285,15 @@ func handlePrevError(e, prevErr error) error {
|
|||||||
}
|
}
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func stateConversion(s hypervctl.EnabledState) (machine.Status, error) {
|
||||||
|
switch s {
|
||||||
|
case hypervctl.Enabled:
|
||||||
|
return machine.Running, nil
|
||||||
|
case hypervctl.Disabled:
|
||||||
|
return machine.Stopped, nil
|
||||||
|
case hypervctl.Starting:
|
||||||
|
return machine.Starting, nil
|
||||||
|
}
|
||||||
|
return machine.Unknown, fmt.Errorf("unknown state: %q", s.String())
|
||||||
|
}
|
||||||
|
@ -283,6 +283,11 @@ func (m *HyperVMachine) Inspect() (*machine.InspectInfo, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vmState, err := stateConversion(vm.State())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return &machine.InspectInfo{
|
return &machine.InspectInfo{
|
||||||
ConfigPath: m.ConfigPath,
|
ConfigPath: m.ConfigPath,
|
||||||
ConnectionInfo: machine.ConnectionConfig{},
|
ConnectionInfo: machine.ConnectionConfig{},
|
||||||
@ -300,7 +305,7 @@ func (m *HyperVMachine) Inspect() (*machine.InspectInfo, error) {
|
|||||||
Memory: cfg.Hardware.Memory,
|
Memory: cfg.Hardware.Memory,
|
||||||
},
|
},
|
||||||
SSHConfig: m.SSHConfig,
|
SSHConfig: m.SSHConfig,
|
||||||
State: vm.State().String(),
|
State: string(vmState),
|
||||||
Rootful: m.Rootful,
|
Rootful: m.Rootful,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user