</div>
</div>
+ <!-- Group Name -->
+ <div class="form-group row"
+ *ngIf="serviceForm.controls.service_type.value === 'nvmeof'">
+ <label class="cd-col-form-label required"
+ for="group">
+ <span i18n>Group Name</span>
+ </label>
+ <div class="cd-col-form-input">
+ <div class="input-group">
+ <input id="group"
+ class="form-control"
+ type="text"
+ formControlName="group"
+ (change)="onNvmeofGroupChange($event.target.value)">
+ </div>
+ <cd-help-text i18n>
+ The name of the gateway group.
+ </cd-help-text>
+ <span class="invalid-feedback"
+ *ngIf="serviceForm.showError('service_id', frm, 'required')"
+ i18n>This field is required.</span>
+ </div>
+ </div>
+
<!-- Service id -->
<div class="form-group row"
*ngIf="serviceForm.controls.service_type.value !== 'snmp-gateway'">
formHelper.setValue('service_type', 'nvmeof');
formHelper.setValue('service_id', 'svc');
formHelper.setValue('pool', 'xyz');
+ formHelper.setValue('group', 'abc');
});
it('should submit nvmeof', () => {
service_id: 'svc',
placement: {},
unmanaged: false,
- pool: 'xyz'
+ pool: 'xyz',
+ group: 'abc'
});
});
it('should throw error when there is no pool', () => {
formHelper.expectErrorChange('pool', '', 'required');
});
+
+ it('should throw error when there is no group', () => {
+ formHelper.expectErrorChange('group', '', 'required');
+ });
});
describe('should test service smb', () => {
})
]
],
+ group: [null, Validators.required],
// RGW
rgw_frontend_port: [null, [CdValidators.number(false)]],
realm_name: [null],
break;
case 'nvmeof':
this.serviceForm.get('pool').setValue(response[0].spec.pool);
+ this.serviceForm.get('group').setValue(response[0].spec.group);
break;
case 'rgw':
this.serviceForm
?.pool_name;
if (defaultRbdPool) {
this.serviceForm.get('pool').setValue(defaultRbdPool);
- this.serviceForm.get('service_id').setValue(defaultRbdPool);
}
}
+ onNvmeofGroupChange(groupName: string) {
+ this.serviceForm.get('service_id').setValue(groupName);
+ }
+
requiresServiceId(serviceType: string) {
return ['mds', 'rgw', 'nfs', 'iscsi', 'nvmeof', 'smb', 'ingress'].includes(serviceType);
}
break;
case 'nvmeof':
this.serviceForm.get('pool').disable();
+ this.serviceForm.get('group').disable();
break;
}
}
break;
case 'nvmeof':
+ serviceSpec['pool'] = values['pool'];
+ serviceSpec['group'] = values['group'];
+ break;
case 'iscsi':
serviceSpec['pool'] = values['pool'];
break;
monitor_port: number;
virtual_interface_networks: string[];
pool: string;
+ group: string;
rgw_frontend_ssl_certificate: string;
ssl: boolean;
ssl_cert: string;