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:
ironic_inspector.utils.NotFoundInCacheErrorIntrospection data not found.
-
exception
ironic_inspector.utils.IntrospectionDataStoreDisabled(msg, code=400, log_level='error', **kwargs)[source]¶ Bases:
ironic_inspector.utils.ErrorIntrospection data store is disabled.
-
exception
ironic_inspector.utils.NoAvailableConductor(msg, **kwargs)[source]¶ Bases:
ironic_inspector.utils.ErrorNo available conductor in the service group.
-
exception
ironic_inspector.utils.NodeNotFoundInDBError(**kwargs)[source]¶ Bases:
ironic_inspector.utils.ErrorThe node was not found in the database.
-
exception
ironic_inspector.utils.NodeStateInvalidEvent(msg, code=400, log_level='error', **kwargs)[source]¶ Bases:
ironic_inspector.utils.ErrorInvalid event attempted.
-
exception
ironic_inspector.utils.NodeStateRaceCondition(*args, **kwargs)[source]¶ Bases:
ironic_inspector.utils.ErrorState mismatch between the DB and a node_info.
-
exception
ironic_inspector.utils.NotFoundInCacheError(msg, code=404, **kwargs)[source]¶ Bases:
ironic_inspector.utils.ErrorException when node was not found in cache during processing.
-
class
ironic_inspector.utils.ProcessingLoggerAdapter(logger, extra)[source]¶ Bases:
oslo_log.log.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:
ironic_inspector.utils.ErrorThe requested rule was not found.
-
exception
ironic_inspector.utils.RuleUUIDExistError(uuid, *args, **kwargs)[source]¶ Bases:
ironic_inspector.utils.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.execute(*cmd, use_standard_locale=False, log_stdout=True, **kwargs)[source]¶ Convenience wrapper around oslo’s execute() method.
Executes and logs results from a system command. See docs for oslo_concurrency.processutils.execute for usage.
- Parameters
cmd – positional arguments to pass to processutils.execute()
use_standard_locale – Defaults to False. If set to True, execute command with standard locale added to environment variables.
log_stdout – Defaults to True. If set to True, logs the output.
kwargs – keyword arguments to pass to processutils.execute()
- Returns
(stdout, stderr) from process execution
- Raises
UnknownArgumentError on receiving unknown arguments
- Raises
ProcessExecutionError
- Raises
OSError
-
ironic_inspector.utils.get_inventory(data, node_info=None)[source]¶ Get and validate the hardware inventory from introspection data.
-
ironic_inspector.utils.get_route_source(dest, ignore_link_local=True)[source]¶ Get the IP address to send packages to destination.
-
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=datetime.timezone.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