fix(datasource/CloudSigma): Populate public IPv4 address properly

This commit is contained in:
Kiril Vladimirov
2014-10-23 13:21:49 +03:00
parent 5c5834863b
commit c5fada6e69
2 changed files with 41 additions and 16 deletions

View File

@@ -73,12 +73,13 @@ func (scs *serverContextService) FetchMetadata() ([]byte, error) {
UUID string `json:"uuid"`
Meta map[string]string `json:"meta"`
Nics []struct {
Runtime struct {
Mac string `json:"mac"`
IPv4Conf struct {
InterfaceType string `json:"interface_type"`
IPv4 struct {
IP string `json:"uuid"`
} `json:"ip_v4"`
} `json:"runtime"`
IP struct {
UUID string `json:"uuid"`
} `json:"ip"`
} `json:"ip_v4_conf"`
} `json:"nics"`
}
outputMetadata struct {
@@ -112,12 +113,9 @@ func (scs *serverContextService) FetchMetadata() ([]byte, error) {
}
for _, nic := range inputMetadata.Nics {
if nic.Runtime.IPv4.IP != "" {
if nic.Runtime.InterfaceType == "public" {
outputMetadata.PublicIPv4 = nic.Runtime.IPv4.IP
} else {
outputMetadata.LocalIPv4 = nic.Runtime.IPv4.IP
}
if nic.IPv4Conf.IP.UUID != "" {
outputMetadata.PublicIPv4 = nic.IPv4Conf.IP.UUID
break
}
}