fix(datasource/CloudSigma): Make sure DHCP has run

This commit is contained in:
Kiril Vladimirov 2014-11-17 15:27:26 +02:00
parent b6062f0644
commit ea95920f31

View File

@ -21,6 +21,7 @@ import (
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"errors" "errors"
"io/ioutil"
"net" "net"
"os" "os"
"strings" "strings"
@ -54,7 +55,8 @@ func (_ *serverContextService) IsAvailable() bool {
} }
productName := make([]byte, 10) productName := make([]byte, 10)
_, err = productNameFile.Read(productName) _, err = productNameFile.Read(productName)
return err == nil && string(productName) == "CloudSigma"
return err == nil && string(productName) == "CloudSigma" && hasDHCPLeases()
} }
func (_ *serverContextService) AvailabilityChanges() bool { func (_ *serverContextService) AvailabilityChanges() bool {
@ -85,7 +87,7 @@ func (scs *serverContextService) FetchMetadata() ([]byte, error) {
} `json:"ip_v4_conf"` } `json:"ip_v4_conf"`
VLAN struct { VLAN struct {
UUID string `json:"uuid"` UUID string `json:"uuid"`
} `json: "vlan"` } `json:"vlan"`
} `json:"nics"` } `json:"nics"`
} }
outputMetadata struct { outputMetadata struct {
@ -197,3 +199,8 @@ func isBase64Encoded(field string, userdata map[string]string) bool {
} }
return false return false
} }
func hasDHCPLeases() bool {
files, err := ioutil.ReadDir("/run/systemd/netif/leases/")
return err == nil && len(files) > 0
}