Image building tools for OpenStack
Go to file
Ian Wienand 34efed027a Add PS4 to show file/function/line in debug output
For something fairly simple, I went back-and-forward with this a bit.

Firstly, I realise calling readlink constantly sucks.  Due to the way
we call dib and source various files, you end up with the source-file
from "caller" being usually a very ugly path including levels of "../"
indirection.  Cleaning this up to something canonical is the only sane
way to present it.

Because we evaluate _ps4() from a sub-shell in the PS4 string, there's
no way for it to do something like build a global in-memory cache in
an associative array or similar.  It could write out a temp file or
some other side-band method, but the overheads of managing this don't
seem any different to just calling readlink.  If anyone can think of a
bash-hack around this that doesn't involve a fork() I'm interested.

We could potentially strip some of the leading paths in the assumption
you know what they are; but it gets complex when things are split
across /usr/bin & /usr/lib and external elements, etc.  I thought
about arbitrarily shortening it (e.g. just take last 20 characters)
which gives you enough of an idea of the file, but looks a bit ugly.
Or we could just leave the file-name out all together and assume the
function name is unique enough; this also seemed a bit ugly.

Obviously it's a matter of taste in the output.  It is certainly
wider, but it also adds a lot of information.  It also makes it fairly
clear where there are things we can make less verbose,
e.g. I1e39822f218dc0322e2490a770f3dc867a55802c disables tracing in
run-parts which is just noise.  There's a few other frequently used
loops that we could disable tracing for by default to benefit
signal:noise.

tl;dr : take a look at the logs.  I think it is a step in the right
direction of making the logs more usable for debugging.

Change-Id: I8054a3050415fcb527baeb7012bf133e5c864bf3
2016-05-18 09:23:15 +10:00
bin Add PS4 to show file/function/line in debug output 2016-05-18 09:23:15 +10:00
diskimage_builder Remove outdated translation files 2016-01-31 20:31:29 +01:00
doc/source Small doc update, add link to relnotes 2016-05-16 15:13:39 +10:00
elements Merge "Fix path issue for locale-archive.tmpl" 2016-05-16 22:01:47 +00:00
lib Revert "Revert "Properly fail/trap in eval_run_d"" and fix PIPESTATUS 2016-05-16 16:25:45 -07:00
releasenotes Add 1.16.0 releasenotes 2016-05-16 11:09:39 +10:00
tests Merge "Add test dependency installation on Gentoo" 2016-05-13 03:18:55 +00:00
.gitignore Ignore manifest outputs more carefully. 2014-06-26 04:29:51 +12:00
.gitreview Update stackforge references to openstack 2013-08-17 22:58:26 -04:00
.testr.conf Add unit test for cache-url 2014-09-30 16:39:21 -05:00
LICENSE Fix copyrights for HP work. 2012-11-15 16:20:32 +13:00
MANIFEST.in Remove old entries from MANIFEST.in 2015-09-02 15:15:13 +10:00
README.rst Make README.rst a bit more generic 2015-09-16 13:52:43 +10:00
babel.cfg Make it possible for openstack-CI to run tests 2013-02-04 22:26:17 -08:00
requirements.txt Updated from global requirements 2016-05-13 00:39:26 +00:00
setup.cfg Remove deprecated disk-image-get-kernel 2015-07-06 16:44:07 +00:00
setup.py Updated from global requirements 2015-09-22 09:17:08 +00:00
test-requirements.txt Updated from global requirements 2016-04-21 18:11:09 +00:00
tox.ini Add releasenotes 2016-04-21 13:19:53 +10:00

README.rst

Image building tools for OpenStack

diskimage-builder is a flexible suite of components for building a wide-range of disk images, filesystem images and ramdisk images for use with OpenStack.

This repository has the core functionality for building such images, both virtual and bare metal. Images are composed using elements; while fundamental elements are provided here, individual projects have the flexibility to customise the image build with their own elements.

For example:

$ DIB_RELEASE=trusty disk-image-create -o ubuntu-trusty.qcow2 vm ubuntu

will create a bootable Ubuntu Trusty based qcow2 image.

diskimage-builder is useful to anyone looking to produce customised images for deployment into clouds. These tools are the components of TripleO that are responsible for building disk images. They are also used extensively to build images for testing OpenStack itself, particularly with nodepool. Platforms supported include Ubuntu, CentOS, RHEL and Fedora.

Full documentation, the source of which is in doc/source/, is published at:

Copyright

Copyright 2012 Hewlett-Packard Development Company, L.P. Copyright (c) 2012 NTT DOCOMO, INC.

All Rights Reserved.

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.