Skip to content

Commit ac3b8b4

Browse files
committed
Inline error, and parse bool
Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
1 parent 0b465cc commit ac3b8b4

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

provision/ec2.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,22 @@ func (p *EC2Provisioner) Provision(host BasicHost) (*ProvisionedHost, error) {
3939
if err != nil {
4040
return nil, err
4141
}
42-
pro := host.Additional["pro"]
42+
43+
proV := host.Additional["pro"]
44+
45+
proPorts, _ := strconv.ParseBool(proV)
4346

4447
ports := host.Additional["ports"]
4548

49+
extraPorts, err := parsePorts(ports)
50+
if err != nil {
51+
return nil, err
52+
}
53+
4654
var vpcID = host.Additional["vpc-id"]
4755
var subnetID = host.Additional["subnet-id"]
4856

49-
groupID, name, err := p.createEC2SecurityGroup(vpcID, port, pro, ports)
57+
groupID, name, err := p.createEC2SecurityGroup(vpcID, port, proPorts, extraPorts)
5058
if err != nil {
5159
return nil, err
5260
}
@@ -251,19 +259,14 @@ func (p *EC2Provisioner) lookupID(request HostDeleteRequest) (string, error) {
251259
}
252260

253261
// createEC2SecurityGroup creates a security group for the exit-node
254-
func (p *EC2Provisioner) createEC2SecurityGroup(vpcID string, controlPort int, pro, extraPorts string) (*string, *string, error) {
262+
func (p *EC2Provisioner) createEC2SecurityGroup(vpcID string, controlPort int, openHighPorts bool, extraPorts []int) (*string, *string, error) {
255263
ports := []int{controlPort}
256264

257-
proPortRange := []int{1024, 65535}
265+
highPortRange := []int{1024, 65535}
258266

259267
if len(extraPorts) > 0 {
260-
extraPorts, err := parsePorts(extraPorts)
261-
if err != nil {
262-
return nil, nil, err
263-
}
264-
ports = append(ports, extraPorts...)
265-
266-
proPortRange = []int{}
268+
// disable high port range if extra ports are specified
269+
highPortRange = []int{}
267270
}
268271

269272
groupName := "inlets-" + uuid.New().String()
@@ -282,14 +285,14 @@ func (p *EC2Provisioner) createEC2SecurityGroup(vpcID string, controlPort int, p
282285
}
283286

284287
for _, port := range ports {
285-
err = p.createEC2SecurityGroupRule(*group.GroupId, port, port)
286-
if err != nil {
287-
return group.GroupId, &groupName, err
288+
if err = p.createEC2SecurityGroupRule(*group.GroupId, port, port); err != nil {
289+
return group.GroupId, &groupName,
290+
fmt.Errorf("failed to create security group on %s with port %d: %w", *group.GroupId, port, err)
288291
}
289292
}
290293

291-
if pro == "true" && len(proPortRange) == 2 {
292-
err = p.createEC2SecurityGroupRule(*group.GroupId, proPortRange[0], proPortRange[1])
294+
if openHighPorts && len(highPortRange) == 2 {
295+
err = p.createEC2SecurityGroupRule(*group.GroupId, highPortRange[0], highPortRange[1])
293296
if err != nil {
294297
return group.GroupId, &groupName, err
295298
}
@@ -300,6 +303,7 @@ func (p *EC2Provisioner) createEC2SecurityGroup(vpcID string, controlPort int, p
300303

301304
func parsePorts(extraPorts string) ([]int, error) {
302305
var ports []int
306+
303307
parts := strings.Split(extraPorts, ",")
304308
for _, part := range parts {
305309
if trimmed := strings.TrimSpace(part); len(trimmed) > 0 {

0 commit comments

Comments
 (0)