mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-30 22:50:10 +03:00
M #-: Adjust docker binding to new GOCA (#3505)
This commit is contained in:
parent
3a60e67657
commit
d6237309ba
112
src/docker_machine/src/docker_machine/Gopkg.lock
generated
112
src/docker_machine/src/docker_machine/Gopkg.lock
generated
@ -3,67 +3,163 @@
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:6da51e5ec493ad2b44cb04129e2d0a068c8fb9bd6cb5739d199573558696bb94"
|
||||
name = "github.com/Azure/go-ansiterm"
|
||||
packages = [".","winterm"]
|
||||
packages = [
|
||||
".",
|
||||
"winterm",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "d6e3b3328b783f23731bc4d058875b0371ff8109"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:c3bbfd49386bd298f3467474e44469163c9cf6900b037a203b0388634ab1bf41"
|
||||
name = "github.com/OpenNebula/one"
|
||||
packages = ["src/oca/go/src/goca"]
|
||||
packages = [
|
||||
"src/oca/go/src/goca",
|
||||
"src/oca/go/src/goca/dynamic",
|
||||
"src/oca/go/src/goca/errors",
|
||||
"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/datastore",
|
||||
"src/oca/go/src/goca/schemas/document",
|
||||
"src/oca/go/src/goca/schemas/group",
|
||||
"src/oca/go/src/goca/schemas/host",
|
||||
"src/oca/go/src/goca/schemas/image",
|
||||
"src/oca/go/src/goca/schemas/marketplace",
|
||||
"src/oca/go/src/goca/schemas/marketplaceapp",
|
||||
"src/oca/go/src/goca/schemas/securitygroup",
|
||||
"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/virtualrouter",
|
||||
"src/oca/go/src/goca/schemas/vm",
|
||||
"src/oca/go/src/goca/schemas/vmgroup",
|
||||
"src/oca/go/src/goca/schemas/vntemplate",
|
||||
"src/oca/go/src/goca/schemas/zone",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "master"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:5a9464d972454e9bb1ed81f6742dfdb3ad834ba816c4783fd4e5c975b669f01c"
|
||||
name = "github.com/docker/docker"
|
||||
packages = ["pkg/term","pkg/term/windows"]
|
||||
packages = [
|
||||
"pkg/term",
|
||||
"pkg/term/windows",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "0c1006f1abc1af7aa6b9847754370d054dfa6c68"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:6dc4a88e0b8ecdff1d25e37fbc680f467261c18469be8a5559a5754fb895c5c0"
|
||||
name = "github.com/docker/machine"
|
||||
packages = ["libmachine/drivers","libmachine/drivers/plugin","libmachine/drivers/plugin/localbinary","libmachine/drivers/rpc","libmachine/log","libmachine/mcnflag","libmachine/mcnutils","libmachine/ssh","libmachine/state","libmachine/version","version"]
|
||||
packages = [
|
||||
"libmachine/drivers",
|
||||
"libmachine/drivers/plugin",
|
||||
"libmachine/drivers/plugin/localbinary",
|
||||
"libmachine/drivers/rpc",
|
||||
"libmachine/log",
|
||||
"libmachine/mcnflag",
|
||||
"libmachine/mcnutils",
|
||||
"libmachine/ssh",
|
||||
"libmachine/state",
|
||||
"libmachine/version",
|
||||
"version",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "89b833253d9412716a0291cbdccc94454c33d1b5"
|
||||
version = "v0.14.0"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:af105c7c5dc0b4ae41991f122cae860b9600f7d226072c2a83127048c991660c"
|
||||
name = "github.com/hashicorp/go-cleanhttp"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "eda1e5db218aad1db63ca4642c8906b26bcf2744"
|
||||
version = "v0.5.1"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:82993553515c494e149cbbb73a63899e8f1c6a5b4c456e60baf170ad6c347033"
|
||||
name = "github.com/kolo/xmlrpc"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "0826b98aaa29c0766956cb40d45cf7482a597671"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:9e9193aa51197513b3abcb108970d831fbcf40ef96aa845c4f03276e1fa316d2"
|
||||
name = "github.com/sirupsen/logrus"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "c155da19408a8799da419ed3eeb0cb5db0ad5dbc"
|
||||
version = "v1.0.5"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:ae38a56e386a576a45ca89870c379224062f1cc9a9763f7b165567f3f317f4a1"
|
||||
name = "golang.org/x/crypto"
|
||||
packages = ["curve25519","ed25519","ed25519/internal/edwards25519","internal/chacha20","poly1305","ssh","ssh/terminal"]
|
||||
packages = [
|
||||
"curve25519",
|
||||
"ed25519",
|
||||
"ed25519/internal/edwards25519",
|
||||
"internal/chacha20",
|
||||
"poly1305",
|
||||
"ssh",
|
||||
"ssh/terminal",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "c3a3ad6d03f7a915c0f7e194b7152974bb73d287"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:d610e483f9d284959f3bb01d8917ad0e4efd393a8587123b1e3406fdf37199f0"
|
||||
name = "golang.org/x/net"
|
||||
packages = ["html","html/atom"]
|
||||
packages = [
|
||||
"html",
|
||||
"html/atom",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "6078986fec03a1dcc236c34816c71b0e05018fda"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:1edb3ae84490dc42a1ca99adbb957b2f66a3b79fa23ddc9e53b1f9b2a872601f"
|
||||
name = "golang.org/x/sys"
|
||||
packages = ["unix","windows"]
|
||||
packages = [
|
||||
"unix",
|
||||
"windows",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "7ceb54c8418b8f9cdf0177b511d5cbb06e9fae39"
|
||||
|
||||
[[projects]]
|
||||
branch = "v2"
|
||||
digest = "1:c78e25c1cf10b1d9d1dd866f3f246f239b66d4648a16e3da1c098444e288c0e9"
|
||||
name = "gopkg.in/xmlpath.v2"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "860cbeca3ebcc600db0b213c0e83ad6ce91f5739"
|
||||
|
||||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
inputs-digest = "6ef5dc5036a75692652fb575393bee64c35bf61c3c8362fa2817dffa01b46173"
|
||||
input-imports = [
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca",
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca/dynamic",
|
||||
"github.com/docker/machine/libmachine/drivers",
|
||||
"github.com/docker/machine/libmachine/drivers/plugin",
|
||||
"github.com/docker/machine/libmachine/log",
|
||||
"github.com/docker/machine/libmachine/mcnflag",
|
||||
"github.com/docker/machine/libmachine/ssh",
|
||||
"github.com/docker/machine/libmachine/state",
|
||||
"github.com/kolo/xmlrpc",
|
||||
"gopkg.in/xmlpath.v2",
|
||||
]
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
||||
|
@ -9,6 +9,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca"
|
||||
dyn "github.com/OpenNebula/one/src/oca/go/src/goca/dynamic"
|
||||
|
||||
"github.com/docker/machine/libmachine/drivers"
|
||||
"github.com/docker/machine/libmachine/log"
|
||||
@ -36,7 +37,7 @@ type Driver struct {
|
||||
User string
|
||||
Password string
|
||||
Xmlrpcurl string
|
||||
Config goca.OneConfig
|
||||
Controller *goca.Controller
|
||||
DisableVNC bool
|
||||
StartRetries string
|
||||
}
|
||||
@ -100,13 +101,11 @@ func NewDriver(hostName, storePath string) *Driver {
|
||||
}
|
||||
}
|
||||
|
||||
func (d *Driver) buildConfig() {
|
||||
d.Config = goca.NewConfig(d.User, d.Password, d.Xmlrpcurl)
|
||||
}
|
||||
|
||||
func (d *Driver) setClient() {
|
||||
d.buildConfig()
|
||||
goca.SetClient(d.Config)
|
||||
func (d *Driver) setController() {
|
||||
client := goca.NewClient(
|
||||
goca.NewConfig(d.User, d.Password, d.Xmlrpcurl),
|
||||
)
|
||||
d.Controller = goca.NewController(client)
|
||||
}
|
||||
|
||||
// GetCreateFlags registers the flags this driver adds to
|
||||
@ -360,14 +359,12 @@ func (d *Driver) PreCreateCheck() error {
|
||||
|
||||
func (d *Driver) Create() error {
|
||||
var (
|
||||
vector *goca.TemplateBuilderVector
|
||||
vmtemplate *goca.Template
|
||||
|
||||
vector *dyn.TemplateBuilderVector
|
||||
err error
|
||||
)
|
||||
|
||||
// build config and set the xmlrpc client
|
||||
d.setClient()
|
||||
d.setController()
|
||||
|
||||
log.Infof("Creating SSH key..")
|
||||
if err := ssh.GenerateSSHKey(d.GetSSHKeyPath()); err != nil {
|
||||
@ -380,7 +377,7 @@ func (d *Driver) Create() error {
|
||||
}
|
||||
|
||||
// Create template
|
||||
template := goca.NewTemplateBuilder()
|
||||
template := dyn.NewTemplateBuilder()
|
||||
|
||||
if d.TemplateName != "" || d.TemplateID != "" {
|
||||
// Template has been specified
|
||||
@ -469,25 +466,28 @@ func (d *Driver) Create() error {
|
||||
// Instantiate
|
||||
log.Infof("Starting VM..")
|
||||
|
||||
// Template has been specified
|
||||
if d.TemplateName != "" || d.TemplateID != "" {
|
||||
var templateID int
|
||||
|
||||
if d.TemplateName != "" {
|
||||
vmtemplate, err = goca.NewTemplateFromName(d.TemplateName)
|
||||
templateID, err = d.Controller.Templates().ByName(d.TemplateName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
templateID, err := strconv.Atoi(d.TemplateID)
|
||||
templateID, err = strconv.Atoi(d.TemplateID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
vmtemplate = goca.NewTemplate(uint(templateID))
|
||||
}
|
||||
|
||||
vmtemplate := d.Controller.Template(templateID)
|
||||
|
||||
_, err = vmtemplate.Instantiate(d.MachineName, false, template.String(), false)
|
||||
|
||||
} else {
|
||||
_, err = goca.CreateVM(template.String(), false)
|
||||
_, err = d.Controller.VMs().Create(template.String(), false)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
@ -510,13 +510,14 @@ func (d *Driver) GetURL() (string, error) {
|
||||
}
|
||||
|
||||
func (d *Driver) GetIP() (string, error) {
|
||||
d.setClient()
|
||||
vm, err := goca.NewVMFromName(d.MachineName)
|
||||
d.setController()
|
||||
|
||||
vm_id, err := d.Controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
err = vm.Info()
|
||||
vm, err := d.Controller.VM(vm_id).Info()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@ -535,13 +536,14 @@ func (d *Driver) GetIP() (string, error) {
|
||||
}
|
||||
|
||||
func (d *Driver) GetState() (state.State, error) {
|
||||
d.setClient()
|
||||
vm, err := goca.NewVMFromName(d.MachineName)
|
||||
d.setController()
|
||||
|
||||
vm_id, err := d.Controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return state.None, err
|
||||
}
|
||||
|
||||
err = vm.Info()
|
||||
vm, err := d.Controller.VM(vm_id).Info()
|
||||
if err != nil {
|
||||
return state.None, err
|
||||
}
|
||||
@ -649,12 +651,14 @@ func (d *Driver) GetState() (state.State, error) {
|
||||
}
|
||||
|
||||
func (d *Driver) Start() error {
|
||||
d.setClient()
|
||||
vm, err := goca.NewVMFromName(d.MachineName)
|
||||
d.setController()
|
||||
|
||||
vm_id, err := d.Controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vm := d.Controller.VM(vm_id)
|
||||
vm.Resume()
|
||||
|
||||
s := state.None
|
||||
@ -667,7 +671,7 @@ func (d *Driver) Start() error {
|
||||
|
||||
switch s {
|
||||
case state.Error:
|
||||
return errors.New("vM in error state")
|
||||
return errors.New("VM in error state")
|
||||
default:
|
||||
time.Sleep(2 * time.Second)
|
||||
}
|
||||
@ -686,12 +690,14 @@ func (d *Driver) Start() error {
|
||||
}
|
||||
|
||||
func (d *Driver) Stop() error {
|
||||
d.setClient()
|
||||
vm, err := goca.NewVMFromName(d.MachineName)
|
||||
d.setController()
|
||||
|
||||
vm_id, err := d.Controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vm := d.Controller.VM(vm_id)
|
||||
err = vm.Poweroff()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -701,12 +707,14 @@ func (d *Driver) Stop() error {
|
||||
}
|
||||
|
||||
func (d *Driver) Remove() error {
|
||||
d.setClient()
|
||||
vm, err := goca.NewVMFromName(d.MachineName)
|
||||
d.setController()
|
||||
|
||||
vm_id, err := d.Controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vm := d.Controller.VM(vm_id)
|
||||
err = vm.TerminateHard()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -716,12 +724,14 @@ func (d *Driver) Remove() error {
|
||||
}
|
||||
|
||||
func (d *Driver) Restart() error {
|
||||
d.setClient()
|
||||
vm, err := goca.NewVMFromName(d.MachineName)
|
||||
d.setController()
|
||||
|
||||
vm_id, err := d.Controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vm := d.Controller.VM(vm_id)
|
||||
err = vm.Reboot()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -731,12 +741,15 @@ func (d *Driver) Restart() error {
|
||||
}
|
||||
|
||||
func (d *Driver) Kill() error {
|
||||
d.setClient()
|
||||
vm, err := goca.NewVMFromName(d.MachineName)
|
||||
d.setController()
|
||||
|
||||
vm_id, err := d.Controller.VMs().ByName(d.MachineName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vm := d.Controller.VM(vm_id)
|
||||
|
||||
return vm.PoweroffHard()
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ import (
|
||||
"log"
|
||||
|
||||
"github.com/OpenNebula/one/src/oca/go/src/goca"
|
||||
dyn "github.com/OpenNebula/one/src/oca/go/src/goca/dyntemplate"
|
||||
dyn "github.com/OpenNebula/one/src/oca/go/src/goca/dynamic"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user