From 16ede88fd410271b9cf9fa804303c480927c5cb8 Mon Sep 17 00:00:00 2001 From: "Carlos J. Herrera" <37907824+carloshm91@users.noreply.github.com> Date: Thu, 19 Mar 2020 06:06:53 -0400 Subject: [PATCH] B #4052: use VM ID (#4385) Signed-off-by: Carlos Herrera --- .../src/docker_machine/opennebula.go | 64 ++++++------------- 1 file changed, 20 insertions(+), 44 deletions(-) diff --git a/src/docker_machine/src/docker_machine/opennebula.go b/src/docker_machine/src/docker_machine/opennebula.go index 959d99977a..0241fd5f40 100644 --- a/src/docker_machine/src/docker_machine/opennebula.go +++ b/src/docker_machine/src/docker_machine/opennebula.go @@ -42,6 +42,7 @@ type Driver struct { Config goca.OneConfig DisableVNC bool StartRetries string + MachineId int } const ( @@ -366,6 +367,8 @@ func (d *Driver) PreCreateCheck() error { func (d *Driver) Create() error { var err error + var instanceID = -1 + // build config and set the xmlrpc client controller := d.getController() @@ -486,16 +489,18 @@ func (d *Driver) Create() error { vmtemplate := controller.Template(templateID) - _, err = vmtemplate.Instantiate(d.MachineName, false, template.String(), false) + instanceID, err = vmtemplate.Instantiate(d.MachineName, false, template.String(), false) } else { - _, err = controller.VMs().Create(template.String(), false) + instanceID, err = controller.VMs().Create(template.String(), false) } if err != nil { return err } + d.MachineId = instanceID + if d.IPAddress, err = d.GetIP(); err != nil { return err } @@ -514,12 +519,7 @@ func (d *Driver) GetURL() (string, error) { func (d *Driver) GetIP() (string, error) { controller := d.getController() - vm_id, err := controller.VMs().ByName(d.MachineName) - if err != nil { - return "", err - } - - vm, err := controller.VM(vm_id).Info(false) + vm, err := controller.VM(d.MachineId).Info(false) if err != nil { return "", err } @@ -542,12 +542,7 @@ func (d *Driver) GetIP() (string, error) { func (d *Driver) GetState() (state.State, error) { controller := d.getController() - vm_id, err := controller.VMs().ByName(d.MachineName) - if err != nil { - return state.None, err - } - - vm, err := controller.VM(vm_id).Info(false) + vm, err := controller.VM(d.MachineId).Info(false) if err != nil { return state.None, err } @@ -657,12 +652,9 @@ func (d *Driver) GetState() (state.State, error) { func (d *Driver) Start() error { controller := d.getController() - vm_id, err := controller.VMs().ByName(d.MachineName) - if err != nil { - return err - } + var err error - vm := controller.VM(vm_id) + vm := controller.VM(d.MachineId) vm.Resume() s := state.None @@ -696,13 +688,8 @@ func (d *Driver) Start() error { func (d *Driver) Stop() error { controller := d.getController() - vm_id, err := controller.VMs().ByName(d.MachineName) - if err != nil { - return err - } - - vm := controller.VM(vm_id) - err = vm.Poweroff() + vm := controller.VM(d.MachineId) + err := vm.Poweroff() if err != nil { return err } @@ -713,13 +700,8 @@ func (d *Driver) Stop() error { func (d *Driver) Remove() error { controller := d.getController() - vm_id, err := controller.VMs().ByName(d.MachineName) - if err != nil { - return err - } - - vm := controller.VM(vm_id) - err = vm.TerminateHard() + vm := controller.VM(d.MachineId) + err := vm.TerminateHard() if err != nil { return err } @@ -730,13 +712,8 @@ func (d *Driver) Remove() error { func (d *Driver) Restart() error { controller := d.getController() - vm_id, err := controller.VMs().ByName(d.MachineName) - if err != nil { - return err - } - - vm := controller.VM(vm_id) - err = vm.Reboot() + vm := controller.VM(d.MachineId) + err := vm.Reboot() if err != nil { return err } @@ -747,14 +724,13 @@ func (d *Driver) Restart() error { func (d *Driver) Kill() error { controller := d.getController() - vm_id, err := controller.VMs().ByName(d.MachineName) + vm := controller.VM(d.MachineId) + err := vm.PoweroffHard() if err != nil { return err } - vm := controller.VM(vm_id) - - return vm.PoweroffHard() + return nil } func (d *Driver) publicSSHKeyPath() string {