static config_err_t _get_alert_policy_table (struct pef_config_state_data *state_data, const char *section_name, struct alert_policy_table *apt) { fiid_obj_t obj_cmd_rs = NULL; uint64_t val; config_err_t rv = CONFIG_ERR_FATAL_ERROR; uint8_t alert_policy_entry_number; assert(state_data); assert(section_name); assert(apt); alert_policy_entry_number = atoi (section_name + strlen ("Alert_Policy_")); _FIID_OBJ_CREATE(obj_cmd_rs, tmpl_cmd_get_pef_configuration_parameters_alert_policy_table_rs); if (ipmi_cmd_get_pef_configuration_parameters_alert_policy_table (state_data->ipmi_ctx, IPMI_GET_PEF_PARAMETER, alert_policy_entry_number, BLOCK_SELECTOR, obj_cmd_rs) < 0) { if (state_data->prog_data->args->config_args.common.debug) pstdout_fprintf(state_data->pstate, stderr, "ipmi_cmd_get_pef_configuration_parameters_alert_policy_table: %s\n", ipmi_ctx_strerror(ipmi_ctx_errnum(state_data->ipmi_ctx))); if (!IPMI_CTX_ERRNUM_IS_FATAL_ERROR(state_data->ipmi_ctx)) rv = CONFIG_ERR_NON_FATAL_ERROR; goto cleanup; } #if 0 _FIID_OBJ_GET (obj_cmd_rs, "alert_policy_entry_number", &val); #endif _FIID_OBJ_GET (obj_cmd_rs, "policy_number.policy_type", &val); apt->policy_type = val; _FIID_OBJ_GET (obj_cmd_rs, "policy_number.enabled", &val); apt->policy_enabled = val; _FIID_OBJ_GET (obj_cmd_rs, "policy_number.policy_number", &val); apt->policy_number = val; _FIID_OBJ_GET (obj_cmd_rs, "channel_destination.destination_selector", &val); apt->destination_selector = val; _FIID_OBJ_GET (obj_cmd_rs, "channel_destination.channel_number", &val); apt->channel_number = val; _FIID_OBJ_GET (obj_cmd_rs, "alert_string_key.alert_string_set_selector", &val); apt->alert_string_set_selector = val; _FIID_OBJ_GET (obj_cmd_rs, "alert_string_key.event_specific_alert_string", &val); apt->event_specific_alert_string = val; rv = CONFIG_ERR_SUCCESS; cleanup: _FIID_OBJ_DESTROY(obj_cmd_rs); return (rv); }
static config_err_t _get_alert_policy_table (struct ipmi_pef_config_state_data *state_data, const char *section_name, struct alert_policy_table *apt) { fiid_obj_t obj_cmd_rs = NULL; uint64_t val; config_err_t rv = CONFIG_ERR_FATAL_ERROR; uint8_t alert_policy_entry_number; assert (state_data); assert (section_name); assert (apt); alert_policy_entry_number = atoi (section_name + strlen ("Alert_Policy_")); if (!(obj_cmd_rs = fiid_obj_create (tmpl_cmd_get_pef_configuration_parameters_alert_policy_table_rs))) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_create: %s\n", strerror (errno)); goto cleanup; } if (ipmi_cmd_get_pef_configuration_parameters_alert_policy_table (state_data->ipmi_ctx, IPMI_GET_PEF_PARAMETER, alert_policy_entry_number, IPMI_PEF_CONFIGURATION_PARAMETERS_NO_BLOCK_SELECTOR, obj_cmd_rs) < 0) { config_err_t ret; if (state_data->prog_data->args->config_args.common_args.debug) pstdout_fprintf (state_data->pstate, stderr, "ipmi_cmd_get_pef_configuration_parameters_alert_policy_table: %s\n", ipmi_ctx_errormsg (state_data->ipmi_ctx)); if (config_is_config_param_non_fatal_error (state_data->ipmi_ctx, obj_cmd_rs, &ret)) rv = ret; goto cleanup; } #if 0 if (FIID_OBJ_GET (obj_cmd_rs, "alert_policy_entry_number", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'alert_policy_entry_number': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } #endif if (FIID_OBJ_GET (obj_cmd_rs, "policy_number.policy_type", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'policy_number.policy_type': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } apt->policy_type = val; if (FIID_OBJ_GET (obj_cmd_rs, "policy_number.enabled", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'policy_number.enabled': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } apt->policy_enabled = val; if (FIID_OBJ_GET (obj_cmd_rs, "policy_number.policy_number", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'policy_number.policy_number': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } apt->policy_number = val; if (FIID_OBJ_GET (obj_cmd_rs, "channel_destination.destination_selector", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'channel_destination.destination_selector': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } apt->destination_selector = val; if (FIID_OBJ_GET (obj_cmd_rs, "channel_destination.channel_number", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'channel_destination.channel_number': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } apt->channel_number = val; if (FIID_OBJ_GET (obj_cmd_rs, "alert_string_key.alert_string_set_selector", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'alert_string_key.alert_string_set_selector': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } apt->alert_string_set_selector = val; if (FIID_OBJ_GET (obj_cmd_rs, "alert_string_key.event_specific_alert_string", &val) < 0) { pstdout_fprintf (state_data->pstate, stderr, "fiid_obj_get: 'alert_string_key.event_specific_alert_string': %s\n", fiid_obj_errormsg (obj_cmd_rs)); goto cleanup; } apt->event_specific_alert_string = val; rv = CONFIG_ERR_SUCCESS; cleanup: fiid_obj_destroy (obj_cmd_rs); return (rv); }