From 3bafd2c691cb5a49d821b77863d9200afc9c7312 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Fri, 13 Mar 2015 11:23:40 +1100 Subject: [PATCH] Generate nodepool logging configuration Generate a logging configuration template for nodepool that splits image-build logs out into separate files. A tool to generate and maintain this file based on the nodepool configuration is added. The logging configuration template this tool creates is added alongside the main configuration. This is passed to the deployment puppet module via a parameter. Change-Id: I4723c68e5c83b536560e0a8bd7b73e312b46fc02 Depends-on: Iec77fb62c353d09186140b23912caf02225a643b --- .../manifests/nodepool_prod.pp | 2 + .../nodepool/nodepool.logging.conf.erb | 1146 +++++++++++++++++ tools/nodepool_log_config.py | 244 ++++ 3 files changed, 1392 insertions(+) create mode 100644 modules/openstack_project/templates/nodepool/nodepool.logging.conf.erb create mode 100755 tools/nodepool_log_config.py diff --git a/modules/openstack_project/manifests/nodepool_prod.pp b/modules/openstack_project/manifests/nodepool_prod.pp index 5393516dbf..f2d0742af0 100644 --- a/modules/openstack_project/manifests/nodepool_prod.pp +++ b/modules/openstack_project/manifests/nodepool_prod.pp @@ -5,6 +5,7 @@ class openstack_project::nodepool_prod( $mysql_password, $nodepool_ssh_private_key = '', $nodepool_template = 'openstack_project/nodepool/nodepool.yaml.erb', + $nodepool_logging_template = 'openstack_project/nodepool/nodepool.logging.conf.erb', $vhost_name = 'nodepool.openstack.org', $sysadmins = [], $statsd_host = '', @@ -44,6 +45,7 @@ class openstack_project::nodepool_prod( scripts_dir => $::project_config::nodepool_scripts_dir, elements_dir => $::project_config::nodepool_elements_dir, require => $::project_config::config_dir, + logging_conf_template => $nodepool_logging_template, } file { '/etc/nodepool/nodepool.yaml': diff --git a/modules/openstack_project/templates/nodepool/nodepool.logging.conf.erb b/modules/openstack_project/templates/nodepool/nodepool.logging.conf.erb new file mode 100644 index 0000000000..7336b8c094 --- /dev/null +++ b/modules/openstack_project/templates/nodepool/nodepool.logging.conf.erb @@ -0,0 +1,1146 @@ + + +# +# THIS FILE HAS BEEN AUTOGENERATED +# Regenerate it with tools/nodepool_log_config.py +# + +[loggers] +keys=root,nodepool,requests,image,rax-dfw_devstack-precise,rax-dfw_bare-precise,rax-dfw_devstack-trusty,rax-dfw_bare-trusty,rax-dfw_bare-centos6,rax-dfw_devstack-f20,rax-dfw_devstack-f21,rax-dfw_devstack-centos7,rax-ord_devstack-precise,rax-ord_bare-precise,rax-ord_devstack-trusty,rax-ord_bare-trusty,rax-ord_bare-centos6,rax-ord_devstack-f20,rax-ord_devstack-f21,rax-ord_devstack-centos7,rax-iad_devstack-precise,rax-iad_bare-precise,rax-iad_devstack-trusty,rax-iad_bare-trusty,rax-iad_bare-centos6,rax-iad_devstack-precise-check,rax-iad_devstack-f20,rax-iad_devstack-f21,rax-iad_devstack-centos7,hpcloud-region-a_devstack-precise-check,hpcloud-b1_devstack-precise-check,hpcloud-b1_devstack-precise,hpcloud-b1_devstack-precise-dib,hpcloud-b1_bare-precise,hpcloud-b1_devstack-trusty,hpcloud-b1_devstack-trusty-dib,hpcloud-b1_bare-trusty,hpcloud-b1_bare-centos6,hpcloud-b1_devstack-f20,hpcloud-b1_devstack-f21,hpcloud-b1_devstack-centos7,hpcloud-b1_devstack-centos7-dib,hpcloud-b2_devstack-precise-check,hpcloud-b2_devstack-precise,hpcloud-b2_devstack-precise-dib,hpcloud-b2_bare-precise,hpcloud-b2_devstack-trusty,hpcloud-b2_devstack-trusty-dib,hpcloud-b2_bare-trusty,hpcloud-b2_bare-centos6,hpcloud-b2_devstack-f20,hpcloud-b2_devstack-f21,hpcloud-b2_devstack-centos7,hpcloud-b2_devstack-centos7-dib,hpcloud-b3_devstack-precise-check,hpcloud-b3_devstack-precise,hpcloud-b3_devstack-precise-dib,hpcloud-b3_bare-precise,hpcloud-b3_devstack-trusty,hpcloud-b3_devstack-trusty-dib,hpcloud-b3_bare-trusty,hpcloud-b3_bare-centos6,hpcloud-b3_devstack-f20,hpcloud-b3_devstack-f21,hpcloud-b3_devstack-centos7,hpcloud-b3_devstack-centos7-dib,hpcloud-b4_devstack-precise-check,hpcloud-b4_devstack-precise,hpcloud-b4_devstack-precise-dib,hpcloud-b4_bare-precise,hpcloud-b4_devstack-trusty,hpcloud-b4_devstack-trusty-dib,hpcloud-b4_bare-trusty,hpcloud-b4_bare-centos6,hpcloud-b4_devstack-f20,hpcloud-b4_devstack-f21,hpcloud-b4_devstack-centos7,hpcloud-b4_devstack-centos7-dib,hpcloud-b5_devstack-precise-check,hpcloud-b5_devstack-precise,hpcloud-b5_devstack-precise-dib,hpcloud-b5_bare-precise,hpcloud-b5_devstack-trusty,hpcloud-b5_devstack-trusty-dib,hpcloud-b5_bare-trusty,hpcloud-b5_bare-centos6,hpcloud-b5_devstack-f20,hpcloud-b5_devstack-f21,hpcloud-b5_devstack-centos7,hpcloud-b5_devstack-centos7-dib,tripleo-test-cloud-hp1_tripleo-precise,tripleo-test-cloud-hp1_tripleo-f20,tripleo-test-cloud-rh1_tripleo-precise,tripleo-test-cloud-rh1_tripleo-f20 + +[handlers] +keys=console,debug,normal,image,rax-dfw_devstack-precise,rax-dfw_bare-precise,rax-dfw_devstack-trusty,rax-dfw_bare-trusty,rax-dfw_bare-centos6,rax-dfw_devstack-f20,rax-dfw_devstack-f21,rax-dfw_devstack-centos7,rax-ord_devstack-precise,rax-ord_bare-precise,rax-ord_devstack-trusty,rax-ord_bare-trusty,rax-ord_bare-centos6,rax-ord_devstack-f20,rax-ord_devstack-f21,rax-ord_devstack-centos7,rax-iad_devstack-precise,rax-iad_bare-precise,rax-iad_devstack-trusty,rax-iad_bare-trusty,rax-iad_bare-centos6,rax-iad_devstack-precise-check,rax-iad_devstack-f20,rax-iad_devstack-f21,rax-iad_devstack-centos7,hpcloud-region-a_devstack-precise-check,hpcloud-b1_devstack-precise-check,hpcloud-b1_devstack-precise,hpcloud-b1_devstack-precise-dib,hpcloud-b1_bare-precise,hpcloud-b1_devstack-trusty,hpcloud-b1_devstack-trusty-dib,hpcloud-b1_bare-trusty,hpcloud-b1_bare-centos6,hpcloud-b1_devstack-f20,hpcloud-b1_devstack-f21,hpcloud-b1_devstack-centos7,hpcloud-b1_devstack-centos7-dib,hpcloud-b2_devstack-precise-check,hpcloud-b2_devstack-precise,hpcloud-b2_devstack-precise-dib,hpcloud-b2_bare-precise,hpcloud-b2_devstack-trusty,hpcloud-b2_devstack-trusty-dib,hpcloud-b2_bare-trusty,hpcloud-b2_bare-centos6,hpcloud-b2_devstack-f20,hpcloud-b2_devstack-f21,hpcloud-b2_devstack-centos7,hpcloud-b2_devstack-centos7-dib,hpcloud-b3_devstack-precise-check,hpcloud-b3_devstack-precise,hpcloud-b3_devstack-precise-dib,hpcloud-b3_bare-precise,hpcloud-b3_devstack-trusty,hpcloud-b3_devstack-trusty-dib,hpcloud-b3_bare-trusty,hpcloud-b3_bare-centos6,hpcloud-b3_devstack-f20,hpcloud-b3_devstack-f21,hpcloud-b3_devstack-centos7,hpcloud-b3_devstack-centos7-dib,hpcloud-b4_devstack-precise-check,hpcloud-b4_devstack-precise,hpcloud-b4_devstack-precise-dib,hpcloud-b4_bare-precise,hpcloud-b4_devstack-trusty,hpcloud-b4_devstack-trusty-dib,hpcloud-b4_bare-trusty,hpcloud-b4_bare-centos6,hpcloud-b4_devstack-f20,hpcloud-b4_devstack-f21,hpcloud-b4_devstack-centos7,hpcloud-b4_devstack-centos7-dib,hpcloud-b5_devstack-precise-check,hpcloud-b5_devstack-precise,hpcloud-b5_devstack-precise-dib,hpcloud-b5_bare-precise,hpcloud-b5_devstack-trusty,hpcloud-b5_devstack-trusty-dib,hpcloud-b5_bare-trusty,hpcloud-b5_bare-centos6,hpcloud-b5_devstack-f20,hpcloud-b5_devstack-f21,hpcloud-b5_devstack-centos7,hpcloud-b5_devstack-centos7-dib,tripleo-test-cloud-hp1_tripleo-precise,tripleo-test-cloud-hp1_tripleo-f20,tripleo-test-cloud-rh1_tripleo-precise,tripleo-test-cloud-rh1_tripleo-f20 + +[formatters] +keys=simple + +[logger_root] +level=WARNING +handlers=console + +[logger_requests] +level=WARNING +handlers=debug,normal +qualname=requests + +[logger_nodepool] +level=DEBUG +handlers=debug,normal +qualname=nodepool + +[logger_image] +level=INFO +handlers=image +qualname=nodepool.image.build +propagate=0 + +[handler_console] +level=WARNING +class=StreamHandler +formatter=simple +args=(sys.stdout,) + +[handler_debug] +level=DEBUG +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('/var/log/nodepool/debug.log', 'H', 8, 30,) + +[handler_normal] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('/var/log/nodepool/nodepool.log', 'H', 8, 30,) + +[handler_image] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/image.log', 'H', 8, 30,) + +[formatter_simple] +format=%(asctime)s %(levelname)s %(name)s: %(message)s +datefmt= + +# ==== individual image loggers ==== + + +[logger_rax-dfw_devstack-precise] +level=INFO +handlers=rax-dfw_devstack-precise +qualname=nodepool.image.build.rax-dfw.devstack-precise +propagate=0 + +[handler_rax-dfw_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.devstack-precise.log', 'H', 8, 30,) + +[logger_rax-dfw_bare-precise] +level=INFO +handlers=rax-dfw_bare-precise +qualname=nodepool.image.build.rax-dfw.bare-precise +propagate=0 + +[handler_rax-dfw_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.bare-precise.log', 'H', 8, 30,) + +[logger_rax-dfw_devstack-trusty] +level=INFO +handlers=rax-dfw_devstack-trusty +qualname=nodepool.image.build.rax-dfw.devstack-trusty +propagate=0 + +[handler_rax-dfw_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.devstack-trusty.log', 'H', 8, 30,) + +[logger_rax-dfw_bare-trusty] +level=INFO +handlers=rax-dfw_bare-trusty +qualname=nodepool.image.build.rax-dfw.bare-trusty +propagate=0 + +[handler_rax-dfw_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.bare-trusty.log', 'H', 8, 30,) + +[logger_rax-dfw_bare-centos6] +level=INFO +handlers=rax-dfw_bare-centos6 +qualname=nodepool.image.build.rax-dfw.bare-centos6 +propagate=0 + +[handler_rax-dfw_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.bare-centos6.log', 'H', 8, 30,) + +[logger_rax-dfw_devstack-f20] +level=INFO +handlers=rax-dfw_devstack-f20 +qualname=nodepool.image.build.rax-dfw.devstack-f20 +propagate=0 + +[handler_rax-dfw_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.devstack-f20.log', 'H', 8, 30,) + +[logger_rax-dfw_devstack-f21] +level=INFO +handlers=rax-dfw_devstack-f21 +qualname=nodepool.image.build.rax-dfw.devstack-f21 +propagate=0 + +[handler_rax-dfw_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.devstack-f21.log', 'H', 8, 30,) + +[logger_rax-dfw_devstack-centos7] +level=INFO +handlers=rax-dfw_devstack-centos7 +qualname=nodepool.image.build.rax-dfw.devstack-centos7 +propagate=0 + +[handler_rax-dfw_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-dfw.devstack-centos7.log', 'H', 8, 30,) + +[logger_rax-ord_devstack-precise] +level=INFO +handlers=rax-ord_devstack-precise +qualname=nodepool.image.build.rax-ord.devstack-precise +propagate=0 + +[handler_rax-ord_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.devstack-precise.log', 'H', 8, 30,) + +[logger_rax-ord_bare-precise] +level=INFO +handlers=rax-ord_bare-precise +qualname=nodepool.image.build.rax-ord.bare-precise +propagate=0 + +[handler_rax-ord_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.bare-precise.log', 'H', 8, 30,) + +[logger_rax-ord_devstack-trusty] +level=INFO +handlers=rax-ord_devstack-trusty +qualname=nodepool.image.build.rax-ord.devstack-trusty +propagate=0 + +[handler_rax-ord_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.devstack-trusty.log', 'H', 8, 30,) + +[logger_rax-ord_bare-trusty] +level=INFO +handlers=rax-ord_bare-trusty +qualname=nodepool.image.build.rax-ord.bare-trusty +propagate=0 + +[handler_rax-ord_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.bare-trusty.log', 'H', 8, 30,) + +[logger_rax-ord_bare-centos6] +level=INFO +handlers=rax-ord_bare-centos6 +qualname=nodepool.image.build.rax-ord.bare-centos6 +propagate=0 + +[handler_rax-ord_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.bare-centos6.log', 'H', 8, 30,) + +[logger_rax-ord_devstack-f20] +level=INFO +handlers=rax-ord_devstack-f20 +qualname=nodepool.image.build.rax-ord.devstack-f20 +propagate=0 + +[handler_rax-ord_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.devstack-f20.log', 'H', 8, 30,) + +[logger_rax-ord_devstack-f21] +level=INFO +handlers=rax-ord_devstack-f21 +qualname=nodepool.image.build.rax-ord.devstack-f21 +propagate=0 + +[handler_rax-ord_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.devstack-f21.log', 'H', 8, 30,) + +[logger_rax-ord_devstack-centos7] +level=INFO +handlers=rax-ord_devstack-centos7 +qualname=nodepool.image.build.rax-ord.devstack-centos7 +propagate=0 + +[handler_rax-ord_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-ord.devstack-centos7.log', 'H', 8, 30,) + +[logger_rax-iad_devstack-precise] +level=INFO +handlers=rax-iad_devstack-precise +qualname=nodepool.image.build.rax-iad.devstack-precise +propagate=0 + +[handler_rax-iad_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.devstack-precise.log', 'H', 8, 30,) + +[logger_rax-iad_bare-precise] +level=INFO +handlers=rax-iad_bare-precise +qualname=nodepool.image.build.rax-iad.bare-precise +propagate=0 + +[handler_rax-iad_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.bare-precise.log', 'H', 8, 30,) + +[logger_rax-iad_devstack-trusty] +level=INFO +handlers=rax-iad_devstack-trusty +qualname=nodepool.image.build.rax-iad.devstack-trusty +propagate=0 + +[handler_rax-iad_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.devstack-trusty.log', 'H', 8, 30,) + +[logger_rax-iad_bare-trusty] +level=INFO +handlers=rax-iad_bare-trusty +qualname=nodepool.image.build.rax-iad.bare-trusty +propagate=0 + +[handler_rax-iad_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.bare-trusty.log', 'H', 8, 30,) + +[logger_rax-iad_bare-centos6] +level=INFO +handlers=rax-iad_bare-centos6 +qualname=nodepool.image.build.rax-iad.bare-centos6 +propagate=0 + +[handler_rax-iad_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.bare-centos6.log', 'H', 8, 30,) + +[logger_rax-iad_devstack-precise-check] +level=INFO +handlers=rax-iad_devstack-precise-check +qualname=nodepool.image.build.rax-iad.devstack-precise-check +propagate=0 + +[handler_rax-iad_devstack-precise-check] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.devstack-precise-check.log', 'H', 8, 30,) + +[logger_rax-iad_devstack-f20] +level=INFO +handlers=rax-iad_devstack-f20 +qualname=nodepool.image.build.rax-iad.devstack-f20 +propagate=0 + +[handler_rax-iad_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.devstack-f20.log', 'H', 8, 30,) + +[logger_rax-iad_devstack-f21] +level=INFO +handlers=rax-iad_devstack-f21 +qualname=nodepool.image.build.rax-iad.devstack-f21 +propagate=0 + +[handler_rax-iad_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.devstack-f21.log', 'H', 8, 30,) + +[logger_rax-iad_devstack-centos7] +level=INFO +handlers=rax-iad_devstack-centos7 +qualname=nodepool.image.build.rax-iad.devstack-centos7 +propagate=0 + +[handler_rax-iad_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/rax-iad.devstack-centos7.log', 'H', 8, 30,) + +[logger_hpcloud-region-a_devstack-precise-check] +level=INFO +handlers=hpcloud-region-a_devstack-precise-check +qualname=nodepool.image.build.hpcloud-region-a.devstack-precise-check +propagate=0 + +[handler_hpcloud-region-a_devstack-precise-check] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-region-a.devstack-precise-check.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-precise-check] +level=INFO +handlers=hpcloud-b1_devstack-precise-check +qualname=nodepool.image.build.hpcloud-b1.devstack-precise-check +propagate=0 + +[handler_hpcloud-b1_devstack-precise-check] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-precise-check.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-precise] +level=INFO +handlers=hpcloud-b1_devstack-precise +qualname=nodepool.image.build.hpcloud-b1.devstack-precise +propagate=0 + +[handler_hpcloud-b1_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-precise-dib] +level=INFO +handlers=hpcloud-b1_devstack-precise-dib +qualname=nodepool.image.build.hpcloud-b1.devstack-precise-dib +propagate=0 + +[handler_hpcloud-b1_devstack-precise-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-precise-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b1_bare-precise] +level=INFO +handlers=hpcloud-b1_bare-precise +qualname=nodepool.image.build.hpcloud-b1.bare-precise +propagate=0 + +[handler_hpcloud-b1_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.bare-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-trusty] +level=INFO +handlers=hpcloud-b1_devstack-trusty +qualname=nodepool.image.build.hpcloud-b1.devstack-trusty +propagate=0 + +[handler_hpcloud-b1_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-trusty-dib] +level=INFO +handlers=hpcloud-b1_devstack-trusty-dib +qualname=nodepool.image.build.hpcloud-b1.devstack-trusty-dib +propagate=0 + +[handler_hpcloud-b1_devstack-trusty-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-trusty-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b1_bare-trusty] +level=INFO +handlers=hpcloud-b1_bare-trusty +qualname=nodepool.image.build.hpcloud-b1.bare-trusty +propagate=0 + +[handler_hpcloud-b1_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.bare-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b1_bare-centos6] +level=INFO +handlers=hpcloud-b1_bare-centos6 +qualname=nodepool.image.build.hpcloud-b1.bare-centos6 +propagate=0 + +[handler_hpcloud-b1_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.bare-centos6.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-f20] +level=INFO +handlers=hpcloud-b1_devstack-f20 +qualname=nodepool.image.build.hpcloud-b1.devstack-f20 +propagate=0 + +[handler_hpcloud-b1_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-f20.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-f21] +level=INFO +handlers=hpcloud-b1_devstack-f21 +qualname=nodepool.image.build.hpcloud-b1.devstack-f21 +propagate=0 + +[handler_hpcloud-b1_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-f21.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-centos7] +level=INFO +handlers=hpcloud-b1_devstack-centos7 +qualname=nodepool.image.build.hpcloud-b1.devstack-centos7 +propagate=0 + +[handler_hpcloud-b1_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-centos7.log', 'H', 8, 30,) + +[logger_hpcloud-b1_devstack-centos7-dib] +level=INFO +handlers=hpcloud-b1_devstack-centos7-dib +qualname=nodepool.image.build.hpcloud-b1.devstack-centos7-dib +propagate=0 + +[handler_hpcloud-b1_devstack-centos7-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b1.devstack-centos7-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-precise-check] +level=INFO +handlers=hpcloud-b2_devstack-precise-check +qualname=nodepool.image.build.hpcloud-b2.devstack-precise-check +propagate=0 + +[handler_hpcloud-b2_devstack-precise-check] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-precise-check.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-precise] +level=INFO +handlers=hpcloud-b2_devstack-precise +qualname=nodepool.image.build.hpcloud-b2.devstack-precise +propagate=0 + +[handler_hpcloud-b2_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-precise-dib] +level=INFO +handlers=hpcloud-b2_devstack-precise-dib +qualname=nodepool.image.build.hpcloud-b2.devstack-precise-dib +propagate=0 + +[handler_hpcloud-b2_devstack-precise-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-precise-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b2_bare-precise] +level=INFO +handlers=hpcloud-b2_bare-precise +qualname=nodepool.image.build.hpcloud-b2.bare-precise +propagate=0 + +[handler_hpcloud-b2_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.bare-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-trusty] +level=INFO +handlers=hpcloud-b2_devstack-trusty +qualname=nodepool.image.build.hpcloud-b2.devstack-trusty +propagate=0 + +[handler_hpcloud-b2_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-trusty-dib] +level=INFO +handlers=hpcloud-b2_devstack-trusty-dib +qualname=nodepool.image.build.hpcloud-b2.devstack-trusty-dib +propagate=0 + +[handler_hpcloud-b2_devstack-trusty-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-trusty-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b2_bare-trusty] +level=INFO +handlers=hpcloud-b2_bare-trusty +qualname=nodepool.image.build.hpcloud-b2.bare-trusty +propagate=0 + +[handler_hpcloud-b2_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.bare-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b2_bare-centos6] +level=INFO +handlers=hpcloud-b2_bare-centos6 +qualname=nodepool.image.build.hpcloud-b2.bare-centos6 +propagate=0 + +[handler_hpcloud-b2_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.bare-centos6.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-f20] +level=INFO +handlers=hpcloud-b2_devstack-f20 +qualname=nodepool.image.build.hpcloud-b2.devstack-f20 +propagate=0 + +[handler_hpcloud-b2_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-f20.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-f21] +level=INFO +handlers=hpcloud-b2_devstack-f21 +qualname=nodepool.image.build.hpcloud-b2.devstack-f21 +propagate=0 + +[handler_hpcloud-b2_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-f21.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-centos7] +level=INFO +handlers=hpcloud-b2_devstack-centos7 +qualname=nodepool.image.build.hpcloud-b2.devstack-centos7 +propagate=0 + +[handler_hpcloud-b2_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-centos7.log', 'H', 8, 30,) + +[logger_hpcloud-b2_devstack-centos7-dib] +level=INFO +handlers=hpcloud-b2_devstack-centos7-dib +qualname=nodepool.image.build.hpcloud-b2.devstack-centos7-dib +propagate=0 + +[handler_hpcloud-b2_devstack-centos7-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b2.devstack-centos7-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-precise-check] +level=INFO +handlers=hpcloud-b3_devstack-precise-check +qualname=nodepool.image.build.hpcloud-b3.devstack-precise-check +propagate=0 + +[handler_hpcloud-b3_devstack-precise-check] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-precise-check.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-precise] +level=INFO +handlers=hpcloud-b3_devstack-precise +qualname=nodepool.image.build.hpcloud-b3.devstack-precise +propagate=0 + +[handler_hpcloud-b3_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-precise-dib] +level=INFO +handlers=hpcloud-b3_devstack-precise-dib +qualname=nodepool.image.build.hpcloud-b3.devstack-precise-dib +propagate=0 + +[handler_hpcloud-b3_devstack-precise-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-precise-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b3_bare-precise] +level=INFO +handlers=hpcloud-b3_bare-precise +qualname=nodepool.image.build.hpcloud-b3.bare-precise +propagate=0 + +[handler_hpcloud-b3_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.bare-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-trusty] +level=INFO +handlers=hpcloud-b3_devstack-trusty +qualname=nodepool.image.build.hpcloud-b3.devstack-trusty +propagate=0 + +[handler_hpcloud-b3_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-trusty-dib] +level=INFO +handlers=hpcloud-b3_devstack-trusty-dib +qualname=nodepool.image.build.hpcloud-b3.devstack-trusty-dib +propagate=0 + +[handler_hpcloud-b3_devstack-trusty-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-trusty-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b3_bare-trusty] +level=INFO +handlers=hpcloud-b3_bare-trusty +qualname=nodepool.image.build.hpcloud-b3.bare-trusty +propagate=0 + +[handler_hpcloud-b3_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.bare-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b3_bare-centos6] +level=INFO +handlers=hpcloud-b3_bare-centos6 +qualname=nodepool.image.build.hpcloud-b3.bare-centos6 +propagate=0 + +[handler_hpcloud-b3_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.bare-centos6.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-f20] +level=INFO +handlers=hpcloud-b3_devstack-f20 +qualname=nodepool.image.build.hpcloud-b3.devstack-f20 +propagate=0 + +[handler_hpcloud-b3_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-f20.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-f21] +level=INFO +handlers=hpcloud-b3_devstack-f21 +qualname=nodepool.image.build.hpcloud-b3.devstack-f21 +propagate=0 + +[handler_hpcloud-b3_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-f21.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-centos7] +level=INFO +handlers=hpcloud-b3_devstack-centos7 +qualname=nodepool.image.build.hpcloud-b3.devstack-centos7 +propagate=0 + +[handler_hpcloud-b3_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-centos7.log', 'H', 8, 30,) + +[logger_hpcloud-b3_devstack-centos7-dib] +level=INFO +handlers=hpcloud-b3_devstack-centos7-dib +qualname=nodepool.image.build.hpcloud-b3.devstack-centos7-dib +propagate=0 + +[handler_hpcloud-b3_devstack-centos7-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b3.devstack-centos7-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-precise-check] +level=INFO +handlers=hpcloud-b4_devstack-precise-check +qualname=nodepool.image.build.hpcloud-b4.devstack-precise-check +propagate=0 + +[handler_hpcloud-b4_devstack-precise-check] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-precise-check.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-precise] +level=INFO +handlers=hpcloud-b4_devstack-precise +qualname=nodepool.image.build.hpcloud-b4.devstack-precise +propagate=0 + +[handler_hpcloud-b4_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-precise-dib] +level=INFO +handlers=hpcloud-b4_devstack-precise-dib +qualname=nodepool.image.build.hpcloud-b4.devstack-precise-dib +propagate=0 + +[handler_hpcloud-b4_devstack-precise-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-precise-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b4_bare-precise] +level=INFO +handlers=hpcloud-b4_bare-precise +qualname=nodepool.image.build.hpcloud-b4.bare-precise +propagate=0 + +[handler_hpcloud-b4_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.bare-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-trusty] +level=INFO +handlers=hpcloud-b4_devstack-trusty +qualname=nodepool.image.build.hpcloud-b4.devstack-trusty +propagate=0 + +[handler_hpcloud-b4_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-trusty-dib] +level=INFO +handlers=hpcloud-b4_devstack-trusty-dib +qualname=nodepool.image.build.hpcloud-b4.devstack-trusty-dib +propagate=0 + +[handler_hpcloud-b4_devstack-trusty-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-trusty-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b4_bare-trusty] +level=INFO +handlers=hpcloud-b4_bare-trusty +qualname=nodepool.image.build.hpcloud-b4.bare-trusty +propagate=0 + +[handler_hpcloud-b4_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.bare-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b4_bare-centos6] +level=INFO +handlers=hpcloud-b4_bare-centos6 +qualname=nodepool.image.build.hpcloud-b4.bare-centos6 +propagate=0 + +[handler_hpcloud-b4_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.bare-centos6.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-f20] +level=INFO +handlers=hpcloud-b4_devstack-f20 +qualname=nodepool.image.build.hpcloud-b4.devstack-f20 +propagate=0 + +[handler_hpcloud-b4_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-f20.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-f21] +level=INFO +handlers=hpcloud-b4_devstack-f21 +qualname=nodepool.image.build.hpcloud-b4.devstack-f21 +propagate=0 + +[handler_hpcloud-b4_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-f21.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-centos7] +level=INFO +handlers=hpcloud-b4_devstack-centos7 +qualname=nodepool.image.build.hpcloud-b4.devstack-centos7 +propagate=0 + +[handler_hpcloud-b4_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-centos7.log', 'H', 8, 30,) + +[logger_hpcloud-b4_devstack-centos7-dib] +level=INFO +handlers=hpcloud-b4_devstack-centos7-dib +qualname=nodepool.image.build.hpcloud-b4.devstack-centos7-dib +propagate=0 + +[handler_hpcloud-b4_devstack-centos7-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b4.devstack-centos7-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-precise-check] +level=INFO +handlers=hpcloud-b5_devstack-precise-check +qualname=nodepool.image.build.hpcloud-b5.devstack-precise-check +propagate=0 + +[handler_hpcloud-b5_devstack-precise-check] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-precise-check.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-precise] +level=INFO +handlers=hpcloud-b5_devstack-precise +qualname=nodepool.image.build.hpcloud-b5.devstack-precise +propagate=0 + +[handler_hpcloud-b5_devstack-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-precise-dib] +level=INFO +handlers=hpcloud-b5_devstack-precise-dib +qualname=nodepool.image.build.hpcloud-b5.devstack-precise-dib +propagate=0 + +[handler_hpcloud-b5_devstack-precise-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-precise-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b5_bare-precise] +level=INFO +handlers=hpcloud-b5_bare-precise +qualname=nodepool.image.build.hpcloud-b5.bare-precise +propagate=0 + +[handler_hpcloud-b5_bare-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.bare-precise.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-trusty] +level=INFO +handlers=hpcloud-b5_devstack-trusty +qualname=nodepool.image.build.hpcloud-b5.devstack-trusty +propagate=0 + +[handler_hpcloud-b5_devstack-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-trusty-dib] +level=INFO +handlers=hpcloud-b5_devstack-trusty-dib +qualname=nodepool.image.build.hpcloud-b5.devstack-trusty-dib +propagate=0 + +[handler_hpcloud-b5_devstack-trusty-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-trusty-dib.log', 'H', 8, 30,) + +[logger_hpcloud-b5_bare-trusty] +level=INFO +handlers=hpcloud-b5_bare-trusty +qualname=nodepool.image.build.hpcloud-b5.bare-trusty +propagate=0 + +[handler_hpcloud-b5_bare-trusty] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.bare-trusty.log', 'H', 8, 30,) + +[logger_hpcloud-b5_bare-centos6] +level=INFO +handlers=hpcloud-b5_bare-centos6 +qualname=nodepool.image.build.hpcloud-b5.bare-centos6 +propagate=0 + +[handler_hpcloud-b5_bare-centos6] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.bare-centos6.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-f20] +level=INFO +handlers=hpcloud-b5_devstack-f20 +qualname=nodepool.image.build.hpcloud-b5.devstack-f20 +propagate=0 + +[handler_hpcloud-b5_devstack-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-f20.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-f21] +level=INFO +handlers=hpcloud-b5_devstack-f21 +qualname=nodepool.image.build.hpcloud-b5.devstack-f21 +propagate=0 + +[handler_hpcloud-b5_devstack-f21] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-f21.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-centos7] +level=INFO +handlers=hpcloud-b5_devstack-centos7 +qualname=nodepool.image.build.hpcloud-b5.devstack-centos7 +propagate=0 + +[handler_hpcloud-b5_devstack-centos7] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-centos7.log', 'H', 8, 30,) + +[logger_hpcloud-b5_devstack-centos7-dib] +level=INFO +handlers=hpcloud-b5_devstack-centos7-dib +qualname=nodepool.image.build.hpcloud-b5.devstack-centos7-dib +propagate=0 + +[handler_hpcloud-b5_devstack-centos7-dib] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/hpcloud-b5.devstack-centos7-dib.log', 'H', 8, 30,) + +[logger_tripleo-test-cloud-hp1_tripleo-precise] +level=INFO +handlers=tripleo-test-cloud-hp1_tripleo-precise +qualname=nodepool.image.build.tripleo-test-cloud-hp1.tripleo-precise +propagate=0 + +[handler_tripleo-test-cloud-hp1_tripleo-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/tripleo-test-cloud-hp1.tripleo-precise.log', 'H', 8, 30,) + +[logger_tripleo-test-cloud-hp1_tripleo-f20] +level=INFO +handlers=tripleo-test-cloud-hp1_tripleo-f20 +qualname=nodepool.image.build.tripleo-test-cloud-hp1.tripleo-f20 +propagate=0 + +[handler_tripleo-test-cloud-hp1_tripleo-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/tripleo-test-cloud-hp1.tripleo-f20.log', 'H', 8, 30,) + +[logger_tripleo-test-cloud-rh1_tripleo-precise] +level=INFO +handlers=tripleo-test-cloud-rh1_tripleo-precise +qualname=nodepool.image.build.tripleo-test-cloud-rh1.tripleo-precise +propagate=0 + +[handler_tripleo-test-cloud-rh1_tripleo-precise] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/tripleo-test-cloud-rh1.tripleo-precise.log', 'H', 8, 30,) + +[logger_tripleo-test-cloud-rh1_tripleo-f20] +level=INFO +handlers=tripleo-test-cloud-rh1_tripleo-f20 +qualname=nodepool.image.build.tripleo-test-cloud-rh1.tripleo-f20 +propagate=0 + +[handler_tripleo-test-cloud-rh1_tripleo-f20] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('<%= @image_log_document_root %>/tripleo-test-cloud-rh1.tripleo-f20.log', 'H', 8, 30,) diff --git a/tools/nodepool_log_config.py b/tools/nodepool_log_config.py new file mode 100755 index 0000000000..ce40bdd250 --- /dev/null +++ b/tools/nodepool_log_config.py @@ -0,0 +1,244 @@ +#!/usr/bin/env python + +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + + +"""Generate a sample logging configuration file + +use log_config_generator.generate_log_config() to generate a sample +logging configuration file. + +The sample splits up the log output for general logging and image +builds and applys some sensible rotation defaults. +""" + +import argparse +import logging +import yaml + +# default paths and outputs +MODULES_PATH = '../modules/openstack_project/templates/nodepool' +CONFIG_FILE = MODULES_PATH + '/nodepool.yaml.erb' +LOGGING_CONFIG_FILE = MODULES_PATH + '/nodepool.logging.conf.erb' +LOG_DIR = '/var/log/nodepool' +IMAGE_LOG_DIR = '<%= @image_log_document_root %>' + + +_BASIC_FILE = """ + +# +# THIS FILE HAS BEEN AUTOGENERATED +# Regenerate it with tools/nodepool_log_config.py +# + +[loggers] +keys=root,nodepool,requests,image,%(logger_titles)s + +[handlers] +keys=console,debug,normal,image,%(handler_titles)s + +[formatters] +keys=simple + +[logger_root] +level=WARNING +handlers=console + +[logger_requests] +level=WARNING +handlers=debug,normal +qualname=requests + +[logger_nodepool] +level=DEBUG +handlers=debug,normal +qualname=nodepool + +[logger_image] +level=INFO +handlers=image +qualname=nodepool.image.build +propagate=0 + +[handler_console] +level=WARNING +class=StreamHandler +formatter=simple +args=(sys.stdout,) + +[handler_debug] +level=DEBUG +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('%(log_dir)s/debug.log', 'H', 8, 30,) + +[handler_normal] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('%(log_dir)s/nodepool.log', 'H', 8, 30,) + +[handler_image] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('%(image_log_dir)s/image.log', 'H', 8, 30,) + +[formatter_simple] +format=%%(asctime)s %%(levelname)s %%(name)s: %%(message)s +datefmt= + +# ==== individual image loggers ==== + +%(image_loggers_and_handlers)s""" + +_IMAGE_HANDLER = """ +[handler_%(title)s] +level=INFO +class=logging.handlers.TimedRotatingFileHandler +formatter=simple +args=('%(image_log_dir)s/%(filename)s', 'H', 8, 30,) +""" + +_IMAGE_LOGGER = """ +[logger_%(title)s] +level=INFO +handlers=%(handler)s +qualname=nodepool.image.build.%(qualname)s +propagate=0 +""" + + +def _get_providers_and_images(config_file): + ret = [] + config = yaml.load(config_file) + for provider in config['providers']: + for image in provider['images']: + ret.append((provider['name'], image['name'])) + logging.debug("Added %d providers & images" % len(ret)) + return ret + + +def _generate_logger_and_handler(image_log_dir, provider, image): + handler = _IMAGE_HANDLER % { + 'image_log_dir': image_log_dir, + 'title': '%s_%s' % (provider, image), + 'filename': '%s.%s.log' % (provider, image), + } + logger = _IMAGE_LOGGER % { + 'title': '%s_%s' % (provider, image), + 'handler': '%s_%s' % (provider, image), + 'qualname': '%s.%s' % (provider, image), + } + + return { + 'handler_title': '%s_%s' % (provider, image), + 'logger_title': '%s_%s' % (provider, image), + 'handler': handler, + 'logger': logger, + } + + +def generate_log_config(config, log_dir, image_log_dir, output): + + """Generate a sample logging file + + The logging output will have the correct formatters and handlers + to split all image-build logs out into separate files grouped by + provider. e.g. + + providers: + - name: foo + ... + - images: + - name: image1 + ... + - name: image2 + ... + - name: moo + ... + - images: + - name: image1 + ... + - name: image2 + ... + + Will result in log files (in `image_log_dir`) of foo.image1.log, + foo.image2.log, moo.image1.log, moo.image2.log + + :param config: input config file + :param log_dir: directory for main log file + :param image_log_dir: directory for image build logs + :param output: open file handle to output sample configuration to + + """ + + loggers_and_handlers = [] + logging.debug("Reading config file %s" % config.name) + for (provider, image) in _get_providers_and_images(config): + loggers_and_handlers.append( + _generate_logger_and_handler(image_log_dir, provider, image)) + + logger_titles = [] + handler_titles = [] + image_loggers_and_handlers = "" + for item in loggers_and_handlers: + logger_titles.append(item['logger_title']) + handler_titles.append(item['handler_title']) + image_loggers_and_handlers += item['logger'] + item['handler'] + + final_output = _BASIC_FILE % { + 'log_dir': log_dir, + 'image_log_dir': image_log_dir, + 'logger_titles': ','.join(logger_titles), + 'handler_titles': ','.join(handler_titles), + 'image_loggers_and_handlers': image_loggers_and_handlers, + } + + logging.debug("Writing output to %s" % output.name) + output.write(final_output) + output.flush() + logging.debug("Done!") + + +def main(): + + parser = argparse.ArgumentParser() + parser.add_argument('-d', '--debug', action='store_true', + help="Enable debugging") + parser.add_argument('-c', '--config', default=CONFIG_FILE, + help="Config file to read in " + "(default: %s)" % CONFIG_FILE, + type=argparse.FileType('r')) + parser.add_argument('-o', '--output', default=LOGGING_CONFIG_FILE, + help="Output file " + "(default: %s)" % LOGGING_CONFIG_FILE, + type=argparse.FileType('w')) + parser.add_argument('-l', '--log-dir', default=LOG_DIR, + help="Output directory for logs " + "(default: %s)" % LOG_DIR) + parser.add_argument('-i', '--image-log-dir', default=IMAGE_LOG_DIR, + help="Output directory for image logs " + "(default: %s)" % IMAGE_LOG_DIR) + args = parser.parse_args() + + logging.basicConfig(level=logging.DEBUG if args.debug else logging.INFO) + + generate_log_config(args.config, + args.log_dir, + args.image_log_dir, + args.output) + + +if __name__ == "__main__": + main()