Skip to content

Commit 7326447

Browse files
committed
use /usr/share/sonic/device to find platform.json
1 parent 247261f commit 7326447

File tree

5 files changed

+26
-1372
lines changed

5 files changed

+26
-1372
lines changed

cmd/generate.go

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,23 @@ var generateCmd = &cobra.Command{
1515
Use: "generate",
1616
Short: "Generate a config_db.json",
1717
Run: func(cmd *cobra.Command, args []string) {
18-
platformFile, _ := cmd.Flags().GetString("platform")
18+
configDBFile, _ := cmd.Flags().GetString("output")
19+
configDBBytes, err := os.ReadFile(configDBFile)
20+
if err != nil {
21+
fmt.Printf("failed to read current config file, %v\n", err)
22+
os.Exit(1)
23+
}
24+
25+
currentConfig, err := configdb.UnmarshalConfigDB(configDBBytes)
26+
if err != nil {
27+
fmt.Printf("failed to parse current config file, %v\n", err)
28+
os.Exit(1)
29+
}
30+
31+
platformIdentifier := currentConfig.DeviceMetadata.Localhost.Platform
32+
deviceDir, _ := cmd.Flags().GetString("device-dir")
33+
platformFile := fmt.Sprintf("%s/%s/platform.json", deviceDir, platformIdentifier)
34+
1935
platformBytes, err := os.ReadFile(platformFile)
2036
if err != nil {
2137
fmt.Printf("failed to read platform.json file: %v\n", err)
@@ -41,32 +57,19 @@ var generateCmd = &cobra.Command{
4157
os.Exit(1)
4258
}
4359

44-
configDBFile, _ := cmd.Flags().GetString("output")
45-
configDBBytes, err := os.ReadFile(configDBFile)
46-
if err != nil {
47-
fmt.Printf("failed to read current config file, %v\n", err)
48-
os.Exit(1)
49-
}
50-
51-
currentConfig, err := configdb.UnmarshalConfigDB(configDBBytes)
52-
if err != nil {
53-
fmt.Printf("failed to parse current config file, %v\n", err)
54-
os.Exit(1)
55-
}
56-
5760
configDB, err := configdb.GenerateConfigDB(values, platform, currentConfig.DeviceMetadata)
5861
if err != nil {
5962
fmt.Printf("failed to generate config, %v\n", err)
6063
os.Exit(1)
6164
}
6265

63-
configBytes, err := json.MarshalIndent(configDB, "", " ")
66+
configDBBytes, err = json.MarshalIndent(configDB, "", " ")
6467
if err != nil {
6568
fmt.Printf("failed to serialize json, %v\n", err)
6669
os.Exit(1)
6770
}
6871

69-
err = os.WriteFile(configDBFile, configBytes, 0644) //nolint:gosec
72+
err = os.WriteFile(configDBFile, configDBBytes, 0644) //nolint:gosec
7073
if err != nil {
7174
fmt.Printf("failed to write file, %v", err)
7275
os.Exit(1)
@@ -79,5 +82,5 @@ func init() {
7982

8083
generateCmd.Flags().StringP("input", "i", "sonic-config.yaml", "path to input file to generate the config_db.json from")
8184
generateCmd.Flags().StringP("output", "o", "/etc/sonic/config_db.json", "path to output file")
82-
generateCmd.Flags().StringP("platform", "p", "/usr/share/sonic/platform/platform.json", "path to platform.json")
85+
generateCmd.Flags().String("device-dir", "/usr/share/sonic/device", "directory which holds all device-specific files")
8386
}

0 commit comments

Comments
 (0)