metadata: Improve logging

Implementing a String() interface for each provider makes it
easier for users to prefix log strings with the provider.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
This commit is contained in:
Rolf Neugebauer 2017-04-12 13:48:52 +01:00
parent 75f5f058b4
commit 626f02def2
3 changed files with 13 additions and 5 deletions

View File

@ -29,6 +29,9 @@ const (
// Provider is a generic interface for metadata/userdata providers.
type Provider interface {
// String should return a unique name for the Provider
String() string
// Probe returns true if the provider was detected.
Probe() bool
@ -58,6 +61,7 @@ func main() {
found := false
for _, p := range netProviders {
if p.Probe() {
log.Printf("%s: Probe succeeded", p)
userdata, err = p.Extract()
found = true
break
@ -78,6 +82,7 @@ func main() {
for _, p := range cdromProviders {
if p.Probe() {
log.Printf("%s: Probe succeeded", p)
userdata, err = p.Extract()
found = true
break

View File

@ -3,7 +3,6 @@ package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"path"
)
@ -22,12 +21,13 @@ func NewCDROM() *ProviderCDROM {
return &ProviderCDROM{}
}
func (p *ProviderCDROM) String() string {
return "CDROM"
}
// Probe checks if the CD has the right file
func (p *ProviderCDROM) Probe() bool {
_, err := os.Stat(path.Join(MountPoint, configFile))
if err != nil {
log.Printf("CDROM: Probe -> %s", err)
}
return (!os.IsNotExist(err))
}

View File

@ -24,11 +24,14 @@ func NewGCP() *ProviderGCP {
return &ProviderGCP{}
}
func (p *ProviderGCP) String() string {
return "GCP"
}
// Probe checks if we are running on GCP
func (p *ProviderGCP) Probe() bool {
// Getting the hostname should always work...
_, err := gcpGet(instance + "hostname")
log.Printf("GCP: Probe -> %s", err)
return (err == nil)
}