/
environment.go
55 lines (50 loc) · 1.36 KB
/
environment.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package exportentities
import (
"github.com/ovh/cds/sdk"
)
// Environment is a struct to export sdk.Environment
type Environment struct {
Name string `json:"name" yaml:"name" jsonschema_description:"The name of the environment."`
Values map[string]VariableValue `json:"values,omitempty" yaml:"values,omitempty"`
Keys map[string]KeyValue `json:"keys,omitempty" yaml:"keys,omitempty"`
}
//NewEnvironment returns an Environment from an sdk.Environment pointer
func NewEnvironment(e sdk.Environment, keys []EncryptedKey) Environment {
env := Environment{
Name: e.Name,
Values: make(map[string]VariableValue, len(e.Variables)),
}
for _, v := range e.Variables {
env.Values[v.Name] = VariableValue{
Type: string(v.Type),
Value: v.Value,
}
}
env.Keys = make(map[string]KeyValue, len(keys))
for _, k := range keys {
env.Keys[k.Name] = KeyValue{
Type: k.Type,
Value: k.Content,
}
}
return env
}
//Environment returns a sdk.Environment entity
func (e *Environment) Environment() (env *sdk.Environment) {
env = new(sdk.Environment)
env.Name = e.Name
env.Variables = make([]sdk.EnvironmentVariable, len(e.Values))
var i int
for k, v := range e.Values {
if v.Type == "" {
v.Type = sdk.StringVariable
}
env.Variables[i] = sdk.EnvironmentVariable{
Name: k,
Type: v.Type,
Value: v.Value,
}
i++
}
return
}