This driver implements support of Intel NodeManager platform via ironic vendor interface methods. Those methods are implemented as sending raw bytes over IPMI. Hardware with Intel NodeManager 1.5 or above is required, feature must be enabled via Flash Image Tool. The driver detects internal addresses of NodeManager device automatically. The main term for NodeManager is policy, which can be power, thermal or boot time. Each policy identified by policy_id (integer number from 0 to 255). Maximum numbers of policies which can be set at the same time limited by platform. For more detailed information see full specification [1].
Driver provided by ironic-staging-drivers are
In all examples below request/response are JSON bodies in the HTTP request or response.
Example of response:
{"firmware": "1.2", "ipmi": "3.0", "nm": "3.0", "patch": "7"}
Example of request:
{"domain_id": "platform", "policy_trigger": "none",
"power_domain": "primary"}
Example of response:
{"domain_id": "platform", "max_correction_time": 100000,
"max_limit_value": 4096, "max_policies": 16,
"max_reporting_period": 32768, "min_correction_time": 10,
"min_limit_value": 100, "min_reporting_period": 100,
"power_domain": "primary"}
Example of request:
{"scope": "policy", "enable": false, "policy_id": 10}
Example of request:
{"domain_id": "platform", "enable": true, "policy_id": 10,
"policy_trigger": "none", "action": "alert", "power_domain": "primary",
"target_limit": 200, "reporting_period": 20000}
Example of request:
{"domain_id": "platform", "policy_id": 11}
Example of response:
{"action": "alert", "correction_time": 10000, "cpu_power_correction": "auto",
"created_by_nm": true, "domain_id": "platform", "enabled": true,
"global_enabled": true, "per_domain_enabled": true,
"policy_trigger": "none", "power_domain": "primary", "power_policy": false,
"reporting_period": 20000, "storage": "persistent", "target_limit": 250,
"trigger_limit": 300}
Example of request:
{"domain_id": "platform", "policy_id": 11}
Example of request:
{"domain_id": "platform", "policy_id": 10,
"periods": [{"start": 10, "stop": 60, "days": ["monday", "tuesday"]}]}
For information about time periods calculation please read NodeManager specification.
Example of request:
{"domain_id": "platform", "policy_id": 13}
Example of response:
{"domain_id": "platform", "policy_id": 13,
"periods": [{"start": 20, "stop": 100, "days": ["monday", "tuesday"]},
{"start": 30, "stop": 150, "days": ["friday", "sunday"]}]}
Example of request:
{"domain_id": "platform", "policy_id": 13}
Example of request:
{"scope": "global", "domain_id": "platform", "parameter_name": "power"}
Example of response:
{"activation_state": true, "administrative_enabled": true,
"average_value": 200, "current_value": 202, "domain_id": "platform",
"maximum_value": 240, "measurement_state": true, "minimum_value": 150,
"operational_state": true, "reporting_period": 2125,
"timestamp": "2016-02-03T20:13:52"}
Example of request:
{"scope": "global", "domain_id": "platform"}