From 69321f4905f99b59d504603d1a389e51805d362f Mon Sep 17 00:00:00 2001 From: Marco Mancini Date: Wed, 31 Mar 2021 22:25:36 +0200 Subject: [PATCH] M #-: Docker Machine getIP return EXTERNAL_IP if exists (#1052) --- src/docker_machine/src/docker_machine/opennebula.go | 13 ++++++++++--- src/oca/go/src/goca/schemas/shared/nic.go | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/docker_machine/src/docker_machine/opennebula.go b/src/docker_machine/src/docker_machine/opennebula.go index 3954ceaf51..21dba77920 100644 --- a/src/docker_machine/src/docker_machine/opennebula.go +++ b/src/docker_machine/src/docker_machine/opennebula.go @@ -9,9 +9,9 @@ import ( "github.com/OpenNebula/one/src/oca/go/src/goca" "github.com/OpenNebula/one/src/oca/go/src/goca/schemas/shared" - "github.com/OpenNebula/one/src/oca/go/src/goca/schemas/vm/keys" - vm_schemas "github.com/OpenNebula/one/src/oca/go/src/goca/schemas/vm" shared_schemas "github.com/OpenNebula/one/src/oca/go/src/goca/schemas/shared" + vm_schemas "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/log" @@ -536,10 +536,17 @@ func (d *Driver) GetIP() (string, error) { } if len(vm.Template.GetNICs()) > 0 { - ip, err := vm.Template.GetNICs()[0].Get(shared_schemas.IP) + // check first for External IP + ip, err := vm.Template.GetNICs()[0].Get(shared_schemas.ExternalIP) if err == nil && ip != "" { d.IPAddress = ip + } else { + // check for IP (if External IP is not defined) + ip, err = vm.Template.GetNICs()[0].Get(shared_schemas.IP) + if err == nil && ip != "" { + d.IPAddress = ip + } } } diff --git a/src/oca/go/src/goca/schemas/shared/nic.go b/src/oca/go/src/goca/schemas/shared/nic.go index 07f3c90637..b6583df312 100644 --- a/src/oca/go/src/goca/schemas/shared/nic.go +++ b/src/oca/go/src/goca/schemas/shared/nic.go @@ -62,6 +62,7 @@ const ( Name NICKeys = "NAME" Parent NICKeys = "PARENT" External NICKeys = "EXTERNAL" + ExternalIP NICKeys = "EXTERNAL_IP" ) // NewNIC returns a structure disk entity to build