xenapi: enable user interaction with stack.sh

In XenServer, devstack runs inside a virtual machine. This makes it hard
for the user to interact with stack.sh should a parameter be missing.
This change will create an upstart job (devstack) that runs
stack.sh with console enabled so user can interact with it by running
vncviewer or using XenCenter.

Logging the output is also disabled, stamp files are used instead to
detect the script run status in case install_os_domU.sh is used.

As run.sh.log is removed, standard devstack logging should be used.

The change also removes the environment settings from run.sh, as they
are not needed, they should be specified in localrc. This way user
cannot get different experiences by using unstack.sh/stack.sh or run.sh

Also a proper unstack.sh is called instead of killing screen in run.sh

Change-Id: I7eb12bd74746cc7a1db3aa9fd68ece645a50001d
xenapi: display IP and DevStack result on console

The devstack setup service can update /etc/issue, displaying the status
of the installation and the VM's management IP. With this change, after
the devstack service finsihed, the login prompt will look like this:

OpenStack VM - Installed by DevStack
  Management IP:   10.219.3.108
  Devstack run:    SUCCEEDED

DevStackOSDomU login:

This helps people to log in to their system.

Change-Id: Idd6bbd5faf9ced5618cd3e95191bfc3b89473fa2
add assertions for blind grep

blind grep is error-prone.
Add assertions for errors we can not handle

Change-Id: Ibe19085545ecc848498506e8b8ee14e71825b273
Add new stack phase: post-extra

The current existing phases "post-config" and "extra" are not
sufficient to allow local.conf overrides to extra type services
because they run after the services are installed and configured.
This commit introduces a new phase called "post-extra" that runs
after these existing phases. With this change, users are able to
leverage local.conf to provide overridden options to services
like Tempest.

Change-Id: I5d758eebfda804dd1d8cbc3d5cc35ef4dcc8c96f
Closes-Bug: #1249085
Add pip folder to ignore list

Change-Id: I26da80b9e09774b9940d382a32cf69e75c61a527
Mute false alarm when installing docker

In install_docker.sh, we will restart docker service, then connect
to /var/run/docker.sock with retry mechanism.

At the first contacting with /var/run/docker.sock, when docker
service is not ready, it may complain some error.

Mute this false alarm.

Change-Id: If00a18d2e3ddee951662e272d47ae84215f16ad2
Closes-Bug: #1252087
Adding optional colorized log output for trove

Change-Id: Ibdaed9c2d1527b4c38551efbc147597e2a668b1a
Allow deploying keystone with SSL certificates

Allow providing certificates through environment variables to be used
for keystone, and provide the basis for doing this for other services.
It cannot be used in conjunction with tls-proxy as the service provides
it's own encrypted endpoint.

Impletmenting: blueprint devstack-https
Change-Id: I8cf4c9c8c8a6911ae56ebcd14600a9d24cca99a0
freshen the LDAP support

* Build the base DN from a given domain name
* Remove all hard-coded names to allow configuration of base DN
* Fix manager DN (cn=Manager,dc=...)
* Add ldap init_ldap()
* Add support for clean.sh

Change-Id: Ieb69be9740653645b8e000574ad3fe59a0f97540
split collector service

the ceilometer collector service has been split into two:
ceilometer-collector and ceilometer-agent-notification

Change-Id: I6114fd7f3e063abfa74d48d402dc863bccd249b6
Blueprint: split-collector
Make tempest L3 capable plugin aware.

With this patch, the public network config in tempest.conf will be
done for the plugins that support L3.

Change-Id: I820fe300fac45ff92d1281ff0c43ebc137783210
Assign unique name to each fake nova-compute

Without a unique name, the scheduler (and anything else, really) will
consider each of these nova-compute processes as being one and the same,
so only one entry in the services table, only one hypervisor seen by the
scheduler, etc. Assigning unique names lets us simulate an arbitrary
amount of nova-computes which is very handy for benchmarking the
scheduler.

Change-Id: Ie03aad81bd2a8e73b876a9eae934bc00bf2f71e9
Add marconi support to devstack

Marconi has an optional dependency on keystone for authentication. This
code was tested with everything enabled and also with the following
localrc:

    STACK_USER=fedora
    SERVICE_TOKEN=secrete
    ADMIN_PASSWORD=secrete
    MYSQL_PASSWORD=secrete
    RABBIT_PASSWORD=secrete
    SERVICE_PASSWORD=secrete

    disable_all_services
    enable_service qpid
    enable_service key
    enable_service mysql
    enable_service marconi-server

Implements blueprint marconi-devstack-integration
Implements blueprint devstack-support

Change-Id: I13495bcc5c5eb66cee641894e9f84a0089460c8b
Updates .gitignore

Closes-Bug: #1255854

Change-Id: I22b6fa351dd5b654783f432c01785c706eff8397
Do not create an unnecessary file "ml2"

Previously when running devstack with Neutron ML2 plugin,
an unnecessary file "ml2" is created in devstack directory.
It is because when the first argument is not defined the second
argument becomes the first one.

This change moves the first "options" argument of populate_ml2_config
to the last and checks the given options has a value before adding
them to a file.

Change-Id: I9ff40456798c42216d414d5f8d443e671ab7d497
Close-Bug: #1255853
Adds entries for missing parameters in PLUMgrid plugin

Three configuration parameters were missing for the PLUMgrid plugin.
In this patch all those three have been properly added.

Change-Id: If070aa5eb35678d0984470ebcd43fd99e08bcc8a
Closes-Bug: #1255808
Use fixed network for ssh when n-net is enabled

Server rebuild test has stability issues with n-net + floating ip.

Change-Id: I8a921fddbca49c8499938a25f9722ea40cee76cc
Fix savanna-dashboard git repo clone dest

It breaks savanna d-g jobs due to the ERROR_ON_CLONE=True in d-g
(enforce that nothing will be cloned during the installation).

Change-Id: I0531e1baf7252c31eb63ee5b46c28d1dfa7d0a1b
Attempt to retrieve the vmdk descriptor data-pair

VMDK formats such as monolithicFlat and vmfs require two files to be
fully consumable by the Nova drivers (a descriptor-data pair: *.vmdk and
*-flat.vmdk).
On the upload of the descriptor (*.vmdk), upload_image.sh should attempt to
retrieve the *-flat.vmdk. The same way, the descriptor should be
retrieved when a flat disk is uploaded.
On success, the upload script will be able to use the flat disk as the image
content and the relevant descriptor settings as the image metadata.

Change-Id: I9214754029c46dd60b9e7d606d84d8819a498a8d
Closes-Bug: #1252443
Merge "Allow deploying keystone with SSL certificates"