def _validate_devices( reporter, resources_el, devices, force_device=False, allow_force=True ): if not devices: reporter.append( reports.required_option_is_missing(["stonith devices"]) ) invalid_devices = [] for dev in devices: errors = reporter.errors_count validate_id(dev, description="device id", reporter=reporter) if reporter.errors_count > errors: continue # TODO use the new finding function if not is_stonith_resource(resources_el, dev): invalid_devices.append(dev) if invalid_devices: reporter.append( reports.stonith_resources_do_not_exist( invalid_devices, ReportItemSeverity.WARNING if force_device and allow_force else ReportItemSeverity.ERROR , None if force_device or not allow_force else report_codes.FORCE_STONITH_RESOURCE_DOES_NOT_EXIST ) )
def _validate_devices(resources_el: _Element, devices, force_device=False, allow_force=True) -> ReportItemList: report_list: ReportItemList = [] if not devices: report_list.append( ReportItem.error( reports.messages.RequiredOptionsAreMissing(["stonith devices" ]))) invalid_devices = [] for dev in devices: validate_id_report_list: ReportItemList = [] validate_id(dev, description="device id", reporter=validate_id_report_list) report_list.extend(validate_id_report_list) if has_errors(validate_id_report_list): continue # TODO use the new finding function if not is_stonith_resource(resources_el, dev): invalid_devices.append(dev) if invalid_devices: report_list.append( ReportItem( severity=ReportItemSeverity( level=(ReportItemSeverity.WARNING if force_device and allow_force else ReportItemSeverity.ERROR), force_code=(None if force_device or not allow_force else report_codes.FORCE), ), message=reports.messages.StonithResourcesDoNotExist( invalid_devices), )) return report_list
def _validate_devices( reporter, resources_el, devices, force_device=False, allow_force=True ): if not devices: reporter.add( reports.required_option_is_missing(["stonith devices"]) ) invalid_devices = [] for dev in devices: errors = reporter.errors_count validate_id(dev, description="device id", reporter=reporter) if reporter.errors_count > errors: continue # TODO use the new finding function if not is_stonith_resource(resources_el, dev): invalid_devices.append(dev) if invalid_devices: reporter.add( reports.stonith_resources_do_not_exist( invalid_devices, ReportItemSeverity.WARNING if force_device and allow_force else ReportItemSeverity.ERROR , None if force_device or not allow_force else report_codes.FORCE_STONITH_RESOURCE_DOES_NOT_EXIST ) )
def _validate_devices(resources_el, devices, force_device=False, allow_force=True) -> ReportItemList: report_list: ReportItemList = [] if not devices: report_list.append( reports.required_options_are_missing(["stonith devices"])) invalid_devices = [] for dev in devices: validate_id_report_list: ReportItemList = [] validate_id(dev, description="device id", reporter=validate_id_report_list) report_list.extend(validate_id_report_list) if has_errors(validate_id_report_list): continue # TODO use the new finding function if not is_stonith_resource(resources_el, dev): invalid_devices.append(dev) if invalid_devices: report_list.append( reports.stonith_resources_do_not_exist( invalid_devices, ReportItemSeverity.WARNING if force_device and allow_force else ReportItemSeverity.ERROR, None if force_device or not allow_force else report_codes.FORCE_STONITH_RESOURCE_DOES_NOT_EXIST)) return report_list