class="form-item">
<div cdsCol>
<cds-number
- formControlName="nsCount"
cdValidate
#nsCountRef="cdValidate"
+ formControlName="nsCount"
label="Number of namespaces"
helperText="No. of namespaces to generate. Value must be between 1 and 5."
[min]="MIN_NAMESPACE_CREATE"
</div>
</div>
- <!-- Namespace Size (UI only) -->
+ <!-- Image Size -->
<div cdsRow
class="form-item">
- <div cdsCol>
- <cds-number
- formControlName="namespace_size"
- cdValidate
- #namespaceSizeRef="cdValidate"
- label="Namespace size (GiB)"
- helperText="Specify the size to expose to hosts. Leave blank for full device/file."
- placeholder="e.g. 100"
- [min]="0"
- [invalid]="namespaceSizeRef.isInvalid"
- [invalidText]="namespaceSizeError"
+ <div
+ cdsCol
+ [columnNumbers]="{md: 4}">
+ <cds-text-label
+ label="Image size (GiB)"
+ helperText="The size of the namespace image."
+ [invalid]="imageSize.isInvalid"
+ [invalidText]="sizeError"
+ cdRequiredField="Image Size"
i18n-label
i18n-helperText>
- </cds-number>
- <ng-template #namespaceSizeError>
- @if (nsForm.controls['namespace_size'].hasError('blockSizeMultiple')) {
+ <input cdsText
+ cdValidate
+ #imageSize="cdValidate"
+ type="text"
+ placeholder="e.g. 100 GiB"
+ id="image_size"
+ formControlName="image_size"
+ defaultUnit="GiB"
+ [min]="0"
+ [invalid]="imageSize.isInvalid"
+ cdDimlessBinary>
+ </cds-text-label>
+ <ng-template #sizeError>
<span
- i18n>Size must be a multiple of the block size (typically 512 or 4096 bytes).</span>
- }
+ i18n>Enter a valid size (e.g., 10GiB).</span>
</ng-template>
</div>
</div>
i18n>Image name (optional)</label>
<cds-text-label
helperText="Provide a name for the images. For bulk creation, this will be used as the base prefix with numeric suffixes (e.g., img-1, img-2). Leave blank to auto-generate."
- [invalid]="rbdImageNameRef.isInvalid"
+ [invalid]="rbdImageName.isInvalid"
[invalidText]="nsForm.getError('rbdImageName', 'rbd_image_name') ? 'Image name contains invalid characters' : ''"
i18n-helperText
i18n-invalidText>
<input cdsText
cdValidate
- #rbdImageNameRef="cdValidate"
+ #rbdImageName="cdValidate"
placeholder="Enter a name"
- formControlName="rbd_image_name" />
+ formControlName="rbd_image_name"
+ [invalid]="rbdImageName.isInvalid" />
</cds-text-label>
</div>
</div>
</div>
}
- <!-- Image Size -->
+ <!-- Namespace Block Size (bytes) -->
<div cdsRow
class="form-item">
- <div
- cdsCol
- [columnNumbers]="{md: 4}">
- <cds-text-label
- label="Image size (GiB)"
- helperText="The size of the namespace image."
- [invalid]="imageSizeRef.isInvalid"
- [invalidText]="sizeError"
- cdRequiredField="Image Size"
+ <div cdsCol>
+ <cds-number
+ cdValidate
+ #namespaceSize="cdValidate"
+ formControlName="namespace_size"
+ label="Namespace block size (bytes)"
+ helperText="Specify the block size to expose to the hosts. Leave blank for the default block size of 512 bytes."
+ [min]="0"
+ [invalid]="namespaceSize.isInvalid"
i18n-label
i18n-helperText>
- <input cdsText
- cdValidate
- #imageSizeRef="cdValidate"
- type="text"
- placeholder="e.g. 100 GiB"
- id="image_size"
- formControlName="image_size"
- defaultUnit="GiB"
- [min]="0"
- [invalid]="imageSizeRef.isInvalid"
- cdDimlessBinary>
- </cds-text-label>
- <ng-template #sizeError>
- <span
- i18n>Enter a valid size (e.g., 10GiB).</span>
- </ng-template>
+ </cds-number>
</div>
</div>