@@ -8,24 +8,25 @@ import (
88 "github.com/metal-stack/sonic-configdb-utils/configdb"
99 p "github.com/metal-stack/sonic-configdb-utils/platform"
1010 "github.com/metal-stack/sonic-configdb-utils/values"
11+ v "github.com/metal-stack/sonic-configdb-utils/version"
1112 "github.com/spf13/cobra"
1213)
1314
1415var generateCmd = & cobra.Command {
1516 Use : "generate" ,
1617 Short : "Generate a config_db.json" ,
1718 RunE : func (cmd * cobra.Command , args []string ) error {
19+ inputFile , _ := cmd .Flags ().GetString ("input-file" )
20+ outputFile , _ := cmd .Flags ().GetString ("output-file" )
21+ deviceDir , _ := cmd .Flags ().GetString ("device-dir" )
1822 sonicEnvFile , _ := cmd .Flags ().GetString ("env-file" )
23+ sonicVersionFile , _ := cmd .Flags ().GetString ("version-file" )
24+
1925 env , err := p .GetEnvironment (sonicEnvFile )
2026 if err != nil {
2127 return fmt .Errorf ("failed to get environment information:%w" , err )
2228 }
2329
24- platformIdentifier := env .Platform
25- inputFile , _ := cmd .Flags ().GetString ("input-file" )
26- outputFile , _ := cmd .Flags ().GetString ("output-file" )
27- deviceDir , _ := cmd .Flags ().GetString ("device-dir" )
28-
2930 inputBytes , err := os .ReadFile (inputFile )
3031 if err != nil {
3132 fmt .Printf ("failed to read input file, %v\n " , err )
@@ -38,8 +39,7 @@ var generateCmd = &cobra.Command{
3839 os .Exit (1 )
3940 }
4041
41- platformFile := fmt .Sprintf ("%s/%s/platform.json" , deviceDir , platformIdentifier )
42-
42+ platformFile := fmt .Sprintf ("%s/%s/platform.json" , deviceDir , env .Platform )
4343 platformBytes , err := os .ReadFile (platformFile )
4444 if err != nil {
4545 return fmt .Errorf ("failed to read platform.json file:%w" , err )
@@ -50,7 +50,17 @@ var generateCmd = &cobra.Command{
5050 return fmt .Errorf ("failed to parse platform.json:%w" , err )
5151 }
5252
53- configDB , err := configdb .GenerateConfigDB (values , platform , env )
53+ versionBytes , err := os .ReadFile (sonicVersionFile )
54+ if err != nil {
55+ return fmt .Errorf ("failed to read version file:%w" , err )
56+ }
57+
58+ version , err := v .UnmarshalVersion (versionBytes )
59+ if err != nil {
60+ return fmt .Errorf ("failed to parse version file:%w" , err )
61+ }
62+
63+ configDB , err := configdb .GenerateConfigDB (values , platform , env , version )
5464 if err != nil {
5565 return fmt .Errorf ("failed to generate config:%w" , err )
5666 }
@@ -76,4 +86,5 @@ func init() {
7686 generateCmd .Flags ().StringP ("output-file" , "o" , "config_db.json" , "path to output file" )
7787 generateCmd .Flags ().String ("device-dir" , "/usr/share/sonic/device" , "directory which holds all device-specific files" )
7888 generateCmd .Flags ().StringP ("env-file" , "e" , "/etc/sonic/sonic-environment" , "sonic-environment file holding platform information" )
89+ generateCmd .Flags ().StringP ("version-file" , "v" , "/etc/sonic/sonic_version.yaml" , "sonic version file" )
7990}
0 commit comments