Cdb_set_case is called with empty case value ""

Hi,

I have cdb-set_case function with all parameter correct except case parameter. I have passed “” parameter as case value. and my yang model dont have any default for choice.

I see that cdb_set_case should fail but it passed. Let me know if my understanding is correct.

            container case_example {
                    choice case_selector {
                            case value_case_1 {
                                    leaf case_1 {
                                            type string;
                                    }
                            }
                            case value_case_2 {
                                    leaf case_2 {
                                            type string;
                                    }
                            }
                    }
            }

TRACE Connected (cdb) to ConfD
TRACE CDB_NEW_SESSION --> CONFD_OK
TRACE Established new CDB session to ConfD
TRACE CDB_SET_NAMESPACE --> CONFD_OK
TRACE CDB_SET_CASE /leaf_example/case_example --> CONFD_OK
TRACE CDB_END_SESSION --> CONFD_OK

Hi sudhanshu,

You use “” to unselect a selected case.

Quick demo with your YANG:

$ confd_cmd -o -d -d -c 'get_case "/case_example" "case_selector"'
get_case "/case_example" "case_selector"
TRACE Connected (maapi) to ConfD
TRACE MAAPI_LOAD_ALL_NS
TRACE MAAPI_LOAD_HASH_DB
TRACE Connected (cdb) to ConfD
TRACE CDB_NEW_SESSION  --> CONFD_OK
TRACE Established new CDB session to ConfD
TRACE CDB_GET_CASE /case_example --> CONFD_OK
value_case_1

$ confd_cmd -o -d -d -c 'set_case "/case_example" "case_selector" ""'
set_case "/case_example" "case_selector" ""
TRACE Connected (cdb) to ConfD
TRACE CDB_NEW_SESSION  --> CONFD_OK
TRACE Established new CDB session to ConfD
TRACE CDB_SET_CASE /case_example --> CONFD_OK

$ confd_cmd -o -d -d -c 'get_case "/case_example" "case_selector"'
get_case "/case_example" "case_selector"
TRACE Connected (maapi) to ConfD
TRACE MAAPI_LOAD_ALL_NS
TRACE MAAPI_LOAD_HASH_DB
TRACE Connected (cdb) to ConfD
TRACE CDB_NEW_SESSION  --> CONFD_OK
TRACE Established new CDB session to ConfD
TRACE CDB_GET_CASE /case_exampleDEBUG item does not exist - No case selected and no default
 --> CONFD_ERR
FAILED: cdb_get_case(cs, argv[1], &val, argv[0]), Error: item does not exist (1): No case selected and no default, in function do_cdb_get_case, line 341