mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
- fixed issue with resume vm in pending state - enhanced GetIP method to minimize API call - GetURL return address only if machine is running - code cleanup Signed-off-by: Kristian Feldsam <feldsam@gmail.com> (cherry picked from commit e36b900111c2f4caaa6d2d0988f237311c665df8) (cherry picked from commit 5099aaedba857fa436527a026b3f3bf95a2b9829)
This commit is contained in:
parent
0f110b2a36
commit
06247d1098
22
src/docker_machine/src/docker_machine/Gopkg.lock
generated
22
src/docker_machine/src/docker_machine/Gopkg.lock
generated
@ -14,7 +14,7 @@
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:b840a9bf57916f264fe100c8875f9c331656e758bddd3c6ea55116e7274eaadd"
|
||||
digest = "1:159c6f296acc53e6aa6892335c9105fd7956de28940a0035365fad48f75748f9"
|
||||
name = "github.com/OpenNebula/one"
|
||||
packages = [
|
||||
"src/oca/go/src/goca",
|
||||
@ -23,21 +23,35 @@
|
||||
"src/oca/go/src/goca/parameters",
|
||||
"src/oca/go/src/goca/schemas/acl",
|
||||
"src/oca/go/src/goca/schemas/cluster",
|
||||
"src/oca/go/src/goca/schemas/cluster/keys",
|
||||
"src/oca/go/src/goca/schemas/datastore",
|
||||
"src/oca/go/src/goca/schemas/datastore/keys",
|
||||
"src/oca/go/src/goca/schemas/document",
|
||||
"src/oca/go/src/goca/schemas/group",
|
||||
"src/oca/go/src/goca/schemas/hook",
|
||||
"src/oca/go/src/goca/schemas/hook/keys",
|
||||
"src/oca/go/src/goca/schemas/host",
|
||||
"src/oca/go/src/goca/schemas/host/keys",
|
||||
"src/oca/go/src/goca/schemas/image",
|
||||
"src/oca/go/src/goca/schemas/image/keys",
|
||||
"src/oca/go/src/goca/schemas/marketplace",
|
||||
"src/oca/go/src/goca/schemas/marketplace/keys",
|
||||
"src/oca/go/src/goca/schemas/marketplaceapp",
|
||||
"src/oca/go/src/goca/schemas/marketplaceapp/keys",
|
||||
"src/oca/go/src/goca/schemas/securitygroup",
|
||||
"src/oca/go/src/goca/schemas/securitygroup/keys",
|
||||
"src/oca/go/src/goca/schemas/service",
|
||||
"src/oca/go/src/goca/schemas/service_template",
|
||||
"src/oca/go/src/goca/schemas/shared",
|
||||
"src/oca/go/src/goca/schemas/template",
|
||||
"src/oca/go/src/goca/schemas/user",
|
||||
"src/oca/go/src/goca/schemas/vdc",
|
||||
"src/oca/go/src/goca/schemas/virtualnetwork",
|
||||
"src/oca/go/src/goca/schemas/virtualnetwork/keys",
|
||||
"src/oca/go/src/goca/schemas/virtualrouter",
|
||||
"src/oca/go/src/goca/schemas/virtualrouter/keys",
|
||||
"src/oca/go/src/goca/schemas/vm",
|
||||
"src/oca/go/src/goca/schemas/vm/keys",
|
||||
"src/oca/go/src/goca/schemas/vmgroup",
|
||||
"src/oca/go/src/goca/schemas/vntemplate",
|
||||
"src/oca/go/src/goca/schemas/zone",
|
||||
@ -88,7 +102,7 @@
|
||||
branch = "master"
|
||||
digest = "1:07c2b6d639ff6288a4c1ee3f8525d8330571588464a22e3173e6f26dc6f1278c"
|
||||
name = "github.com/kolo/xmlrpc"
|
||||
packages = []
|
||||
packages = ["."]
|
||||
pruneopts = "T"
|
||||
revision = "07c4ee3fd1817e1a90254d5b80f215b36b78f800"
|
||||
|
||||
@ -151,7 +165,9 @@
|
||||
analyzer-version = 1
|
||||
input-imports = [
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca",
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca/dynamic",
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca/schemas/shared",
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca/schemas/vm",
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca/schemas/vm/keys",
|
||||
"github.com/docker/machine/libmachine/drivers",
|
||||
"github.com/docker/machine/libmachine/drivers/plugin",
|
||||
"github.com/docker/machine/libmachine/log",
|
||||
|
@ -4,6 +4,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
@ -46,7 +47,6 @@ type Driver struct {
|
||||
}
|
||||
|
||||
const (
|
||||
defaultTimeout = 1 * time.Second
|
||||
defaultSSHUser = "docker"
|
||||
defaultCPU = "1"
|
||||
defaultVCPU = "1"
|
||||
@ -356,14 +356,6 @@ func (d *Driver) GetSSHHostname() (string, error) {
|
||||
return d.GetIP()
|
||||
}
|
||||
|
||||
func (d *Driver) GetSSHUsername() string {
|
||||
return d.SSHUser
|
||||
}
|
||||
|
||||
func (d *Driver) PreCreateCheck() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Driver) Create() error {
|
||||
var err error
|
||||
|
||||
@ -372,7 +364,7 @@ func (d *Driver) Create() error {
|
||||
// build config and set the xmlrpc client
|
||||
controller := d.getController()
|
||||
|
||||
log.Infof("Creating SSH key..")
|
||||
log.Infof("Creating SSH key...")
|
||||
if err := ssh.GenerateSSHKey(d.GetSSHKeyPath()); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -469,7 +461,7 @@ func (d *Driver) Create() error {
|
||||
template.AddB64Ctx(keys.StartScriptB64, contextScript)
|
||||
|
||||
// Instantiate
|
||||
log.Infof("Starting VM..")
|
||||
log.Infof("Starting VM...")
|
||||
|
||||
// Template has been specified
|
||||
if d.TemplateName != "" || d.TemplateID != "" {
|
||||
@ -501,33 +493,43 @@ func (d *Driver) Create() error {
|
||||
|
||||
d.MachineId = instanceID
|
||||
|
||||
if d.IPAddress, err = d.GetIP(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return d.Start()
|
||||
}
|
||||
|
||||
func (d *Driver) GetURL() (string, error) {
|
||||
if err := drivers.MustBeRunning(d); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
ip, err := d.GetIP()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return fmt.Sprintf("tcp://%s:2376", ip), nil
|
||||
if ip == "" {
|
||||
return "", nil
|
||||
}
|
||||
|
||||
return fmt.Sprintf("tcp://%s", net.JoinHostPort(ip, "2376")), nil
|
||||
}
|
||||
|
||||
func (d *Driver) GetIP() (string, error) {
|
||||
if d.IPAddress != "" {
|
||||
return d.IPAddress, nil
|
||||
}
|
||||
|
||||
log.Debug("Looking for the IP address...")
|
||||
|
||||
controller := d.getController()
|
||||
|
||||
var err2 error
|
||||
var vm_id int
|
||||
var vmId int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vm_id, err2 = controller.VMs().ByName(d.MachineName)
|
||||
vmId, err2 = controller.VMs().ByName(d.MachineName)
|
||||
if err2 != nil {
|
||||
return "", err2
|
||||
}
|
||||
d.MachineId = vm_id
|
||||
d.MachineId = vmId
|
||||
}
|
||||
|
||||
vm, err := controller.VM(d.MachineId).Info(false)
|
||||
@ -561,14 +563,14 @@ func (d *Driver) GetState() (state.State, error) {
|
||||
controller := d.getController()
|
||||
|
||||
var err2 error
|
||||
var vm_id int
|
||||
var vmId int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vm_id, err2 = controller.VMs().ByName(d.MachineName)
|
||||
vmId, err2 = controller.VMs().ByName(d.MachineName)
|
||||
if err2 != nil {
|
||||
return state.None, err2
|
||||
}
|
||||
d.MachineId = vm_id
|
||||
d.MachineId = vmId
|
||||
}
|
||||
|
||||
vm, err := controller.VM(d.MachineId).Info(false)
|
||||
@ -683,22 +685,25 @@ func (d *Driver) GetState() (state.State, error) {
|
||||
}
|
||||
|
||||
func (d *Driver) Start() error {
|
||||
controller := d.getController()
|
||||
|
||||
var err error
|
||||
var vm_id int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vm_id, err = controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return err
|
||||
if drivers.MachineInState(d, state.Stopped)() {
|
||||
controller := d.getController()
|
||||
|
||||
var vmId int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vmId, err = controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
d.MachineId = vmId
|
||||
}
|
||||
d.MachineId = vm_id
|
||||
|
||||
vm := controller.VM(d.MachineId)
|
||||
vm.Resume()
|
||||
}
|
||||
|
||||
vm := controller.VM(d.MachineId)
|
||||
vm.Resume()
|
||||
|
||||
|
||||
s := state.None
|
||||
retries, _ := strconv.Atoi(d.StartRetries)
|
||||
for retry := 0; retry < retries && s != state.Running; retry++ {
|
||||
@ -721,7 +726,7 @@ func (d *Driver) Start() error {
|
||||
}
|
||||
}
|
||||
|
||||
log.Infof("Waiting for SSH..")
|
||||
log.Infof("Waiting for SSH...")
|
||||
|
||||
// Wait for SSH over NAT to be available before returning to user
|
||||
return drivers.WaitForSSH(d)
|
||||
@ -731,14 +736,14 @@ func (d *Driver) Stop() error {
|
||||
controller := d.getController()
|
||||
|
||||
var err2 error
|
||||
var vm_id int
|
||||
var vmId int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vm_id, err2 = controller.VMs().ByName(d.MachineName)
|
||||
vmId, err2 = controller.VMs().ByName(d.MachineName)
|
||||
if err2 != nil {
|
||||
return err2
|
||||
}
|
||||
d.MachineId = vm_id
|
||||
d.MachineId = vmId
|
||||
}
|
||||
|
||||
vm := controller.VM(d.MachineId)
|
||||
@ -754,14 +759,14 @@ func (d *Driver) Remove() error {
|
||||
controller := d.getController()
|
||||
|
||||
var err2 error
|
||||
var vm_id int
|
||||
var vmId int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vm_id, err2 = controller.VMs().ByName(d.MachineName)
|
||||
vmId, err2 = controller.VMs().ByName(d.MachineName)
|
||||
if err2 != nil {
|
||||
return err2
|
||||
}
|
||||
d.MachineId = vm_id
|
||||
d.MachineId = vmId
|
||||
}
|
||||
|
||||
vm := controller.VM(d.MachineId)
|
||||
@ -777,14 +782,14 @@ func (d *Driver) Restart() error {
|
||||
controller := d.getController()
|
||||
|
||||
var err2 error
|
||||
var vm_id int
|
||||
var vmId int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vm_id, err2 = controller.VMs().ByName(d.MachineName)
|
||||
vmId, err2 = controller.VMs().ByName(d.MachineName)
|
||||
if err2 != nil {
|
||||
return err2
|
||||
}
|
||||
d.MachineId = vm_id
|
||||
d.MachineId = vmId
|
||||
}
|
||||
|
||||
vm := controller.VM(d.MachineId)
|
||||
@ -800,14 +805,14 @@ func (d *Driver) Kill() error {
|
||||
controller := d.getController()
|
||||
|
||||
var err2 error
|
||||
var vm_id int
|
||||
var vmId int
|
||||
|
||||
if d.MachineId == 0 {
|
||||
vm_id, err2 = controller.VMs().ByName(d.MachineName)
|
||||
vmId, err2 = controller.VMs().ByName(d.MachineName)
|
||||
if err2 != nil {
|
||||
return err2
|
||||
}
|
||||
d.MachineId = vm_id
|
||||
d.MachineId = vmId
|
||||
}
|
||||
|
||||
vm := controller.VM(d.MachineId)
|
||||
|
Loading…
x
Reference in New Issue
Block a user