allow setting comments field on iscsi volumes
This commit is contained in:
parent
7fe916c916
commit
96854c16d1
|
|
@ -33,6 +33,8 @@ zfs:
|
|||
# "org.freenas:description": "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}/{{ parameters.[csi.storage.k8s.io/pvc/name] }}"
|
||||
# "org.freenas:test": "{{ parameters.foo }}"
|
||||
# "org.freenas:test2": "some value"
|
||||
# can be used to set the comments field in the UI
|
||||
#datasetCommentTemplate: "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}/{{ parameters.[csi.storage.k8s.io/pvc/name] }}"
|
||||
|
||||
# total volume name (zvol/<datasetParentName>/<pvc name>) length cannot exceed 63 chars
|
||||
# https://www.ixsystems.com/documentation/freenas/11.2-U5/storage.html#zfs-zvol-config-opts-tab
|
||||
|
|
|
|||
|
|
@ -2173,6 +2173,26 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
|||
*/
|
||||
const datasetName = datasetParentName + "/" + volume_id;
|
||||
|
||||
// Instead of templatizing the name, use the comment field to store details visible in the UI.
|
||||
let datasetComment;
|
||||
if (this.options.zfs.datasetCommentTemplate) {
|
||||
datasetComment = Handlebars.compile(
|
||||
this.options.zfs.datasetCommentTemplate
|
||||
)({
|
||||
name: call.request.name,
|
||||
parameters: call.request.parameters,
|
||||
csi: {
|
||||
name: this.ctx.args.csiName,
|
||||
version: this.ctx.args.csiVersion,
|
||||
},
|
||||
zfs: {
|
||||
datasetName: datasetName,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
datasetComment = "";
|
||||
}
|
||||
|
||||
// ensure volumes with the same name being requested a 2nd time but with a different size fails
|
||||
try {
|
||||
let properties = await httpApiClient.DatasetGet(datasetName, [
|
||||
|
|
@ -2399,6 +2419,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
|||
break;
|
||||
}
|
||||
|
||||
volumeProperties.comments = datasetComment;
|
||||
response = await httpApiClient.DatasetSet(
|
||||
datasetName,
|
||||
volumeProperties
|
||||
|
|
@ -2438,6 +2459,13 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
|||
|
||||
throw err;
|
||||
}
|
||||
|
||||
// CloneCreate doesn't support the comments field, so set it after the fact.
|
||||
if (datasetComment) {
|
||||
await httpApiClient.DatasetSet(datasetName, {
|
||||
comments: datasetComment
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (!zb.helpers.isZfsSnapshot(volume_content_source_snapshot_id)) {
|
||||
|
|
@ -2569,6 +2597,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
|||
}
|
||||
}
|
||||
|
||||
volumeProperties.comments = datasetComment;
|
||||
response = await httpApiClient.DatasetSet(
|
||||
datasetName,
|
||||
volumeProperties
|
||||
|
|
@ -2605,6 +2634,13 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
|||
|
||||
throw err;
|
||||
}
|
||||
|
||||
// CloneCreate doesn't support the comments field, so set it after the fact.
|
||||
if (datasetComment) {
|
||||
await httpApiClient.DatasetSet(datasetName, {
|
||||
comments: datasetComment
|
||||
});
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -2629,6 +2665,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
|||
share_type: driver.getDriverShareType().includes("smb")
|
||||
? "SMB"
|
||||
: "GENERIC",
|
||||
comments: datasetComment,
|
||||
user_properties: httpApiClient.getPropertiesKeyValueArray(
|
||||
httpApiClient.getUserProperties(volumeProperties)
|
||||
),
|
||||
|
|
|
|||
Loading…
Reference in New Issue