func publicAttrs(e environs.Environ) map[string]interface{} { cfg := e.Config() secrets, err := e.Provider().SecretAttrs(cfg) if err != nil { panic(err) } attrs := cfg.AllAttrs() for attr := range secrets { delete(attrs, attr) } return attrs }
func updateSecrets(env environs.Environ, st *state.State) error { secrets, err := env.Provider().SecretAttrs(env.Config()) if err != nil { return err } cfg, err := st.EnvironConfig() if err != nil { return err } secretAttrs := make(map[string]interface{}) attrs := cfg.AllAttrs() for k, v := range secrets { if _, exists := attrs[k]; exists { // Environment already has secrets. Won't send again. return nil } else { secretAttrs[k] = v } } return st.UpdateEnvironConfig(secretAttrs, nil, nil) }