Merge remote branch 'openstack/master' into flight_time
Fix ip6tables support in xenapi bug 934603

Change-Id: Id7c4b0c4f8710652249b5c4fcb82abd5cccde6dd
Turn on base image cleanup by default.

Essex shipped with the libvirt image cache manager hobbled so it
wouldn't delete unused base images. Its been a while and we haven't
had a new bug reported in ages. Let's turn it on for Folsom. This
is tracked by bug 1029674.

Change-Id: I5529232bf4a316f844d383d5f5a3c0c287d59c1f
Prefer instance in reboot_instance.

Now that we're passed through an instance, or something which is
immediately turned into an instance, we should prefer using the full
instance inside compute methods. This is especially useful for log
messages, as it allows users to format the messages more than they
can if only the UUID is passed.

Change-Id: I29370f33a63817f3e45d453499bd46131b947d7e
Instance cleanups from detach_volumes.

We can just use members of the instance dictionary without turning
them into local variables, as we don't need to populate instance_uuid
manually, as that is done by the @checks_instance_lock decorator.

Change-Id: I2046d5688c2f5122624dc338680b7ddd850ed330
Avoid error during snapshot of ISO booted instance

Fixes bug #1023492

If you boot an instance from an image with disk_format=iso and then
attempt to snapshot (i.e. nova image-create) you currently get a
traceback because we do:

  qemu-img convert -f qcow2 -O iso -s $snap $disk $out

and 'iso' is not a format that qemu-img knows anything about.

When booting the image, we use qemu-img to detect that the file is
a raw image so we avoid having to special case disk_format=iso
there. However, there's no way of avoiding the special casing when
extracting a snapshot.

Note 1 - it's not very clever to take a snapshot of a read-only
disk downloaded from glance and upload it back to glance again.
Adding such smarts would be a nice enhancement.

Note 2 - only the destination format is important here because
we can only be extracting from a qcow2 image since snapshots
only work where use_cow_images=True. See also #1030844.

Change-Id: I21ff6db8ebb59a83d27f224283fb76f582c38a0e
reduce debugging from utils.trycmd()

In the case where the command fails, we're returning
the err anyway and the caller can log if required.

In the discard_warnings=True case, then the caller
has explicitly asked to suppress the warnings,
so don't log this noise either.

Fixes bug: 1030609
Change-Id: I075c21aa6508182ae6dd030cf41ec31916559957
Revert "Check for selinux before setting up selinux."

The existing code used trycmd(readlink) precisely because
/etc/selinux might not exist. The presented traceback in
the bug is only debug info.

Also the change will not work with libguestfs for example,
where the nova user can't access mount points mounted by root.

After discussion on IRC it was decided to reduce
debugging output in a subsequent commit.

Reverts: 9bea239f
Change-Id: Id07eae5b330332f36ad7caa786593e486aa36469
Xen: VHD sequence validation should handle swap.

The VHD sequence validation code was erroneously counting `swap.vhd`,
which caused it to raise an exception when a corresponding numbered VHD
was not found.

The fix is to simply ignore the `swap.vhd` file.

Other unknown VHDs will generate an exception, but from a
sanity-checking perspective, this is a Good Thing(tm).

Fixes bug 1030939

Change-Id: Ic82ae27a4af7ea8f7669fd006aea1a310b691218
Use common parse_isotime in GlanceImageService

Rather than reimplement openstack-common's isotime functionality,
just use what's provided for us!

Change-Id: Id44eab3c34ae2c682d27d1563c6baaf68b979d2b
Fix rootwrapper with tgt-admin

Dont use the full path when calling tgt-admin.

LP: #1030850

Change-Id: Ifc7a1960aa67325e9219309e06de292010d7ec46
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Resize.end now includes the correct instance_type

Fixes bug 1031004. Moves the notification to the destination compute node
so that the correct instance_type attributes are assigned.

Change-Id: I5886154ddd7a9768dc5d82dc4e43e9e0f681ee04
Set default keystone auth_token signing_dir loc.

Updates the nova api-paste.ini file with a custom signing_dir
for Nova. This works around potential multi-service permission issues which
can occur when multiple OpenStack services share a common signing directory.

Change-Id: I99df63838fd41a4cade99b54da9511978b0d1a86
Merge "Avoid error during snapshot of ISO booted instance"
sync openstack-common log changes with nova

don't throw exceptions if %(color)s tag is used

fixes bug #1030078

If the log format strings include the %(color)s key in them and you
enable file logging, your log files won't work, and instead you'll
see exceptions on the console as the default python log handler doesn't
support that keyword.

This approach stubs out the extra keywords to be empty strings to avoid
the KeyError. Tests are also added to demonstrate the KeyError as defined
behavior, and test that color codes can be passed.

Change-Id: I24b2f45dd5a38b27b8cc5a70e0084d367e218172
Merge "Resize.end now includes the correct instance_type"
Reverts fix lp1031004

The fix was incorrectly applied to the resize.end event. There was a
miscommunication about the resize.end versus resize.finish event

Change-Id: I301b46bbb7684d70946a426ce371eaf1198b97df
Send a full instance in rebuild_instance.

Change the rebuild_instance method of the compute
rpc API to take a full instance over rpc instead of just
the instance UUID.  This cuts down on database access needed
by nova-compute.

This patch also includes fixes for a couple of places that were getting
the instance name using the old instance.name syntax.  It must be
instance['name'].  These no-db-messaging patches are making it so more
code paths have an instance as a dict (received over rpc) instead of
the SQLAlchemy model (looked up from the db on the compute node).

Part of blueprint no-db-messaging.

Change-Id: I21647a5a5cbf71a2c498f6fee2e4adbe30b8f2ea
Send a full instance in remove_fixed_ip_from_instance.

Change the remove_fixed_ip_from_instance method of the compute
rpc API to take a full instance over rpc instead of just
the instance UUID.  This cuts down on database access needed
by nova-compute.

Part of blueprint no-db-messaging.

Change-Id: Iee0daf068be9814ef0ba06a69111a45a2e198cbb
Fix image_type=base after snapshot

When an instance is snapshotted, the resultant image should have the
image_type property set to "snapshot".  However, if the base image
already had image_type set to "base", the image_type on the snapshot
will also be set to "base".  This turns out to be because we set
image properties in two different places.  The first is when the
image record is created in glance, which occurs in
nova.compute.api:API._create_image(); this is when image_type is set
to "snapshot".  However, in nova.virt.xenapi.vm_utils:upload_image(),
all the properties from the base image are copied over, so all the
properties set by _create_image() could be overwritten.

The quick solution was to extend the non_inheritable_image_properties
configuration setting to also cover the image properties set by
_create_image().  Long-term, these two metadata-setting processes
need to be more closely unified.  (It should be noted that the
upload_image() function contains a TODO stating that the code should
move into the compute manager, so it can be shared across
hypervisors…)

Fixes bug 1031079.

Change-Id: I936bc147fb823eca67e40084cba5c3bc1a7fe73a