Skip to content

Commit f3765fa

Browse files
ViramShah91GitHub Enterprise
authored andcommitted
SNC-15879 No error "% Error: Invalid image URL" when attempt to "image set-default" with an invalid image (sonic-net#51)
* Assigning timestamp values and ifnot present then returning empty * Retracking data type for timestamp and using dbmaps for fetching values
1 parent 7385672 commit f3765fa

File tree

2 files changed

+81
-4
lines changed

2 files changed

+81
-4
lines changed

models/yang/annotations/openconfig-image-management-annot.yang

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,22 +102,22 @@ module openconfig-image-management-annot {
102102

103103
deviation /oc-img-mgmt:image-management/oc-img-mgmt:install/oc-img-mgmt:state/oc-img-mgmt:transfer-start-time {
104104
deviate add {
105-
sonic-ext:field-name "transfer_task_start_time";
105+
sonic-ext:field-transformer "transfer_start_time_xfmr";
106106
}
107107
}
108108
deviation /oc-img-mgmt:image-management/oc-img-mgmt:install/oc-img-mgmt:state/oc-img-mgmt:transfer-end-time {
109109
deviate add {
110-
sonic-ext:field-name "transfer_task_end_time";
110+
sonic-ext:field-transformer "transfer_end_time_xfmr";
111111
}
112112
}
113113
deviation /oc-img-mgmt:image-management/oc-img-mgmt:install/oc-img-mgmt:state/oc-img-mgmt:install-start-time {
114114
deviate add {
115-
sonic-ext:field-name "install_task_start_time";
115+
sonic-ext:field-transformer "install_start_time_xfmr";
116116
}
117117
}
118118
deviation /oc-img-mgmt:image-management/oc-img-mgmt:install/oc-img-mgmt:state/oc-img-mgmt:install-end-time {
119119
deviate add {
120-
sonic-ext:field-name "install_task_end_time";
120+
sonic-ext:field-transformer "install_end_time_xfmr";
121121
}
122122
}
123123

translib/transformer/xfmr_image_mgmt.go

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ func init() {
3838
XlateFuncBind("DbToYang_image_table_key_xfmr", DbToYang_image_table_key_xfmr)
3939
XlateFuncBind("YangToDb_image_global_key_xfmr", YangToDb_image_global_key_xfmr)
4040
XlateFuncBind("DbToYang_image_name_xfmr", DbToYang_image_name_xfmr)
41+
XlateFuncBind("DbToYang_transfer_start_time_xfmr", DbToYang_transfer_start_time_xfmr)
42+
XlateFuncBind("DbToYang_transfer_end_time_xfmr", DbToYang_transfer_end_time_xfmr)
43+
XlateFuncBind("DbToYang_install_start_time_xfmr", DbToYang_install_start_time_xfmr)
44+
XlateFuncBind("DbToYang_install_end_time_xfmr", DbToYang_install_end_time_xfmr)
4145
}
4246

4347
var DbToYang_image_name_xfmr FieldXfmrDbtoYang = func(inParams XfmrParams) (map[string]interface{}, error) {
@@ -51,6 +55,79 @@ var DbToYang_image_name_xfmr FieldXfmrDbtoYang = func(inParams XfmrParams) (map[
5155
return res_map, nil
5256
}
5357

58+
func getDBValuesTime(inParams XfmrParams, varName string) (string, error) {
59+
if varName == "" {
60+
return "", errors.New("Invalid inParams")
61+
}
62+
data := (*inParams.dbDataMap)[inParams.curDb]
63+
imgTbl := data["IMAGE_GLOBAL"]
64+
if _, ok := imgTbl[inParams.key]; !ok {
65+
return "", errors.New("Key not present in Image Global table")
66+
}
67+
imgKey := imgTbl[inParams.key]
68+
timeStamp, ok := imgKey.Field[varName]
69+
if !ok {
70+
return "", errors.New("Field not present in Image Global Table")
71+
}
72+
return timeStamp, nil
73+
}
74+
75+
var DbToYang_transfer_start_time_xfmr FieldXfmrDbtoYang = func(inParams XfmrParams) (map[string]interface{}, error) {
76+
77+
res_map := make(map[string]interface{})
78+
value, err := getDBValuesTime(inParams, "transfer_task_start_time")
79+
if err != nil {
80+
return nil, err
81+
}
82+
if value == "0" {
83+
return nil, err
84+
}
85+
res_map["transfer-start-time"] = value
86+
return res_map, nil
87+
}
88+
89+
var DbToYang_transfer_end_time_xfmr FieldXfmrDbtoYang = func(inParams XfmrParams) (map[string]interface{}, error) {
90+
91+
res_map := make(map[string]interface{})
92+
value, err := getDBValuesTime(inParams, "transfer_task_end_time")
93+
if err != nil {
94+
return nil, err
95+
}
96+
if value == "0" {
97+
return nil, err
98+
}
99+
res_map["transfer-end-time"] = value
100+
return res_map, nil
101+
}
102+
103+
var DbToYang_install_start_time_xfmr FieldXfmrDbtoYang = func(inParams XfmrParams) (map[string]interface{}, error) {
104+
105+
res_map := make(map[string]interface{})
106+
value, err := getDBValuesTime(inParams, "install_task_start_time")
107+
if err != nil {
108+
return nil, err
109+
}
110+
if value == "0" {
111+
return nil, err
112+
}
113+
res_map["install-start-time"] = value
114+
return res_map, nil
115+
}
116+
117+
var DbToYang_install_end_time_xfmr FieldXfmrDbtoYang = func(inParams XfmrParams) (map[string]interface{}, error) {
118+
119+
res_map := make(map[string]interface{})
120+
value, err := getDBValuesTime(inParams, "install_task_end_time")
121+
if err != nil {
122+
return nil, err
123+
}
124+
if value == "0" {
125+
return nil, err
126+
}
127+
res_map["install-end-time"] = value
128+
return res_map, nil
129+
}
130+
54131
var YangToDb_image_table_key_xfmr KeyXfmrYangToDb = func(inParams XfmrParams) (string, error) {
55132

56133
var err error

0 commit comments

Comments
 (0)