Give stack user passwordless sudo:

This is very helpful when performing automation.

Additionally, removed addition of stack user to admin group,
since that group does not exist on all systems, and
passwordless sudo eliminates the need it was addressing.

Change-Id: I727bd51acb920c6c2e66247069998b6ee4267895
Make populate_libs() more generic.

It can handle "path to path" output of ldd, such as
    /a/b/c.so => /x/y/z.so (0x123456789)

Change-Id: I68d1096694835818c9129212a02796e1ce1c181d
Fedora needs to depend on dib-run-parts too.

Change-Id: I56611d1c2bf13c8d24a87869bf8334d8e4992f6f
first-boot.d scripts log to a file:

Log first-boot.d script output to a file, to ease troubleshooting,
since the first-boot scripts are removed from the system after
running, even in case of failure.

Change-Id: I07d5c782dd918a804e054bf08efce89ed9442e0c
Fix the sudo rules for unpacking fedora raw images.

Change-Id: Icba75e0380f63a8f6059d1be4c63ac823b9f473d
Prevent silent failure of element-info:

bin/element-info accesses it's library via a symlink:
  bin/diskimage_builder -> diskimage_builder

This causes the relative path in elements.py to be
incorrect.

element-info silently fails in this situation, because
it allows missing 'element-deps' files, so that these files
may be optional.

This change causes element-info to fail explicitly if $ELEMENTS_DIR
is not set, as it now is when called by diskimage-create, and
adds tests reflecting this behavior.

Change-Id: Iec50f934feb13dfed64d69297a3af6ac9f842677
Run alternatives pip -> pip-python

Checks to see if python-pip is installed and installs
an alternatives link at /usr/bin/pip

Change-Id: I858ac2597d3cacc79144a8b345faf6a2f7dee26e
Add an openstack all-openstack-db element:

This element installs all openstack sql databases into
a single image, useful for a bootstrap image.

Change-Id: I6efe807793ec620a60d5798d28a7e3103a5b90e8
Add a cinder element.

Change-Id: I4729cf003896c3b4f8267d16e1b4822099231051
Improvements to glance element:

- Perform config installation with os-config-applier
- Known-working config files
- Perform service restarts using os-refresh-config hooks
- Collapse g-api and g-reg into a single element, at least for now

Change-Id: Ie40c9725cbc27445e10ffde8eeff422bd121d5b5
Allow elements to include skeleton config:

This code provides 'use-config-templates' for elements
to use to install os-config-applier templates to
/opt/stack/openstack-config-templates.

These templates will be filled in from heat
metadata by os-config-applier upon first boot.

This change updates keystone to install templates
in this way as an example.

Change-Id: I0be0a79a431e9ba5b80e84f130c48d5ce8b100ae
Run os-config-applier immediatley on first boot:

ensure os-config-applier runs before other first
boot scripts which may depend on config being in place.

Change-Id: Ic49fb965370c676de53ef6eb4094bf74340f56ec
Seperate install of services and start scripts:

This allows openstack services to be git/pip installed
without installing any startup scripts.

This is useful for keystone-db or nova-db elements, for
example, where the service must be installed to perform
database migration, but no service start scripts need
be installed.

Additionally, add a tool to create openstack sql databases.

Change-Id: I72751d4da59f8597d20aea2f27a9dfabe2f63a8f
Update keystone element to use os-refresh-config.

Change-Id: I15595d80ee7fad04d964aaa83a403d9303f6aa55
Add a nova-baremetal element.

Change-Id: I4b439485c32402fa98e45dfea976538e43b770ad
Add a quantum element.

Change-Id: I9de3d85e800c9ea9accafffc92e1cfcafa5c3fdd
Add a horizon element.

Change-Id: Ie585a7ea63ba5b5b8b064df738e9616827e913fa
Add a nova-virt element.

Change-Id: I2e5cbfdfd0da930050ec86d6ee536910bebc64c9
Add a bootstrap element.

Change-Id: Ic300e39a56f401be4d88feb6cdf85c851982282c
Touch a first-boot.status file:

After running first-boots scripts, both to indicate
that the scripts have completed, and also to record
the exit status.

This is useful for automated testing:
  - tests can wait until first-boot scripts have
    completed before commencing testing
  - tests can abort further testing if first-boot
    scripts have failed.

Change-Id: Idec63de858c15def8c621056232aad45eab225e8