Skip to content

Commit 09d4171

Browse files
committed
Improve GetLanConfigParamsFor to use local variables when needed
1 parent 3940070 commit 09d4171

File tree

2 files changed

+120
-57
lines changed

2 files changed

+120
-57
lines changed

cmd/goipmi/commands/x.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,14 @@ func NewCmdXGetLanConfigParamsFor() *cobra.Command {
274274
ctx := context.Background()
275275

276276
lanConfigParams := ipmi.LanConfigParams{
277-
IP: &ipmi.LanConfigParam_IP{},
278-
SubnetMask: &ipmi.LanConfigParam_SubnetMask{},
279-
DefaultGatewayIP: &ipmi.LanConfigParam_DefaultGatewayIP{},
277+
IP: &ipmi.LanConfigParam_IP{},
278+
SubnetMask: &ipmi.LanConfigParam_SubnetMask{},
279+
DefaultGatewayIP: &ipmi.LanConfigParam_DefaultGatewayIP{},
280+
IPv6StaticAddresses: make([]*ipmi.LanConfigParam_IPv6StaticAddress, 0),
281+
IPv6DynamicAddresses: make([]*ipmi.LanConfigParam_IPv6DynamicAddress, 0),
282+
IPv6DHCPv6StaticDUIDs: make([]*ipmi.LanConfigParam_IPv6DHCPv6StaticDUID, 0),
283+
AlertDestinationAddresses: make([]*ipmi.LanConfigParam_AlertDestinationAddress, 0),
284+
IPv6DynamicRouterInfoMAC: make([]*ipmi.LanConfigParam_IPv6DynamicRouterInfoMAC, 0),
280285
}
281286

282287
if err := client.GetLanConfigParamsFor(ctx, channelNumber, &lanConfigParams); err != nil {

cmd_get_lan_config_params.go

Lines changed: 112 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -319,18 +319,20 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
319319
return err
320320
}
321321

322-
alertDestinationsCount := uint8(0)
323-
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.AlertDestinationsCount); err != nil {
324-
if canIgnore(err) != nil {
325-
return err
326-
}
327-
} else {
328-
if lanConfigParams.AlertDestinationsCount != nil {
329-
alertDestinationsCount = lanConfigParams.AlertDestinationsCount.Count
330-
}
322+
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.AlertDestinationsCount); canIgnore(err) != nil {
323+
return err
331324
}
332325

333326
if lanConfigParams.AlertDestinationTypes != nil {
327+
param := lanConfigParams.AlertDestinationsCount
328+
if param == nil {
329+
param = &LanConfigParam_AlertDestinationsCount{}
330+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
331+
return err
332+
}
333+
}
334+
alertDestinationsCount := param.Count
335+
334336
if len(lanConfigParams.AlertDestinationTypes) == 0 && alertDestinationsCount > 0 {
335337
count := alertDestinationsCount + 1
336338
lanConfigParams.AlertDestinationTypes = make([]*LanConfigParam_AlertDestinationType, count)
@@ -342,13 +344,22 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
342344
}
343345

344346
for _, alertDestinationType := range lanConfigParams.AlertDestinationTypes {
345-
if err := c.GetLanConfigParamFor(ctx, channelNumber, alertDestinationType); err != nil {
347+
if err := c.GetLanConfigParamFor(ctx, channelNumber, alertDestinationType); canIgnore(err) != nil {
346348
return err
347349
}
348350
}
349351
}
350352

351353
if lanConfigParams.AlertDestinationAddresses != nil {
354+
param := lanConfigParams.AlertDestinationsCount
355+
if param == nil {
356+
param = &LanConfigParam_AlertDestinationsCount{}
357+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
358+
return err
359+
}
360+
}
361+
alertDestinationsCount := param.Count
362+
352363
if len(lanConfigParams.AlertDestinationAddresses) == 0 && alertDestinationsCount > 0 {
353364
count := alertDestinationsCount + 1
354365
lanConfigParams.AlertDestinationAddresses = make([]*LanConfigParam_AlertDestinationAddress, count)
@@ -360,7 +371,7 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
360371
}
361372

362373
for _, alertDestinationAddress := range lanConfigParams.AlertDestinationAddresses {
363-
if err := c.GetLanConfigParamFor(ctx, channelNumber, alertDestinationAddress); err != nil {
374+
if err := c.GetLanConfigParamFor(ctx, channelNumber, alertDestinationAddress); canIgnore(err) != nil {
364375
return err
365376
}
366377
}
@@ -387,6 +398,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
387398
}
388399

389400
if lanConfigParams.AlertDestinationVLANs != nil {
401+
param := lanConfigParams.AlertDestinationsCount
402+
if param == nil {
403+
param = &LanConfigParam_AlertDestinationsCount{}
404+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
405+
return err
406+
}
407+
}
408+
alertDestinationsCount := param.Count
409+
390410
if len(lanConfigParams.AlertDestinationVLANs) == 0 && alertDestinationsCount > 0 {
391411
count := alertDestinationsCount + 1
392412

@@ -399,7 +419,7 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
399419
}
400420

401421
for _, alertDestinationVLAN := range lanConfigParams.AlertDestinationVLANs {
402-
if err := c.GetLanConfigParamFor(ctx, channelNumber, alertDestinationVLAN); err != nil {
422+
if err := c.GetLanConfigParamFor(ctx, channelNumber, alertDestinationVLAN); canIgnore(err) != nil {
403423
return err
404424
}
405425
}
@@ -429,20 +449,20 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
429449
return err
430450
}
431451

432-
var ipv6StaticAddressMax uint8
433-
var ipv6DynamicAddressMax uint8
434-
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6Status); err != nil {
435-
if canIgnore(err) != nil {
436-
return err
437-
}
438-
} else {
439-
if lanConfigParams.IPv6Status != nil {
440-
ipv6StaticAddressMax = lanConfigParams.IPv6Status.StaticAddressMax
441-
ipv6DynamicAddressMax = lanConfigParams.IPv6Status.DynamicAddressMax
442-
}
452+
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6Status); canIgnore(err) != nil {
453+
return err
443454
}
444455

445456
if lanConfigParams.IPv6StaticAddresses != nil {
457+
param := lanConfigParams.IPv6Status
458+
if param == nil {
459+
param = &LanConfigParam_IPv6Status{}
460+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
461+
return err
462+
}
463+
}
464+
ipv6StaticAddressMax := param.StaticAddressMax
465+
446466
if len(lanConfigParams.IPv6StaticAddresses) == 0 && ipv6StaticAddressMax > 0 {
447467
count := ipv6StaticAddressMax
448468
lanConfigParams.IPv6StaticAddresses = make([]*LanConfigParam_IPv6StaticAddress, count)
@@ -454,24 +474,26 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
454474
}
455475

456476
for _, ipv6StaticAddress := range lanConfigParams.IPv6StaticAddresses {
457-
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6StaticAddress); err != nil {
477+
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6StaticAddress); canIgnore(err) != nil {
458478
return err
459479
}
460480
}
461481
}
462482

463-
var ipv6DHCPv6StaticDUIDCount uint8
464-
if lanConfigParams.IPv6DHCPv6StaticDUIDCount != nil {
465-
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6DHCPv6StaticDUIDCount); err != nil {
466-
if canIgnore(err) != nil {
483+
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6DHCPv6StaticDUIDCount); canIgnore(err) != nil {
484+
return err
485+
}
486+
487+
if lanConfigParams.IPv6DHCPv6StaticDUIDs != nil {
488+
ipv6Status := lanConfigParams.IPv6DHCPv6StaticDUIDCount
489+
if ipv6Status == nil {
490+
ipv6Status = &LanConfigParam_IPv6DHCPv6StaticDUIDCount{}
491+
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6Status); canIgnore(err) != nil {
467492
return err
468493
}
469-
} else {
470-
ipv6DHCPv6StaticDUIDCount = lanConfigParams.IPv6DHCPv6StaticDUIDCount.Max
471494
}
472-
}
495+
ipv6DHCPv6StaticDUIDCount := ipv6Status.Max
473496

474-
if lanConfigParams.IPv6DHCPv6StaticDUIDs != nil {
475497
if len(lanConfigParams.IPv6DHCPv6StaticDUIDs) == 0 && ipv6DHCPv6StaticDUIDCount > 0 {
476498
count := ipv6DHCPv6StaticDUIDCount
477499
lanConfigParams.IPv6DHCPv6StaticDUIDs = make([]*LanConfigParam_IPv6DHCPv6StaticDUID, count)
@@ -483,13 +505,22 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
483505
}
484506

485507
for _, ipv6DHCPv6StaticDUID := range lanConfigParams.IPv6DHCPv6StaticDUIDs {
486-
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6DHCPv6StaticDUID); err != nil {
508+
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6DHCPv6StaticDUID); canIgnore(err) != nil {
487509
return err
488510
}
489511
}
490512
}
491513

492514
if lanConfigParams.IPv6DynamicAddresses != nil {
515+
ipv6Status := lanConfigParams.IPv6Status
516+
if ipv6Status == nil {
517+
ipv6Status = &LanConfigParam_IPv6Status{}
518+
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6Status); canIgnore(err) != nil {
519+
return err
520+
}
521+
}
522+
ipv6DynamicAddressMax := ipv6Status.DynamicAddressMax
523+
493524
if len(lanConfigParams.IPv6DynamicAddresses) == 0 && ipv6DynamicAddressMax > 0 {
494525
count := ipv6DynamicAddressMax
495526
lanConfigParams.IPv6DynamicAddresses = make([]*LanConfigParam_IPv6DynamicAddress, count)
@@ -501,26 +532,26 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
501532
}
502533

503534
for _, ipv6DynamicAddress := range lanConfigParams.IPv6DynamicAddresses {
504-
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6DynamicAddress); err != nil {
535+
if err := c.GetLanConfigParamFor(ctx, channelNumber, ipv6DynamicAddress); canIgnore(err) != nil {
505536
return err
506537
}
507538
}
508539
}
509540

510-
var ipv6DHCPv6DynamicDUIDCount uint8
511-
if lanConfigParams.IPv6DHCPv6DynamicDUIDCount != nil {
512-
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6DHCPv6DynamicDUIDCount); err != nil {
513-
if canIgnore(err) != nil {
541+
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6DHCPv6DynamicDUIDCount); canIgnore(err) != nil {
542+
return err
543+
}
544+
545+
if lanConfigParams.IPv6DHCPv6DynamicDUIDs != nil {
546+
param := lanConfigParams.IPv6DHCPv6DynamicDUIDCount
547+
if param == nil {
548+
param = &LanConfigParam_IPv6DHCPv6DynamicDUIDCount{}
549+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
514550
return err
515551
}
516-
} else {
517-
if lanConfigParams.IPv6DHCPv6DynamicDUIDCount != nil {
518-
ipv6DHCPv6DynamicDUIDCount = lanConfigParams.IPv6DHCPv6DynamicDUIDCount.Max
519-
}
520552
}
521-
}
553+
ipv6DHCPv6DynamicDUIDCount := param.Max
522554

523-
if lanConfigParams.IPv6DHCPv6DynamicDUIDs != nil {
524555
if len(lanConfigParams.IPv6DHCPv6DynamicDUIDs) == 0 && ipv6DHCPv6DynamicDUIDCount > 0 {
525556
// Todo
526557

@@ -602,20 +633,20 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
602633
return err
603634
}
604635

605-
var ipv6DynamicRouterInfoCount uint8
606-
if lanConfigParams.IPv6DynamicRouterInfoSets != nil {
607-
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6DynamicRouterInfoSets); err != nil {
608-
if canIgnore(err) != nil {
636+
if err := c.GetLanConfigParamFor(ctx, channelNumber, lanConfigParams.IPv6DynamicRouterInfoSets); canIgnore(err) != nil {
637+
return err
638+
}
639+
640+
if lanConfigParams.IPv6DynamicRouterInfoIP != nil {
641+
param := lanConfigParams.IPv6DynamicRouterInfoSets
642+
if param == nil {
643+
param = &LanConfigParam_IPv6DynamicRouterInfoSets{}
644+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
609645
return err
610646
}
611-
} else {
612-
if lanConfigParams.IPv6DynamicRouterInfoSets != nil {
613-
ipv6DynamicRouterInfoCount = lanConfigParams.IPv6DynamicRouterInfoSets.Count
614-
}
615647
}
616-
}
648+
ipv6DynamicRouterInfoCount := param.Count
617649

618-
if lanConfigParams.IPv6DynamicRouterInfoIP != nil {
619650
if len(lanConfigParams.IPv6DynamicRouterInfoIP) == 0 && ipv6DynamicRouterInfoCount > 0 {
620651
count := ipv6DynamicRouterInfoCount
621652
lanConfigParams.IPv6DynamicRouterInfoIP = make([]*LanConfigParam_IPv6DynamicRouterInfoIP, count)
@@ -634,6 +665,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
634665
}
635666

636667
if lanConfigParams.IPv6DynamicRouterInfoMAC != nil {
668+
param := lanConfigParams.IPv6DynamicRouterInfoSets
669+
if param == nil {
670+
param = &LanConfigParam_IPv6DynamicRouterInfoSets{}
671+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
672+
return err
673+
}
674+
}
675+
ipv6DynamicRouterInfoCount := param.Count
676+
637677
if len(lanConfigParams.IPv6DynamicRouterInfoMAC) == 0 && ipv6DynamicRouterInfoCount > 0 {
638678
count := ipv6DynamicRouterInfoCount
639679
lanConfigParams.IPv6DynamicRouterInfoMAC = make([]*LanConfigParam_IPv6DynamicRouterInfoMAC, count)
@@ -652,6 +692,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
652692
}
653693

654694
if lanConfigParams.IPv6DynamicRouterInfoPrefixLength != nil {
695+
param := lanConfigParams.IPv6DynamicRouterInfoSets
696+
if param == nil {
697+
param = &LanConfigParam_IPv6DynamicRouterInfoSets{}
698+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
699+
return err
700+
}
701+
}
702+
ipv6DynamicRouterInfoCount := param.Count
703+
655704
if len(lanConfigParams.IPv6DynamicRouterInfoPrefixLength) == 0 && ipv6DynamicRouterInfoCount > 0 {
656705
count := ipv6DynamicRouterInfoCount
657706
lanConfigParams.IPv6DynamicRouterInfoPrefixLength = make([]*LanConfigParam_IPv6DynamicRouterInfoPrefixLength, count)
@@ -670,6 +719,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
670719
}
671720

672721
if lanConfigParams.IPv6DynamicRouterInfoPrefixValue != nil {
722+
param := lanConfigParams.IPv6DynamicRouterInfoSets
723+
if param == nil {
724+
param = &LanConfigParam_IPv6DynamicRouterInfoSets{}
725+
if err := c.GetLanConfigParamFor(ctx, channelNumber, param); canIgnore(err) != nil {
726+
return err
727+
}
728+
}
729+
ipv6DynamicRouterInfoCount := param.Count
730+
673731
if len(lanConfigParams.IPv6DynamicRouterInfoPrefixValue) == 0 && ipv6DynamicRouterInfoCount > 0 {
674732
count := ipv6DynamicRouterInfoCount
675733
lanConfigParams.IPv6DynamicRouterInfoPrefixValue = make([]*LanConfigParam_IPv6DynamicRouterInfoPrefixValue, count)

0 commit comments

Comments
 (0)