-
Notifications
You must be signed in to change notification settings - Fork 0
/
org_space_creator.go
65 lines (54 loc) · 1.49 KB
/
org_space_creator.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
56
57
58
59
60
61
62
63
64
65
package cf_command
import "fmt"
//go:generate counterfeiter -o ../fakes/org_space_cli.go --fake-name OrgSpaceCli . orgSpaceCli
type orgSpaceCli interface {
CreateOrg(name string) error
CreateSpace(spaceName, orgName string) error
TargetOrg(name string) error
TargetSpace(name string) error
CreateQuota(name, memory string, instanceMemory, routes, serviceInstances, appInstances, routePorts int) error
SetQuota(org, quota string) error
}
type Quota struct {
Name string
Memory string
InstanceMemory int
Routes int
ServiceInstances int
AppInstances int
RoutePorts int
}
type OrgSpaceCreator struct {
Org string
Space string
Quota Quota
Adapter orgSpaceCli
}
func (c *OrgSpaceCreator) Create() error {
err := c.Adapter.CreateOrg(c.Org)
if err != nil {
return fmt.Errorf("creating org: %s", err)
}
err = c.Adapter.TargetOrg(c.Org)
if err != nil {
return fmt.Errorf("targeting org: %s", err)
}
err = c.Adapter.CreateSpace(c.Space, c.Org)
if err != nil {
return fmt.Errorf("creating space: %s", err)
}
err = c.Adapter.TargetSpace(c.Space)
if err != nil {
return fmt.Errorf("targeting space: %s", err)
}
q := c.Quota
err = c.Adapter.CreateQuota(q.Name, q.Memory, q.InstanceMemory, q.Routes, q.ServiceInstances, q.AppInstances, q.RoutePorts)
if err != nil {
return fmt.Errorf("creating quota: %s", err)
}
err = c.Adapter.SetQuota(c.Org, c.Quota.Name)
if err != nil {
return fmt.Errorf("setting quota: %s", err)
}
return nil
}