@@ -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,23 @@ 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
+ paramAZID = "azid"
37
+ paramAZIDDesc = "AZ Id to setup mac machines"
38
+ paramAZIDDefault = ""
39
+ paramSubnetID = "subnetid"
40
+ paramSubnetIDDesc = "Subnet Id to setup mac machines"
41
+ paramSubnetIDDefault = ""
42
+ paramSSHSGID = "ssh-sgid"
43
+ paramSSHSGIDDesc = "Security group Id to securize ssh access to machines. SSH can only be used from instances with this SG."
44
+ paramSSHSGIDDefault = ""
45
+ // Request / Release
46
+ paramTicket = "ticket"
47
+ 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"
48
+ paramTicketDefault = ""
31
49
)
32
50
33
51
func GetMacPoolCmd () * cobra.Command {
@@ -67,14 +85,13 @@ func createMP() *cobra.Command {
67
85
DebugLevel : viper .GetUint (params .DebugLevel ),
68
86
Tags : viper .GetStringMapString (params .Tags ),
69
87
},
70
- & macpool.MacPoolRequestArgs {
88
+ & macpool.PoolRequestArgs {
71
89
Prefix : "main" ,
72
- PoolName : viper .GetString (paramName ),
90
+ Name : viper .GetString (paramName ),
73
91
Architecture : viper .GetString (awsParams .MACArch ),
74
92
OSVersion : viper .GetString (awsParams .MACOSVersion ),
75
93
OfferedCapacity : viper .GetInt (paramOfferedCapacity ),
76
- MaxSize : viper .GetInt (paramMaxSize ),
77
- FixedLocation : viper .IsSet (awsParams .MACFixedLocation )}); err != nil {
94
+ MaxSize : viper .GetInt (paramMaxSize )}); err != nil {
78
95
logging .Error (err )
79
96
}
80
97
return nil
@@ -89,7 +106,6 @@ func createMP() *cobra.Command {
89
106
flagSet .StringP (awsParams .MACArch , "" , awsParams .MACArchDefault , awsParams .MACArchDesc )
90
107
flagSet .StringP (awsParams .MACOSVersion , "" , awsParams .MACOSVersionDefault , awsParams .MACOSVersionDesc )
91
108
flagSet .StringToStringP (params .Tags , "" , nil , params .TagsDesc )
92
- flagSet .Bool (awsParams .MACFixedLocation , false , awsParams .MACFixedLocationDesc )
93
109
c .PersistentFlags ().AddFlagSet (flagSet )
94
110
return c
95
111
}
@@ -138,28 +154,39 @@ func houseKeep() *cobra.Command {
138
154
DebugLevel : viper .GetUint (params .DebugLevel ),
139
155
Tags : viper .GetStringMapString (params .Tags ),
140
156
},
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 {
157
+ & macpool.HouseKeepRequestArgs {
158
+ Pool : & macpool.PoolRequestArgs {
159
+ Prefix : "main" ,
160
+ Name : viper .GetString (paramName ),
161
+ Architecture : viper .GetString (awsParams .MACArch ),
162
+ OSVersion : viper .GetString (awsParams .MACOSVersion ),
163
+ OfferedCapacity : viper .GetInt (paramOfferedCapacity ),
164
+ MaxSize : viper .GetInt (paramMaxSize ),
165
+ },
166
+ Machine : & macpool.MachineRequestArgs {
167
+ VPCID : viper .GetString (paramVPCID ),
168
+ AZID : viper .GetString (paramAZID ),
169
+ SubnetID : viper .GetString (paramSubnetID ),
170
+ SSHSGID : viper .GetString (paramSSHSGID )},
171
+ }); err != nil {
149
172
logging .Error (err )
150
173
}
151
174
return nil
152
175
},
153
176
}
154
177
flagSet := pflag .NewFlagSet (params .CreateCmdName , pflag .ExitOnError )
178
+ params .AddCommonFlags (flagSet )
155
179
flagSet .StringToStringP (params .Tags , "" , nil , params .TagsDesc )
156
180
flagSet .StringP (paramName , "" , "" , paramNameDesc )
157
181
flagSet .Int (paramOfferedCapacity , paramOfferedCapacityDefault , paramOfferedCapacityDesc )
158
182
flagSet .Int (paramMaxSize , paramMaxSizeDefault , paramMaxSizeDesc )
159
183
flagSet .StringP (awsParams .MACArch , "" , awsParams .MACArchDefault , awsParams .MACArchDesc )
160
184
flagSet .StringP (awsParams .MACOSVersion , "" , awsParams .MACOSVersion , awsParams .MACOSVersionDefault )
161
- flagSet .Bool (awsParams .MACFixedLocation , false , awsParams .MACFixedLocationDesc )
162
185
flagSet .Bool (params .Serverless , false , params .ServerlessDesc )
186
+ flagSet .StringP (paramVPCID , "" , paramVPCIDDefault , paramVPCIDDesc )
187
+ flagSet .StringP (paramAZID , "" , paramAZIDDefault , paramAZIDDesc )
188
+ flagSet .StringP (paramSubnetID , "" , paramSubnetIDDefault , paramSubnetIDDesc )
189
+ flagSet .StringP (paramSSHSGID , "" , paramSSHSGIDDefault , paramSSHSGIDDesc )
163
190
c .PersistentFlags ().AddFlagSet (flagSet )
164
191
return c
165
192
}
@@ -209,7 +236,14 @@ func request() *cobra.Command {
209
236
PoolName : viper .GetString (paramName ),
210
237
Architecture : viper .GetString (awsParams .MACArch ),
211
238
OSVersion : viper .GetString (awsParams .MACOSVersion ),
212
- Timeout : viper .GetString (params .Timeout ),
239
+ Machine : & macpool.MachineRequestArgs {
240
+ VPCID : viper .GetString (paramVPCID ),
241
+ AZID : viper .GetString (paramAZID ),
242
+ SubnetID : viper .GetString (paramSubnetID ),
243
+ SSHSGID : viper .GetString (paramSSHSGID ),
244
+ },
245
+ Ticket : viper .GetString (paramTicket ),
246
+ Timeout : viper .GetString (params .Timeout ),
213
247
}); err != nil {
214
248
logging .Error (err )
215
249
}
@@ -223,6 +257,11 @@ func request() *cobra.Command {
223
257
flagSet .StringP (awsParams .MACArch , "" , awsParams .MACArchDefault , awsParams .MACArchDesc )
224
258
flagSet .StringP (awsParams .MACOSVersion , "" , awsParams .MACOSVersion , awsParams .MACOSVersionDefault )
225
259
flagSet .StringP (params .Timeout , "" , "" , params .TimeoutDesc )
260
+ flagSet .StringP (paramVPCID , "" , paramVPCIDDefault , paramVPCIDDesc )
261
+ flagSet .StringP (paramAZID , "" , paramAZIDDefault , paramAZIDDesc )
262
+ flagSet .StringP (paramSubnetID , "" , paramSubnetIDDefault , paramSubnetIDDesc )
263
+ flagSet .StringP (paramSSHSGID , "" , paramSSHSGIDDefault , paramSSHSGIDDesc )
264
+ flagSet .StringP (paramTicket , "" , paramTicketDefault , paramTicketDesc )
226
265
flagSet .Bool (params .Serverless , false , params .ServerlessDesc )
227
266
flagSet .Bool (params .Remote , false , params .RemoteDesc )
228
267
flagSet .AddFlagSet (params .GetGHActionsFlagset ())
@@ -247,20 +286,26 @@ func release() *cobra.Command {
247
286
Serverless : viper .IsSet (params .Serverless ),
248
287
Remote : viper .IsSet (params .Remote ),
249
288
},
250
- viper .GetString (awsParams .MACDHID )); err != nil {
289
+ & macpool.MachineRequestArgs {
290
+ VPCID : viper .GetString (paramVPCID ),
291
+ AZID : viper .GetString (paramAZID ),
292
+ SubnetID : viper .GetString (paramSubnetID ),
293
+ SSHSGID : viper .GetString (paramSSHSGID ),
294
+ },
295
+ viper .GetString (paramTicket )); err != nil {
251
296
logging .Error (err )
252
297
}
253
298
return nil
254
299
},
255
300
}
256
301
flagSet := pflag .NewFlagSet (awsParams .MACReleaseCmd , pflag .ExitOnError )
257
- flagSet .StringP (awsParams .MACDHID , "" , "" , awsParams .MACDHIDDesc )
302
+ flagSet .StringP (paramVPCID , "" , paramVPCIDDefault , paramVPCIDDesc )
303
+ flagSet .StringP (paramAZID , "" , paramAZIDDefault , paramAZIDDesc )
304
+ flagSet .StringP (paramSubnetID , "" , paramSubnetIDDefault , paramSubnetIDDesc )
305
+ flagSet .StringP (paramSSHSGID , "" , paramSSHSGIDDefault , paramSSHSGIDDesc )
306
+ flagSet .StringP (paramTicket , "" , paramTicketDefault , paramTicketDesc )
258
307
flagSet .Bool (params .Serverless , false , params .ServerlessDesc )
259
308
flagSet .Bool (params .Remote , false , params .RemoteDesc )
260
309
c .PersistentFlags ().AddFlagSet (flagSet )
261
- err := c .MarkPersistentFlagRequired (awsParams .MACDHID )
262
- if err != nil {
263
- logging .Error (err )
264
- }
265
310
return c
266
311
}
0 commit comments