Skip to content

Commit 031a305

Browse files
committed
Use substring matching for version checking for latest 202211 sonic version
1 parent 4ebcc9b commit 031a305

File tree

4 files changed

+36
-31
lines changed

4 files changed

+36
-31
lines changed

cmd/generate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ var generateCmd = &cobra.Command{
5555
return fmt.Errorf("failed to read version file:%w", err)
5656
}
5757

58-
version, err := v.UnmarshalVersion(versionBytes)
58+
version, err := v.GetVersion(versionBytes)
5959
if err != nil {
6060
return fmt.Errorf("failed to parse version file:%w", err)
6161
}

configdb/configdb.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type ConfigDB struct {
4545
VXLANTunnelMap VXLANTunnelMap `json:"VXLAN_TUNNEL_MAP,omitempty"`
4646
}
4747

48-
func GenerateConfigDB(input *values.Values, platform *p.Platform, environment *p.Environment, version *v.Version) (*ConfigDB, error) {
48+
func GenerateConfigDB(input *values.Values, platform *p.Platform, environment *p.Environment, version v.Branch) (*ConfigDB, error) {
4949
if input == nil {
5050
return nil, fmt.Errorf("no input values provided")
5151
}
@@ -284,7 +284,7 @@ func getInterfaces(ports values.Ports, bgpPorts []string, interconnects map[stri
284284
return interfaces
285285
}
286286

287-
func getLLDP(interval int, version *v.Version) *LLDP {
287+
func getLLDP(interval int, version v.Branch) *LLDP {
288288
if interval < 1 {
289289
return nil
290290
}
@@ -294,11 +294,11 @@ func getLLDP(interval int, version *v.Version) *LLDP {
294294
HelloTime: fmt.Sprintf("%d", interval),
295295
}
296296

297-
switch version.Branch {
298-
case string(v.Branch202111):
297+
switch version {
298+
case v.Branch202111:
299299
global202111 := LLDPGlobal202111(global)
300300
lldp.Global202111 = &global202111
301-
case string(v.Branch202211):
301+
case v.Branch202211:
302302
global202211 := LLDPGlobal202211(global)
303303
lldp.Global202211 = &global202211
304304
default:
@@ -504,8 +504,8 @@ func getPortsAndBreakouts(ports values.Ports, breakouts map[string]string, platf
504504
return configPorts, configBreakouts, nil
505505
}
506506

507-
func getSAG(sag *values.SAG, version *v.Version) (*SAG, error) {
508-
if version.Branch != string(v.Branch202211) && sag != nil {
507+
func getSAG(sag *values.SAG, version v.Branch) (*SAG, error) {
508+
if version != v.Branch202211 && sag != nil {
509509
return nil, fmt.Errorf("sag configuration only works with sonic versions from the ec202211_ecsonic branch")
510510
}
511511

@@ -533,13 +533,13 @@ func getVLANs(vlans []values.VLAN) map[string]VLAN {
533533
return configVLANs
534534
}
535535

536-
func getVLANInterfaces(vlans []values.VLAN, version *v.Version) (map[string]VLANInterface, error) {
536+
func getVLANInterfaces(vlans []values.VLAN, version v.Branch) (map[string]VLANInterface, error) {
537537
vlanInterfaces := make(map[string]VLANInterface)
538538

539539
for _, vlan := range vlans {
540540
var vlanInterface VLANInterface
541541

542-
if version.Branch != string(v.Branch202211) && vlan.SAG != nil {
542+
if version != v.Branch202211 && vlan.SAG != nil {
543543
return nil, fmt.Errorf("sag only works for sonic builds from branch ec202211_ecsonic")
544544
}
545545
var sag string
@@ -583,14 +583,14 @@ func getVLANMembers(vlans []values.VLAN) map[string]VLANMember {
583583
return vlanMembers
584584
}
585585

586-
func getVRRPInterfaces(vlans []values.VLAN, version *v.Version) (map[string]VRRPInterface, error) {
586+
func getVRRPInterfaces(vlans []values.VLAN, version v.Branch) (map[string]VRRPInterface, error) {
587587
vrrpInterfaces := make(map[string]VRRPInterface)
588588
for _, vlan := range vlans {
589589
if vlan.VRRP.Group == "" {
590590
continue
591591
}
592592

593-
if version.Branch != string(v.Branch202111) {
593+
if version != v.Branch202111 {
594594
return nil, fmt.Errorf("vrrp configuration only works with sonic versions from the ec202111 branch")
595595
}
596596

configdb/configdb_test.go

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -557,25 +557,21 @@ func Test_getSAG(t *testing.T) {
557557
tests := []struct {
558558
name string
559559
sag *values.SAG
560-
version *v.Version
560+
version v.Branch
561561
want *SAG
562562
wantErr bool
563563
}{
564564
{
565-
name: "wrong version",
566-
sag: &values.SAG{},
567-
version: &v.Version{
568-
Branch: string(v.Branch202111),
569-
},
565+
name: "wrong version",
566+
sag: &values.SAG{},
567+
version: v.Branch202111,
570568
want: nil,
571569
wantErr: true,
572570
},
573571
{
574-
name: "empty mac",
575-
sag: &values.SAG{},
576-
version: &v.Version{
577-
Branch: string(v.Branch202211),
578-
},
572+
name: "empty mac",
573+
sag: &values.SAG{},
574+
version: v.Branch202211,
579575
want: nil,
580576
wantErr: false,
581577
},
@@ -584,9 +580,7 @@ func Test_getSAG(t *testing.T) {
584580
sag: &values.SAG{
585581
MAC: "11:11:11:11:11:11",
586582
},
587-
version: &v.Version{
588-
Branch: string(v.Branch202211),
589-
},
583+
version: v.Branch202211,
590584
want: &SAG{
591585
SAGGlobal: SAGGlobal{
592586
GatewayMAC: "11:11:11:11:11:11",

version/version.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,35 @@
11
package version
22

3-
import "gopkg.in/yaml.v3"
3+
import (
4+
"strings"
5+
6+
"gopkg.in/yaml.v3"
7+
)
48

59
type Branch string
610

711
const (
812
Branch202111 Branch = "ec202111"
9-
Branch202211 Branch = "ec202211_ecsonic"
13+
Branch202211 Branch = "ec202211"
1014
)
1115

1216
type Version struct {
1317
Branch string `yaml:"branch"`
1418
}
1519

16-
func UnmarshalVersion(in []byte) (*Version, error) {
20+
func GetVersion(in []byte) (Branch, error) {
1721
var version Version
1822
err := yaml.Unmarshal(in, &version)
1923
if err != nil {
20-
return nil, err
24+
return "", err
25+
}
26+
27+
if strings.Contains(version.Branch, string(Branch202111)) {
28+
return Branch202111, nil
29+
}
30+
if strings.Contains(version.Branch, string(Branch202211)) {
31+
return Branch202211, nil
2132
}
2233

23-
return &version, nil
34+
return "", nil
2435
}

0 commit comments

Comments
 (0)