This change adds additional, libucl-based configuration file parser to ctld. Parsing ctl.conf (or configuration file specified with -f) as an UCL file is enabled using -u command-line switch.
Details
Details
Example config file (which is actually in JSON format, fully compatible with UCL):
{
"target": {
"naa.5000c50006815e48": {
"port": "camsim",
"lun": [
{
"number": 0,
"name": "disk1"
},
{
"number": 1,
"name": "disk3"
},
{
"number": 2,
"name": "disk4"
}
]
}
},
"lun": {
"disk1": {
"serial": "00505625139600",
"blocksize": 512,
"options": {
"removable": "on",
"product": "Virtual Disk",
"vendor": "FreeNAS",
"device-id": "Virtual Disk 00505625139600",
"rpm": "7200",
"naa": "0x6589cfc000000572122b119a12bbdac3"
},
"path": "/var/db/system/simulator/disk1"
},
"disk3": {
"serial": "00505625139600",
"blocksize": 512,
"options": {
"removable": "on",
"product": "Virtual Disk",
"vendor": "FreeNAS",
"device-id": "Virtual Disk 00505625139600",
"rpm": "7200",
"naa": "0x6589cfc000000446222150ce63317d41"
},
"path": "/var/db/system/simulator/disk3"
},
"disk4": {
"serial": "00505625139600",
"blocksize": 512,
"options": {
"removable": "on",
"product": "Virtual Disk",
"vendor": "FreeNAS",
"device-id": "Virtual Disk 00505625139600",
"rpm": "7200",
"naa": "0x6589cfc000000e7f80ec91885d4d80b9"
},
"path": "/var/db/system/simulator/disk4"
},
"disk2": {
"serial": "00505625139600",
"blocksize": 512,
"options": {
"removable": "on",
"product": "Virtual Disk",
"vendor": "FreeNAS",
"device-id": "Virtual Disk 00505625139600",
"rpm": "7200",
"naa": "0x6589cfc000000ee13371ddb41ec93d01"
},
"path": "/var/db/system/simulator/disk2"
}
}
}Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
| usr.sbin/ctld/Makefile | ||
|---|---|---|
| 5 | This kind of looks like like it should be handled by LIBADD=ucl. Isn't it? | |
| usr.sbin/ctld/ctld.c | ||
| 2553 | I liked the old order, ie check_perms after parse_conf/uclparse_conf. This way you would get an user-friendly error with path, if the configuration file doesn't exist. | |
| 2556 | style(9) - superfluous "{}" bracees. | |
| usr.sbin/ctld/uclparse.c | ||
| 228 | s/parse_toplevel/uclparse_toplevel/ ? | |
| 472 | Empty line. | |
| 660 | Unneeded braces. | |
| 693 | Braces. | |