@@ -17,6 +17,19 @@ import (
1717 "github.com/docopt/docopt-go"
1818)
1919
20+ const (
21+ PlatformInstallCommand string = "platform"
22+ )
23+
24+ var (
25+ DefaultDataContainers = []string {
26+ "database-data" ,
27+ "registry-data" ,
28+ "logger-data" ,
29+ "builder-data" ,
30+ }
31+ )
32+
2033func ListUnits (c client.Client ) error {
2134 err := c .ListUnits ()
2235 return err
@@ -42,6 +55,10 @@ func Scale(c client.Client, targets []string) error {
4255}
4356
4457func Start (c client.Client , targets []string ) error {
58+ // if target is platform, install all services
59+ if len (targets ) == 1 && targets [0 ] == PlatformInstallCommand {
60+ return StartPlatform (c )
61+ }
4562 for _ , target := range targets {
4663 err := c .Start (target )
4764 if err != nil {
@@ -51,6 +68,51 @@ func Start(c client.Client, targets []string) error {
5168 return nil
5269}
5370
71+ func StartPlatform (c client.Client ) error {
72+ fmt .Println ("Starting Platform..." )
73+ if err := startDataContainers (c ); err != nil {
74+ return err
75+ }
76+ if err := startDefaultServices (c ); err != nil {
77+ return err
78+ }
79+ fmt .Println ("Platform started." )
80+ return nil
81+ }
82+
83+ func startDataContainers (c client.Client ) error {
84+ fmt .Println ("Launching data containers..." )
85+ for _ , dataContainer := range DefaultDataContainers {
86+ err := c .Start (dataContainer )
87+ if err != nil {
88+ return err
89+ }
90+ }
91+ fmt .Println ("Data containers launched." )
92+ return nil
93+ }
94+
95+ func startDefaultServices (c client.Client ) error {
96+ fmt .Println ("Launching service containers..." )
97+ if err := Start (c , []string {"logger" , "cache" , "database" }); err != nil {
98+ return err
99+ }
100+ if err := Start (c , []string {"registry" }); err != nil {
101+ return err
102+ }
103+ if err := Start (c , []string {"controller" }); err != nil {
104+ return err
105+ }
106+ if err := Start (c , []string {"builder" }); err != nil {
107+ return err
108+ }
109+ if err := Start (c , []string {"router" }); err != nil {
110+ return err
111+ }
112+ fmt .Println ("Service containers launched." )
113+ return nil
114+ }
115+
54116func Stop (c client.Client , targets []string ) error {
55117 for _ , target := range targets {
56118 err := c .Stop (target )
@@ -97,53 +159,41 @@ func Journal(c client.Client, targets []string) error {
97159
98160func Install (c client.Client , targets []string ) error {
99161 // if target is platform, install all services
100- if len (targets ) == 1 && targets [0 ] == "platform" {
101- err := installDataContainers (c )
102- if err != nil {
103- return err
104- }
105- err = installDefaultServices (c )
106- if err != nil {
107- return err
108- }
162+ if len (targets ) == 1 && targets [0 ] == PlatformInstallCommand {
163+ return InstallPlatform (c )
109164 } else {
110- // otherwise create and start the specific targets
165+ // otherwise create the specific targets
111166 for _ , target := range targets {
112167 err := c .Create (target )
113168 if err != nil {
114169 return err
115170 }
116- err = c .Start (target )
117- if err != nil {
118- return err
119- }
120171 }
121172 }
122173 return nil
123174}
124175
125- func installDataContainers (c client.Client ) error {
126- // data containers
127- dataContainers := []string {
128- "database-data" ,
129- "registry-data" ,
130- "logger-data" ,
131- "builder-data" ,
176+ func InstallPlatform (c client.Client ) error {
177+ err := installDataContainers (c )
178+ if err != nil {
179+ return err
132180 }
133- fmt .Println ("\n Scheduling data containers..." )
134- for _ , dataContainer := range dataContainers {
135- err := c .Create (dataContainer )
136- if err != nil {
137- return err
138- }
181+ err = installDefaultServices (c )
182+ if err != nil {
183+ return err
139184 }
140- fmt .Println ("\n Launching data containers..." )
141- for _ , dataContainer := range dataContainers {
142- err := c .Start (dataContainer )
185+ return nil
186+ }
187+
188+ func installDataContainers (c client.Client ) error {
189+ fmt .Println ("Scheduling data containers..." )
190+ for _ , dataContainer := range DefaultDataContainers {
191+ err := c .Create (dataContainer )
143192 if err != nil {
144193 return err
145194 }
146195 }
196+ fmt .Println ("Data containers scheduled." )
147197 return nil
148198}
149199
@@ -157,36 +207,17 @@ func installDefaultServices(c client.Client) error {
157207 "controller=1" ,
158208 "builder=1" ,
159209 "router=1" }
160- fmt .Println ("\n Scheduling service containers..." )
161- err := Scale (c , targets )
162- fmt .Println ("\n Launching service containers..." )
163- err = Start (c , []string {"logger" , "cache" , "database" })
164- if err != nil {
165- return err
166- }
167- err = Start (c , []string {"registry" })
168- if err != nil {
169- return err
170- }
171- err = Start (c , []string {"controller" })
172- if err != nil {
173- return err
174- }
175- err = Start (c , []string {"builder" })
176- if err != nil {
177- return err
178- }
179- err = Start (c , []string {"router" })
180- if err != nil {
210+ fmt .Println ("Scheduling service containers..." )
211+ if err := Scale (c , targets ); err != nil {
181212 return err
182213 }
183- fmt .Println ("Done ." )
214+ fmt .Println ("Service containers scheduled ." )
184215 return nil
185216}
186217
187218func Uninstall (c client.Client , targets []string ) error {
188219 // if target is platform, uninstall all services
189- if len (targets ) == 1 && targets [0 ] == "platform" {
220+ if len (targets ) == 1 && targets [0 ] == PlatformInstallCommand {
190221 err := uninstallAllServices (c )
191222 if err != nil {
192223 return err
@@ -212,9 +243,9 @@ func uninstallAllServices(c client.Client) error {
212243 "controller=0" ,
213244 "builder=0" ,
214245 "router=0" }
215- fmt .Println ("\n Destroying service containers..." )
246+ fmt .Println ("Destroying service containers..." )
216247 err := Scale (c , targets )
217- fmt .Println ("Done ." )
248+ fmt .Println ("Service containers destroyed ." )
218249 return err
219250}
220251
0 commit comments