ironic_inspector.utils module¶
- class ironic_inspector.utils.DeferredBasicAuthMiddleware(app, auth_file)[source]¶
- Bases: - object- Middleware which sets X-Identity-Status header based on authentication 
- exception ironic_inspector.utils.Error(msg, code=400, log_level='error', **kwargs)[source]¶
- Bases: - Exception- Inspector exception. 
- exception ironic_inspector.utils.IntrospectionDataNotFound(msg, code=404, **kwargs)[source]¶
- Bases: - NotFoundInCacheError- Introspection data not found. 
- exception ironic_inspector.utils.IntrospectionDataStoreDisabled(msg, code=400, log_level='error', **kwargs)[source]¶
- Bases: - Error- Introspection data store is disabled. 
- exception ironic_inspector.utils.NoAvailableConductor(msg, **kwargs)[source]¶
- Bases: - Error- No available conductor in the service group. 
- exception ironic_inspector.utils.NodeNotFoundInDBError(**kwargs)[source]¶
- Bases: - Error- The node was not found in the database. 
- exception ironic_inspector.utils.NodeStateInvalidEvent(msg, code=400, log_level='error', **kwargs)[source]¶
- Bases: - Error- Invalid event attempted. 
- exception ironic_inspector.utils.NodeStateRaceCondition(*args, **kwargs)[source]¶
- Bases: - Error- State mismatch between the DB and a node_info. 
- exception ironic_inspector.utils.NotFoundInCacheError(msg, code=404, **kwargs)[source]¶
- Bases: - Error- Exception 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: - Error- The requested rule was not found. 
- exception ironic_inspector.utils.RuleUUIDExistError(uuid, *args, **kwargs)[source]¶
- Bases: - Error- Rule 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 
 
