func saveCloudConfig() error { userDataBytes, metadata, err := fetchUserData() if err != nil { return err } userData := string(userDataBytes) scriptBytes := []byte{} if config.IsScript(userData) { scriptBytes = userDataBytes userDataBytes = []byte{} } else if isCompose(userData) { if userDataBytes, err = composeToCloudConfig(userDataBytes); err != nil { log.Errorf("Failed to convert compose to cloud-config syntax: %v", err) return err } } else if config.IsCloudConfig(userData) { if _, err := rancherConfig.ReadConfig(userDataBytes, false); err != nil { log.WithFields(log.Fields{"cloud-config": userData, "err": err}).Warn("Failed to parse cloud-config, not saving.") userDataBytes = []byte{} } } else { log.Errorf("Unrecognized user-data\n%s", userData) userDataBytes = []byte{} } if _, err := rancherConfig.ReadConfig(userDataBytes, false); err != nil { log.WithFields(log.Fields{"cloud-config": userData, "err": err}).Warn("Failed to parse cloud-config") return errors.New("Failed to parse cloud-config") } return saveFiles(userDataBytes, scriptBytes, metadata) }
func runImages(c *cli.Context) { configFile := c.String("input") cfg, err := config.ReadConfig(nil, false, configFile) if err != nil { log.WithFields(log.Fields{"err": err, "file": configFile}).Fatalf("Could not read config from file") } images := imagesFromConfig(cfg) fmt.Println(strings.Join(images, " ")) }