static json_t *mbp_evt_get(struct rest_uri_param *param)
{
	rf_evt_svc_t service = { { {0} } };
	json_t *result = NULL;
	int32 idx, reg = 0;

	get_rf_base_info(&(service.base));

	result = json_object();
	if (result == NULL) {
		HTTPD_ERR("result json object request error\n");
		return NULL;
	}

	idx = get_asset_idx(param, "mbp_id", MC_TYPE_CM);
	if (idx == -1) {
		HTTPD_ERR("get mbp index fail\n");
		return NULL;
	}

	pack_rf_base_json(result, &(service.base));
	reg = 1 << (idx - 1);
	get_evt_links(&(service.links), MC_REDFISH_MBP_COLL, reg, RF_EVENT_MBP_FMT, idx);
	pack_rf_evt_links(result, &(service.links));

	return result;
}
示例#2
0
int32 rf_evt_info_init(rf_evt_svc_t *service, int32 *evt_types, const int8 *fmt, ...)
{
	va_list args;
	int32 rc = -1;

	rc = get_fixed_info(&service->fixed);
	if (rc != 0) {
		HTTPD_ERR("get redfish fixed info error\n");
		return -1;
	}

	rc = get_evt_support(evt_types);
	if (rc != 0) {
		HTTPD_ERR("get redfish event support error\n");
		return -1;
	}

	va_start(args, fmt);
	rc = get_evt_links(&service->links, fmt, args);
	va_end(args);
	if (rc != 0) {
		HTTPD_ERR("get redfish event links error\n");
		return -1;
	}

	return 0;
}
static json_t *fan_evt_get(struct rest_uri_param *param)
{
	rf_evt_svc_t service = { { {0} } };
	json_t *result = NULL;
	int32 tzone_idx, fan_idx, reg = 0;

	get_rf_base_info(&(service.base));

	result = json_object();
	if (result == NULL) {
		HTTPD_ERR("result json object request error\n");
		return NULL;
	}
	tzone_idx = get_asset_idx(param, "zone_id", MC_TYPE_TZONE);
	if (tzone_idx == -1) {
		HTTPD_ERR("get cooling zone index fail\n");
		return NULL;
	}

	fan_idx = get_asset_idx(param, "fan_id", MC_TYPE_FAN);
	if (fan_idx == -1) {
		HTTPD_ERR("get psu zone index fail\n");
		return NULL;
	}

	pack_rf_base_json(result, &(service.base));
	reg = 1 << ((tzone_idx - 1) * MAX_PWM_NUM + (fan_idx - 1));
	get_evt_links(&(service.links), MC_REDFISH_FAN_COLL, reg, RF_EVENT_FAN_FMT, tzone_idx, fan_idx);
	pack_rf_evt_links(result, &(service.links));

	return result;
}
static json_t *mbp_coll_evt_get(struct rest_uri_param *param)
{
	rf_evt_svc_t service = { { {0} } };
	json_t *result = NULL;
	int32 reg = 0;

	get_rf_base_info(&(service.base));

	result = json_object();
	if (result == NULL) {
		HTTPD_ERR("result json object request error\n");
		return NULL;
	}

	pack_rf_base_json(result, &(service.base));
	reg |= RF_EVENT_MASK_ALL;
	get_evt_links(&(service.links), MC_REDFISH_MBP_COLL, reg, RF_EVENT_MBP_COLL_FMT);
	pack_rf_evt_links(result, &(service.links));

	return result;
}