From 9d8f1bd900fb2e7e5c4d7969e82d05202a307af5 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Thu, 17 Aug 2017 14:43:59 +0100 Subject: [PATCH] Allow specifying a set of metadata providers run with `cmd: ["metadata", "aws"]` to just check for AWS metadata for example. Signed-off-by: Justin Cormack --- pkg/metadata/main.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/pkg/metadata/main.go b/pkg/metadata/main.go index 09963e517..ccf5e09a1 100644 --- a/pkg/metadata/main.go +++ b/pkg/metadata/main.go @@ -40,12 +40,26 @@ var netProviders []Provider // cdromProviders is a list of Providers offering metadata/userdata data via CDROM var cdromProviders []Provider -func init() { - netProviders = []Provider{NewGCP(), NewVultr(), NewAWS()} - cdromProviders = ListCDROMs() -} - func main() { + providers := []string{"aws", "gcp", "vultr", "cdrom"} + if len(os.Args) > 1 { + providers = os.Args[1:] + } + for _, p := range providers { + switch p { + case "aws": + netProviders = append(netProviders, NewAWS()) + case "gcp": + netProviders = append(netProviders, NewGCP()) + case "vultr": + netProviders = append(netProviders, NewVultr()) + case "cdrom": + cdromProviders = ListCDROMs() + default: + log.Fatalf("Unrecognised metadata provider: %s", p) + } + } + if err := os.MkdirAll(ConfigPath, 0755); err != nil { log.Fatalf("Could not create %s: %s", ConfigPath, err) }