@@ -20,6 +20,7 @@ const (
20
20
cmdHousekeep = "house-keep"
21
21
cmdHousekeepDesc = "house keeping for mac pool. Detroy old machines on over capacity and create new ones if capacity not meet"
22
22
23
+ // Pool params
23
24
paramName = "name"
24
25
paramNameDesc = "pool name it is a unique identifier for the pool. The name should be unique for the whole AWS account"
25
26
paramOfferedCapacity = "offered-capacity"
@@ -28,6 +29,17 @@ const (
28
29
paramMaxSize = "max-size"
29
30
paramMaxSizeDesc = "max number of machines in the pool"
30
31
paramMaxSizeDefault = 2
32
+ // Machines in the pool params
33
+ paramVPCID = "vpcid"
34
+ paramVPCIDDesc = "VPC Id to setup mac machines"
35
+ paramVPCIDDefault = ""
36
+ paramSSHSGID = "ssh-sgid"
37
+ paramSSHSGIDDesc = "Security group Id to securize ssh access to machines. SSH can only be used from instances with this SG."
38
+ paramSSHSGIDDefault = ""
39
+ // Request / Release
40
+ paramTicket = "ticket"
41
+ paramTicketDesc = "this is a unique identifier to tag the dedicated host meanwhile it is being locked to identify the request which locked it. It will be used on release to identify the machine being released"
42
+ paramTicketDefault = ""
31
43
)
32
44
33
45
func GetMacPoolCmd () * cobra.Command {
@@ -67,14 +79,13 @@ func createMP() *cobra.Command {
67
79
DebugLevel : viper .GetUint (params .DebugLevel ),
68
80
Tags : viper .GetStringMapString (params .Tags ),
69
81
},
70
- & macpool.MacPoolRequestArgs {
82
+ & macpool.PoolRequestArgs {
71
83
Prefix : "main" ,
72
- PoolName : viper .GetString (paramName ),
84
+ Name : viper .GetString (paramName ),
73
85
Architecture : viper .GetString (awsParams .MACArch ),
74
86
OSVersion : viper .GetString (awsParams .MACOSVersion ),
75
87
OfferedCapacity : viper .GetInt (paramOfferedCapacity ),
76
- MaxSize : viper .GetInt (paramMaxSize ),
77
- FixedLocation : viper .IsSet (awsParams .MACFixedLocation )}); err != nil {
88
+ MaxSize : viper .GetInt (paramMaxSize )}); err != nil {
78
89
logging .Error (err )
79
90
}
80
91
return nil
@@ -89,7 +100,6 @@ func createMP() *cobra.Command {
89
100
flagSet .StringP (awsParams .MACArch , "" , awsParams .MACArchDefault , awsParams .MACArchDesc )
90
101
flagSet .StringP (awsParams .MACOSVersion , "" , awsParams .MACOSVersionDefault , awsParams .MACOSVersionDesc )
91
102
flagSet .StringToStringP (params .Tags , "" , nil , params .TagsDesc )
92
- flagSet .Bool (awsParams .MACFixedLocation , false , awsParams .MACFixedLocationDesc )
93
103
c .PersistentFlags ().AddFlagSet (flagSet )
94
104
return c
95
105
}
@@ -138,28 +148,35 @@ func houseKeep() *cobra.Command {
138
148
DebugLevel : viper .GetUint (params .DebugLevel ),
139
149
Tags : viper .GetStringMapString (params .Tags ),
140
150
},
141
- & macpool.MacPoolRequestArgs {
142
- Prefix : "main" ,
143
- PoolName : viper .GetString (paramName ),
144
- Architecture : viper .GetString (awsParams .MACArch ),
145
- OSVersion : viper .GetString (awsParams .MACOSVersion ),
146
- OfferedCapacity : viper .GetInt (paramOfferedCapacity ),
147
- MaxSize : viper .GetInt (paramMaxSize ),
148
- FixedLocation : viper .IsSet (awsParams .MACFixedLocation )}); err != nil {
151
+ & macpool.HouseKeepRequestArgs {
152
+ Pool : & macpool.PoolRequestArgs {
153
+ Prefix : "main" ,
154
+ Name : viper .GetString (paramName ),
155
+ Architecture : viper .GetString (awsParams .MACArch ),
156
+ OSVersion : viper .GetString (awsParams .MACOSVersion ),
157
+ OfferedCapacity : viper .GetInt (paramOfferedCapacity ),
158
+ MaxSize : viper .GetInt (paramMaxSize ),
159
+ },
160
+ Machine : & macpool.MachineRequestArgs {
161
+ VPCID : viper .GetString (paramVPCID ),
162
+ SSHSGID : viper .GetString (paramSSHSGID )},
163
+ }); err != nil {
149
164
logging .Error (err )
150
165
}
151
166
return nil
152
167
},
153
168
}
154
169
flagSet := pflag .NewFlagSet (params .CreateCmdName , pflag .ExitOnError )
170
+ params .AddCommonFlags (flagSet )
155
171
flagSet .StringToStringP (params .Tags , "" , nil , params .TagsDesc )
156
172
flagSet .StringP (paramName , "" , "" , paramNameDesc )
157
173
flagSet .Int (paramOfferedCapacity , paramOfferedCapacityDefault , paramOfferedCapacityDesc )
158
174
flagSet .Int (paramMaxSize , paramMaxSizeDefault , paramMaxSizeDesc )
159
175
flagSet .StringP (awsParams .MACArch , "" , awsParams .MACArchDefault , awsParams .MACArchDesc )
160
176
flagSet .StringP (awsParams .MACOSVersion , "" , awsParams .MACOSVersion , awsParams .MACOSVersionDefault )
161
- flagSet .Bool (awsParams .MACFixedLocation , false , awsParams .MACFixedLocationDesc )
162
177
flagSet .Bool (params .Serverless , false , params .ServerlessDesc )
178
+ flagSet .StringP (paramVPCID , "" , paramVPCIDDefault , paramVPCIDDesc )
179
+ flagSet .StringP (paramSSHSGID , "" , paramSSHSGIDDefault , paramSSHSGIDDesc )
163
180
c .PersistentFlags ().AddFlagSet (flagSet )
164
181
return c
165
182
}
@@ -209,7 +226,12 @@ func request() *cobra.Command {
209
226
PoolName : viper .GetString (paramName ),
210
227
Architecture : viper .GetString (awsParams .MACArch ),
211
228
OSVersion : viper .GetString (awsParams .MACOSVersion ),
212
- Timeout : viper .GetString (params .Timeout ),
229
+ Machine : & macpool.MachineRequestArgs {
230
+ VPCID : viper .GetString (paramVPCID ),
231
+ SSHSGID : viper .GetString (paramSSHSGID ),
232
+ },
233
+ Ticket : viper .GetString (paramTicket ),
234
+ Timeout : viper .GetString (params .Timeout ),
213
235
}); err != nil {
214
236
logging .Error (err )
215
237
}
@@ -223,6 +245,9 @@ func request() *cobra.Command {
223
245
flagSet .StringP (awsParams .MACArch , "" , awsParams .MACArchDefault , awsParams .MACArchDesc )
224
246
flagSet .StringP (awsParams .MACOSVersion , "" , awsParams .MACOSVersion , awsParams .MACOSVersionDefault )
225
247
flagSet .StringP (params .Timeout , "" , "" , params .TimeoutDesc )
248
+ flagSet .StringP (paramVPCID , "" , paramVPCIDDefault , paramVPCIDDesc )
249
+ flagSet .StringP (paramSSHSGID , "" , paramSSHSGIDDefault , paramSSHSGIDDesc )
250
+ flagSet .StringP (paramTicket , "" , paramTicketDefault , paramTicketDesc )
226
251
flagSet .Bool (params .Serverless , false , params .ServerlessDesc )
227
252
flagSet .Bool (params .Remote , false , params .RemoteDesc )
228
253
flagSet .AddFlagSet (params .GetGHActionsFlagset ())
@@ -247,20 +272,22 @@ func release() *cobra.Command {
247
272
Serverless : viper .IsSet (params .Serverless ),
248
273
Remote : viper .IsSet (params .Remote ),
249
274
},
250
- viper .GetString (awsParams .MACDHID )); err != nil {
275
+ & macpool.MachineRequestArgs {
276
+ VPCID : viper .GetString (paramVPCID ),
277
+ SSHSGID : viper .GetString (paramSSHSGID ),
278
+ },
279
+ viper .GetString (paramTicket )); err != nil {
251
280
logging .Error (err )
252
281
}
253
282
return nil
254
283
},
255
284
}
256
285
flagSet := pflag .NewFlagSet (awsParams .MACReleaseCmd , pflag .ExitOnError )
257
- flagSet .StringP (awsParams .MACDHID , "" , "" , awsParams .MACDHIDDesc )
286
+ flagSet .StringP (paramVPCID , "" , paramVPCIDDefault , paramVPCIDDesc )
287
+ flagSet .StringP (paramSSHSGID , "" , paramSSHSGIDDefault , paramSSHSGIDDesc )
288
+ flagSet .StringP (paramTicket , "" , paramTicketDefault , paramTicketDesc )
258
289
flagSet .Bool (params .Serverless , false , params .ServerlessDesc )
259
290
flagSet .Bool (params .Remote , false , params .RemoteDesc )
260
291
c .PersistentFlags ().AddFlagSet (flagSet )
261
- err := c .MarkPersistentFlagRequired (awsParams .MACDHID )
262
- if err != nil {
263
- logging .Error (err )
264
- }
265
292
return c
266
293
}
0 commit comments