ironic_inspector.utils module¶
- class ironic_inspector.utils.DeferredBasicAuthMiddleware(app, auth_file)[source]¶
Bases:
objectMiddleware which sets X-Identity-Status header based on authentication
- exception ironic_inspector.utils.Error(msg, code=400, log_level='error', **kwargs)[source]¶
Bases:
ExceptionInspector exception.
- exception ironic_inspector.utils.IntrospectionDataNotFound(msg, code=404, **kwargs)[source]¶
Bases:
NotFoundInCacheErrorIntrospection data not found.
- exception ironic_inspector.utils.IntrospectionDataStoreDisabled(msg, code=400, log_level='error', **kwargs)[source]¶
Bases:
ErrorIntrospection data store is disabled.
- exception ironic_inspector.utils.NoAvailableConductor(msg, **kwargs)[source]¶
Bases:
ErrorNo available conductor in the service group.
- exception ironic_inspector.utils.NodeNotFoundInDBError(**kwargs)[source]¶
Bases:
ErrorThe node was not found in the database.
- exception ironic_inspector.utils.NodeStateInvalidEvent(msg, code=400, log_level='error', **kwargs)[source]¶
Bases:
ErrorInvalid event attempted.
- exception ironic_inspector.utils.NodeStateRaceCondition(*args, **kwargs)[source]¶
Bases:
ErrorState mismatch between the DB and a node_info.
- exception ironic_inspector.utils.NotFoundInCacheError(msg, code=404, **kwargs)[source]¶
Bases:
ErrorException when node was not found in cache during processing.
- class ironic_inspector.utils.ProcessingLoggerAdapter(logger, extra=None)[source]¶
Bases:
KeywordArgumentAdapter- process(msg, kwargs)[source]¶
Process the logging message and keyword arguments passed in to a logging call to insert contextual information. You can either manipulate the message itself, the keyword args or both. Return the message and kwargs modified (or not) to suit your needs.
Normally, you’ll only need to override this one method in a LoggerAdapter subclass for your specific needs.
- exception ironic_inspector.utils.RuleNotFoundError(uuid, *args, **kwargs)[source]¶
Bases:
ErrorThe requested rule was not found.
- exception ironic_inspector.utils.RuleUUIDExistError(uuid, *args, **kwargs)[source]¶
Bases:
ErrorRule requested already exists in the database.
- ironic_inspector.utils.add_auth_middleware(app)[source]¶
Add authentication middleware to Flask application.
- Parameters:
app – application.
- ironic_inspector.utils.add_basic_auth_middleware(app)[source]¶
Add HTTP Basic authentication middleware to Flask application.
- Parameters:
app – application.
- ironic_inspector.utils.add_cors_middleware(app)[source]¶
Create a CORS wrapper
Attach ironic-inspector-specific defaults that must be included in all CORS responses.
- Parameters:
app – application
- ironic_inspector.utils.add_healthcheck_middleware(app)[source]¶
Add healthcheck middleware
- Parameters:
app – application
- ironic_inspector.utils.check_auth(request, rule=None, target=None)[source]¶
Check authentication on request.
- Parameters:
request – Flask request
rule – policy rule to check the request against
target – dict-like structure to check rule against
- Raises:
utils.Error if access is denied
- ironic_inspector.utils.get_inventory(data, node_info=None)[source]¶
Get and validate the hardware inventory from introspection data.
- ironic_inspector.utils.get_valid_macs(data)[source]¶
Get a list of valid MAC’s from the introspection data.
- ironic_inspector.utils.iso_timestamp(timestamp=None, tz=<UTC>)[source]¶
Return an ISO8601-formatted timestamp (tz: UTC) or None.
- Parameters:
timestamp – such as time.time() or None
tz – timezone
- Returns:
an ISO8601-formatted timestamp, or None
- ironic_inspector.utils.processing_logger_prefix(data=None, node_info=None)[source]¶
Calculate prefix for logging.
Tries to use: * node UUID, node._state * node PXE MAC, * node BMC address
- Parameters:
data – introspection data
node_info – NodeInfo or ironic node object
- Returns:
logging prefix as a string