<span class="help-block"
*ngIf="form.showError('pgNum', formDir, '34')"
i18n>Your cluster can't handle this many PGs. Please recalculate the PG amount needed.</span>
- <span class="help-block"
- *ngIf="form.showError('pgNum', formDir, 'noDecrease')"
- i18n>You can only increase the number of PGs of an existing pool.
- Currently your pool has {{ data.pool.pg_num }} PGs.</span>
<span class="help-block">
<a i18n
target="_blank"
return control;
};
+ const testPgUpdate = (pgs, jump, returnValue) => {
+ if (pgs) {
+ setPgNum(pgs);
+ }
+ if (jump) {
+ setPgNum(form.getValue('pgNum') + jump);
+ }
+ expect(form.getValue('pgNum')).toBe(returnValue);
+ };
+
const createCrushRule = ({
id = 0,
name = 'somePoolName',
component.ngOnInit(); // Switches form into edit mode
formHelper.setValue('poolType', 'erasure');
fixture.detectChanges();
- formHelper.expectError(setPgNum('8'), 'noDecrease');
+ formHelper.expectValid(setPgNum('8'));
});
it('is valid if pgNum, poolType and name are valid', () => {
});
describe('pg number changes', () => {
- const setPgs = (pgs) => {
- formHelper.setValue('pgNum', pgs);
- fixture.debugElement.query(By.css('#pgNum')).nativeElement.dispatchEvent(new Event('blur'));
- };
-
- const testPgUpdate = (pgs, jump, returnValue) => {
- if (pgs) {
- setPgs(pgs);
- }
- if (jump) {
- setPgs(form.getValue('pgNum') + jump);
- }
- expect(form.getValue('pgNum')).toBe(returnValue);
- };
-
beforeEach(() => {
formHelper.setValue('crushRule', {
min_size: 1,
expect(form.getValue('ratio')).toBe(pool.options.compression_required_ratio);
});
- it('is only be possible to use the same or more pgs like before', () => {
+ it('updates pgs on every change', () => {
+ testPgUpdate(undefined, -1, 16);
+ testPgUpdate(undefined, -1, 8);
+ });
+
+ it('is possible to use less or more pgs than before', () => {
formHelper.expectValid(setPgNum(64));
- formHelper.expectError(setPgNum(4), 'noDecrease');
+ formHelper.expectValid(setPgNum(4));
});
describe('submit', () => {
this.form = new CdFormGroup(
{
name: new FormControl('', {
- validators: [Validators.pattern(/^[\.A-Za-z0-9_/-]+$/), Validators.required]
+ validators: [Validators.pattern(/^[.A-Za-z0-9_/-]+$/), Validators.required]
}),
poolType: new FormControl('', {
validators: [Validators.required]
this.form.silentSet(controlName, value);
}
});
+ this.data.pgs = this.form.getValue('pgNum');
this.data.applications.selected = pool.application_metadata;
}
private setComplexValidators() {
if (this.editing) {
- this.form
- .get('pgNum')
- .setValidators(
- CdValidators.custom('noDecrease', (pgs) => this.data.pool && pgs < this.data.pool.pg_num)
- );
this.form
.get('name')
.setValidators([