Details
Description
Seems like fix for MB-32244 breaks existing exported configurations that do not have new "language_compatibility" field which is counter intuitive since this is a backward compatibility feature.
This issue will impact customers the rely on the CLI for eventing (cURL or couchbase-cli).
Importing saved Eventing Handlers via the CLI will no longer work (but the UI will)
curl -s -X POST -d @./verifier_01w_inst01.json -s http://${CB_USERNAME}:${CB_PASSWORD}@localhost:8096/api/v1/functions/verifier_01w_inst01 |
{
|
"name": "ERR_INVALID_CONFIG", |
"code": 38, |
"description": "Invalid configuration", |
"attributes": null, |
"runtime_info": { |
"code": 38, |
"info": "Language compatibility missing in the configuration" |
}
|
|
couchbase-cli eventing-function-setup -c localhost -u $CB_USERNAME -p $CB_PASSWORD --import --name verifier_01w_inst01 --file verifier_01w_inst01.json2 |
ERROR: {'code': 38, 'info': 'Language compatibility missing in the configuration'} |
Important we use 'verifier_01w_inst01.json' for curl and 'verifier_01w_inst01.json2' for couchbase-cli as the two CLI export-then-import modes do not seem to be cross compatible. But that is another issue for a future dat.
The attached Eventing Handler/Function was created under 6.5 (source build a 11 days ago) it has been importing fine for several days. However I know have the above error.
Note using the UI the imported function will get a 'tag' or new setting of 6.5.0 (under Settings/Language compatibility). So it appears that this logic is in the UI not in shared code that underlies both the UI and the CLI.
If we edit the exported files, e.g. 'verifier_01w_inst01.json' for curl and 'verifier_01w_inst01.json2', and add the missing directive we can indeed use both cURL and couchbase-cli to import the function.
vi verifier_01w_inst01.json
|
(ADD)
|
"language_compatibility":"6.5.0", |
Now we can do one of the following:
curl -s -X POST -d @./verifier_01w_inst01.json -s http://${CB_USERNAME}:${CB_PASSWORD}@localhost:8096/api/v1/functions/verifier_01w_inst01 |
{
|
"code": 0, |
"info": { |
"status": "Stored function: 'verifier_01w_inst01' in metakv", |
"warnings": null |
}
|
}
|
or
couchbase-cli eventing-function-setup -c localhost -u $CB_USERNAME -p $CB_PASSWORD --import --name verifier_01w_inst01 --file verifier_01w_inst01.json.couchbase-cli.exported |
SUCCESS: Events imported
|