AppManager: Report env vars as part of access
Change-Id: Ibc488b86b4b3968efb00a8ef0eda3c7f0f1c4a41
diff --git a/core/installer/app.go b/core/installer/app.go
index c9c7ced..656b992 100644
--- a/core/installer/app.go
+++ b/core/installer/app.go
@@ -40,6 +40,7 @@
UDP *AccessUDP
PostgreSQL *AccessPostgreSQL
MongoDB *AccessMongoDB
+ EnvVar *AccessEnvVar
}
func (a Access) MarshalJSON() ([]byte, error) {
@@ -93,6 +94,14 @@
}{*a.MongoDB, a.Type, a.Name}); err != nil {
return nil, err
}
+ case "env_var":
+ if err := json.NewEncoder(&buf).Encode(struct {
+ AccessEnvVar
+ Type string `json:"type"`
+ Name string `json:"name"`
+ }{*a.EnvVar, a.Type, a.Name}); err != nil {
+ return nil, err
+ }
default:
panic("MUST NOT REACH!")
}
@@ -135,6 +144,10 @@
Password string `json:"password"`
}
+type AccessEnvVar struct {
+ Var string `json:"var"`
+}
+
type EnvVar struct {
Name string `json:"name"`
Value string `json:"value"`
@@ -408,6 +421,9 @@
if err != nil {
return cueApp{}, fmt.Errorf(errors.Details(err, nil))
}
+ if err := config.Err(); err != nil {
+ return cueApp{}, fmt.Errorf(errors.Details(err, nil))
+ }
return newCueApp(config, data)
}
@@ -657,6 +673,14 @@
}
ret = append(ret, Access{Type: "mongodb", Name: nn, MongoDB: &q})
}
+ case "env_var":
+ {
+ var q AccessEnvVar
+ if err := i.Value().Decode(&q); err != nil {
+ return nil, err
+ }
+ ret = append(ret, Access{Type: "env_var", Name: nn, EnvVar: &q})
+ }
}
}
for _, sub := range []string{"ingress", "postgresql", "mongodb", "services", "vm"} {
@@ -707,9 +731,9 @@
func NewDodoApp(appCfg []byte) (EnvApp, error) {
return NewCueEnvApp(CueAppData{
"app.cue": appCfg,
- "base.cue": []byte(cueBaseConfig),
+ "base.cue": cueBaseConfig,
"dodo.cue": dodoAppCue,
- "env.cue": []byte(cueEnvAppGlobal),
+ "env.cue": cueEnvAppGlobal,
})
}