summaryrefslogtreecommitdiff
path: root/pkg/machine/e2e/config_init.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/machine/e2e/config_init.go')
-rw-r--r--pkg/machine/e2e/config_init.go101
1 files changed, 101 insertions, 0 deletions
diff --git a/pkg/machine/e2e/config_init.go b/pkg/machine/e2e/config_init.go
new file mode 100644
index 000000000..55218221d
--- /dev/null
+++ b/pkg/machine/e2e/config_init.go
@@ -0,0 +1,101 @@
+package e2e
+
+import (
+ "strconv"
+)
+
+type initMachine struct {
+ /*
+ --cpus uint Number of CPUs (default 1)
+ --disk-size uint Disk size in GB (default 100)
+ --ignition-path string Path to ignition file
+ --image-path string Path to qcow image (default "testing")
+ -m, --memory uint Memory in MB (default 2048)
+ --now Start machine now
+ --rootful Whether this machine should prefer rootful container exectution
+ --timezone string Set timezone (default "local")
+ -v, --volume stringArray Volumes to mount, source:target
+ --volume-driver string Optional volume driver
+
+ */
+ cpus *uint
+ diskSize *uint
+ ignitionPath string
+ imagePath string
+ memory *uint
+ now bool
+ timezone string
+ volumes []string
+
+ cmd []string
+}
+
+func (i *initMachine) buildCmd(m *machineTestBuilder) []string {
+ cmd := []string{"machine", "init"}
+ if i.cpus != nil {
+ cmd = append(cmd, "--cpus", strconv.Itoa(int(*i.cpus)))
+ }
+ if i.diskSize != nil {
+ cmd = append(cmd, "--disk-size", strconv.Itoa(int(*i.diskSize)))
+ }
+ if l := len(i.ignitionPath); l > 0 {
+ cmd = append(cmd, "--ignition-path", i.ignitionPath)
+ }
+ if l := len(i.imagePath); l > 0 {
+ cmd = append(cmd, "--image-path", i.imagePath)
+ }
+ if i.memory != nil {
+ cmd = append(cmd, "--memory", strconv.Itoa(int(*i.memory)))
+ }
+ if l := len(i.timezone); l > 0 {
+ cmd = append(cmd, "--timezone", i.timezone)
+ }
+ for _, v := range i.volumes {
+ cmd = append(cmd, "--volume", v)
+ }
+ if i.now {
+ cmd = append(cmd, "--now")
+ }
+ cmd = append(cmd, m.name)
+ i.cmd = cmd
+ return cmd
+}
+
+func (i *initMachine) withCPUs(num uint) *initMachine {
+ i.cpus = &num
+ return i
+}
+func (i *initMachine) withDiskSize(size uint) *initMachine {
+ i.diskSize = &size
+ return i
+}
+
+func (i *initMachine) withIgnitionPath(path string) *initMachine {
+ i.ignitionPath = path
+ return i
+}
+
+func (i *initMachine) withImagePath(path string) *initMachine {
+ i.imagePath = path
+ return i
+}
+
+func (i *initMachine) withMemory(num uint) *initMachine {
+ i.memory = &num
+ return i
+}
+
+func (i *initMachine) withNow() *initMachine {
+ i.now = true
+ return i
+}
+
+func (i *initMachine) withTimezone(tz string) *initMachine {
+ i.timezone = tz
+ return i
+}
+
+func (i *initMachine) withVolume(v string) *initMachine {
+ i.volumes = append(i.volumes, v)
+ return i
+}