Enable ramdisk log collection in devstack plugin and improve logging
Add info logging to actually see the resulting file name, make other logging improvement. Also set ironic-inspector to always store logs. Change-Id: I75fe35a9ce564b0fd23fbe6f5027e0b576195bcd
This commit is contained in:
parent
2df2918814
commit
5a5f885e3e
@ -1,5 +1,6 @@
|
||||
IRONIC_INSPECTOR_DEBUG=${IRONIC_INSPECTOR_DEBUG:-True}
|
||||
IRONIC_INSPECTOR_DIR=$DEST/ironic-inspector
|
||||
IRONIC_INSPECTOR_DATA_DIR=$DATA_DIR/ironic-inspector
|
||||
IRONIC_INSPECTOR_BIN_DIR=$(get_python_exec_prefix)
|
||||
IRONIC_INSPECTOR_BIN_FILE=$IRONIC_INSPECTOR_BIN_DIR/ironic-inspector
|
||||
IRONIC_INSPECTOR_DBSYNC_BIN_FILE=$IRONIC_INSPECTOR_BIN_DIR/ironic-inspector-dbsync
|
||||
@ -19,6 +20,9 @@ IRONIC_AGENT_KERNEL_URL=${IRONIC_AGENT_KERNEL_URL:-http://tarballs.openstack.org
|
||||
IRONIC_AGENT_RAMDISK_URL=${IRONIC_AGENT_RAMDISK_URL:-http://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem.cpio.gz}
|
||||
IRONIC_INSPECTOR_RAMDISK_ELEMENT=${IRONIC_INSPECTOR_RAMDISK_ELEMENT:-ironic-discoverd-ramdisk}
|
||||
IRONIC_INSPECTOR_RAMDISK_FLAVOR=${IRONIC_INSPECTOR_RAMDISK_FLAVOR:-fedora $IRONIC_INSPECTOR_RAMDISK_ELEMENT}
|
||||
IRONIC_INSPECTOR_COLLECTORS=${IRONIC_INSPECTOR_COLLECTORS:-default,logs}
|
||||
IRONIC_INSPECTOR_RAMDISK_LOGDIR=${IRONIC_INSPECTOR_RAMDISK_LOGDIR:-$IRONIC_INSPECTOR_DATA_DIR/ramdisk-logs}
|
||||
IRONIC_INSPECTOR_ALWAYS_STORE_RAMDISK_LOGS=${IRONIC_INSPECTOR_ALWAYS_STORE_RAMDISK_LOGS:-True}
|
||||
# These should not overlap with other ranges/networks
|
||||
IRONIC_INSPECTOR_INTERNAL_IP=${IRONIC_INSPECTOR_INTERNAL_IP:-172.24.42.254}
|
||||
IRONIC_INSPECTOR_INTERNAL_SUBNET_SIZE=${IRONIC_INSPECTOR_INTERNAL_SUBNET_SIZE:-24}
|
||||
@ -98,6 +102,7 @@ function prepare_tftp {
|
||||
|
||||
if inspector_uses_ipa; then
|
||||
IRONIC_INSPECTOR_KERNEL_CMDLINE="ipa-inspection-callback-url=$IRONIC_INSPECTOR_CALLBACK_URI systemd.journald.forward_to_console=yes"
|
||||
IRONIC_INSPECTOR_KERNEL_CMDLINE="$IRONIC_INSPECTOR_KERNEL_CMDLINE ipa-inspection-collectors=$IRONIC_INSPECTOR_COLLECTORS"
|
||||
if [[ "$IRONIC_INSPECTOR_BUILD_RAMDISK" == "True" ]]; then
|
||||
IRONIC_INSPECTOR_KERNEL_PATH="$IRONIC_INSPECTOR_IMAGE_PATH.vmlinuz"
|
||||
if [ ! -e "$IRONIC_INSPECTOR_KERNEL_PATH" -o ! -e "$IRONIC_INSPECTOR_INITRAMFS_PATH" ]; then
|
||||
@ -143,6 +148,7 @@ EOF
|
||||
|
||||
function configure_inspector {
|
||||
mkdir_chown_stack "$IRONIC_INSPECTOR_CONF_DIR"
|
||||
mkdir_chown_stack "$IRONIC_INSPECTOR_DATA_DIR"
|
||||
|
||||
create_service_user "$IRONIC_INSPECTOR_ADMIN_USER" "admin"
|
||||
|
||||
@ -184,6 +190,10 @@ function configure_inspector {
|
||||
sudo mv $tempfile /etc/sudoers.d/ironic-inspector-rootwrap
|
||||
|
||||
inspector_iniset DEFAULT rootwrap_config $IRONIC_INSPECTOR_ROOTWRAP_CONF_FILE
|
||||
|
||||
mkdir_chown_stack "$IRONIC_INSPECTOR_RAMDISK_LOGDIR"
|
||||
inspector_iniset processing ramdisk_logs_dir "$IRONIC_INSPECTOR_RAMDISK_LOGDIR"
|
||||
inspector_iniset processing always_store_ramdisk_logs "$IRONIC_INSPECTOR_ALWAYS_STORE_RAMDISK_LOGS"
|
||||
}
|
||||
|
||||
function configure_inspector_swift {
|
||||
@ -238,6 +248,7 @@ function cleanup_inspector {
|
||||
rm -f $IRONIC_TFTPBOOT_DIR/ironic-inspector.*
|
||||
sudo rm -f /etc/sudoers.d/ironic-inspector-rootwrap
|
||||
sudo rm -rf $IRONIC_INSPECTOR_AUTH_CACHE_DIR
|
||||
sudo rm -rf "$IRONIC_INSPECTOR_RAMDISK_LOGDIR"
|
||||
|
||||
# Try to clean up firewall rules
|
||||
sudo iptables -D INPUT -i $IRONIC_INSPECTOR_INTERFACE -p udp \
|
||||
|
@ -49,6 +49,7 @@ CURRENT_API_VERSION = (1, 2)
|
||||
_MIN_VERSION_HEADER = 'X-OpenStack-Ironic-Inspector-API-Minimum-Version'
|
||||
_MAX_VERSION_HEADER = 'X-OpenStack-Ironic-Inspector-API-Maximum-Version'
|
||||
_VERSION_HEADER = 'X-OpenStack-Ironic-Inspector-API-Version'
|
||||
_LOGGING_EXCLUDED_KEYS = ('logs',)
|
||||
|
||||
|
||||
def _format_version(ver):
|
||||
@ -169,7 +170,10 @@ def api_continue():
|
||||
raise utils.Error(_('Invalid data: expected a JSON object, got %s') %
|
||||
data.__class__.__name__)
|
||||
|
||||
LOG.debug("/v1/continue got JSON %s", data)
|
||||
logged_data = {k: (v if k not in _LOGGING_EXCLUDED_KEYS else '<hidden>')
|
||||
for k, v in data.items()}
|
||||
LOG.debug("Received data from the ramdisk: %s", logged_data)
|
||||
|
||||
return flask.jsonify(process.process(data))
|
||||
|
||||
|
||||
|
@ -227,8 +227,11 @@ class RamdiskErrorHook(base.ProcessingHook):
|
||||
error = introspection_data.get('error')
|
||||
logs = introspection_data.get('logs')
|
||||
|
||||
if logs and (error or CONF.processing.always_store_ramdisk_logs):
|
||||
self._store_logs(logs, introspection_data)
|
||||
if error or CONF.processing.always_store_ramdisk_logs:
|
||||
if logs:
|
||||
self._store_logs(logs, introspection_data)
|
||||
else:
|
||||
LOG.debug('No logs received from the ramdisk')
|
||||
|
||||
if error:
|
||||
raise utils.Error(_('Ramdisk reported error: %s') % error)
|
||||
@ -250,3 +253,4 @@ class RamdiskErrorHook(base.ProcessingHook):
|
||||
with open(os.path.join(CONF.processing.ramdisk_logs_dir, file_name),
|
||||
'wb') as fp:
|
||||
fp.write(base64.b64decode(logs))
|
||||
LOG.info(_LI('Ramdisk logs stored in file %s'), file_name)
|
||||
|
@ -0,0 +1,3 @@
|
||||
---
|
||||
other:
|
||||
- Improve logging for ramdisk logs collection.
|
Loading…
Reference in New Issue
Block a user