</div>
<!-- unmanaged -->
- <div class="form-group row">
+ <div class="form-group row"
+ *ngIf="serviceForm.controls.service_type.value !== 'snmp-gateway'">
<div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
<span class="invalid-feedback"
*ngIf="serviceForm.showError('engine_id', frm, 'required')"
i18n>This field is required.</span>
+ <span class="invalid-feedback"
+ *ngIf="serviceForm.showError('engine_id', frm, 'snmpEngineIdPattern')"
+ i18n>The value does not match the pattern: <strong>Must be in hexadecimal and length must be multiple of 2 with min value = 10 amd max value = 64.</strong></span>
</div>
</div>
<!-- Auth protocol for snmp V3 -->
}
});
});
+
it('should test snmp-gateway service with V3', () => {
formHelper.setValue('snmp_version', 'V3');
formHelper.setValue('engine_id', '800C53F00000');
}
});
});
+
it('should submit invalid snmp destination', () => {
formHelper.setValue('snmp_version', 'V2c');
formHelper.setValue('snmp_destination', '192.168.20.1');
formHelper.setValue('snmp_community', 'public');
formHelper.expectError('snmp_destination', 'snmpDestinationPattern');
});
+
+ it('should submit invalid snmp engine id', () => {
+ formHelper.setValue('snmp_version', 'V3');
+ formHelper.setValue('snmp_destination', '192.168.20.1');
+ formHelper.setValue('engine_id', 'AABBCCDDE');
+ formHelper.setValue('auth_protocol', 'SHA');
+ formHelper.setValue('privacy_protocol', 'DES');
+ formHelper.setValue('snmp_v3_auth_username', 'testuser');
+ formHelper.setValue('snmp_v3_auth_password', 'testpass');
+
+ formHelper.expectError('engine_id', 'snmpEngineIdPattern');
+ });
});
describe('check edit fields', () => {
export class ServiceFormComponent extends CdForm implements OnInit {
readonly RGW_SVC_ID_PATTERN = /^([^.]+)(\.([^.]+)\.([^.]+))?$/;
readonly SNMP_DESTINATION_PATTERN = /^[^\:]+:[0-9]/;
+ readonly SNMP_ENGINE_ID_PATTERN = /^[0-9A-Fa-f]{10,64}/g;
@ViewChild(NgbTypeahead, { static: false })
typeahead: NgbTypeahead;
null,
[
CdValidators.requiredIf({
- service_type: 'snmp-gateway',
- unmanaged: false
+ service_type: 'snmp-gateway'
})
]
],
{
validators: [
CdValidators.requiredIf({
- service_type: 'snmp-gateway',
- unmanaged: false
+ service_type: 'snmp-gateway'
}),
CdValidators.custom('snmpDestinationPattern', (value: string) => {
if (_.isEmpty(value)) {
null,
[
CdValidators.requiredIf({
- snmp_version: 'V3',
- unmanaged: false
+ service_type: 'snmp-gateway'
+ }),
+ CdValidators.custom('snmpEngineIdPattern', (value: string) => {
+ if (_.isEmpty(value)) {
+ return false;
+ }
+ return !this.SNMP_ENGINE_ID_PATTERN.test(value);
})
]
],
'SHA',
[
CdValidators.requiredIf({
- snmp_version: 'V3',
- unmanaged: false
+ service_type: 'snmp-gateway'
})
]
],
null,
[
CdValidators.requiredIf({
- snmp_version: 'V2c',
- unmanaged: false
+ snmp_version: 'V2c'
})
]
],
null,
[
CdValidators.requiredIf({
- snmp_version: 'V3',
- unmanaged: false
+ service_type: 'snmp-gateway'
})
]
],
null,
[
CdValidators.requiredIf({
- snmp_version: 'V3',
- unmanaged: false
+ service_type: 'snmp-gateway'
})
]
],
null,
[
CdValidators.requiredIf({
- privacy_protocol: { op: '!empty' },
- unmanaged: false
+ privacy_protocol: { op: '!empty' }
})
]
]